Sunday, May 3, 2009

Storm

Well I think I've gotten enough rest now (lots of video games!).

A week before the deadline on Thursday, I realized just how much work I still had to do, so I pretty much shut down all other aspects of my life.  I did most of the work in five 12-hour sttings.  I lost a lot of working time to inconveniences like schoolwork.

I was hoping to create a mostly complete version of the game, one that just lacked some levels, but I ended up just making a prototype.  I have the key features implemented: working gameplay elements, a unique aesthetic, and an extensible framework.  I'm going to seperate this post into these three items (game design, aesthetics, and technical details).

Working Gameplay Elements
The three elements I wanted - wind, water, and lightning - turned out okay.  I spent the entire first half of development leisurely getting the wind code to work correctly.  Lightning was easy and only took half a day (I used a fun algorithm that I found here).  I implemented the rain system in the last 3 days, hurriedly tweaking aspects of it to work correctly with the physics engine. 

Wind is the most visually striking, and probably the most unique gameplay element of Storm.  It currently cannot interact with moving objects, but that's something I hope to implement.

Lightning is, internally, the most robust of the elements.  Its programming is very straightfoward, and is easy on the CPU.  The other elements deal with complex fluid calculations, multi-threading, giant vector arrays, and multiple particles.  Lightning is just draw-a-fancy-line-and-add-some-forces.  

I'm not satisfied with the water currently.  It looks really ugly;  I didn't have time to implement metaball shaders.  It also seems to obey physics only at its own convenience.

I wanted the game to have a stronger puzzle feel; right now it seems more like a toy.  I was planning on adding more physical objects, like boxes and barriers, that would interact with the elements.  They could float on the water, be destroyed by lightning, and get knocked over by wind.

I hope to add more elements in a full version; some ideas include snow (a clumpy version of water), and temperature (cold: freeze water into a slick, solid surface; hot: melt ice and snow into water).  

A Unique Aesthetic
I started working on the art on the second to last day, and the sound in the last 4 hours.  I started with the background, which is used in all the current levels.  Parallax scrolling was an easy effect to add that added a lot of depth to the visuals.  Unforunately, most of the levels are too narrow to see it in it's full effect.

 The visual look was not what I had planned, but I liked how it turned out.  Originally, I was hoping for something much darker and more storm-like.  By the time I was working on it, I realized that such a style would take quite a bit of experimentation, which I did not have time for.  I went for a look that was relatively quick to produce but also still retained a lot of character, with its painterly, sketchy feel.  Even then, I didn't have time to draw each level.  The majority of the levels are just solid colored blocks.  I drew them using a Wacom Graphire4 tablet and Photoshop.

I wanted to have environmental effects and details like flashing clouds from distant lightning, and a very light rain effect, but there was no time for that.

I originally intended for an original music peice: something ambient, with rain and wind effects filling up the majority of the soundscape.  Of course, I had no such time.  I ended up using an old song I made for my large-rpg-project-on-hiatus.  It was way more melancholy than I intended, but I had no better songs of my own to choose from.  I think it ended up matching pretty well and firmly set the style.  In general, I think the game took on it's own character and tone, created by the fast development time.

The sound effects were all edits of samples taken from The Freesound Project.  The samples there are so nice, and yet so free.  Implementing them was generally a straightforward process, which was great since I only had a few hours left till the game deadline when I started the sound effect process.  I am happy with how it turned out, although the rain sound doesn't quite match up with the rain duration yet.

An Extensible Framework
From the start, I tried to keep my programming clean and tried to use good software design principles.  This generally went well until the last week, where I haphazardly added new functionality, messily swapped around sections of code, and sprinkled around hacky solutions.  The first thing I'm going to do is to refactor all of the code and bring it back to it's clean original state.

A thing I learned about debugging: sometimes you can find a good fix just by stopping, taking a breath, and looking at the big picture and seeing how the relevant code works, instead of focusing intensely on that exact broken section.

The Future
I'm not sure if I should keep fixing up bugs and add more content, or jsut wait until the contest is over.  I can't submit any new changes to the site, but I'm sure I can somehow tell them that the newest version is available here.  Anyways, I have a lot of plans for improvement.  Here is a list of the main current problems:
- The waterfall level doesn't work right; on my computer it seems okay, but everyone else has said they can't get the wind to blow the rain into the hole.
- The scrollwheel for changing powers is unintuitive/not clearly labeled.  I should make clicking work.
- Changing/restarting levels does not feel very robust.

Here's a list of features I plan to add in the future, if I am selected:
- More elemental powers (snow, cold, heat, etc)
- Way more levels (with the good art, not the placeholder art of course)
- More varied art
- A nicer user interface
- A better menu system
- An awesome title screen
- A better tutorial/text system
- More physics items
- More puzzle variety
- A full-featured level editor/creator
- Visual effects, like background lightning and rain

I'm kind of scared.  I really want to win, but I know my game is in a very rough state.  I'm pretty sure there will be way more polished entries.  I'm hoping that people can see the potential of the game and base their opinions off of that.

3 comments:

RedReaper132 said...

Very nice post. I really like it how you whrote it. And thanks for some useful info :P. It is true that the waterfall level is impossible. Wish you luck for the contest.

dbomb said...

no updates?

Jayenkai said...

Yeah, come on.. Next game!!! Go, go, go!!!

Post a Comment