Categories
Games Geek / Technical

RealTimeBattle: A Programming Game

I’ve seen programming games that can teach you Java by programming the AI of your robot. Of course, it was Java specific, and as nice as Java might be, there could still be some reasons for you to want to learn something else. Other games might teach their own language, which wouldn’t be very useful directly. Enter RealTimeBattle.

RealTimeBattle is a programming game, in which robots controlled by programs are fighting each other. The goal is to destroy the enemies, using the radar to examine the environment and the cannon to shoot. You can play RTB on many different platforms, but my favorite feature is the fact that robots can be constructed in almost any programming language.

You talk to the server by using the standard input and output. You don’t need any specific functions from a library. You just need to be able to send and receive regular text. What you do with the information might make use of various properties of your specific language, but so long as you can manipulate text, you can program a robot to compete.

RTB is now at version 1.0.8.

Categories
Game Development Geek / Technical

Java Language Performance

Urban performance legends, revisited points out that in many cases, memory allocation and deallocation is faster in Java than in the fastest C/C++ implementations. It’s an interesting read, and it definitely seems to go against the common understanding that C/C++ are needed for faster performance. Of course, it only looks at memory allocation and deallocation, and so it doesn’t touch on other issues.

Still, people have noticed that Java is becoming a good language to use for game development. Tribal Trouble by Oddlabs is an example of a game that makes use of Java heavily. It’s a 3D real-time strategy game, and it wasn’t that long ago when it was common knowledge that you just couldn’t make a decent game in Java. Now there is some proof, at least from the point of view of memory allocation issues, that Java performs better than C or C++.

Of course, interpreted languages, such as Python, are also coming into their own as game programming languages. Lower-level languages are obviously still used in some applications, and so presumably Java doesn’t perform better in certain cases, but the point is that it is getting easier to develop software.

Categories
Geek / Technical Politics/Government

Digital Restrictions Management

I’ve talked about so-called “Digital Rights Management” before, but I’ve noticed that it is coming up a lot on ZDNet. For instance, Sun is trying to come up with an open DRM, but I don’t care how open a system is if the purpose of the system is to restrict what I can do with music and movies. “I’ll bind your arms and legs to a chair, but I’ll tell you where I got the rope, how much it cost, and how much pressure I applied to tie the knot.” Thanks, but no thanks.

The latest I’ve read is We the Sheeple (and other tales of DRM woe). Basically, another ZDNet blogger didn’t think that DRM was that big of a deal, and so the author tried to make better arguments.

People will readily point out the dangers and health risks of smoking. It’s fairly straightforward and easy to understand. Smoke, and you get cancer. Smoke, and your family and friends will get sick. It’s easy to fight against companies that make so much money off of a product that is so dangerous to the public.

Copyright law, on the other hand, is confusing enough as it is. People in general don’t know an operating system from the company that produces it, and since DRM is tied so intimately with technology, most people won’t care enough to be up in arms about it.

There are some serious concerns, of course. DRM puts a lot of control into the hands of the copyright holders, which isn’t so bad in and of itself. What is bad is how overreaching it is. Fair use is still fair use, but just owning the means to circumvent DRM in order to do something protected under fair use is a felony in the United States under the Digital Millenium Copyright Act (DMCA). Very clever. “Yes, you are allowed to play your music on any player you want. Yes, you are allowed to use a few seconds of audio for your class project. Yes, you are allowed to make a mix CD. No, you can’t copy the music from the original CD to do so.” Absurdly lovely.

Or how about when TiVo automatically deletes episodes of shows you haven’t had a chance to watch yet? Or when your new VCR isn’t allowed to tape certain shows because the television broadcast contains a no-copy bit?

Be a good little consumer and roll over.

Digital Restrictions Management: just one of the reasons I prefer to use a Free operating system.

Categories
Game Development Games Geek / Technical

My Thoughts on the Revolution Controller

Nintendo announced their new controller for Project Revolution some time ago. It’s old news, but I thought I would comment on it now that people have had a chance to present their thoughts.

I personally thought it looked like Yet Another Hoax when I first saw it. The idea that the new game system would use a controller that looked like a regular television remote was just too silly to be true. It turned out that it wasn’t a hoax, that Nintendo was doing something way out there, and I just didn’t know what to think at first. I seriously thought I saw the foretelling of the death of Nintendo.

Then I read the articles that went with the pictures, remembered Nintendo’s goal of making innovative games rather than The Same Games with More, and felt a bit better. I saw the video and can see some real potential in this console, even though the people in it were being way more animated than I believe they would have been in reality.

