Today I'd like to share some fun, slightly unconventional techniques I used to make the Robo Maestro robot in Blender. I wanted shapes that are both smoothly curved and tight industrial. Hard surface modelling! I think it turned out well, so let's have a look at how it was made!
The concept art I was going by is this rough sketch by Robin Keijzer, creator of the awesome point and click adventure Space Rescue (available on Steam, NSFW!). As you can see, all shapes are a combination of curves, straight lines and hard edges.
Subdivision modelling is a great way of making these kinds of curves, but it's a bit cumbersome when you need hard edges and corners as well. The tip you usually see for getting hard edges is to add supporting geometry: extra vertices around hard edges.
However, the more vertices you have, the harder it is to change the shapes: the model becomes unwieldy. Also, the fewer vertices, the smoother the curves you get. So I really really wanted to have as few vertices in the base model as possible for the best smooth curves.
Here Blender comes to the rescue! It has a wonderful feature called "creases" that lets you mark edges that should not be smoothed by the subdivision modifier. This lets us combine hard edges and smooth curves with very few vertices in the base mesh. Very cool, very handy!
Here you can see just how few polygons the base mesh for the Robo Maestro has, and how smooth the curves are that that results in.
However, 100% hard edges feels cheap and fake 3D. For high quality models, we want to slightly bevel the hard edges. Luckily, Blender can also provide this: we can simply add a Bevel modifier to do this automatically.
The bevel modifier by default is either one hard edge (still not perfect) or more edges. Adding more edges makes Auto Smooth kick in, which makes us lose a lot of the tightness. The "harden normals" option fixes this (by not using interpolated normals on the bevel edge).
The bevel modifier automatically looks for edges to smooth, but sometimes it gets it wrong. In such cases switch the "limit method" to "weight". Now we can mark edges that need a bevel in our base mesh, and we can even mark per edge how wide the bevel should be. Neat!
Being able to mark edges and vertices with special features that are used elsewhere is one of my favourite features in Blender. Besides "crease" (for subdivisions) and "bevel weight" there's also "seam" (for automatic UV mapping) and "sharp" (for smooth shading).
Combining these techniques I was able to create the Robo Maestro pretty quickly and still remain flexible until the last stages of modelling: Robin had some feedback on the shapes and I was able to change them very quickly because the base meshes have so few vertices.
Finally, if you were wondering what this model is for: Robo Maestro is a procedural music toy that I'm developing for Steam. He even plays the actual notes with his fingers! Here's a little trailer that shows the concept. Wishlist Robo Maestro now on Steam!
Play with music like never before! Robo Maestro is the 'game' I'm currently working on and it's a procedural music toy. Guide an endless stream of new music or make detailed tweaks in Editor Mode. Create songs, be inspired and share your creations. Robo Maestro is coming to Steam, add it to your wishlist here!
Robo Maestro is a revolutionary new way of creating and experiencing music. You tell it what you want, and then the Maestro automatically generates music that fits that. Playing Robo Maestro requires no music knowledge at all: just have fun and hear what happens! Guide the Maestro and create awesome music together with it!
Lots of games and game concepts are very similar, very derivative. Partially that's because people make more of what's successful, which is sound business. But partially it's also because of a lack of inspiration, or taking inspiration from the wrong sources.
This is because most game creators get their inspiration from the same sources: other games, action comics, action movies and sci-fi/fantasy books. Thus many creators get the same ideas. To get truly original ideas, you shouldn't look at the same things as everyone else.
What other things inspire you? Please share in the comments below!
For me, modern art museums are the biggest source of inspiration, especially early 20th century stuff. I don't like it all, but it often triggers my creativity. For example, this painting by Kandinsky was the main source of inspiration for Proun at the time.
So let's play a little game. Look at the painting below, and try to imagine a game that looks like this. What would that play like?
(This beautiful painting is by Ludek Tikovsky and was exhibited in castle Groeneveld.)
Oh by the way, I'm trying a new format for my blogposts: super short and focussed on Twitter. I'll repost them here as well, as I'm doing now. Any thoughts on this new format, or tips?
After 14 years at Ronimo, I’m leaving the company I co-founded. I’l keep making games, but starting this months it’s on my own (and in the future maybe I’ll start a new studio). This news makes me both very sad and very enthusiastic. Sad that I won’t be working with my amazing friends at Ronimo anymore; enthusiastic that I will have total creative freedom to make exactly what I want to make. Today I’d like to share why I’m leaving, and what I’ll be doing next.
The reason I’m leaving is that I want the creative freedom to carry out my own ideas. I have tons of concepts for games, music and art, but I can’t execute them at Ronimo. I might have had a leading role at Ronimo as technical director, producer and co-owner, but when it comes to creative choices, Ronimo is a pretty democratic company: everyone has input on creative choices. That’s great for the creative process: tons of ideas bubble up and stuff that a lot of people are enthusiastic about makes it into the games. However, with 7 founders and a dozen employees that means that my actual creative say wasn’t that large. Especially since Ronimo makes only one game every 3 years.
That used to be fine for me since I had a creative outlet in my spare time. I made Proun, Cello Fortress and The Ageless Gate that way over the years. However, three years ago I became a dad and this has reduced my spare time a lot.
I solo developed Proun and Cello Fortress in my spare time, including code, design, music and 3D art.
The trigger for me to decide to leave Ronimo was a conversation with my wife, Marissa Delbressine. I always write down my ideas in my notebook. However, this became pretty depressing when I realised that I didn’t expect to be able to do anything with all those notes. So I said to Marissa: “I might as well not write down my ideas anymore, since it feels so useless if I can’t do anything with them.” This made her very sad, more than I had expected. Marissa is a creative person herself (she’s a comic artist, currently publishing The Shadow Prophet on Webtoon) so she could imagine the pain of telling yourself not to be creative anymore.
Marissa’s response got me thinking: maybe instead of dropping my own ideas, I should quit Ronimo instead. But I also didn’t want to abandon my friends. So in Autumn 2019 I told the other founders of Ronimo that I wanted to leave, but that I wanted to first finish Blightbound with them. They were sad to see me leave and tried to convince me to stay, but they also supported me in wanting to follow my own path. Their response was heart-warming to me. After all these years the co-founders are still my friends, but I will see them a lot less now. I will miss them dearly, as well as the rest of my former colleagues at Ronimo.
The 7 founders of Ronimo back in 2007, a few months after we founded the company. I'm on the left, lacking both a beard and grey hair back then.
Since people often leave their company because of frustrations or disagreements I would like to stress that that’s not the case here. I just want full creative freedom to explore my ideas, and that’s the only reason for my departure. I still love the folks at Ronimo and I plan to keep hanging out with them regularly (well, once the current pandemic dies down, I guess).
When I first talked about this with the other founders, we still thought I would be able to leave Ronimo in Summer 2020. But Blightbound got delayed and I decided to finish the game with the team. Then the game got delayed some more, and we agreed to set a final date, since I got restless as my departure kept moving. That date is now. As of this month I don’t actively work for Ronimo and I don’t have any management responsibilities anymore.
So, what will I be doing next? I mentioned I had tons of ideas, so I won’t be spending any time brainstorming or soul-searching. Instead, I’ve started already. My plan is to spend the next year learning new tech and skills and doing a bunch of smaller projects. After that I want to start making a bigger game that will hopefully be the start of a new studio.
I’ve already taken the first step last week: I’ve finally released my album The Ageless Gate. I’ve been working on this album for years and it’s great to finally get it out there. It’s available on all the streaming
services, with links to all of them here. The Ageless Gate is an instrumental concept album with lots of cello and a narrator that tells an overarching story in short fragments at the starts of the songs. It’s quite a unique thing and I hope it will find an audience!
Here's a preview of Sandrider, an intense cello trio and the opening song of The Ageless Gate.
As for the coming year, for now these are the smaller projects I intend to do:
Finish the Steam version of Cello Fortress. This should become playable with any musical instrument (instead of just cello) and won’t require an audience to play against anymore.
I’ll apply for a government grant to experiment with my procedural music system and to turn that into a streaming radio station.
Make a minimalist railroad building game.
Make a crowd physics puzzle game with ballet and monsters, inspired by the art of the Dufy brothers.
I also intend to learn a lot of new stuff. The main big things will be switching to Unreal Engine and Blender and learning the ins and outs of both. I also plan to expand my knowledge of UI design, design of management games and economies, task-based multithreaded programming and data-oriented code.
Then later on I hope to start working on a bigger 3D management/building game. I have a bunch of concepts for such games lying around and I currently tend towards one of the sci-fi ideas. I hope to build a bigger studio around this, focussing on high-quality 3D management games, similar in production value to games like Frostpunk, Planet Coaster and Two Point Hospital. I hope I’ll be ready to start pitching to investors with that in a few years.
It will undoubtedly take quite a while before all of these plans start making me a decent income. However, I’ve always been rather frugal, so I’ve collected enough savings that I can survive on those for long enough.
One thing you can see here is that I plan to do a LOT. Way too much, probably. I think this is going to be my biggest challenge from now on: keeping the scope of my projects small and limiting my expectations of how much I can do in a week. For years I’ve bottled up so many ideas and plans that I want too much too fast now. I’ve noticed that I’m already experiencing some stress because of how much I want to do, so keeping my plans realistic and doable in a chill manner is going to be my biggest challenge.
A clear split between work and leisure is going to be paramount to that, since up until now my hobby projects were my leisure. Now that they’ve become my work, I should make sure to not become a gamedev monomaniac. I’m sure my wife and son will help keep me grounded though, so I expect this will turn out fine.
I would like to conclude by thanking all my friends at Ronimo for 14 years of great fun. Thanks for everything I’ve learned from you and thanks for sharing all the lows and highs of making games together. I’m sure I will miss the banter and the laughter at the office most!
On my last day at Ronimo, the art team chose me as the theme for their biweekly sketching session. I love the resulting portraits! Art by, from top to bottom: Gijs Witkamp, Koen Gabriels, Ella Kremer and Gijs Hermans.
On Friday I released my album The Ageless Gate! It's my atmospheric debut album with instrumental music and lots of cello. Together, the 13 songs tell a tale that spans three centuries, starting with a mysterious artefact and culminating in a gate to another world. The story is told by short text pieces in between the songs, voiced by voice actor Chris Einspahr.
The album is available on all the major streaming services (Spotify, Apple, Amazon, Tidal, Deezer, etc.). I've also made a deluxe CD edition in a limited pressing. Links to the different places where you can listen to the album can be found here:
For the cover of the album I combined a cello bridge with a sci-fi portal, bringing together the musical core (cello) and the storytelling theme of the album.
My cello is the foundation of the album, which varies from cello trios to songs with cello, drums, guitar and keyboard. The sound goes from melodic and euphoric to dark, pumping cello rhythms. Cello is mostly known as a classical instrument and a background instrument, but it’s so much more than that. For this album I really enjoyed experimenting and exploring the possibilities of the instrument. My favourite examples of that are the fast arpeggios in the opening track Sandrider, and the gliding chaos tones in Approach of the Derelict Research Station.
Here's a preview of Sandrider, an intense cello trio and the opening song of The Ageless Gate. The image shows the CD edition of the album, which can be ordered here.
I've worked on my album for 3.5 years and it's great to finally have a complete thing, with the storyteller, the art, the music and the production all working together to create one coherent whole. It started out as just a bunch of songs, but as I wrote more of them I realised they could be telling an overarching story. From that point on I started writing that story and also changing some of the compositions to make them work in the bigger whole. For example, A Century Flies By and A Century Sails By started out as one song, and I split them into two short related pieces since I liked them as bookends in between the chapters, marking the passage of time.
The story plays out in different time periods, as is seen on the back of the CD edition of The Ageless Gate.
While working on the album I learned a lot about composition, recording and music production. One of the biggest lessons I learned is that it's pretty doable to record a bunch of cello takes and then cut them in pieces to combine the best bits. This helps me a lot in achieving a consistent high quality cello recording. Before I knew this I thought I needed to record an entire song without any mistakes and this made me super nervous during recordings. Now I know that recordings with mistakes are useable, as long as the mistakes aren't always in the same spot.
My other big lesson is that mixing/mastering is such a specialised field that I should again hire a professional for that. I first tried doing it myself, but even after spending considerable time with tutorials and experimentation, I couldn't get it to sound pro. In the end I hired Daan Kandelaars (Tremor.Studio), a professional mixing/mastering specialist, and his versions sound so much better than my own did. For my next album I won't first try to make final mixes myself and will instead hire a pro for mixing and mastering right away.
All in all I'm super happy with the final result and I hope others will like The Ageless Gate too! I'd love to hear if you have any favourite moments on the album!
Last week I discussed how we used After Effects and Duik as our animation tools for Blightbound, achieving crisp animations at high framerates with small filesizes and nice tools for our animators. The real strength of this workflow however comes from our Skin Editor. This makes it possible to reuse animations, quickly tweak the looks of characters, swap gear, add special effects and attach objects to characters convincingly. Today I’d like to explain the ideas behind our Skin Editor and how this impacted the work of our artists.
As I showed in last week’s blogpost, the basic idea behind animations in Blightbound is that a character is made up of parts (hands, torso, face, upper arms, lower arms, etc.). These parts move and rotate and the game plays that back directly, instead of using sprite sheets.
Characters in Blightbound are animated using parts, and frame-to-frame variations on those parts. This shows some of the parts used in the animations of Malborys.
Since the game knows exactly what parts there are and where they are, there are a lot of fun things we can do with this besides simply playing back animations. How cool would it be to swap parts to create new characters, to swap weapons, to attach special effects to weapons and to attach effect-over-time animations to bodyparts? To achieve all of these things our artists made sure all characters have a similar structure, and I developed our Skin Editor.
The basic idea behind our Skin Editor is that it finds all the visible parts in all the animations for a rig and allows changing or hiding them. So a skin can change whatever it wants: a character’s head, weapon, shoulder, or even everything. When an animation is played back in-game, we inform it which skins are active and those are applied to modify the character’s looks during gameplay.
A demonstration of the interface and the various features of the Blightbound skin editor.
Skins allow us to create a new character by drawing new parts, without needing to create any new animations. This was an important goal for us, because for Blightbound we wanted quite a lot of characters. A core idea behind the game is that it should be a bit like Pokémon: gotta catch em all. There are a lot of playable heroes and the player collects those during gameplay. However, for Awesomenauts it took us 8 years to get to 34 characters and here we needed more animations per character and more characters (enemies included). So the Awesomenauts workflow wasn’t going to work and we needed to apply more reuse instead. The Skin Editor made this possible.
Note that above I said we apply skins, plural. Our skin system allows combining several skins, as well as changing which skins are active on the fly. A skin can add parts, but it can also remove or replace parts from the skin below it. This is pretty cool, because it allows us to do all kinds of cool things. For example, weapons are skins, so swapping a weapon means swapping a skin while keeping the base body skin the same.
Weapons and shields are easily swapped by enabling and disabling additional skins.
Weapons are an obvious application of this, but we can do more outlandish stuff with this. If an enemy gets hit by a knife that applies a bleed effect (damage over time), then we would like to have an effect on the enemy for the duration of the bleed effect. In Awesomenauts we were heavily limited in these kinds of effects because the sprite sheet didn’t tell us where any of the limbs or feet of the character were. This meant status effects needed to be visualised with animations that are always centered on the character. In Blightbound we can do much better: we can have a knife sticking our of a leg, and the knife will move correctly with the leg. All it takes is adding a skin to the enemy that contains that knife.
Normally we put textures in skins, mostly body parts and clothing and weapons and such. But we also have a feature to attach any in-engine animation to a skin. This allows us to do things like adding sparkly particles to a staff, dripping blood to the knife, glows to the shackles, trails, and even physics capes. We also use this to attach gameplay dummies to skins, for example to make sure projectiles come out of the tip of the staff, no matter where that staff is in the current animation.
The skin system allows us to accurately attach visuals for status effects to the animation. Here the slow effect attaches to the legs. Also, the cape is a nice example of attaching a physics object to the character.
A fun but mostly unused feature I implemented is the scaling of parts. Skins can not just replace parts, but also change their size. We hoped we could use this to change a character’s silhouette, for example by giving one character longer arms and shorter legs. This feature also allows making all heads bigger (which is a common Easter egg in many games, but we didn’t add it to Blightbound).
While scaling worked fine from a technical perspective, in practice it was hard to make good looking characters this way so our artists ended up hardly using that feature. Also, a more complete implementation of limb scaling requires animation retargeting (for example to keep feet firmly on the ground when the ratio between upper and lower legs is changed), which is some pretty advanced tech that we didn’t have time to dive into.
So far it might seem like just having that skin editor enables all of these cool features. However, to make this work, all animations need to have consistent elements. For example, if we want to attach that knife to that underarm, then each animation that the character can play needs to have an underarm and it always needs to have the same name. In some cases we worked around this by adding empty visual parts to the rig, so that any characters that needed those parts could enable them. This is somewhat similar to adding attachment dummies to a skeleton in 3D animation.
Also, if we want to quickly reskin a character, then we should limit how many unique parts there are. In my previous post I mentioned that we do frame-to-frame animation on parts, for example by drawing several heads with different expressions. For every new character we add on this rig, we need to draw all of those heads. The larger the number of parts, the more work it is to add a new character that replaces all of those parts.
There are some tricks that we used to decrease the workload. For starters, our skinning system falls back to the default if variations don’t exist. If for example one character has a mask, then we don’t need to make copies of that mask for different facial expressions. If a character is less important then we can also just choose to not draw the facial expressions for that character, even if they wouldn’t be hidden by a mask.
For each character we need to draw all the parts used in all their animations. For four characters in Blightbound this shows all the heads needed for the female rig. Note that some characters have one head fewer. That's okay because in such cases our skin system automatically falls back to the default.
Another thing we used is that not all characters use all animations. Enemies for example share some animations with heroes, but their animation set is a lot smaller. Enemies therefore only need to have the parts that are actually used in their animation set. For this same reason our animators had a lot more flexibility in adding parts whenever they made a character-specific animation: none of the other characters need to have those parts.
By carefully choosing which parts and variations are really needed, our artists managed to keep it all doable. Still, in total Blightbound currently has over 4,600 character parts. Together these form around 50 characters (players and enemies), 104 weapons and 45 shields.
This did require a lot of experimenting with exactly how a body is made up. While the basic parts may seem straightforward, there are a lot of subtle choices to be made. For example, feet are split in the front part (including the toes) and the back part, and the pelvis and torso are split. Also, some parts are in the rig twice: once in the front and once in the back, for more clothing possibilities.
Our artists spent a lot of time figuring out exactly how the rig should be split into parts to be able to do a lot of poses and clothing variations without introducing too many parts. For example, here we see that the belt is split into 3 parts and there are "waistflaps" in the rig.
This brings us to the biggest downside of this approach: it adds a lot of limitations to what our animators can do. For each animation they need to creatively reuse the existing parts as much as possible. They can add new parts when it’s really needed, but they need to be very conservative with this to avoid bloating the workload. The result is that animations are a bit less dynamic that in Awesomenauts and Swords & Soldiers 2. Also, our artists generally did not enjoy the extra challenge of these limitations.
Another downside is that reusing animations makes characters a lot more similar visually, and limits what we can do in terms of body types. Our artists did go out of their way to make the characters as visually unique as possible within the limitations of the rig, for example by adding variation through extreme headgear, capes and clothing.
To make characters feel more unique, our artists have made select unique animations for each hero. Especially the idle animations are different, but in some cases also the walk animations. That’s one of the nice things of reuse: during development you quickly have a full character in the game with all animations, and then later on you can replace specific animations to make them more unique.
To make characters that use the same rig less samey, most have a unique idle animation.
Animation reuse is also great for prototyping: if for example a designer wants to try swapping skills around between enemies, they get an animation set for free to get a better idea of what gameplay feel that will have. In Awesomenauts on the other hand that often required an artist to make some extra concept frames for skill visualisation.
Before I finish this blogpost I would like to point out that the Skin Editor and the limitations we applied to be able to reuse animations are not necessary when using After Effects and Duik for animations. It’s perfectly possible to let go of all of those limitations and still get all the benefits that I discussed in last week’s blogpost. In fact, our After Effects exporter is technically capable of exporting Awesomenauts characters without using sprite sheets.
Despite the downsides, the scope of Blightbound would not have been doable for us without the approach we used. The combination of the Skin Editor and the consistent body setup that our artists applied to all animations made a lot of cool things possible for Blightbound. We were able to make more characters then we could otherwise have, create swappable gear, add special effects to weapons and attach animations to body parts. In total, I think the result is pretty spectacular. Also, playing around with the Skin Editor is just plain fun!
To conclude, here’s a video that shows what happens when you repeatedly randomise all parts of a character:
The Blightbound dev tools contain a feature to randomise skins. The results look both horrible and hilarious.
Special thanks to Ronimo artists Koen Gabriels, Tim Scheel and Gijs Hermans for providing feedback on this article.
This song is actually an improvisation I recorded back in 2014. It's four layers of cello and one layer of... a pan's metal lid! Because why not.
Back in 2014 I liked the result, but it was too rough to use. I didn't think I'd manage to capture the same feel if I were to extensively practice the piece and record it again, so I abandoned this piece. Since then I've learned a lot more about editing recordings and fixing issues. Especially, I recently bought Melodyne, which is a great tool for fixing incorrect pitch and timing in recordings. With this I managed to get this song to a point where I'm actually happy with the result.
Also, here's a little bit of advanced music theory that I applied in this song. This song contains a bunch of very long chords without any vibrato, so the exact pitch of the chords is very audible. The opening chord for example is a major third. If you make that pitch perfect for modern tuning, the chord is actually slightly out of tune. I explained that years ago in this blogpost, but I had never gotten around to actually applying that knowledge. Now, using Melodyne's precise pitch control, I finally could. I've pitched the top note of the opening chord slightly lower than it would be on a piano, given the major third chord just intonation (also called "pure intonation"). While it's possible to play like that right way, my cello skills aren't good enough to control the pitch I'm playing that precisely in a recording.
Similarly, the minor thirds, fifths and major sixths in this song are also just intonation. Unfortunately Melodyne couldn't figure out some of the chords, so I couldn't apply it everywhere.
Oh, now that I'm talking music: my album is coming out in just two weeks! It will release on streaming platforms (Spotify, YouTube and others), and I'll also sell it on CD, including a bonus disc without the narrator. Send an email to firstname.lastname@example.org if you'd like to buy a physical copy. It doesn't contain The Remains of the Mountain, but it does contain 47 minutes of other awesome cello pieces I composed. I'm really looking forward to finally sharing it with the world!
The CD edition of my album contains a 16 pages booklet with art by Marissa Delbressine, and a bonus disc with a version of the album without the narrator (so purely instrumental).