Tobi’s Unity Utilities

When you google “unity utilities”, it seems like everyone and their dog has one of those. Well… now there’s one more of them! Open-sourced, well-commented, with descriptions, examples and class documentation. Get it while it’s hot:

GitHub repository

Class Documentation


  • Countdown: Useful for things like cooldowns or spawn delays. It is also helpful for tweening things by using the PercentElapsed property.
  • EditorHelper: Gets the [Tooltip] attribute content of fields for editor classes. Might get more helper methods in the future.
  • LINQExtensions: A collection of extension methods for IEnumerable, List and arrays.
  • MathHelper: Helper methods for time-independent eased lerping, mapping and angles.
  • MeshCreator: Makes it more convenient to create meshes via code.
  • NoiseOutputValue: Enter a range and a speed in the editor, get an output value that fluctuates over time using Perlin Noise.
  • RandomBag: A RandomBag gives you random items from a group while ensuring that in a certain interval every item was given back the same number of times.
  • Range: Editable data types that take an int/float range. Used for things like “Spawn 2 to 4 enemies.”
  • RollingArray: Collection that keeps the last x elements that are added to it.
  • Singleton: Allows easy and convenient creation of a Singleton. Optionally makes a Singleton persist between scenes while ensuring that only one exists.
  • UnityHelper: Contains a plethora of useful extensions and helpers for Transform, GameObject, Vector2/3/4, Rect and more.
  • XmlHelper: Serializes data to XML strings and makes accessing optional element content and attributes in general XMLs easier.


To use the scripts, just drop them into the Assets folder of your projects. Or better yet, make an “Assets/Extensions/TobisUnityUtitilites” folder and drop them there. Hurray for proper organisation.

You can also just use selected scripts, but you should check the “Dependencies” section in the respective folder to make sure you copy everything you need.

Generative Art – Sketches #036 to #042

The last batch was a bit mediocre, but this one has some really strong candidates! I’m proud to present:

#036: Among the Stars

Based on a work by the ever-fabulous Titouan Millet! It turned out not to look like the original too much and instead has its own charm.

s036_among_the_stars_01          s036_among_the_stars_03

     s036_among_the_stars_08     s036_among_the_stars_07

s036_among_the_stars_06     s036_among_the_stars_05     s036_among_the_stars_04

#037: Energy Transfer

An experiment with agents and attractors.

s037_energy_transfer_01     s037_energy_transfer_03     s037_energy_transfer_02

Generative Art – Sketches #029 to #035

It’s been over a year since I last posted a collection of small generative art sketches – but that’s not because I stopped making them, I just got a bit lazy with posting. There’s quite a lot queued up now! And without any further ado, here are candidates #29 to #35.

#029: Plasma Blob

This one isn’t terribly impressive, but it was made in a few minutes to demonstrate Processing to a colleague and is reasonably nice to look at.

s029_plasma_blob_03      s029_plasma_blob_02      s029_plasma_blob_01

#030: Mara’s Ocean

A typographic variation of #028: Isles using the Mara’s Eye font.

s030_maras_ocean_01      s030_maras_ocean_02      s030_maras_ocean_03

s030_maras_ocean_04      s030_maras_ocean_05      s030_maras_ocean_06

#031: Chimera Maker: What Has Science Done?!

The sillyness levels go through the roof with this one. For executables for Windows, Mac, Linux and Android and for more pictures, check out it’s own blog post!

031_chimera_maker_01     031_chimera_maker_02     031_chimera_maker_03

Canada’s Marvelous Singing & Dancing Animals

The newest entry in a series of silly animal-themed generative art: An animal music visualizer. Well, it started out as a music visualizer, but I don’t think it would work with many tracks and it needs a lot of configuration. It makes for a fun video nonetheless. I proudly present: Canada’s Marvelous Singing & Dancing Animals!

The song is Python by Rolemusic and the images used are all public domain/CC0.

