Contents
Postmortem: RiverMan Media's MadStone
 
 
Printer-Friendly VersionPrinter-Friendly Version
 
Latest News
spacer View All spacer
 
November 22, 2009
 
Video Game Watchdog National Institute On Media And The Family Shutting Down [11]
 
Modern Warfare 2 Infinity Ward's 'Most Successful PC Version' Yet [12]
 
New Tech, Design Details Of Project Natal To Emerge At Gamefest In February
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
November 22, 2009
 
Sucker Punch Productions
Character Artist
 
Sucker Punch Productions
3D Environment Artist
 
Sucker Punch Productions
Network Programmer
 
Sucker Punch Productions
Texture Artist
 
Sony Online Entertainment
Brand Manager
 
Monolith Productions
Sr. Software Engineer, Engine - Monolith Productions - #113767
 
Crystal Dynamics
Sr. Level Designer
 
Gargantuan Studios
Lead World Designer
spacer
Latest Features
spacer View All spacer
 
November 22, 2009
 
arrow Upping The Craft: Susan O'Connor On Games Writing [6]
 
arrow Small Developers: Minimizing Risks in Large Productions - Part II [6]
 
arrow iPhone Piracy: The Inside Story [48]
 
arrow And Yet It Grows: Analyzing the Size and Growth of the European Game Market [5]
 
arrow NPD: Behind the Numbers, October 2009 [13]
 
arrow Reflecting On Uncharted 2: How They Did It [5]
 
arrow Sponsored Feature: Rasterization on Larrabee -- Adaptive Rasterization Helps Boost Efficiency
 
arrow Postmortem: Wadjet Eye's The Blackwell Convergence [2]
spacer
Latest Blogs
spacer View All     Post     RSS spacer
 
November 22, 2009
 
Accepting the Inherent Value of Games
 
Planckogenesis, Part II: Song Structure & Gravy Train [1]
 
Designing Games Is About Matching Personalities [1]
spacer
About
spacer News Director:
Leigh Alexander
Features Director:
Christian Nutt
Editor At Large:
Chris Remo
Advertising:
John 'Malik' Watson
Recruitment/Education:
Gina Gross
 
Features
  Postmortem: RiverMan Media's MadStone
by Jacob Stevens
19 comments
Share RSS
 
 
January 14, 2009 Article Start Previous Page 2 of 5 Next
 

2. Sticking with 2D

I'm a firm believer in the following principle: low budget 2D looks better than low budget 3D. Way better.

Advertisement

For me, consistently choosing 2D projects is a no-brainer. I have my personal biases (such as preferring the look of Miyazaki movies to Pixar films) but 2D makes sense for several very practical reasons:

  • 2D projects generally have an extremely simple art tool chain. In most cases, Photoshop is the tool chain.
  • Very little graphics support code is required. There's no bones or skinning or NURBS. Just pixels.
  • Since modern consoles are able to render millions of textured triangles per second, we never had to worry about performance, even with lots of objects and particles.
  • Collision and physics are simplified. Bounding boxes are often good enough.
  • Game mechanics tend to be easier to refine.
  • Although we didn't use any extra artists for MadStone, it's much easier to train artistic talent for 2D production than for 3D. There's much less technical overhead and new team members can get started very quickly.

One other important point is that 2D games are much rarer these days than 3D games. Lots of gamers crave old-school 2D, but aside from DS, these games get relatively little attention from large developers. Interesting 2D games automatically get noticed by gamers and the press.


Working on MadStone in-game art in Photoshop

All told, I don't think a 3D title would have been a good choice for us. There are too many complications that would have distracted our attention away from the game itself. Most gamers will probably tell you they prefer 3D games, but I believe there will always be a place for sprites and tiles!

The Lesson: Rather than being distracted by the bleeding edge of technology, it's better to use techniques your team is comfortable with so you can focus on the game itself.

3. Adopting Slag: Elegance and Dependability

I'm going to tell you a secret that I learned while at IBM:

Almost all enterprise-level business and medical software is now written in Java or another high-level managed language.

