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.
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.
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).
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 …)
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.
- 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
You can get more information and videos about our game, Sleeping Soul, at this address:
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 😉