[About] [Why I did it?] [What you can learn?] [Conclusion] [Final Note]
ABOUT RAM ATTACK
Aren't you growing tired of other 'game creation' system claims against 'windowed' games that are 'slow' or just limit windowed games to 'thinking' or 'board games'?
One of my objectives during the creation of this game was to create a fast 2D 'windowed' game to prove that Jamagic also shines when creating blast 2D games without the need of external graphic engines or switching to full screen modes.
This game makes use of the Microsoft's Voice engine and music in MOD (module) format.
WHY I DID IT?
- Can Jamagic do 2D games? Certainly! Jamagic is a 3D tool that can do real 2D applications without the need for Direct X. Other 3D game creation tools fail to deliver decent 2D games. This 2D game runs smoothly in almost any machine without the need for accelerated video cards, special display modes, etc.
- Does music modules (.MOD) make your game slower? It doesn't seem to be a problem for Jamagic and a properly configured sound card/drivers. By the way, the music Module was composed for this particular game by Giovanni Cardona.
- Does calling many function calls make your games slower? Maybe by a few processing cycles. I could write a straight forward code to save some processing cycles, but by doing that, I will have a hard time understanding my own code after several months, in case I want to get rid of a bug or do any updates (like adding a "Skin" feature to the game in a near future).
- Does "Windowed" games run slower? Well, this game runs in a window, and can run fine in slow machines, using 'Software' mode. I also make use of window controls & menus for the game's option. This alone leaves other multimedia and game languages far behind Jamagic because many of these game creation tools can only do fast animations with Direct-X in full screen modes and can't do real windows controls.
- Choosing an Object Oriented language as Click Team's next generation of game creation tool, was very assertive. Games can be written faster, code can be more readable, easy to expand and functions can be reusable in other games with none or little modifications. You can learn from this code, how each element has its own "behavior".
WHAT CAN YOU LEARN?
- Many 'object oriented' principles can be found in this game.
- By looking at my code, you can see how to enable/disable certain resources, depending on availability. For example, if the speech system or mod plug-in is not installed, it will be disabled, but this will not hurt the game play. If you have it, fine, if not, fine too.
- This particular game has an integrated 'flush' routine thats worth a look. At the end of each level, there's a function that gets rid of all objects that were created during the game. I suggest you take a similar approach if you turn on the debugger and notice some memory leaks after playing several levels in your own games.
- This game uses relative addressing to position objects on screen. Many of the graphics shown, like titles, banners and playfield can be automatically centered and/or resized depending on game's window size.
This game has a decent speed even on slow systems. If your PC is not giving you this experience, play with the sound options. Maybe your PC, sound card or drivers can't handle the sound output properly.
This game was coded while Jamagic was in beta stage (and while I was learning the language) and only some minor fixes, like function name changes were done following the official release. Results can be achieved by other means or the code can be improved.
Copyright 2001 by Giovanni@Cardona.com Do not use any material from this web page without prior permission.