Archive for September, 2011


I thought it would be a good idea to post my thoughts on the first year of working on Zita Asteria. Next month (Oct 2011) will be a year since the original team came together to discuss and eventually develop the arcade shooter we now call Zita Asteria. I’ll try to continue posting episodes into the future regarding my experience. This first episode though I will break up into parts to cover the first year.

Just as a bit of background… I was originally looking for computer graphics and game programming courses in early 2010. I eventually found AD Courses which at the time did an introductory and intermediate course in game programming in XNA. It was here that I met my future team mates for Zita Asteria.

A number of us were very new to the area of game/graphics development while some of us at least had some experience in business systems development. Although I myself had tinkered with Ogre3D and OpenGL at least a little, my knowledge of the area was weak at best. With this in mind we started discussing the possibility of trying to develop a fully playable game and release it to the world. With all of us being gamers, there was a great number of ideas in terms of game concepts. So we decided to give it a try. Let’s face it, creating a new world is exciting. So in late October we started brainstorming ideas on a game we would all enjoy making, and eventually playing. With a total of seven people on the team all with varying skills, we had fair resources for a hobbyist indie group. With that said we were mostly programmers, not artists (I can hear your eyes rolling). We had one artist in the group as well as one of the coders with some experience working with sprites and basic 3D models. But that was pretty much it. Some of the challenges we encountered around content creation I will discuss a little later.

After our original meetings around game ideas, we had decided to go with an arcade shooter. It was only a few weeks later that we decided to go with a top down perspective, despite having a basic framework for a side-scroller already. The other major design decision that was made early on was to make the game 2D to try keep content creation as well as the game framework as simple as possible.

Our next step was to try set up a process to use our resources productively without stepping on each other’s toes. Bear in mind that we didn’t technically have a project manager although some of our industrial experience did include it. This brought us to our next major decision… roles for each of us to give us a field of responsibility. To name a few of the roles, Level Lord, Graphics Guru, Effects Ninja, Marketing Maiden, Traffic Controller. As cheesy as they may sound, they did give us some boundaries to work towards.

Although as we later learned, specializing roles in a team this small is not completely practical. It’s amazing how many different facets there are to making a game from start to finish, which requires more of a Jack-Of-All-Trade skill set to get through all the items on a To-Do list. With that said, having these boundaries did give us a primary area of responsibility while other miscellaneous areas could be secondary.

Up to this point we had laid some of the ground work for our project but we still needed to make some crucial decisions, such as what the game idea was going to be on. But this is where I’m going to stop my story for now. That is year 1 part 1 of my story Zita Asteria thus far.

Stay tuned for the next part…

Just a quick post today regarding something I’ve been tinkering with. My experience with Zita Asteria included doing a few of its particle systems and they can be a lot of fun to play with. I might do a more general tutorial on creating particle systems some day when they come more naturally to me. For now I suggest a more informal approach, by simply visualizing the system before coding.

As usual, a list of ingredients :

–          Visual Studio C# Express 2010

–          XNA 4.0

–          DPSF ( Dynamic Particle System Framework )

The DPSF API is pretty well black boxed but I want to still give a run down of the basic lines of code you’ll need to get particle systems running.

The following should be enough to get started :

1)   An attribute, the particle system manager of type ParticleSystemManager

2)  Adding the particle systems needed using particleSystemManager.AddParticleSystem(particleSystem);

3)  An update call – particleSystemManager.UpdateAllParticleSystems(elapsedTime)

4)  Config calls

a.  particleSystemManager.SetCameraPositionForAllParticleSystems(cameraLocation)

b.  particleSystemManager.SetWorldViewProjectionMatricesForAllParticleSystems(msWorldMatrix, msViewMatrix, msProjectionMatrix);

5)  A draw call – particleSystemManager.DrawAllParticleSystems()

 

Any other code needed will be specific to the particle system you might be using.

The particle system I put together to demo this is extremely simplistic but it does demo the basics of one of DPSF’s classes. It also incorporates basic rotation using some of the DPSF utility methods although I didn’t use the traditional DPSF delegates for simplicity’s sake.

Each particle essentially has two aspects to its behaviour :

1)      Rotational velocity relative to the emitter’s location ( not the center of the particle )

2)      Vertical linear velocity ( essentially increasing  y-component )

That’s this system in a nutshell. Here is a screenshot of it running :

 

A thanks goes to the DPSF project team for the textures supplied in the source!

I hope this helps someone. Well implemented particle systems add quality to any visuals.

If you want the project source : Whirlwind Particle System Demo

Ciao All

Hi All

Just an update regarding the odds and ends that I have been working on:

– Numerical Methods 2 : Solving systems of equations

This is a nice simple implementation of gaussian methods for solving matrices. I still need to test this algorithm and its implementation thoroughly though.

– Particle Systems : A Simple Demo

A basic standalone particle system done in XNA using DPSF as a framework with a focus on tweaking the particle system itself. This is still a work in progress.

– Projectile Motion Demo

A simplistic 2D demo that I would like to use as a test bed for testing and experimenting with trajectories.

I have also started a basic game in DirectX with a very simple concept in mind. This is largely still on the drawing board though and is a means for me to dig into DX more thoroughly.

As I am working on these items I am also finishing up Zita Asteria and as such these projects have had to take a lower priority. But we are probably in the last quarter of our release schedule(hopefully). We are also however finding that the last 20% of a project really is 80% of the work.

I just felt a quick update was in order. I’ll do my best to get a project or two out before my exams start in November.

Ciao 😀