To infinity and beyond

January 16, 2012

In my first post there’s an Image of Sora‘s renderer, but what is it ? A good thing would be to replace it in the correct context, so here I am …

I’m an Software Engineering student at a School in France, currently making a Research Project in Japan (oh btw, Japan is Awesome !).

Back in 2010 we had to develop a project to validate our year and we and the choice between doing some boring, standardized and non-evolving project and doing a project of our own. So with a team of 3 people and a half (…) we decided to join ImagineCup, a World Student Contest hosted by Microsoft, to submit a game project.

There are not many rules to the project we had to do, but basically it has to be done in XNA/C# and target Windows, Windows Phone, or Xbox 360. We decided to go for Xbox 360 and that was my first tryouts with XNA. I had done some game project in my past using Ogre or SDL, but doing something for Xbox seemed to be a very fun idea. And so, the development of my engine that I named “Sora” began, and it was soon able to run on Windows (for debugging purpose) and Xbox 360.

My first rendering using XNA

Our first idea of game involved a “watery” world, so I focused on making a “great” looking water that supported dynamic waves, reflection and refraction. It was very, very, very slow at the time but the concept was there.

Reflecting water, sun and some meshes

The next step was to put some physics in here to be able to interact with the world and … well, anyway a game without physics is not very common … So, we had to had a physics engine and for that I looked into JigLibX. It’s not the fastest nor the most accurate physics engine around (have you seen Havok ?) but for XNA the good point is that it runs smoothly on Windows and almost smoothly on the Xbox360 (if you manage to have less than 10 physical collisions at any moment).

Everything was boxes, so the angle are sort of wrong ...

Then, we wanted to have a cartoon style so that was the time when I searched how to make post effects using XNA and HLSL, and how to keep everything fast enough to be playable. (A game running at 10 fps is not really the best idea for user interactivity …)

Cellshading in XNA

Finally, with the addition of Shadow Mapping (the simplest way, using a single shadow map produced by the one and only directional light of the scene), that was the complete feature set of Sora Engine v1.0.

We had:

  • Water planes (without reflection and refraction at the end, because it was too performance expensive)
  • Dynamic shadow using a single shadow map
  • Cell shading
  • Physics using JigLibX
  • Support for skeleton animation, but that was never used
  • A scene editor

Sora Engine v1 - InGame

Sora Engine v1 - Editor

You can get more information and videos about our game, Sleeping Soul, at this address:

Luskanya Team Blog

With Sleeping Soul, we didn’t had the success we hoped for. I think that was because we didn’t take enough considerations for our feedbacks but nonetheless, that was an incredible experience to live. Thank you Microsoft for that. I know that this sounds fan-boyish, but it was a great adventure.

But this is not the end. I decided to continue developing my engine and to make another game design entry for ImagineCup 2012. I will talk about it in the next post 😉

Sora Engine v 1.0 Final rendering


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: