Saturday, January 22, 2011

Status Report

Thought still far from completion, rev-0.7 keeps growing. This is basically the current status, where you can see that many important subsystems are running, and that some developer tools have been added or improved from older versions:
-Multi-platform support:Being able to compile your projects both for wii and windows allows you to use a lot of powerful tools to debug your code and inspect your game's internals. This makes a faster, more comfortable and more reliable development process.
-Log system:A good log system is always a good friend.
-Improved time system:Allows for precise and safe timing, which will help creating better physics, profiling and more.
-Memory:Memory management is being redisgned to help debugging pointer bugs and avoid some crashes like trying to delete a block more than once, warning you when that happens so you can track the problem and fix it.
-Script system: lua based script system that will allow faster and more flexible development for your games.
-Model loading: RMD models can now be loaded into the engine and rendered correctly. RMD format is fast to load and optimized for Revolution Engine.
-Camera: Cameras are working on this version also. This is a basic featured that has been present in all versions of the engine but one that will see many improvements in the near future.

And that's most of it right now, as always you can checkout the SVN for a more precise look into the engine.


Monday, January 10, 2011

Going Multi-platform

If you checkout the SVN repository for version 0.7 you can see the latest changes talk about multi-platform. This is an idea I've been thinking about for long.
Should Revolution Engine become a multi-platform engine?
Initially, Revolution Engine was concieved to show that Wii had more graphical power than showed in it's first games. Given Wii is not a complex platform, developing an Engine froms scratch might not be as hard as for more advanced platforms. Also I wanted to take advantage of Wii controllers, unavailable in other platforms. And at last, I wanted to develop on a console, that I had never done, and wii homebrew was starting off.
But now there is the PS3, completely hacked, and so tempting...and I don't have one.

Well, I don't have a PS3 so I can't port REV to PS3, but still I can prepare the software to be easier to port. And the best way to do this is to port it for another, moreless generic, platform. So I'm writting the Engine itself platform independent, except for some pieces of code, isolated in well defined parts of the engine (the drivers) so if ever me (or someone else) wants to port it, it will be easy.

But there are other advantages. At the same time I'm writting a Windows openGL driver for the engine, so everything compiling on your wii, you can compile it for windows, where you can debug your code easily with visual studio or whatever. I really like this, because I don't have any USB/SD Gekko, so I've never been able to debug code on my Wii, and I really missed it.

Monday, December 20, 2010

Learn how to create a 3D engine from scratch

Yesterday I did some work on Revolution Engine SVN. Now there are two versions of the engine in it. One is the latest, almost functional REV-0.6. Almost functional because there are some random crashes, probably related to the text system.
These version is not going to be continued because I designed it's architecture in a way that no longer can support the complexity level the engine was reaching.
That's how the other branch was born. One of the main reasons for creating Revolution Engine was learning. Not only learning, but also sharing all the knowledge generated in the process.
So what I'm doing now, is create a new version for Revolution Engine, and make it's source public from the very begining.
Right now, v0.7 does nothing but a little initialization and some mathematical calculus. I'll try to document all the process. Writing here, in the forums, or the wiki, the reasons for design decisions, architecture decisions, explanations for some optimizations or how subsystems do their work.
All of that will be public, and I'll post here screens and reports of the development process.
Enjoy the development :)

Thursday, December 2, 2010

RMD Ready

Recently I've been working a lot on REV-0.6 (You can checkout SVN for the latest revision). Most of that work has been on the new material system and the new models format (rmd). Now both of them work, and I can say that most of the functionality that was present in REV-0.5 works now at REV-0.6 at svn. However this version is not ready yet for a big release because I still plan to do major changes to other subsystems.

Anyway, I wanted to say that rmd models loading is up and running. This format is easier to expand and loads about 3 times faster than rms or obj so it will be the standard for Revolution Engine now on. Support for animations is planned but not working yet. You can download the new obj to rmd converter from downloads tab at

One of the add ons of this new format is the ability to load models that use more than one material. check the wiki at google code to learn more of it.

Saturday, October 23, 2010


Revolution Engine has become rather a big project. It always takes me a lot of time to prepare a new release. And what if someone suggests a small change? what if I want to add a little fix? Working only with big releases is not practical.
Those are some of the reasons why I've decided to set up a subversion repository for Revolution Engine.
I'll keep doing big releases for each complete version, and since this system will also increase the development speed, it will allow me to add more content to these releases.

Right now, Subversion holds the WIP 0.6 version. It basically implements everything that was in 0.5 version except for material system, that I'm rebuilding into something more powerful and even easier to use. Those of you who want to keep an eye on development can track the subversion log or checkout the last version (feedback is greatly wellcome)

This is the project link Revolution Engine SVN at google code


Monday, September 13, 2010

Developer console, scripting system

Wii is relatively a low power machine, and thus, one of the goals of revolution engine has always been to get the most out of those limited resources. Optimization.
That's why i didn't ever think of adding a scripting system to it. Scripts are low, and everything you can do with a script you can do it by code. But the thing is that, one other of the main goals of the engine is ease of use also. And develop a game is much easier if you have a console and a script system that allows you to modify things on the fly, fine tuning your game to the very best of it. About a month ago, however, adding a script system to Rev wasn't the best of the ideas because lighting system consumed A LOT of resources and computation time was gold-priced. But due to the recent advances in Hardware lighting, CPU is almost free all the time, and this re-opens the door for many resources-consuming subsystems like Physics, AI, and scripting.
So that's all, hardware lighting freed the CPU, so many new and interesting features can now be expected for the next version, more news on them (and probably some videos) as soon as I finish my exams :)

Thursday, September 2, 2010

More hardware, more triangles in screen

Revolution engine lighting system is something that makes me feel proud. It can light objects in a very realistic manner and is very extensible. However, it's very slow since it's all software based, almost all calculations (except for some blending between layers and a couple of things more) are done by software. This decision was made because wii hardware lighting system doesn't work right in homebrew, and if I wanted to have a realistic lighting system, I had to write it.
But, after all, not All of the hardware is working bad, so some parts of the lighting system can be ported to hardware.
And that's what I'm doing: port everything I can from software to hardware (and it's working quite well). Remember that 8% speed boost from 0.5 to 0.5.1? well, now I expect about a 30-40% speed boost :)

Monday, August 30, 2010

Looks familiar?

Maybe some of you recognize what this screenshot means. Personally I wouldn't have recognized it a couple of days ago, but I started to work on this yesterday, and now I'm proud to show the first screenshot of this in-dev new feature of the engine. I'm pretty sure it will be a big step in the right direction. Post a comment if you know what this is :)

(More screens soon)

Quick note about image formats

Rev-0.5.2 will add support for more texture formats by the use of the freeImage lib

Sunday, August 29, 2010

REV-0.5.1 Released

Here you can download the latest version of Revolution engine.
This is a minor update featuring some optimizations and bug fixes along with better memory management, better use of TEV and some other things like a screenshot function.
You can see the whole changelog at wiibrew