Complain all you want about performance and missing pointers, but there's a good reason big business prefers Java: programmers write fewer bugs, and bugs are expensive.

There's no reason for games to be an exception to this rule. Worrying about low-level memory management distracts programmers from focusing directly on the solution and writing clean code.

That's why, when my brother Paul Stevens and I started RiverMan Media, the first thing we did was ensure that we had a development platform that abstracted our game code away from low-level bits and bytes.

Luckily for us, we have a very good friend who's not the least bit afraid of asterisks and ampersands. Abe Pralle, owner of Plasmaworks and a professor at Northern Arizona University, developed exactly the solution we needed.

Over three years, our ideal game creation environment was crafted in two phases:

For our first two games, Cash Cow and Primate Panic, Abe created a library called Plasmacore. Using the Java Native Interface (JNI) Abe created an API that allowed Java game code to call fast DirectX rendering code written in C++. All the logic for the game itself was written in a safe, memory-managed environment. This setup facilitated rapid development and elegant code.

The Java / DirectX solution worked great for our PC games. It worked so well, in fact, that I was reluctant to leave it behind. However, there were a few obstacles that prevented us from using this framework on the Wii:

  • The Java runtime ranges from about 7 to 30 MB, a number that increases with each version of Java. WiiWare games are limited to 16 or 40 MB, depending on the business model the developer chooses. We'd have to spend too much of our download budget squeezing in the Java Virtual Machine.
  • As far as I know, the Java runtime isn't available for Wii. We'd have to port it or write one from scratch.
  • Java is very fast these days, but JNI doesn't keep up. We wanted to avoid the overhead of function calls crossing the Java / C++ barrier.

This is where the second part of Abe Pralle's plan was set in motion: we adopted his ergonomic programming language, Slag. In the words of Abe's web site:

Slag is an elegant, powerful, and efficient statically-typed, object-oriented language designed to be the high-level language of choice for game engines and frameworks. Light and portable, its virtual machine can be easily integrated with any C++ program. Slag's semantics (nature and purpose of operations) are similar to those of Java and C# while its clear and concise syntax resembles a blend of Java and BASIC.


A Slag code snippet from MadStone

As I mentioned, I was reluctant to switch to Slag at first. Java has an extremely robust library of utilities, a huge network of users, several great IDE's, and is very stable. Slag, before we adopted it, didn't have any of these things. However, as we explored using it, the benefits became overwhelming:

  • Slag's runtime is just a few hundred kilobytes and is easy to port.
  • The language was designed and implemented by a game developer for game developers
  • Slag code can be cross-compiled to C++, significantly improving performance.

Because of these clear advantages, we committed to developing in Slag. We wrote foundation libraries, an Eclipse plug-in, and several prototypes to make sure all the features we needed were covered.

Spending the extra effort to get an elegant and rock-solid programming framework was worth the effort. To this day, our games still have no known bugs, despite us having no dedicated test team! That's partly because Paul and Abe are awesome programmers, and partly because we set up a system that facilitated clean, stable, code.

The Lesson: The programming language is your coders' medium of expression. Choose a language and framework that allows your programming team to focus on the game, not the computer.

 
Article Start Previous Page 2 of 5 Next
 
Comments

josh roulston
profile image
I'd just like to mention that you could have bones, skinning and NURBS in 2D. I'm not saying that you should, just that you could :)

Calle Kyhlberg
profile image
Having recently launched our first game, I really appreciated the article. Will you continue to pursue wiiware?

Jacob Stevens
profile image
@Calle
Absolutely, we plan to continue pursuing WiiWare! I still think Nintendo's business model is one of the best there is for small Indy's.

We'll be announcing our next game soon.

@Josh
Keep an eye on our next project... there's some 2D technology in there that might be interesting to you. It's not bones or skinning *exactly* but it will provide many of the same benefits!

Jacob Stevens
www.rivermanmedia.com

