Directory of All Essays

Saturday, May 12, 2007

Danc's Miraculously Flexible Game Prototyping Tiles

RPGs love PlanetCute

So do platformers...

One of the commenters on the SpaceCute posts wondered what would happen if you visited one of those delightful spa-like planetoids that decorate our little galaxy of cuteness. Well, now you know. Here is a new set of graphics I'm dubbing "PlanetCute"

These are Lowest Common Denominator graphics. I put the challenge to myself: "What is a graphical style that is attractive, but are useful to both the widest range of developers and game genres?" Here's what I came up with for an answer.

Useful to the widest range of developers
Very few indie developers want to spend time figuring out how to use a set of graphics for their prototype. Often a developer would rather build their own format specific to their design and hire some to make graphics to spec or horrendously mangle free graphics to fit their needs. For completely original graphics, MS Paint in all its heavenly glory, is a extremely popular choice.

Some of the fault lies with the existing graphics, be they free sets scrounged from the internet or leftovers from a previous project. 3D graphics are notoriously difficult to convert between formats, are optimized for use on a specific platform and often present a confusing technological challenges to student developers. What coordinate system are they in? How are they grouped? How are they animated? Perhaps Collada will make it all seamless one day, but we aren't there yet.

Even 2D graphics are tricky. I've seen a simple system like auto-tile confuse new developers. There is typically a whole class of rules associated with any set of 2D graphics. What pieces go together? What is the render order? A set of a hundred graphics presents a puzzle that surprisingly few are willing to decipher.

The PlanetCute set attempts to wiggle past many of those problems.
  • Building blocks, not tilesets: Instead of having complex tilesets, each block stacks nicely with pretty much any other block. If you can understand Legos, you can understand how to put together these graphics. These tiles should be useful to children, not just uber-elite game gods.
  • Standardized format: All the graphics are uniform sized PNGs. The graphics will also work in almost any graphics engine out there that can do 2D sprites. Once you get your offsets right once, you never have to change them again.
  • Source files included: If you do need to make changes, I've included the source files. If you really need to change a color, go for it. If you need a big gem, just scale up the original. Everything is a vector so you'll alway end up with clean results.