If any of the animals aren’t Canadian after all, this is an unintentional error; I just identified them by the way they move their snouts.

Into Oblivion: A Music Visualizer made with Processing

With my newest generative artwork, I embark into the wonderful world of generative/reaction animations: It’s a music visualizer.

I’ve used spectrum analysis (powered by minim) and Processing to make a reactive artwork. It works especially for songs with breaks and theme changes where it becomes really apparent that the result is really dependent on the currently played music.

If you are Windows, you can download it here – edit the default.xml to use your own music, change the color scheme. Check out the readme for the controls!

The source code is, as always for my generative art in Processing, available at the GitHub repository and open source. You can open it with Processing 3 – just import Minim.

Here is a video using a shortened version of Push Every Button by Lapfox:

044_into_oblivion_01      044_into_oblivion_02      044_into_oblivion_03

044_into_oblivion_04      044_into_oblivion_05      044_into_oblivion_06

Together We Defend, A Cooperative Crowd Game Prototype

I’ve made prototypes for local multiplayer games with 10+ people before – some very successfully, some less so, but always with great pleasure. There is something magical about a crowd of people all playing the same game together. You don’t just need to design good mechanics though – the game should balance well with a few or with a lot of people, which is also hard to test because you always need a crowd. Another problem is input: While yelling with varying volume in Screamy Bird is tremendously fun, it is a bit limited control-wise. Unless your crowd is very small, giving everyone a gamepad is not an option. But these days, most people have a smartphone with a web browser, and luckily, platforms like AirConsole and HappyFunTimes make using these as controllers extremly easy!

My goal was to make a game where people have to cooperate and that scales well with different amounts of players. To ensure cooperation, the game would feature two radically asymmetric roles: the Shooter, which can attack but dies to a single hit, and the Defender, which has no offensive capabilities, but whose shield can absorb any amount of damage. In the center of the games are the Cores which the players have to defend. Enemies come in from all around the screen and try to destroy the players and the Cores, whatever is nearest. The enemies’ projectiles are heat-seeking – they will always hit something, so without the Defenders, the Core and the Shooters will be destroyed rather sooner than later; but without the Shooters, the defenders could not destroy a single enemy.

This was a jam game done in about 12 hours and everyone around me was busy, so I there was no way I could balance it properly. I solved that dilemma by assuming the role of the game master: I would sit at the keyboard and spawn enemies.

Apart from troublesome connection problems, the game worked rather well for a jam game and the crowd loved it. Here is a video of the presentation:

Together We Defend, A Cooperative Crowd Game Prototype

The video was filmed by Iwan Gabovitch and the sound effects are from the fabulous Universal Sound Effects which I can very much recommend.

Connection problems aside, I am very content with how the mechanics worked out and I think there is a lot of potential there. I will probably revisit this prototype some day and make a proper game out of it.

Ritual Breaker: A GGJ Game For Four Druids And Two Traitors

It’s been a few years since the GGJ whose theme was “deception” – a theme that we, back then, utterly and completely ignored. The only way to make up for that (I assume) is to use the theme in another GGJ! So here, after 6 years, my honor as a jammer is finally restored. I proudly present our game:


Six druids have come together to perform
the yearly Super Important Ritual.
But unbeknownst to them, two traitors
have infiltrated their ranks!

Complete the rituals, but watch out for
those which fail – and who participated!

Watch your fellow players!
Identify the traitors!
(Potentially) Save the world!

A deceptive platforming game for four druids
and two traitors with XBox360 Controllers.

GGJ Page with Windows build

Ritual Breaker (Global Game Jam 2016)


  • Elise Terranova: Art, Game Design, Hat Design
  • Heiko Weible: Programming, Game Design
  • Tobias Wehrum: Programming, Game Design, Sound Design

Used assets:

Gamestorm X Body Play Jam

