Article: Rolling World Tutorial
by Christian Schlager
When you look around the XBox Indie Games Channel, there aren't a lot of 3D games around. Most XNA games only feature 2D graphics. I hope to contribute with this tutorial to making 3D graphics a bit less intimidating. And maybe the little prototype we will create throughout the next pages will be the starting point of a great 3D indie game by one of you
We will make a prototype that features the kind of rolling world effect that you can see in games such as Animal Crossing or DeathSpank. We will also create the textures and 3D models that go along with the rolling effect and recreate the combination of 2D art with a 3D world you can see in the game DeathSpank.
Difficulty
This tutorial is intended for Beginner/Intermediate developers.
If you played around with XNA and /or worked on 2D games before this tutorial should be no problem for you.
Content
The first section of this tutorial covers the creation of the assets for our game.
We will draw textures for the world, for the trees and a very simple one for the hero.
We will also create a simple DirectX effect file which we will use to render the models we create in SoftImage Mod Tool.
Once we have all the assets we will set up our game project in Visual Studio, load and render game objects and then move the hero of our game around.
In the last section we will add the rolling world effect. We will develop a concept of the effect with sketches and pseudo-code and then implement the effect.
Finally, there is some bonus content you might try once you are done with the tutorial.
This tutorials comes with pre-made assets in case you are only interested in the programming side of the tutorial. You can also skip the foreplay completely and jump to the rolling world effect part using the project in the folder WorldGame.
You can also explore for yourself with the complete rolling world game in the folder RollingWorldGame.
Software
- Visual C# 2008 Express
- The Visual Studio 2008 Express is a free set of tools for developing applications for Windows.
Download Visual C\# 2008 Express - XNA Game Studio 3.1
- This software package contains the XNA framework which includes an extensive set of class libraries specific to game development. Once you installed the Game Studio you can use it in Visual Studio:
Microsoft XNA Game Studio 3.1 - Paint.NET
- Paint.NET is free image and photo editing software for Windows. We will use it to create textures for our game:
Download Paint.NET - SoftImage Mod Tool
- We will be using Autodesk SoftImage Mod Tool to create the 3D models. The version we will use is for non-commercial use only which is fine for this tutorial:
Download Autodesk Softimage Mod Tool
Feedback
My name is Christian Schlager and I wrote this tutorial. If you like it, have constructive feedback or found a mistake in the tutorial please leave a comment here, or on my page: http://googoobachoo.blogspot.com
Downloads
This tutorial is accompanied by the following downloads:
WorldGame.zip
RollingWorldGame.zip
Assets.zip
September 9th, 2010 - 06:03
Sir, I have spotted a winning article. End of transmission.
September 9th, 2010 - 14:24
Nooooo, there goes my chance at first place! Excellent article!
September 15th, 2010 - 21:44
How does this type of 3D map compare to traditional tile map in term of path finding for units on the map? I’m making a 2D RTS game using XNA and interested in using a 3D map instead. However, I’m afraid I may have difficulty implementing path finding for my units.
October 20th, 2010 - 15:02
Nice tutorial, thanks!!
The XSI parts took me several hours.. for me (new to XSI but not 3D programs in general) the descriptions were simply too short and inaccurate. How can I rotate the view? (Press “s” and use mouse.) And several other questions popped up.. in the end I googled and experimented a lot (thus several hours) but finally got it to work.
Also for the XSI modelling: after choosing center and then translating the center point (preparation for moving arms/legs) I later had to move a sub-part of said object as well (I think something like texture..) to -3 in order to make everything fit again.
In the end (atmosphere) there is
Out.Distance = dist;
missing from the VS shader function.
But then again, having to find out all that I learned a lot more than if everything would have worked straight away.
March 15th, 2011 - 17:48
Is there a way to port this article to opengl?