5.14.2013

Initiate backburner

Nebulous is officially on the back burner.

It has been back burning for a while but it is a hard thing to come to terms with. Time for a brief history lesson! Nebulous started as a blank slate. It is Malchemist's first project and we built the engine from the ground up, starting with math libraries and feeble OpenGL classes. Over time our engine matured and actually became fun to play with.

Now, the initial idea for Nebulous was a procedurally generated 3D tower climb. Early on after some pondering and technical consideration, we decided against procedural generation in favor of lovingly hand-crafted levels. Rather than make an in-game 3D level editor we opted to leverage an already existing moddable solution — Blender. This may have been our downfall.

Having a powerful 3D tool like Blender at our disposal colored the expectation of our work. We knew what Blender was capable of and tended to aim for level design above our modeling skill. We had to teach ourselves Blender and the amateur quality shows in all of the levels. I'm not hating on our design — the levels we actually finished are fun — but I simply state the obvious that we are not very good at 3D modeling.

This constant discrepancy between expectation and result wore on us until level design advanced at a crawl. The last six months or so of development went by at a painful pace. We could have contracted outside help, but the level creation process is complex and undocumented. It would have taken considerable effort to bring someone up to speed with the eccentricities of the engine. Eventually we decided to take a break from the project.

Ultimately I think having an in-game level editor may have forced our design to be simpler and not have slowed us as much. Taking inspiration from games such as Little Big Planet or Sound Shapes, I think building levels with an in-game tool can clarify design and add value for the player.

What Went Right
  • The engine. We learned an incredible amount about how a game engine should operate by starting from scratch. I'm not sure we will use it moving forward but it will allow us to examine other engines with a more critical eye.
  • Level design. Designing our own levels has had a lasting impact on how we view level design. It is impossible for me to play a game without analyzing the level design, particularly sections aimed and teaching the player. This is something that will stick with us.
  • Camaraderie. As a duo we lasted longer than we could have individually. We were able to keep the torch burning during dips in motivation.
  • Management tools. We used Mercurial for source control and Redmine for issue tracking. Despite a small learning curve, both tools served us extremely well and we were able to collaborate effectively as a team.
  • Style. Early on we decided to go with procedurally generated textures. This meant that rather than draw each material (which we suck at) we define each material as beautiful maths (which we are pretty good at). Combined with a pseudo-cell-shading outline technique we achieved a look that is unique and not too revolting. We decided against doing some more fancy techniques like bump mapping in order to further separate the style from modern render pipelines.
  • The IGF. While the IGF gave us zero usable feedback, it essentially was a $100 Hard Deadline for us. We went into overdrive the last few weeks before the submission date and polished Nebulous more than we would have otherwise.
  • Bullet physics. We tweaked the physics heavily to implement the grappling hook and spikes. Bullet ended up accommodating us well. This tech alone was responsible for much of the feel of the game. It's documentation isn't the best but the code is readable and understandable.

What Went Wrong
  • The engine. While crafting our own engine was educational, I'm not sure we will reuse it. Porting to Mac was extremely hard because we did not have hardware to test it on. Also, shader and other OpenGL related errors plagued us throughout the process stemming from weaker cards and hardware we don't own.
  • Level design. We are not 3D modelers and this slowed us considerably. An in-game editor likely would have helped as it would have simplified the building blocks we construct the world from. We could have focused more on gameplay elements rather than modeling proficiency.
  • Secrecy. We held ourselves to high standards and only showed work to the public on a few occasions. We got motivational boosts when people played the game and the response was generally positive, we just didn't do it often. Some social pressure could have helped.
  • Design creep. We call it "wouldn't it be cool if" syndrome. While I don't think there is a ton of cruft in Nebulous, we could have prioritized features better to get a fun, playable game faster. It was easy to slip into doing technically difficult things like high scores board, engine optimizations, etc. These are good to have but don't change the fundamental enjoyment of the game.
  • Lack of deadlines. The IGF rush made us realize how important it is to have some kind of deadline to work toward. Through most of the project we were of the "it'll take as long as it takes" mentality with getting stuff perfect. The problem with this is you get diminishing returns perfecting certain features. I have no doubt we wasted a lot of time on things the player will never notice.
  • Inadequate funding. Development time exceeded the initial estimate (of course) and eventually our financial situation was putting strain on those around us. This is not an easy mental state to be in and got worse the longer it lasted.
  • Sparse playtesting. We had a decent list of people interested in the game but didn't manage testing well. Getting feedback during development might help us realize which problems are most evident to players so we can better focus our time.

In the end we are happy with how the engine feels but don't have levels to back it up. I believe Nebulous will see the light of day in one form or another. The control of the player feels too good to pass up. I hate structuring this post as a post-mortem because I really don't think Nebulous is dead. Still, it is not being actively developed and we need to give closure to the project.

7.30.2012

clouds


I've been messing around with adding clouds to the Air level. Nearly have them how I want them... now on to more brainstorming!

4.22.2012

mic check

I've been working on a few administration tasks (warning: technical post :P)

We rent out a virtualized box from the kind people over at prgmr. We abused it for all of Malchemist's needs -- revision control, forums, high scores, blog, etc. It hit me that it would really, really suck for that box to go down and take out all those services, or even worse for the box to be compromised through one of those many attack vectors.

I moved our main website (malchemistgames.com) to Blogger, which was surprisingly painless. I even got it looking 98% the same as before! I know we lose a bit by giving control to Google, but we should be able to scale to traffic better and I'm not as worried about our old blog software getting hacked.

I moved nebulous-game.com to Google AppEngine since it is static HTML with a few forms. Again, this was mostly to help us with scale as well as reduce possible attacks on our prgmr box.

Our forum software is currently running on Amazon's cloud service (EC2) which gives you an easily deployable virtualized box.

It's too early to give a solid opinion on whether the change was worth it, but I can definitely sleep easier at night know our services are off of our single box. Both AppEngine and Amazon aren't costing us a dime right now with so little traffic. A huge spike in traffic will definitely cost us, but I think it will be money well spent for people to see our game rather than a dead page.

If anyone would like more info about the conversion process, don't hesitate to give me a shout :)

3.22.2012

Malchemist has a lab!

We managed to secure some office space! It has been dubbed the "lab". The best part -- it's above an arcade! Game Ever has been gracious enough to let us slum up their second story.

Our first concern was getting a gigantic whiteboard (of course) so that we can better sketch out our level designs. It isn't easy transporting two 4'x8' sheets of whiteboard when you don't know anyone with a truck...

Didn't quite fit...

We managed to transport it in one piece and get it mounted! It is a glorious thing to behold.

buub0nik modeling for us

It took us a few weeks to set up and move equipment over, but we are finally comfortable with the place. It has helped a ton to be able to focus our efforts without all the distractions that come from working at home.



Hopefully this will give us the momentum we need to push through the final months of Nebulous!

12.06.2011

Post-IGF cooldown


We're alive, I promise! We submitted a solid build of the game to the Indie Games Festival. The first round of judging ended yesterday, so we'll find out in the next month or so if we were nominated for anything. Regardless, it was an excellent deadline for us, and we hit a lot of polish work that needed to be done.

The IGF crunch was pretty stressful, and we're just now getting back into the swing of things. Focus now is shifting almost entirely to level design. The engine is pretty much complete -- we just need fantastic new levels for you all to play!

Part of getting the game ready for IGF was creating a decent trailer. I'm please with the finished product :) Thanks to phYsIs for making us some phat beats! Enjoy!