Russell Carroll
profile image
Fantastic read. I appreciated the time you took to write this and the self-critical analysis.
Madstone was buried in a sea of puzzle games, and now I feel kind of guilty for not giving it more personal attention! However, I did really like the visual style and am very intrigued at what you will do next.

Olli-Matti Rautiainen
profile image
Most inspirational postmortem I've read in a long time. Makes me work all the harder today. Congratulations on shipping MadStone and best of luck with your next game project!

Sean Parton
profile image
As a new indie dev myself, and also a long time Nintendo fan, this was both entertaining and insightful to read. Some of the comments (read Slashdot when I should be working?..) certainly hit home.

I appreciate you doing this postmortem for the public. In commemoration, I hope to go home and download your game in the near future and give it a shot (I do love my puzzle games).

Good luck for the future, RiverMan Media.

Carlos Obregon
profile image
A great article indeed.

I think it is really important to have reviewers have an early look on our projects to pinpoint those things that sometimes are not so obvious to us.

I also think that it is really important to have an open dialog with users surfing the web and reviews so they really understand the reason behind some decisions. Sometimes they seem to overblow everything while sometimes there is a some well intended reason behind a decision.

I also wish RivenMan Media, the best luck on the future!

John Krajewski
profile image
Thanks for the very candid and honest look at your project. As an indie developer as well there's a lot of lessons in your article to take to heart. Good luck on your next project!

Andrew Goulding
profile image
Thanks for a great article. As a contract programmer working in the casual games field and wanting to create some original contract this article really hit home with me.

I envy your ability to find a team that's dedicated to work for a royalty split, I sometimes feel so isolated in that respect.

Andrew Goulding
profile image
Oops, that was meant to read "original content" =0). No way to edit posts here it seems, I'd best be more careful next time!

robert toone
profile image
Thanks for this most excellent article. Your way of admitting frustration and anger of Media comments and then adjusting your point of view to be more objective is really awesome.

You have some great lessons in this article and i hope that any people doing games development, or wanting to, read this first.

I hope that i can be as open to what people say about my games, now and in the future.

Good luck on your future games.

Benjamin Quintero
profile image
congrats guys. you're living my dream =). Keep it up.

Jacob Stevens
profile image
Hi Everyone!
I'd like to thank you all for your support and positive feedback. I'm really glad you found the postmortem interesting and useful. Please let me know if you have any further questions.

Jacob
RiverMan Media

Jerome Strach
profile image
Having worked in the industry for a little while, beginning my work developing for the Atari Lynx, this article rings of particular truths and importance for me. I too would extend my applause in your ability to provide valuable, personal, painful insight and to allow others to learn from your experiences. Most of us that have gone through this shake our heads in agreement as we empathize sincerely.

Ultimately, it's important to realize a couple things.
1) We learn far more from our failures than our successes. I think Kevin Costner recently said in an article, "We take failure in this country far too seriously."
2) You achieved a life-long dream; what's more important than that?

Fight the good fight!!! Thanks for sharing...

Raymond Grier
profile image
You can always release a deluxe version later :) Upgraded software is cheaper to produce too ;) Good luck!!

Roberto Colnaghi
profile image
I must confess I've seem myself reading this article. I'm going the same path writing a game for iPhone.

Thanks for sharing your experience!

Nick Matantsev
profile image
When all is said and done, did you and your team at least break even on time invested, etc? That is, were you able to pay yourself a salary from the resulting sales?

I don't mean to pry for confidential info, of course; just wondering if despite the mixed reviews you were able to recoup some money and time invested...

Darren Schnare
profile image
This is the most enlightening postmortem I've ever read. Good job, and you can bet that I'm going to give MadStone a try.

I am also curious, like Nick Matantsev, about the pay off for this title.

Kudos to you and your team!

Voldi Way
profile image
Excellent postmortem! Very well written. I felt like I was there with you through the whole journey. Having just been through the process with LIT, I can empathize with the challenges you struggled through. The difference is that you only had three people on your team who also had day jobs, and you were still able to pull it off in record time! You guys are amazing! Best of success on your future WiiWare games as well!


none
 
Comment:
 


Submit Comment