Posts

Showing posts from March, 2013

The evolution of Sheriff Lonestar

Image
Quite a few players asked to see more concept art of Awesomenauts , so who am I to not oblige to this request? This is actually a great excuse to talk a bit about the design process of Awesomenauts in general, by looking at how Sheriff Lonestar evolved during the three years it took us to create Awesomenauts. Before I get started, I should mention that today's post is mostly about the great work of my colleagues. I myself am lead programmer at Ronimo , so although I am involved in the design and art process, the real work is done by our designers (Fabian and Jasper) and our artists (in the early stages of the project as described here, those were only Ralph, Martijn, Olivier and Gijs). So all credit for the great work done on finding the right style for the gameplay and graphics should go to them! :) In our first designs of Awesomenauts, there were going to be only three classes, but each of these three classes was going to have an extremely diverse set of skills. The final version...

Hardcore C++: why "this" sometimes doesn't equal "this"

Image
I usually try to write these blogposts in a way that is readable for most game developers and enthusiasts, but today for a change I'd like to dive deep into a detail of C++: why sometimes the this pointer can differ even though it is being used within the same object . This is a problem that one can spend a lot of time debugging on before finding out what happens. I encountered it last week, and the only reason it didn't cost me several days of debugging to figure it out, is because I ran into the exact same problem during a project at University years ago. Let me first sketch an example of a situation in which this might occur. In some cases a unique identifier for an object is needed, but we don't actually need to do anything with that object, so it doesn't matter what type it is. In such cases, an obvious and easy solution is to simply use the address of the object itself and store it as a void* . This way we can, for example, register whether a call to a function i...

The character animation workflow for Awesomenauts

Image
One topic that I have been asked repeatedly to write about, is how we made the animations for Awesomenauts . This is indeed a big and interesting topic, so today, I would like to discuss that in more detail! I have previously shown how we make characters aim in all directions and shoot in all directions , but that did not explain the workflow and tools that our artists use to actually make those animations and put them in the game. Today's post will! The core animation work for Awesomenauts is done in After Effects. This may come as a surprise to people who don't know the tool, since After Effects is mostly known as a video editing tool, but it is actually a great general animation tool. It is also a big step up in comparison to Swords & Soldiers , which was animated in Flash. The biggest problem with Flash was that it only works well with vector-art. Our artists generally don't like working with vectors and would rather paint in Photoshop instead. This was especially ...