Time will tell whether it will actually be a hit, but I can see that this system will be either be a complete failure or an amazing success. Games tailored for the controller will really only be possible on this system. Talk about exclusivity. Real time strategy games that actually play well will be possible on a console! Non-gamers, a hugely untapped market, might actually play games! And if it will be easier for indie developers to make games for it, all the better. Of course, if game developers would rather save money by making games for the systems that are most like each other, that could be a problem. Darn double-edged swords.

People have expressed concerns about tired arms, carpal tunnel, and game play errors when you talk to someone in the room and inadvertently move your hands an inch to the side. I’m sure they are valid concerns, but I’m also sure that Nintendo has them in mind. Other people note that the failed CD-I controller was also a remote, and if the Revolution controller was just a regular wireless remote control with buttons for input I would agree that it’s been done before, isn’t that impressive, and has failed. Of course, this controller is not just a bunch of buttons on a television remote. It’s sounds more like having a television remote crossed with a computer mouse crossed with an EyeToy. I can see the Revolution being marketed like the old consoles used to be: as family entertainment systems. My mother might actually play a Mario game without freaking out about the controller first.

In the end, I think that Nintendo will do really well. It’s making a profit from games in the first place, unlike some companies, and so can afford to be innovative. They may fail, but I appreciate the willingness to be different, not just better. And the idea of wielding a sword or swinging a bat by actually doing the motions instead of simply pressing buttons just sounds too cool. B-)

I look forward to the Revolution, if only because the older games will be available to play. I’m also interested in seeing what games will be possible with the system. As far as I know, no one is wondering the same with the other consoles. We already know what we can play on the PS3 and XBox 360 (totally 357 more than the PS3), and of course nothing is wrong with wanting to play good games. It’s just really great to see a company respond to “More speed” and “More graphical power” with “More possibilities”.

If you haven’t seen any reports on this controller, having been under the proverbial rock all this time, check out the following links:

Categories
Game Development Games Geek / Technical Marketing/Business

Manifesto Games

I remember when I first read The Scratchware Manifesto detailing the problems with the game industry’s economic and development models. I thought that it was a nice read but probably written by someone who might not actually know about the game industry.

Then Greg Costikyan reveals that he was the author of the piece, shocking many in the game industry who also thought it was written by some wannabe game developer. He wrote a few articles for The Escapist about the topic as well. They all boil down to rants against the current model which stifles innovation and creativity and will not be sustainable for long. Of course, everyone knows that there are problems, but not quite so many people are doing much about them.

Now, he decided to quit his job at Nokia and startup a company to help make his dreams for a better game industry a reality.

From his recent blog post announcement:

The new company will be called Manifesto Games; its motto is “PC Gamers of the World Unite! You Have Nothing to Lose but Your Retail Chains!” And its purpose, of course, will be to build what I’ve been talking about: a viable path to market for independent developers, and a more effective way of marketing and distributing niche PC game styles to gamers.

It sounds exciting. Heck, it’s exciting anytime someone starts up their own business venture. Indie game developers seem to have issues with marketing their products. Not everyone can make a Bejeweled or Snood. And those that make something like Darwinia struggle to get noticed. I can see Manifesto Games being an Amazon-like one-stop shop not only for indie games but also for those niche hardcore titles that retailers won’t carry.

I’m not sure if I’ll like how it will get implemented. I’m mainly afraid that game developers will insist on Digital Restrictions Management everywhere. That would quickly make Manifesto Games really crappy for the customer, and I wouldn’t want my games to have any part of it.

But Greg will be blogging about the startup, and so he’ll likely be looking for feedback. I wish him luck.

Categories
Geek / Technical

More Collective Knowledge: Wikibooks

I found this news item on ZDNet: As the Wikibooks website says, it is a collection of open-content textbooks that anyone can edit.

Wikipedia already has a huge amount of up-to-date content, and so I wasn’t sure what the difference would be. After all, they both use MediaWiki as the server software, so wouldn’t it just be a duplication of effort?

Of course, Wikipedia covers topics as an encyclopedia would. Wikibooks will have books on the various topics. While the former would have an entry giving a broad overview of a topic, the latter might have entire books that go deep into the subject matter. For example, Wikipedia’s entry for the Ada Programming Language talks about the history of the language and its main features. It provides plenty of links to tutorials and other sites of interest, but the entry doesn’t provide any useful information to the student programmer. Wikibook’s entry for Ada Programming, however, teaches you how to program using Ada. It even has a link to the Wikipedia article!

People are getting excited about Wikibooks. For one, expensive textbooks that are outdated by the time they reach the classroom might be a thing of the past. Publishers might need to adapt, although I personally think that nothing can really replace solid hardcopy that you can read away from the computer. Another possibility is that classroom research might involve working with Wikibooks. Assignments might look like, “Go to the Wikibook entry on Set Theory and add any missing information to the Axioms section.”

