A Light in the Darkness – Co-Op Online Multiplayer Game Made in ~52 hours

A few weeks ago, I participated in the Ludum Dare 30. The theme was “Connected Worlds”, and I thought “Hey, nevermind that I never made an online multiplayer game before, I should totally try to make one in 48 hours!” Unexpectedly, it actually turned out pretty great – you can read more about that in my postmortem if you’d like to. And below you can find the ~52 hour post-compo version with a few bugfixes and sound effects!

You are flame bearers, braving the darkness,
carrying letters and escorting travellers
through the eternal darkness between
the mountains to the south and
the sea kingdom to the north.

Overcome obstacles. Carry the torch on. Work together.

Go north. Ignore sounds in the dark.

And most importantly: Don’t let the flame die.

Send the link to a friend, and play it in your browser with the Unity plugin!

Download it for Windows, Linux or Mac!

Here is a video with clips of lots of people playing it on dvcolgan’s stream:

A Light in the Darkness – Co-Op Online Multiplayer Ludum Dare Game

Used Assets:

A Light in the Darkness – Postmortem for a Drop-in/Drop-out Co-Op Online Multiplayer LD Game

…but first invite a friend or two. It’s dangerous to go alone!

The rating period is slowly but surely nearing its end, and I thought it cannot hurt to write a postmortem for the game I made three weeks ago. I wish I would’ve promoted the game more (it’s my first online multiplayer game after all!) and I wish I could’ve played more games, but my master’s thesis was jealous and demanded I spent more time with it. That being said, I have a free minute now, so here goes nothing!

Hungry Crocodile: An experiment with webcam/marker-based interfaces

For the July Berlin Mini Jam, I experimented with the input interface. Turns out a cardboard contraption with fiducial markers and Unity3D + NyARToolkit on the software side makes for a fun crocodile maw control system! I didn’t finish the game (you can’t win or lose, you can’t even score), so I declared it a story-focused artgame. That’s how it works, right?

Hungry Crocodile

The crocodile is hungry and wants to eat,
but despite all the food, it can’t!

Because of explosions.

Moral of the story:
Explosions make everything better.

Play in your browser!

Download for Windows!

You’ll need these two markers: Hiro and WD (taken from here).
You’ll also need cardboard to build the maw.

(If you’re wondering why I didn’t use the standard Hiro & Kanji markers –
I just took what was lying around from earlier experiments.)

Despite being unfinished, it was a lot of fun to present:

Hungry Crocodile: An experiment with webcam/marker-based interfaces

Here’s a more detailed look at the cardboard maw:

Fiducial markers to find the positions of the upper/lower jars.
Nom nom!

Credits:

Screamy Bird, A Yelling Game Prototype For A Small Crowd

It seems like everyone and their dog has made a Flappy Bird clone by now, but so far I just didn’t feel inspired. That changed at this Mini Game Jam: I wanted to make a game with audio control (which I had tried before) and needed simple gameplay for it – and then I realized that a scrolling avoider-type would fit perfectly. So without further ado, this is how Flappy Bird might have played like if it was made by the GNILLEY developer:

Screamy Bird

Screamy Bird, A Yelling Game Prototype For A Small Crowd

Yell to make the bird fly up,
be silent to make it fly down.

Fun for the whole family AND the neighbors,
even if they aren’t in the same room!

Play in your browser!

Download for Windows!

I don’t know where people could possibly play this game without bothering anybody, but it was a big success fun-wise and was well received in the presentations. My favourite part is that it’s easily playable with crowds!

(And it would probably be perfect on smartphones, haha.)

Credits:

  • Programming: Tobias Wehrum
  • Font: GemFonts

Thanks to:

  • The stars of the video! If you want to be named and/or want to have a link here, please tell me!
  • Huel Fuchsberger for helping me with the video editing!

Apologies to:

  • Anybody who was sharing a room with me while I was developing this. I’m so very, very sorry.

 

And now, because social media websites love pictures when linking, here’s a picture. You’re welcome, social media websites.

Red Ball, Blue Ball

This jam, I didn’t even really want I’d participate and instead just sit around and talk to people, but two hours in I was like “Everyone around me is busy, so let’s make something too!”. I only had 6 hours left and no concept, but it’s not like that ever stopped me…

Red Ball, Blue Ball

Bounce your ball back and forth!
Build walls at the right moment!
Claim the star once and for all!

(You’ll need two XBox 360 controllers.)

Controls:
Left/Right Stick: Play your diamonds.
Left or Right Back Button: Place a wall. (Has a cooldown.)

Play in your browser!

Download for Windows!

Red Ball, Blue Ball

Credits:

 

Lessons learnt while making SnakeFormer

This Ludum Dare I made SnakeFormer, a short puzzle game combining Snake with pseudo-physics platformer mechanics.

Turns out that lava is pretty hot.

