Jump to content
  • Advertisement
  • entries
  • comments
  • views

Ahh, the best of all worlds

Sign in to follow this  


Well, I think I'm now officially an "old man" in the game business, and I've learned a lot. Someday I need to update my "What Language Do I Use" article to reflect changes in the market since it was written. Until then, here's my grand vision of. . .

The Greatest Game Development Tool

Unfortunately, this tool doesn't exist. There are bits of it all over the place. Somebody's gonna have to gather it all together and get it working. Here are where the bits are. . .

Environment: Microsoft Visual Basic -- While Director and Flash come close with a nice "stage" metaphor, they both lose points for having a language that still feels tacked on (and Flash loses even more points for glacial compilation and a beyond-horrible debugger). VB has a "stage" of sorts with its forms. If you replaced the old button/field/checkbox bits with things like bitmaps and sounds that you could attach to your form, you'd have it. The instant compilation bit also gets big points. Just press the "run" button and go. Finally, VB (as well as VC++) can save its projects out to a text-based format. Environments that store things in proprietary binary formats give me the willies. I worry that all it takes is one bad write to render my entire project-file unreadable. At least text-based projects give me peace of mind in that department.

Language: D and Python (a bit of each) -- D is very cool, basically C++ with all the ugly 70's-era holdovers from C gone. Problem is, D is a native compiler, so it loses points in the portability category. If D could compile to some kind of VM, like Python can compile to the .NET framework, it'd be perfect.

Runtime environment, technology: Macromedia Director -- because it works, dammit. While Java is now a hopeless mire of conflicting versions and class libraries, Shockwave did everything Java promised. If you have any kind of runtime-extensions, you can easily pack them into your shockwave file. If you want the extensions downloaded separately, the runtime will do it for you rather than just complaining that you're missing some important gizmo. Also, the shockwave runtime scales extremely well, which the most recent 3D update has shown. They've got Quake levels running on the thing, for cryin' out loud. You can also compile the runtime engine, resources, and extensions together into a single self-contained .exe with no runtime anything required if you need to ship on CD.

Runtime environment, license: Macromedia Flash -- Flash is everywhere. Something like 95% of browsers can run Flash content, (and the remaining 5% are old WebTV's or something else that you wouldn't want running your games anyway). The Flash format and runtime code is open-source, so people can move it to other platforms or improve it.

I guess that's my ideal environment for now. What's rather sad, though, is that Java once had a chance to take all those categories, but it just didn't happen. The language was much tighter than C++, but jettisoned some bits that kept objects from being real first-class types, like overloaded operators. The runtime is a crapshoot. If you find a page with a Java game, you've got at best just a reasonable chance that you won't end up with some kind of error because you're missing a class or your VM is making assumptions that the developer's VM didn't. The class library doesn't appear to be scaling well, with runtime extensions with tradeoffs (like Swing, which finally added a decent GUI at the cost of any chance at decent speed). And it's suffering the OpenGL curse of being owned by a committee that's slow to improve things.
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!