A few months ago, I’ve been to the Gamestorm X Body Play Jam – a game jam about making physical games which use the players’ bodies as the central element. And what a jam it was! The ideas were flowing, and our team of four (comprised of Xanto, Juri, Nina and me) didn’t just finish with one, but two working games. To round the event off, the other games were incredibly fun to play as well and in the end I left exhausted from moving around so much, but satisfied.

Before I present the games, here is an awesome impression video from the jam. A huge thanks to the Gamestorm team for their filming and editing work!

Gamestorm X Body Play Jam – Impressions

Our first game: Dance it off!

The development of our first game started of really smooth: Juri suggested a dancing game (“I know nothing about dancing, but…”) where you get some kind of behaviour instructions and have to find your partner. After thinking of the board game Inkognito and pondering how to make partners identify themselves and what should happen if somebody wrongly thinks they found their partner, the game shifted a bit from “stealth/bluffing while finding the one partner” to just straight out “party”: Everybody gets 3 dance styles/moves (like “tango”, “picking apples” and “Michael Jackson”) and has to find their three partners as quickly as possible. The first one who achieves that wins the game!

Body Play Jam: Dance it off

Apart from a few hang-ups, the game worked really well. The only problem I can see is when one of the partners doesn’t know how a certain dance style looks like. This could be fixed by having a game master whose sole job is it to explain dance moves.

Developing this game teaches me once more not to give up too early. This is not a game we could test in our group of four, so I suggested we try to think in another direction instead (which resulted in the second game, so no regrets here!), but when we later had people to test it with, it turns out that it worked pretty much out of the box! The biggest thanks goes to Nina here – while we were pondering some details for the second game, she used the opportunity to playtest this one with the organizers and she singlehandedly created dozens of dance style cards.

Our second game: Slurp!

Again after a suggestion by Juri (“I know nothing about biology, but…”), our second game was roughly based on the idea of cells absorbing other cells.

At least 8 players are formed into two teams, and in each team, players are paired up. The two players in each pair hold hands, thereby forming a small circle – and then they try to enclose enemy players in it, either by throwing their arms over an enemy player or by briefly letting go of their hands and then closing them again around an opponent.

Once you caught somebody, you yell “Slurp!” and the caught enemy has to let go of their partner and stay inside your circle where they can try to hinder you by being uncooperative when moving. Caught players can be freed again when one of the enclosing players is slurped.

When one team has caught a certain amount of enemies at the same time, they win!

The rules are sometimes slightly confusing to execute in the heat of the battle and it’s not always clear who caught who first, but the ensuing chaos was still a lot of fun.

Cupcake Puppeteers

Apart from us, there were two other groups. The first one made Cupcake Pupeeteers, an improv game where players are paired into puppets and puppeteers. The puppeteers are given a scenario (for example “Hogwarts”) and characters (Harry Potter, Voldemort etc.). Then they have to play the scenario out by moving their puppets – and the puppets have to guess in which scenario they are.

Cupcake Puppeteers

It was a bit hard to direct puppets bigger than you and I feel like the game would be better with commonplace scenarios (like “in the kitchen” or “at a shop”) instead of pop culture scenarios which needed specific knowledge, but overall it was quite enjoyable for either party – “masterfully” directing somebody else on one side and trying to deduce what the heck your movements are supposed to be on the other.


And here comes my favourite of the evening made by yet another group: A “yoga game” with a master teacher that has transcended so far that they can freely levitate, while the players have to try to imitate the teacher as closely as possible with the help of assistants.

To make this game possible, the teacher is actually lying on the floor. They are filmed by a camera and projected on a wall to make it seem like the teacher is upright instead of lying down.

While the teacher is striking poses and the players strive to get as close as possible, a helper is going around and appoints players who are not doing well to be assistants. Those assistants help players who are still in the game. And that’s desperately needed, especially once the teacher begins “levitating”.

The last player who is still in the game wins and is the teacher for the next round.