It’s also scary. For example, Joe Schmoe might think he is an authority on usability and edit the appropriate page. If he has it all wrong, how will you know when you go to learn about it?

Of course, that same possibility exists for Wikipedia or the Game Programming Wiki, and those seem to work out pretty well. At the moment there are over 11,000 books in the database, and more will likely be on the way. They will likely get updated in a timely manner and will be superior to regular textbooks in terms of accuracy. Typos and errors will be fixed IN the book instead of on the publisher’s website under an Errata section. Perhaps most importantly, it is also freely and easily available knowledge! I’m sure Wikibooks will make a lovely addition to collective knowledge of the world wide web.

Categories
Geek / Technical Linux Game Development

An Open Source Alternative to Google Earth

NewsForge reports on NASA’s World Wind project. While the images in Google Earth of higher quality, the functionality is mostly the same.

Apparently World Wind is still Windows only. It was written in C#, which wouldn’t be much of a problem, but it also uses DirectX, which is. But it is open source, and so Russian programmer Vitaliy Pronkin created a port called WW2D that uses C++ and OpenGL.

WW2D is currently at version 0.99.5, has binaries available for Windows and Gnu/Linux, and has the source available. Apparently a Mac version shouldn’t be too far behind.

I’ve been waiting for a Gnu/Linux version of Google Earth for some time. Apparently a lot of people have. And a port shouldn’t be difficult to do since they already have Google Earth Fusion running on Gnu/Linux. I haven’t had a chance to look into WW2D yet, but the idea that people can make their own custom applications based on the code is exciting. While Google has released the Keyhole Markup Language, developers can’t make tweaks or add functionality to Google Earth.

These are exciting times.

Categories
Game Development Geek / Technical Linux Game Development

Oracle’s Eye Development: I Broke The Build

A few days ago I updated my Debian Gnu/Linux system. Today I sat down to get some really productive work completed for Oracle’s Eye. Since I didn’t know where to start, I decided to build the project, run what I have, and then make a decision on what to do from there. Sounds good, right?

Except that when I went to build the project, I had a linker error. Unfortunately I lost the actual message, but it basically said that the library for Kyra didn’t reference std::basic_string.

Eh? How did the Kyra Sprite Engine lose access to the C++ Standard Library? Am I reading that error message correctly? Maybe the packages I updated were broken? Well, according to an active developer on #debian, he builds his projects just fine. So did the Kyra installation get corrupted or something?

Oddly enough, the Kyra demo still runs perfectly fine. Am I just building it incorrectly?

To make a long story short, I ended up removing Kyra 2.0.7, installing the latest 2.1.1, and finding that it won’t compile at all. Finally I decided that since I did updates to a number of packages, some of which might be graphically related, I might as well restart my display manager. When I did so, I reinstalled Kyra 2.0.7, and my project compiled, linked, and ran perfectly fine, just as I left it.

Of course, I didn’t want to stay up too late, so I am not really going to be able to do anything useful tonight. This problem really wasted a lot of my time. B-(

I’m going to bed. I just wanted to document this bug for the benefit of people like me who might be searching for a similar error and hoping to find a solution to their problem.

Categories
Geek / Technical General

Building a Better Game Blog

Video game blogs: the next level is a post on Aeropause on the topic of writing a better blog in general and a game blog in particular.

I actually gave Eats, Shoots, and Leaves to my girlfriend, so I might borrow the book from her one day. I’m also interested in reading 31 Days to Building a Better Blog. I never intended to make money from my blog. I don’t blog professionally (although one might think that I spend enough time doing so at the expense of other things I SHOULD be doing professionally) so I don’t think all of the advice will be relevant, but I should be able to gain some insight into better blogging.

Categories
Geek / Technical General

Creative Writing Prompts

Prompts to start you writing provides a link to a site to help you get into the writing mood. The Imagination Prompt Generator actually generates topics for you to write about.

Some examples that came up when I tried it out:

“One thing I want to learn right now is…”
“If you could pass on a piece of advice that meant a lot to you when you received it, what would it be?”
“____ was my favorite cartoon because…”

And you can just keep going until you find one that appeals to you, write for a few minutes, and BOOM, you’re in the writing mood and can start writing whatever it is you wanted to write. It reminds me of the creative writing exercises I did in grade school.

I searched for a similar site for hacking prompts, but I decided that it probably isn’t a good thing to encourage people to code creatively. It’s not like writing. I thought that maybe I can get into the coding mood if I write a simple, 10-line program based on a suggestion. I think it is more accurate to say that if I am having issues getting into the mood to program, I probably don’t have a very clear reason to program. I shouldn’t just sit down to a blank file and start hacking. I should have some specific goal. Why am I coding? I should design it on paper and try to figure out what details I’ll need. I can be creative coming up with solutions in that phase, but I should not be creative with the actual code.