The third part in this series on the best GDC talks is all about the art and science of level design. Originally I’d intended these talks to be included in the previous entry on game design, but as I was putting that list together I realised over half of talks I’d chosen were actually about level design, so the subject really deserved it’s own post.
Level design and game design are very much two sides of the same coin, with levels a way of creating meaningful structures from the rules and systems defined by the design. While it’s certainly possible for games to exist without distinct levels (say Chess or Football), most modern digital games are clearly designed to be explored through a range of designer-made scenarios, whether it’s the complex arangement of ledges, hazards and pickups in a platformer, the sweeping corners of an arcade racer, or the subtle environmental puzzles of a stealth adventure, levels provide a way for players to explore a game’s design.
In the second part of this series on the best talks from the GDC Vault, I’m going to focus on game design. While there’s no way that such a short list can cover everything in the realm of game design, I’ve tried to select a mixture of talks that reflects the variety of the subject, by approaching it from many different angles. There’s a theoretical overview of open ended experiential games, a cautionary tale of hidden design complexity and a range of design retrospectives on everything from indie cult classics to mainstream mobile hits. Each of these talks offer valuable insight into the creative process of game design, documenting many individual approaches to the topic and showcasing the methods they use to realise design ideas throughout the development process.
As varied as they are, all of these talks share a few common themes. They show how the most creative and successful ideas are those that challenge conventional wisdom and seek to innovate by adopting a fresh perspective. They also underline just how important a good development process can be for a game’s success. A well managed process can support countless rounds of iteration, exploration and refinement, providing game designers with the space to explore their ideas and the tools to think critically about their work.
Recently I’ve been trying to learn a bit more about game design theory and technical best practices. While there are lots of great books and articles to read, what I found most interesting were the talks and presentations taken from the yearly Game Developers Conference. I’ve never been to GDC myself, but the wealth of content available in their archives is pretty amazing, covering all aspects of game development, from programming to art, design, business and historical retrospectives. This short series of posts aims to highlight some of my favourite talks from the GDC Vault, focussing on the areas of game technology, design and history.
For the first part of this series I decided to focus on games technology, but I quickly realised that it’s actually quite difficult to find great technical presentations that that really stand the test of time. While focussing on the details of a cutting edge technical implementation or technique can be useful at the time, within a few years, that same content can date considerably. That being the case, my choices for the best technical talks includes sessions that are about more general concerns: unique approaches to problem solving, best practices and tools development.
Each of these talks has something valuable to say about the technical process of game development, and each provides a great deal of inspiration to explore more creative uses of games technology.
Space Runner Unity Demo - Click To Play
This demo is my first real attempt at making something in proper 3D using Unity and follows on from the 2D Asteroids style game I made back in January. As with that earlier demo, I used C# to write all the main game scripts, while the graphics and sound effects are from downloads available from the Unity Resources section of the Unity Technologies website.
My aim was to make something reminiscent of classic on rails shooters like Starfox, Afterburner, Rez and the Panzer Dragoon series. I spent quite a while looking at those games and trying to mimic the controls and camera behavior for this demo, and while it’s clearly not a patch on those games, I guess there are a few similarities in places. If you would like to play the demo please click the image above.
Unity Astrospace Demo - Click to Play
This demo is my first project in Unity, and is my take on the Atari classic Asteroids. There’s a lot to learn when you first start out using Unity, so something simple, well known and in 2D seemed a good place to begin. If you’d like to play the demo, please click the image above.
There’s been a lot of talk in the Flash community lately about Unity and the way it is transforming 3D on the web. Having read a lot about it, played a few demos and seen that Unity Indie is now available for free, I just had to take a closer look. So what follows are my first impressions of the game engine and development environment, a quick look at some of the best Unity projects out there at the moment, and an overview of the resources available to new developers, especially those like me, who are from an ActionScript background.
From Flash to Unity
Working with Unity is a lot like developing in the Flash IDE, in fact there are so many similarities that as a Flash developer it’s very easy to understand the basics. Lots of comparisons have been drawn between the basic building blocks in both environments: the Unity Project Panel is just like the Library in Flash, the Hierarchy is your Timeline, the Unity GameObject is a bit like the base DisplayObject in Flash, while Prefabs can be instantiated at runtime just like Linked MovieClips, even the default scripting language looks very familiar.
What quickly becomes apparent though, is that aside from the obvious performance advantage that Unity brings to 3D graphics, this is also an engine that was built mainly for making games with rather than a platform for everything from 2D vector animations to video playback. To make a game in Flash – even with something as advanced as the PushButtonEngine – is still a major piece of work, with Unity everything is there at your fingertips: 3D renderer, shaders, particle effects, a physics engine, standardized player input, an optimized game loop, sound management… the list goes on. All of this means that you can focus on creating the actual game itself, rather than trying to build an engine from scratch or spend ages working out how to combine some existing code libraries or frameworks to make a game in Flash.
This demo is another example of the cool effects that can be made in Flash and ActionScript 3 using the Stardust Particle Engine.
By combining a simple particle effect with lots of Flash filters and some BitmapData processing, it’s possible to create some pretty abstract looking flame effects. The initial idea was to make something similar to the neon particle systems seen in games like Geometry Wars and Grid Runner, but after playing around with the Flash bitmap filters for a while I ended up with this cool looking flame effect instead.
The code is actually fairly similar to my earlier tutorial on using the Stardust engine, but this time I’m setting the velocity of the particles based on the speed and direction of the spaceship to create a nice engine flame effect that reacts to the ship’s movement.
Click here to view the demo and download the source code.