I can’t even begin to describe how much fun this game was! The concept itself is already funny, the strange moves of the teacher quickly become absurdly hilarious and even when I dropped out and became an assistant it was equally enjoyable and satisfying to help other players. My favourite part was when the teacher gently levitated of the “floor” and started swimming – first up, and then sideways and down, a point in the game where the assistants had to work as hard as the remaining players.

The Greater Book Of Transmutation: A Procedurally Generated DIY Book for the NaNoGenMo 2015

After missing last year’s NaNoGenMo (the generative cousin of the NaNoWriMo: the National Novel Generation Month), I thought I should finally take the plunge this year. Nevermind that I never made any generative text before.

The Greater Book of Transmutation is mainly based on a free association database that I found here. It’s about making things, using materials that are commonly associated with them – e.g., a cat might be made from “being feline”, “claws”, “meows” and “being graceful” and “tail”. Throw in a system of tools with actions that use/transform materials, a bit of word classification, a markov chain latin words generator, a lot of silliness and bit LaTeX, and you get:

The Greater Book of Transmutation Title

You can find the resulting PDF here.

The source code (MIT license) written in Python is also available.

An example:

How to make a book in 12 easy steps:


  • 10 hymns
  • 178 readings
  • 10 clear concepts of poem
  • 4 clear concepts of guide


  • bucket with water
  • vessel
  • pet unicorn
  • ballpoint pen


  1. Let vessel cool down.
  2. Heat vessel.
  3. Dip 10 clear concepts of poem into the bucket with water.
  4. Feed 10 clear concepts of wet poem to your pet unicorn.
  5. Let your pet unicorn lick 10 hymns.
  6. Pet your pet unicorn.
  7. Wait for a long time.
  8. Wait until your pet unicorn poops. Receive 124.89 ounces of a very dirty pile of “wet poem”
  9. Draw a magic circle on the floor using the ballpoint pen.
  10. Draw a cross into the circle and place 10 licked hymns, 178 readings, 4 clear concepts of guide and 124.89 ounces of a very dirty pile of “wet poem” on each corner.
  11. Whisper the following spell: “Alchemia implacabilis! Meio clystermitto clodigo condocefaciencia, millibi! Verca bisellatrocinium! Creditor circumbrans!”
  12. Reluctantly, a book will appear inside the circle.

That might also help those that are struggling to make a book. And if you are missing one of the materials or tools, maybe another entry in The Greater Book of Transmutation could help you make it!

Used data sources:

Catcher – Procedural backgrounds and enemy particle spawning effects

It’s been a while since the last update. I spent the months working on interesting prototypes and experimental installations, but now I finally have time again to come back to Catcher!

Since the last time, I picked up generative art to make interesting backgrounds. After a lot of experiments, I finally settled for a background that looks similar to the old one, but more interesting and with more dashes of color – and because it’s procedural, it will always look different.

I also visited the AMAZE Indie Festival in Berlin and got lots of great feedback that I used to improve this build.

Here is the changelist:

  • New procedural background
  • Made level transitions more fluid
  • Tweaked movement and net opening/closing
  • Replaced A-F rating with stars
  • Added a score malus for death
  • Added a particle mouse cursor ingame
  • Capped player ships at screen border
  • Improved “Sector Clear” screen
  • Improved rocket visibility
  • Improved level progression
  • Improved tutorial
  • Improved feedback
  • Fixed several bugs, including net collision problems with fast-moving enemies

You can download the current versions here – and if you do, please give leave me some feedback!

A few examples of the new background:

This slideshow requires JavaScript.


Another thing that changed is that enemies now have appearing animations! Instead of just suddenly being there, they are generated out of particles using Particle Playground:

2015 09 13 appear01

2015 09 13 appear02

2015 09 13 appear03

2015 09 13 appear04

Next up:

  • Prototyping and testing of two new game modes
  • Experiments with limited net count
  • Improved sound effects
  • Rework the whole ingame and menu UI