If you’d like to, you can play it here.

Like just about every game, some lessons were learnt, and I thought I’d write a small piece about them. It’s 12 hours before the judging ends, and nobody has time to read through a novel, so I’ll keep this short!

Game & Level Design

If a level has the right difficulty for you, it’ll be too hard for everybody else.
I swear I’ll remember this lesson one day, haha. That doesn’t necessarily mean “make it easier”, because in a level-based game, there is another approach:

When in doubt, make more levels.
Easier levels, preferably. I should’ve spent a lot less time on the menu and instead made more transition levels. Which brings me to:

Don’t introduce more than one mechanic per level.
Level 2 introduces: Lava, falling stones AND growing the snake. That’s, uh, a bit too much.

Even if you think the goal is clear, it might be not.
So – better make it clearer. The goal in my game is to exit the screen to the right, like in most platformers. Some people thought that they had to eat the whole level though, which is a more Snake-like goal.

Put instructions in the first level.
Some players don’t read the instructions before starting the game – but once they are confused inside the game, make it as easy as possible to re-read them.

Art, Sound & Music

Glow is freakin’ cool.
Seriously.

Homemade sound effects can be quite entertaining.
Any game needs sound effects, and since I’m no good at making them digitally, I tried to use my mouth for most. Turns out that’s a lot of fun to listen to, and I actually had a few people praise my sound design, especially the eating- and the end-of-level-sounds.

Abundant Music (music generator) + GXSCC (a MIDI chiptunes-like renderer) are the best team.
I’m no musician, so I had to use generated stuff. Those two are PERFECT. It still took very long to find songs that sound well together, but that definitly was time well spent.

Cheery music for hard and punishing gameplay.
Gnhihihihi. So much fun while watching streamers.

Process

Trust in the process and stay open for new ideas.
The concept I started out was a lot more boring, but but sometime after implementing the stones I asked myself “Okay, so those stones fall – what if gravity affects the snake too?” – and then SnakeFormer was born. So even if your initial idea isn’t perfect, go for it anyway instead of giving up, it might evolve into something great later on!

If your idea comes late, don’t worry! There’s still time!
I don’t think i started any development 12 hours after the start of the compo – 8 hours sleep, 4 hours pondering. I think it paid off!

ToDo lists are great to maintain focus.
Always use a ToDo list so you won’t lose track of your next tasks. Workyflowy works best for me.


Thanks a lot for reading! I hope you enjoyed it as much as I enjoyed writing it.

Maybe I made you a bit curious about my game too? If you want to, you can play SnakeFormer here – and I don’t think I have to mention how much I like comments and ratings, do I?

I’m done here.

 

Is it already too late? Nope. Time for a Best Of Ludum Dare 29!

Woah! Look at all those games!

Hey folks! So, this time I’ve only rated 82 games. Shame on my, I know – I’m busy with my Master’s Thesis, but apart from that, I really have no excuses. I didn’t think I’d actually get around to do a Best Of list this time, but since those games are just so incredibly great I’ve made one anyway now!

So here’s a list of the best and/or most interesting games I’ve played – and so should you, in my opinion! But hey, I know it’s only three days left, so just pick the cherries. (Hint: They are all cherries.)

press c to cat

A few weeks ago I visited the A MAZE./Berlin Festival. Apart from showing Catcher and talking to lots of other indie devs, I also visited the #weirdkids workshop on digital improvisation and made a weird glitch art thing with the base projects they gave us. Proudly presenting:

press c to cat

press c to cat screenshot

press c to cat
press d to dance
press f to frenzy!

(If you have epilepsy, don’t click on the following links!)

Start it right in your browser!

Download for
Windows / Linux / OS/X

press e to exhibit

When Fernando and Christoffer told me to give them a build after the workshop, I thought it would be shown in a presentation for a few seconds. Instead, I later found out that it was shown in the cellar exhibition. So cool!

press c to cat at the cellar exhibition!
press c to cat at the cellar exhibition!
A cute little explaination sign
A cute little explaination sign

press c to cat wasn’t made for long exhibitions at all though – the cats spawned automatically, but never despawned! So soon, it looked like this, with no cats recognizable anymore, haha.

Despawn? Ha! Nope.
Despawn? Ha! Nope.

press r to react

When I entered the exhibition space, there were lots of people sitting in a circle in front of the exhibits – and it turns out they all had wondered about this strange cat game that seemingly contained no cats, only glitchy geometry. I restarted it – and finally they saw the cat and went “Ooooh”, haha. It was awesome!

After the festival, I got some reviews on Twitter too:

Casual catting was epic!!- Ida Marie Toft

great stuff. i couldn’t stop catting…- Sabine Harrer

hold f for fanfiction!

Also, lying next to the monitor, I found the BEST THING EVER – a short fanfiction!

Fanfiction!
Fanfiction!