Useful to the widest range of genres
These terrestrial tiles that be used to prototype a shockingly wide spread of popular 2D genres. Some that come to mind include:
  • Console RPG
  • Platformer
  • 2D brawler
  • Pacman
  • Sokoban (Please don't make this game again)
  • Match-3
  • Populous
  • Syndicate
  • Pong
  • Arkanoid
  • Marble Madness
I imagined that a basic engine that can deal with stacking blocks and a bit of collision detection could be easily adapted to new game types as desired.

This set is also quite amendable to original games. What could you make with destructible terrain, crowd AI and ancient treasures hidden several layers deep in the earth? I don't know, but I suspect it would be a heck of a lot more interesting than yet another Match-3 game. :-) And this set can handle all those technologies with delightfully low-fi aplomb.

Why does the world need nice graphics for prototyping?
The whole goal is to get you to focus on building up your game mechanics, not on polishing your graphics engine.

Many developers are driven to improve their graphics. There is a common moment that is seared into most developers brains. Do your remember that time you were working on a new idea for days, perhaps weeks. Finally you showed it to your friend. Your code was tight. The idea amazing. Yet your friend took one look at the command line interface and the rectangular graphics and his eyes glazed over. He was bored before you even complete your first sentence. That moment can be devastating.

For the follow up, you spent half your time making your prototype pretty. Unfortunately, to be overly blunt, you suck at drawing. You spent untold hours on something that didn't quite meet your vision. As a result, you didn't get a chance to polish and balance the game mechanics. You know...the part that makes a game fun. There is only so much time in your day and you wasted a good chunk of it on getting past that first 15 second impression.

The next time you make a prototype, use these graphics. If you can reduce the time you spend on futzing with graphics from 40% to 5%, you can put more time into those fun game mechanics you've been dreaming about. The magic is that your graphics will now look good enough to get you through the first 15 seconds of your demo. Your friend will perk up and stay engaged long enough to give you feedback all the wonderful work that you've put into your prototype.

Let me know if there is anything major missing. These were surprisingly fun to draw.

take care,
Danc

Download 'em here
Vectors: Ideal for Silverlight or WPF experimentation
Bitmap: Good for that vast world of pixel engines

Labels: , , ,


Read more!

Tuesday, May 01, 2007

Thoughts on Silverlight, Expression and Games

I just got out of the packed keynote for MIX 07 in the surreal universe that is Las Vegas. The event was set in an enormous hall at the Venetian with four cinema sized screens dominating the stage. You could see individual pores on each speaker. A band on raised stage was rocking out to sweet accordion music set to what appears to be lyrics about pickles. All around me are masses of developers, designers and Microsoft folks gabbing about art, Macs and revolutionary new technologies. Wait, where was the chatter about black helicopters and the joys of pragmatic Outlook maintenance? Cultural dissonance rocks my world.

The big news of the event is that Silverlight will have will have full .NET support. Silverlight, for those who haven’t been following the glorious web technology soap opera, is a cute little browser plug-in that allows you to build rich internet applications. I think technologies like this are good for game developers. More on that in a bit.



Expression Design is released
My product, Expression Design also went live Monday morning and I picked up a boxed copy at the event. To say the release process is like giving birth is perhaps extreme, but I’m very proud of my team. They’ve waded through swamps of vipers to get this product out the door and are already rearing to work on the next version.

Version 1.0 graphics tool are rather rare and mysterious creatures that few software developers get a chance to work on. I’ve been blessed with the opportunity to design three in my career and have come to realize that their promise is greatest even when their features are most limited. The next few years will be a rush.

SpaceCute supports Silverlight
If anyone is interested in dabbling with either Silverlight or Expression Design, it just so happens that all the SpaceCute graphics were built with these technologies in mind. To squeeze the delightful XAML marrow out of the SpaceCute files just follow the steps below:
  • Import the .design file in the zip into Expression Design
  • Click File > Export in the menu.
  • Select XAML as your file export type
  • Select “Silverlight”
  • Export.
Voila, you have a lovely chunk of XAML assets for messing about with Silverlight. You can now make a sexy, zippy, web-based version of SpaceCute that runs on both the Mac and the PC in Firefox or Internet Explorer. Here are links to all the files.
  • Download Silverlight: http://silverlight.net/Default.aspx
  • Download Expression Design: http://www.microsoft.com/Expression/products/download.aspx?key=design
  • SpaceCute Graphics: http://lostgarden.com/SpaceCute%20PNG.zip
Why web-based technologies are desirable for games
I’ve devoted most of my professional life to making complex game technologies more approachable and accessible for creative people. Silverlight and Expression Design are just a couple more steps along that path. I’m a big fan of runtime technologies like Flash and Silverlight because they offer two important advantages to small game developers.

Simple install: A massive percentage of (often upwards of 50%) downloads never make it onto the customer’s machine. That translates directly into lost sales for those starving indies of the world. A single click install where the player has instant access to your game allows you to capture player interest immediately. Once you’ve hooked them, you can stream in additional levels, cut scenes etc at your leisure. When you increase your initial conversion rate, you increase your revenue. It is simple math, but a bloody hard technological problem to solve well.

Reliability: Custom engines run well on the developer’s machine, but often fail in horrendous ways on a multitude of customer configurations. A mass market runtime backed by a company whose biggest value proposition is a great experience on the widest number of machines means you shouldn’t have to worry. The number of support calls a Flash developer fields regarding video drivers crashing their customers computers is substantially lower than the number fielded by folks who build a custom engine.

Areas for improvement
Obviously, not all game developers use Flash or Silverlight. If you look at top titles like Bejeweled, Peggle, or Aveyond they still use old school downloadable installers. In the past few years, there have been big obstacles to using browsers plugins as your primary platform for casual and indie game development. The good news is that these problems are slowly, but steadily being eradicated.

Robust programming model: Historically, you’ve been forced to program your million-line project in Javascript. As Dofus shows us, this is certainly possible. Yet due to issues with maintainability, very few folks want to do it.

This is the area that Silverlight addresses. The addition of a full-fledged language like C# should not be underestimated. You’ll start seeing more complex games with more intricate behavior. You’ll be able to easily create scalable, robust architectures using familiar tools. This advances us beyond ‘house of cards’ applications and opens up rich clients to the classically trained master programmers of the world. I am a great believer in their creative powers to blow our minds and change the rules of the game in the process.

Speed: Traditionally, web-based engines have been slow. Users are subjected to slow framerates, small number of objects on the screen and wimpy dynamics. It is not really surprising, given these limitations, that the majority of Flash games are simple action games or point and click adventures. Our runtime technology is barely capable of running games that were popular in the early days of DOS. With technology limitations, come genre limitations.

With Silverlight, you are seeing the execution speed of C# code running 300 to 1000 times faster than the equivalent JavaScript code in some cases. This is a good start. Both the latest version of Flash and Silverlight are also starting to pump out reasonable numbers of objects on screen without slowing down the system. In the next couple of years, I see web technologies reach DS or PlayStation level of 2D capabilities. This opens up the golden era genres like epic platformers, brawlers, fighting games, and RPGs.

Local storage: The biggest reason that folks are using downloadable applications is that many users still play offline. Ideally, we could cache 20 megs of data plus a 2 meg save game file on your hard drive and allow you to use the application when the internet is disconnected. This is exceedingly difficult with current technology.

Some of the technologies that Adobe is working on looks promising here and I hope to see more from Microsoft in the future. When game developers gain control over their caching and local storage, the silly distinction between online and offline starts to disappear. This blocker hasn’t been solved yet, but there is hope.

Future of mixed cloud/client games
What really excites me is the mixed world of applications that sit halfway in the cloud and halfway on the client. As these become easier to develop, more people will get into the market and they will innovate in order to differentiate their products. Casual game developers are just starting to dip their toes into this universe, but with time expect a flood of interest. Occasional connectivity + instant downloads is a huge and exciting opportunity to create entirely new genres.
  • Shared user created content: As users create content and upload it to a universal cloud, you open the world of massively single player games. Imagine Spore as a web-based RPG or platformer with a single click install.
  • Multiplayer experiences: Little Big World shows a little bit of what can happen when you mix an traditional platformer with online capabilities. Imagine if most web-games had this level of multi-player mechanics.
  • New revenue models: The retail model of paying 19.95 for a mess of levels is due for a shakeup. Micropayments in casual games are a natural fit for cloud/client games. The cloud provides the persistence and the payment system. The client provides the rich interactivity that captures the player and provides the compelling context necessary to encourage them to invest monetarily in the game.
  • Stats: Great games are well-balanced games. Well-balanced games are created through the massive amounts of user feedback. Internet enabled games offer a natural way of collecting copious amounts of player data in a transparent manner. Imagine if all games had Valve-level diagnostics built in. If websites can do it, so can games.
Ending thoughts
I’m excited about Silverlight, not necessarily because it solves all the problems facing game developer or because it provides all the solutions. I’m excited because it adds a serious jolt of competition that is bound to drive rapid advancements. The improved tools and more robust runtime platforms that result from competition are huge wins for game developers. They allow us to focus on making great immersive games, not on rewriting our game engines for the 57th time.

For at least the next five years, the casual and indie games marketplace is going to be a crazy ride. The ‘typical’ genres of point and click Flash adventures, shooters and downloadable Bejeweled clones is going to replaced by instant install, rich applications that cover a much broader range of game genres. Developers will have the power. They just need to use it to make something amazing.

Take care
Danc (in a good mood)

Labels: , , , , ,


Read more!

Monday, December 04, 2006

Sprawl: The world's first public Silverlight game


A little casual game design of mine called Sprawl finally made it out into the big wide world. I started building the graphics and brainstorming on the concept after playing an elegant board game called Hey, That's My Fish at Project Horseshoe.

Pete, my old compatriot from Anark, was looking for a game design concept to turn into sample game for the Microsoft WPF/E samples they launched this Monday. He actually made it work with AI and everything. WPF/E (aka Silverlight) is a lovely little web platform that Microsoft announced last year. It is in the early stages, but I have high hopes. I've also been working with Harold on a sexy DirectX version, but since he is building his uber engine from scratch, it isn't quite yet ready to share.

The game is a simple turn-based strategy game involving the capture of resources and the containment of enemies. If the response is good enough (and the programmer willing), there are quite a few more features I'd like to add.
Whoever beats every level gets a cookie. It is very possible to win, just incredibly hard.

take care
Danc.

PS: Most of the game graphics were created in another product I'm designing called Expression Design. I'll try to post the source files for the artwork at some point on the site. I don't tend to talk about work too much on my blog, but there is a trial available.

Edit: Noted that the player does in fact run nicely on both Firefox and Mac. Tis, true.

Labels: , , ,


Read more!