Recently I found myself faced with a new design challenge: to create a digital game interface that uses differentiating hardware and software components to facilitate a fun and social game play experience.
I looked for a framework to help me deconstruct the various aspects of the game into collaborative conversations I can have with client-side engineers, product managers, and marketers. I found the engineers were deeply involved in leveraging the hardware mechanics to design differentiating aspects of the game, while the marketing team was focused on product branding and visual design.
MDA Game Design Framework
I started as many designers do, weeding through the web to withdraw inspiration and artifacts to leverage something that might be pre-existing. That’s when I stumbled on the white paper “MDA: A Formal Approach to Game Design and Game Research” by Robin Hunicke, Marc LeBlanc, and Robert Zubek.
Read more on Using the MDA Framework as an Approach to Game Design…
Acceptance testing is hard. It requires thinking through your entire problem and nailing down the expected outputs for a list of inputs. When working on games, acceptance testing becomes even more difficult.
There are certain aspects that cannot be tested: “Is it fun?” “Is it too hard?” Other aspects are just difficult to setup and too brittle to maintain. You don’t want your tests to break on small tweaks, like player walking speed or jump height, but you want to enforce that the core game mechanics are working: “Can I shoot another player?” “Can I jump up on that ledge?” This is the area where tests can be incredibly useful.
Is the bullet traveling perfectly parallel to the players feet? It’s hard to tell, even when playing.
Read more on Acceptance Testing Your Games to Fix Bugs and Provide Regression…
Chipmunk is a simple, lightweight, fast, and portable 2D rigid body physics library written in C.
I’ve recently helped update the Ruby chipmunk gem to the newest version of the Chipmunk code to brush up on my C skills. There have been loads of features and performance enhancements added since the last chipmunk gem was built (over 120 lines of CHANGELOG goodness). For example:
Read more on Chipmunk Gem, version 220.127.116.11.rc1…
Posted in Tools Also tagged gem, ruby
Before I came to Atomic, I spent several years working in the video game industry. I left it for a number of reasons, but I wanted to still pursue game development as a side project.
When recently I started up a new game project, I went looking for a good engine. My requirements were:
- Cross-platform (PC, Mac, Android, iOS)
- Free to try
- Using a programming/scripting language I know and like (sorry, Lua fans)
I ended up picking the Unity3D engine. (Unity 4 just came out, by the way. I haven’t upgraded yet, but that’s where I’d start if you want to get into using Unity.)
Because of my work at Atomic, I’ve become a big Ruby fan. There aren’t really any viable cross-platform game engines that use Ruby — or Python for that matter — but when I saw that Boo was Python-like, I decided to try and write a game in Boo. Little did I know what was in store for me.
Read more on Game Programming in Boo with the Unity Engine, Part 1: Not All Who Wander Are Lost…
Posted in Languages, Testing Also tagged Boo, TDD, unity
The Strange Loop conference last month was one of the best technical conferences I have ever attended. The topics ranged greatly, and the depth of each talk was amazing. The speakers included: Bret Victor, Jeff Hawkins, Brendan Eich, Rich Hickey, and more (talks are available on github). In the aftermath of my head exploding from the awesomeness that was Strange Loop, I decided to try to apply a few small nuggets to my game framework, Gamebox.
Read more on Applying Some Strange Loops to Gamebox…
Here at Atomic Object we have a few game developer hobbyists. I’ve been tweaking the basic 2D collision detection in Gamebox for awhile now. When Chipmunk 6 released with performance gains, I decided to take a look. Part of the secret sauce was the use of an axis-aligned bounding box tree (AABB tree). Porting this simple data structure to Ruby sounded like fun. I found a lack of simple 2D examples with source code along the way, so I decided to publish mine.
Read more on 2D Axis Aligned Bounding Box Trees…
Over the weekend, myself, Shawn Anderson, and Jason Porritt built a game to submit to the Ludum Dare 22 Jam. Ludum Dare is an open videogame creation competition that a few Atoms have competed in previously. Unlike the regular, individual competition (48 hours with results judged over the next two weeks) the Jam is a 72-hour event that allows teams to compete.
Read more on Ludum Dare 22 Jam Entry…