Responsible for this lovely work of poetry are Titouan Millet, Max Cahill and Michal Marcinkowski. The first piece of fanfiction I ever received! Thanks a lot, guys!

hold c to credit

  • Idea and messing with stuff: Tobias Wehrum
  • Music: Moritz Ufer
  • Aaaall of the other assets (and a lot of the code) is from the weirdkids workshop!

Catcher at the A MAZE./Berlin Festival

Introduction

I’ve been to the A MAZE./Berlin Indie Festival last week – and apart from meeting a lot of fellow game developers, playing awesome games and making weird cat glitch art at workshops, I’ve also been showcasing Catcher!

It’s been a rollercoaster of joy and frustration as I tend to be emotional when it comes to my creations, but I want to know what people really think – so often I just watched people play without telling them that I made the game. It’s incredibly humbling to see people pick up the game, try it for a short while and then walk away frustrated because they don’t get it. On the other hand, it feels so good to see people finishing sector after sector and still trying after dying countless times in the later levels!

I got lots of valuable feedback. The most important aspect to me are my observations regarding accessibility – it’s okay if people decide that the game is not for them, but it’s NOT okay if they just don’t understand how to play. Following are are the main problems and how I intend to solve them.

Using the right mouse button to close the net

Some players didn’t get that they have to use the right mouse button to close the net.

While this was explained in the wordy tutorial text in the first screen, almost nobody read that. (The best way to hide secrets in your game might just be in long text passages.)

An image might help because it’s faster to understand and draws the eye more:

The new image explaining the controls.
The new image explaining the controls.

This will be shown until you have finished a level where you catch at least one enemy with the right mouse button. (You can also catch enemies by making looping motions – but this is a lot harder to pull off later and players should definitely know the right mouse button method.)

Damage feedback

Some players didn’t understand what to do at all, rammed their ships into enemies and didn’t understand that this hurts them.

While I could explain this via text, I think that’s mainly a feedback problem with three portions to it: What happened, where did it happen, and what was the result?

After my improvements, when you touch an enemy with your ships, the feedback looks like this:

  • What happened: “Ship Collision” is displayed. A damage sound effects plays. Bright damage particles spawn at the point where it happened.
  • Where did it happen: The ship that collided blinks red for a second.
  • What was the result: A newly introduced healthbar at the top gets smaller. (Health was always in the game, but previously only expressed in % in the upper left.)
The newly introduced healthbar, collision particles, feedback text and a red blinking ship.
The newly introduced healthbar, collision particles, feedback text and a red blinking ship.

The healthbar also refills visibly between levels, which will hopefully teach the players that their health is always full when a level starts. (One less thing I previously had to express through text, yay.)

Little movements

Many players had problems with little movements. In most games little movements will be tinier and more precise – in Catcher they just don’t work at all right now and result in big unwanted turns.

I haven’t tackled this yet, but I’ll probably change the controls so they react less to little movements. This shouldn’t change how the game is played too much because right now experienced players mainly make big movements anyway – because small movements are currently imprecise and useless.

Will this work? I don’t know – but in two weeks there’s a local playtesting event here in Berlin, and I’ll watch players there. Keeping my fingers crossed! And if not: Back to the drawing board with me.

Other improvements for the next release

Other things the next release (probably soon!) will have:

  • Particle effects for nearly every enemy now. The game looks SO MUCH more lively now.
  • Lots of little bug fixes.
  • Visually improved catcher ships! This one was due for a long time now. They’ll point to your mouse when being apart from each other, and dock when they get close.
The ships turn towards the mouse.
The ships turn towards the mouse.
The ships dock together.
The ships dock together.

Thanks for reading!

After posting all those status updates on TIGForums, I thought I had to start here (and at IndieDB) too. I hope you enjoyed it – it’s just about the first time I’m posting updates on a game that is not out yet, so it’s a bit unusual for my blog.

If you’d like to play the game, just click here
for a Unity webbuild and desktop downloads!

Heroes in Pension

Last month, a friend asked me to help out a group of his students at the School for Games who were missing a programmer for their student project. Charming art and not that much work for me, who could say no? And now, a month later, I proudly present to you…

Logo

Teens are attacking the old man’s home,
but a hero knows how to defend himself
even if he is already in pension!

Shoot lawn gnomes, flowerpots and wheelchairs
out of your trusty cannon and show those
whippersnappers how to respect one’s elders!

Play it right here in your browser!

Later on, there’ll be versions for Android/iPhone.

Credits

Team:

  • Cihan Ceyhan: Lead, Game Designer, Web Designer
  • Philipp Kapp: Game Designer
  • Sibylle Hell: Art Director, Animator
  • Dennis Dabergotz: Game Artist, Animator
  • Tobias Wehrum: Programmer

With assets by:

Special thanks to:

  • Norbert Haacks and the S4G team