GAGE - Genuine Advantage Gaming Engine |
|||||||||||||||||||||||||||||||||||||||||||||||||
|
GAGE is an engine designed to make developing 2D games in Java easy. Through high performace 2D wrappers, low latency sound handling, tight loop control and other built in features, GAGE will set the stage for Java's future in the gaming industry. Currently, this page is here to provide early access to the GAGE APIs for the purpose of feedback and development. As the APIs reach maturation, a new home will be created for this engine. All questions can either be asked on the JavaGaming.org forums, or by contacting the author at jbanes@gmail.com. News2004-07-21GAGESound has been updated! Here's what's been fixed:
Vincent van Beveren has been kind enough to share his SortedSprites class with us. This class will sort and render sprites in the Y dimension (either top to bottom or bottom to top). Check it out and see if you like it! If I get enough time, I may even consider adding it to GAGE2D. If you have something you'd like to share, email it to me and I'll add it to the Contributed Code list!2004-02-12 GAGETimer has been updated to
support the Java 1.5
2003-07-03System.nanoTime() method. The
nanotimer is the default timer under 1.5 VMs. Previous Java versions
will continue to use System.currentTimeMillis() or the
native Windows timer.Also, a new class called DurationTimer has been added to the GAGETimer package. This timer is useful for things like level timers (e.g. Super Mario Bros.), Power-Up timers (e.g. Quad damage in Quake), bomb fuses (e.g. BomberMan bombs), and pretty much whatever else you can think of. There are even methods available for calculating progress bars, showing the number of seconds elapsed or remaining, and obtaining the time in a percentage of the duration. Cool, huh? A new version of GAGE2D has been uploaded. Some of the changes: 2003-04-21 Added a psuedo-FAQ to this page to fend off newbie questions and help direct people to their proper destination.2003-03-04 Okay, I admit it. I flubbed. Durandel was nice enough to point out that I misspelled "missile" as "missle". Quite consistently too. I've updated the 2D packages as well as the docs. You might want to blow away your old copy of GAGE2D before you install the new one though. I'd hate for someone to miss the 'i' key and have it actually compile. 2003-03-03 Added a side scrolling shooter as an example of all the APIs working together. It's a little messy since I was using it as a test platform for the APIs, but it works. Besides, I added a few comments in to point out the juicy bits. Next game will be clean code, promise. No really, I do. :-) Where is feature XYZ?
But feature ABC is missing and it's *really* critical to my work! Fix it! I think you're missing the point of GAGE. GAGE is meant to be a library that helps get a game up and going by providing code for some of the most common needs. Everything else you not only have to write yourself, but the API is *designed* that way. For example, the existing sprite classes are most likely not going to meet the needs of a real game. However, you'll notice that the Sprite class is an interface. This is so that you can plug in new sprites that are specfic to your game. It even means that you could write code to do vector sprites instead of raster sprites and still get the benefits of collsion detection!I'm a beginner in programming games. I need HHHEEEEEEEELLLLLLLPPPPP!!!! REALLY, REALLY, REALLY BAD! I'm sorry, but I have limited time. There are tons of tutorials and forums to help you out. Make sure that you are first are aquainted with the JavaDocs and Java Tutorials that Sun has produced. 99% of what you need to know is already there. If you still have questions, go to JavaGaming.org or JDC Gaming Forum and search for the answer to your question.Is GAGE thread safe? No. For games you shouldn't need to create extra threads. Everything possible should be done inside the main thread. The WaveEngine, for example, pulls the sound rendering into the main thread. Networking can be solved by using NIO channels to read and write from as many network connections and files as necessary. Plain and simple. If you create a thread, you're most likey doing something wrong.The keyboard is slow, but I'm getting a really good framerate! If you're running flat out, the input thread isn't getting any time. You should be able to fix this by using the AdvancedTimer sleep methods to lock your framerate at a reasonable level. Usually, it's best to use AdvancedTimer.sleepUntil(...) like this:What license is GAGE under License? We need a license? Huh. Odd thought. Let's just call it public domain. Do whatever the heck you want with it. Go make money off of it, learn from it, whatever. Enjoy yourself! My only request is that if you use GAGE, I'd like you to shoot me an email telling me what you used it for. This isn't required, but I'd be interested in knowing what happens to GAGE and where it gets used.There's a bug in GAGETimer! It makes my CPU run at 100%! Amazingly enough, this is not a bug! It's a feature! No. Really. I'm not kidding. Stop laughing!!! |
||||||||||||||||||||||||||||||||||||||||||||||||
| Looking for DataDino? | |||||||||||||||||||||||||||||||||||||||||||||||||