[Home]Dock/Core

HomePage | Dock | Admins | RecentChanges | [Login] Preferences

ISO/Core is an Isometric projection engine written entirely in Java. Without using external native libraries for rendering, it has so far shown the ability to achieve almost 500 frames per second, though it self-throttles the rendering speed so that it maintains at most 30 FPS. The code is currently known only to run under 1.5.0-beta2.

[http://dock.nevernet.com/images/iso-tile-test1.jpg] This was generated directly from Photoshop, as was my first experience with trying to make connecting-seamless tiles. There are three identical seamless grass tiles (everything is diamond shaped), and two unique dirt/grass tiles. The dirt/grass tiles are seamless to the grass only tile on three sides, and seamless to each other on one side. There are 3 unique tiles for a total of 5 present. It's primitive because I didn't spend hardly any time trying to make it look good, only enough time to make it work. In a complete retail game, there would be a ton of dirt textures like this so you can connect them randomly, but avoid repetitiveness.

(By the way, that grass is real, and so is the dirt.)

[http://dock.nevernet.com/images/console-output2.png] A screenshot of the console debug output, showing the contents of the main pak (nothing more than a jar). The MP3's are music that Blizzard released from Diablo II (very cool moody music). Since Java can't decode MP3's without JMF, I converted one to a whopping 40mb WAV so the engine would have something cool to play during testing. I plan to use the LGPL JOrbis as the primary decoder so I can have everything in Ogg Vorbis.

For the time being, nothing in the pak is actually used.

[http://dock.nevernet.com/images/core-sample1.jpg] This is a small section of a screen capture, showing the Core engine in action. This is the lower left corner of the screen where the engine version is displayed. This is rendered on top of the tile grid in real-time, I didn't add that with Photoshop.

Top left shows the current FPS (not shown). If you look at the center, then along the right edge, you can see a dark green spot. That spot is on three different tiles, showing the simple ability to render seamless tiles. The tile itself is not one that I made, it was the first one I found before I learned how to make them myself, so that spot wouldn't show up on mine.

This is the very definition of a work in progress. The engine can only render 1 tile across the entire static grid, there are no overlays other than text, and there are no characters. You can't move, or do anything at all. I am still building the graphics renderer, that stuff comes later. However, it is pretty darn fast. One render pass only takes about 2ms, which is well within the accuracy of even my own nanosecond timer. That still leaves 31ms to run the game logic, and render even more cool stuff. And I do believe it's going to take a decent chunk of that time when the renderer advances. Without the aid of an external natively accelerated library such as DirectX or OpenGL, I have to do lighting entirely myself. While Java was never built for this, it should still be plenty fast enough to get the job done.


HomePage | Dock | Admins | RecentChanges | [Login] Preferences
Read-only | View other revisions
Last edited August 8, 2005 20:10 by Dock (diff)
Search:
©2008 @#tehh4x, All Rights Reserved.
38.103.63.16 r teh h4x | Unencrypted (use https)
ebaum's world