• Add Review
  • Subscribe
  • Nominate
  • Submit Media
  • RSS

Progress Report

Draw Speed



This is the engine rendering a world map. By world map, I mean there's tons of tiles offscreen too. The engine uses OpenGL instead of DirectX to render things this time, and the performance is a steady 13ms per frame (~77 FPS) on a 2Ghz core and a Radeon HD 8400 video card laptop (it's actually a Radeon A6-5200 APU, the CPU and GPU are one).

This is without all the compiler optimizations I normally set before actually releasing something, and it's hooked into the debugger which also slows it down. Unlike RPG Maker 2003, the performance is nearly identical when I have it at 2x magnification (it's only 1x here so it fits neatly on the page) and it can rotate/scale/alpha blend anything effortlessly.

This time around, I'm going to put the events and the RPG virtual machine (runs the event scripts) in a separate core. It will still be easy to synchronize and for you to get almost double the power of the other RPG engines.

Progress Report

Select Engine



There we go, the editor looks for engines in the 'engine' folder defined by each .eng file. It is a very simple text file with fields in their own lines:



RPG 20XX
Non-Commercial
This engine will work for most your RPG making needs in hobby projects. It uses FMOD-Ex for a sound API...
Sayuri L. Kitsune
rpg20xx.exe
fmodex.dll
FreeImage.dll
freetype6.dll
libsndfile-1.dll
SDL2.dll
zlib1.dll
font.ttf


It ends up being displayed in the project settings like above. This makes it easy to add additional engines you wrote or got from somewhere and can just shove them into the 'engines' folder.

Progress Report

Tile Draw



Remember how long it took me to figure out Enterbrain's weird tile format? By using my simplified and more direct approach, I've already got the rendering of any sort of tile working.

The Missingno infested looking scene above is me filling the screen with random tile codes for testing. It runs pretty fast this time, it draws tiles much faster than the older RPG Maker 20XX engine for sure.

Progress Report

Asset Load



It's actually.. working. I thought it would take more than that. Well, from here it's just a matter of drawing the maps. The way I store maps has things like autotile fragments and the like already calculated. The engine is in charge of very little- it just reads the tile and draws it.

The first downloadable you will receive is to test this. It will be a map browser to see that the maps you make in the editor match the maps in the engine. The animated tiles in the engine should be animated.

This would mostly be a test to see if it will even boot on all your machines. I expect it to pop up some dialog like "missing zlib1.dll" or some other annoying thing the first download I send out.

Progress Report

Game File



(You can set the internal resolution to whatever in the editor. I added that ability since many of you like matching the resolution of a SNES, GameBoy, or whatever).

The game compiler seems to work fine and fast. Every time you hit the test play button, it will compile and then invoke the engine on the generated .2xg file. It is intended for every game file to be in this .2xg file, including images and sound.. Kind of like a ROM file.

Performance during playback is just as good (and sometimes better) than your typical folder of assorted files. When loading, the important data is read completely while it sweeps over the maps and resources, indexing them. Then when a resource is requested, it opens the file, seeks forward to the resource, reads, and then closes. This forward direction sweeping is easy for the operating system to perform quickly.

The concern is the speed of creating the file as it includes a copy of all your resources in the .2xg file. First of course, only included resources you intend to use. Even if you did have tons of images, it appears to process them instantly. If any compression is added later, it would be for an export function done once after game development and testing had finished.

I expect this step to take too long if you did something like encode a music track as a WAV. You should be using at least OGGs for your music files (the non-commercial version of RPG 20XX will play MIDI!). Don't have WAV files that are too long, but its OK to record new sounds at 44100Hz (some of you upscale low quality sound files to that thinking it increases quality- it doesn't).

The game engine will let you play music files as ambient sounds combined together with music, use that, don't make giant WAV files instead. Follow these guidelines for sound and your compile step will be fast enough for you to barely see the progress window flash.

This is the performance I'm seeing while compiled for DEBUG and hooked into the debugger. The engine will be optimized for fast realtime performance under these conditions. The engine you will receive then would perform even better. For a comparison, RPG 20XX will exceed the realtime performance of both RPG Maker 2003's 'RPG_RT' engine and RPG Maker 20XX's engine allowing you to cram it full of parallel content (quests, systems and the like).

I don't have a RAM usage test done yet, I'll have to build the engine and see. I can only tell you the performance as this level of performance I describe is a requirement. If it isn't as fast as I say it is, it would be a valid bug. It could eat tons of RAM, but I don't think it will be as RAM hungry as LandTraveller.

Furthermore, I'm going to try and bring you an RPG game engine that's also faster than everything else recently made available. 'Slightly laggy' may be good enough for Enterbrain, but it's nowhere near acceptable to me. Games just feel better when they're really fast. Not overboard though, I still need to be able to debug it and it needs to be capable of not 'exploding' when encountering an error.

The current (obviously incomplete) format for a .2xg file can be found here: https://subversion.assembla.com/svn/rpg20xx/doc/2xg-spec.txt

Game Design

Map Editor



Seems to work. Feels sort of weird doing this in software I just wrote. Need to polish it a little and then I can proceed to the game compiler.

Before being played, I'm going to compile the entire game (images, etc.) into a single flattened file .2xg which the engine will play- or so I plan.

Game Design

Tile Palette



Nothing too different here. Notice how its 2 tiles wider than RPG Maker 2003. One very important difference- the multiple selection of tiles will also work when making events. The entire mass of tiles will be used for collision when the event moves unless you have it ignore collision (recommended).

You will be able to right click eye drop select tiles of huge sizes (off the map), many times the size of RPG Maker 2003. You can right click eye drop tiles to make events too if you want to assemble the event specifically and use that. Handy for epic doors, power lifts, shifting parts of the level, etc. because you would only need 1 event (or 2 for parting doors).

Progress Report

Map Tree



Before maps are made, they are created and assigned somewhere on the map tree. It's pretty familiar except that areas in RPG 20XX are maps but without the tiles- when the player is within the area, its map settings apply. This means the music, bg, etc. can change within the area and revert to map once having left the area.

Progress Report

Tile Editor



I'm almost done with this thing. You can see all the familiar features plus the No Update Adjacent flag and a Is Feature flag. Animation speed settings with preview and the soon-to-be added four way passing flags and counter flags (Examine Through is what it is called here). Until terrain settings are added, they won't be used yet.

Progress Report

Tile Progress

There hasn't been any new visual here because connecting all the parts to the tileset editor is a big thing. It is working and looking cool so far, but I prefer to post pictures of completed stuff only these days.

Everything in the editor code is horribly messy, but I'm having no trouble with it yet. I was expecting the editor to be much harder to the point I wasn't sure if it could be done in such a short time. It looks like not which means RPG 20XX should arrive earlier.