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

Saturday, August 28, 2010

In-dev screens of Model Viewer

These are the first screenshots of model viewer.
It's still in development stage, so there are many things missing, but you can see how easy you can view your models and edit your materials.
Hope you like them :)

PT:These screenshots were taken with the new screenShot functionality in REV-0.5.1

Wednesday, August 25, 2010

Rev 0.5.1 speed boost

Due to lighting algorith enhancements, Rev 0.5.1 will be about 8% faster rendering polygons. Currently it lights more than 400.000 faces per second (about 7000 faces per frame)

Some of the changes in this minor version will be:
-Lighting speed boost
-Better memory management
-Advanced screenshot function
-Added offClick onOver and offOver functions to buttons
-Added getType, getParent, getNext and getChild methods to N2D and NODE classes
-WINDOWs for 2d system
-Custom expansion data for nodes and 3d nodes

Comming soon.

Monday, August 16, 2010

Demos are Up

Demos are already uploaded to the wesite.
You can get them here


Rev 0.5 Released!!

The final version of Revolution Engine 0.5 is finished, uploaded and ready to be downloaded.
I really think you all will enjoy it. Demos will be released in the next 24 hours.
As alwais, you can download it at Revolution Engine and see specifications at

Sunday, August 15, 2010

Wednesday, August 11, 2010

Rev 0.5 will be released by the end of August

Yes, so many times I've talked about this version, but it's now ready, finished, tested, etc...No alphas, no betas, no more half-finished versions, Just the final Revolution Engine 0.5 version. Feature list won't be revealed until the release day, but I will post another list right now: Examples list.
Yes, for the first time, Revolution engine will come with a set of examples showing how to do the basics. Thought there might be last minute changes, this is the list of examples incuded:
//For 3D
-Objects & Model:, display 3D stuff on the screen
-Materials & lights: increasing realism
-Nodes: Attach, deAttach, move, rotate, setPos...all that useful stuff
-Cameras & Viewports: Using cameras, split-screen, etc...
//For 2D
-Panels & Nodes: the basics
-Texts: no description needed
-Buttons & pointers: Actively using wiimote pointers in the engine

I'm sorry I can't post any captures/videos now, but soon you will be able to run those examples on your own wii, even more, soon you will be using it all to create your own games for wii

Friday, May 14, 2010


Last days I've been thinking a lot about this project. The fact that my Wii is broken prevents me to develop actively for a while, but I think there is no need to stop the project itself just because I have to pause. This is why I have decided to release the code "As is" right now, and as it was befaore last add ons. Since I anounced the core was finished and running I've made some improvements and bug-fixing, some deep changes also and I've also broken something in the render system (I could repair this if I could test it).
What do I mean? easy, I'll release and publish the source code of the engine, and some of the ideas that guided me in the development, in the hope that the Scene comunity can help the project and continue it with me. This is a call for developpers interested in this project to join and maybe make a team to support this powerful engine and finish it.
First of all, let me a few days to organice everything and generate some basic directrices, roadmaps or something. Sugestions and advices will be wellcome.
Then, when I think everything is ready, the code will be published, so everyone can take a look at it.
Moreover, from right now on, any developer interested in the project can send me an email and I'll be pleased to send him a copy of the source code or answer any question he has.
My e-mail is

Thank you everyone who follows this project.


Sunday, May 9, 2010

My Wii is Bronken

Yes, my wii is bronken, bluetooth doesn't seem to work. So I can't do any test and this prevents me to work on the engine, until I can repair this. Sorry, but the project is paused at the moment.

Edit: Donations for a new wii would be appreciated.

Monday, March 8, 2010

Core Engine: finished and running

Yes, it is. A couple of days ago I got to finish the 0.5 version (alpha 1) that I will publish soon. I can't publish it yet because the extra tools and the documentation aren't ready, but the hardest, largest part is already finished. Soon I will upload some screens from the model viewer.


Wednesday, February 24, 2010


20 days after, what's left?
Well, I'm having some problems with 2D system. While in earlier versions the 2D system was quite simple, this time it's much more complex. Changes involve a new node-based structure, dinamic layer updates, multiple coordinates systems, memory "pools" (they're actually more like queues), etc...and such a complex system requieres a lot of work and debugging, so it's dalaying me.
And there are good news also: 2D is the biggest problem but the ONLY problem.
Everything else is ready inside the engine.
I still have to finish the extra tools like model viewer and 3ds max plugin, but the engine itself is almost finished!
So keep an eye on this blog!

Thursday, February 4, 2010

Status Report

Well, so... What's the current state of the engine? is it almost fnished? is it starting? can it render anything? That's why I'm writing today, to say what the engine can do right now, and what remains to be made for the first alfa of v5.0 to be released.

Let's start with what it does right now:
-Rendering System:
Multiple viewports
Multiple cameras
Basic Skybox rendering
Static model loading (RMD format)
-Lighting system
Software lighting
Diffuse Color/Map
Specular Color/Map
Based on Phong lighting ecuation

Now, What can we expect from 0.5 alfa one?
Ok, I will add basic 2D support, correct transparency, fix some bugs and...that's all.
So that means the first alfa release will be very soon. that all there is? No, but you guys have alredy waited for long for this version, so I will release it with basic features and will update it quite often to add new features (i.e. Shadows, animated models, terrains, more material types, more skyboxes, etc...)

Moreover, the engine won't come alone, three useful tools will be in the packet: Model Viewer (to visualice your RMD models on wii), obj2Rmd converter and a 3ds max script to export your own models natively.

And even more, there will be some basic examples on comon tasks like loading models, working with 2D, cameras, lights, etc...

comming soon

Friday, January 22, 2010

Hi Again

This post is just to say sorry for the absence of updates these past months. I've been a little away from this for some time, but the engine is not forgotten. Now I'm back from holidays and ready to keep working in Rev-0.5