Tag «GGJ»

Global Game Jam 2017 – Post Mortem



In January 2017 Jana and I were part of the Global Game Jam, as usual. We had some doubts we'd do it again in Leipzig, because every year it gets a bit harder to wake up in the HTWK (the university where the jam site is located) without a shower or hot water at all. Yes, we're getting older. Our plans went back and forth between not going at all, or driving back home for the nights, or getting an AirBnB. In the end we did it as always.

Thankfully! Commodations aside, it was a very nice experience. A few days before we made some key decision for our jam entry, especially the choice of target platform: VR. As we don't own a full-blown HTC Vive or so, we made a Google Cardboard game for Android. I think it turned out quite well, because it was doable in the scope we aimed for, even though it was our first VR game.

The theme itself ("Waves") wasn't very interesting, but it slowly formed the direction of our game. When we began to think in terms of sound waves, we soon decided that some radio in our game would tell the player what to do. So you'd be in some kind of labyrinth, trying to find that radio by searching around and listening to its noise, and then activate it, because it tells you how to reach the exit. This became less important later, but it's still in the game. So while we don't feature "waves" promintently, the game was definitely inspired by it.

One of the first WIP screenshots

What we have now is an atmospheric stealth game where you play some thief or treasure hunter in a haunted mansion. You walk around, steal things (mostly valuables), evade scary ghosts, use keys, and find the radio and the exit. As the game is a Virtual Reality game, the player's movement is restricted to gliding between square floor tiles in cardinal directions. This is very similar to my Ludum Dare entry Wood for the Trees from last year, but this time the limitation was imposed to us because of the nature of VR games. Free movement was out of question, and a typical "magically beam to place" approach could have been a bit too complex for our first 48 hours VR game. In the end, the limited movement also helped to define the simple but effective behaviour of the evil ghosts, which don't follow you but patrol between the rooms in the same manner as the player.

As usually our games have a somewhat high entry barrier, one of our goals was to simplify controls. With a VR game this seemed easy to do - you don't have much different input methods anyway. All you can do in our jam entry is looking around and take stuff by looking at it for a short time, which is why Jana had the idea to name it Hands Off Thief, as you steal without using your hands... Initially I planned to have the same approach for walking around the rooms - an arrow on the floor tells you if you're allowed to walk into that direction you're looking, and if so, looking at the arrow for a short time moves you to the next room. But it turned out that this is a bit awkward, as you'd always have to look down to walk around. Now players have to activate the trigger (i.e. touch the screen of their phone) when the arrow is shown, which feels a bit more natural.

I prepared by reading articles about VR development for mobile platforms. It was helpful to know that there are some heavy restrictions regarding drawcalls and polycount in order to maintain 60 frames per seconds on a phone. This way I wouldn't be surprised by bad performance at the end of the jam. Thus, from the beginning the Unity project was set up to use cheap vertex lighting, and I programmed a simple occlusion culling i.e. only the room you're in and adjacent rooms get rendered. We also tried to minimize the amount of different materials for everything.

The first thing we did when we started the development was trying to find out how big the virtual rooms should be. Several hours went into discussions if the walls are too near or too far away, if the ceiling is too low, or if the texture scale on the floor is okay. Probably not everything makes sense in the final game; some things were kept for the atmosphere. Especially the lighting was a bit of a headache, until we went with strong darkness and the player having a point light at their center. Every ghost has two lights - on for his current position, and one for the target position. This way, a player can predict if the ghost soon will be floating towards them. And from time to time a lightning strikes (even when there's no window), so there should be enough to see anyway.

Of course we had some help! When he wasn't sleeping Björn Grunewald created some 3D models like the loot, and my brother Ludwig 'KingLudi' Hanisch - as usual - agreed to compose the music. Ludwig was in another city, and when I sent him some screenshots it was very late, so I wasn't sure if he was still willing to do it. But he sent a nice track in time. Afterwards he wasn't content with it, as it didn't quite play along with the visuals. The problem was that Jana and I were late in defining the atmosphere and couldn't send him a meaningful video, so he only had the screenshots with bad lighting as reference. A few days later Ludwig sent us a new, much more eerie track which fit perfectly, and I updated the game. You can play this new and better version by downloading the APK on itch.io.

Overall the Global Game Jam was cool; you might also want to have a look at the other games created at our site in Leipzig. By the way, one aspect I learned to dislike about the GGJ website is that you cannot edit your entry afterwards. I understand that they wouldn't want people to fake their entries, but it would be nice to be able to offer patches, or just add stuff you forgot.

We also might choose to register a jam site in our own city next year, because we found some potential co-jammers!

> Try Hands Off Thief here! <

Save

Save

How to make an AAA game in 2 days

Before the Global Game Jam 2016 started I gave a short talk about how to make an AAA game in 2 days (as the GGJ is 48 hours long). Of course I have no idea how to make an AAA game, but I thought that sounds more interesting than "How to polish your game in a day". So yeah, it was just about giving a jam game that small bit polish so it wouldn't look that much like a jam game.

I started by talking about some experiences I made years ago: how 2K contacted me as they had this new game - Assassin's Creed - and they already worked a day on it. Their prototype consisted of the protagonist Günter (or so) walking around. But they didn't know how to make it any better. That's why they consulted me. And here is what I told them.

First I noticed how the movement wasn't very smooth, and I showed them how to use tweens so the player character would look professionally animated, even though it was a single sprite. It was a bit of a pain, as tweens need careful coding. For example, as long as the player is tweening, don't let the user change the direction, and so on. But all the sweat paid off.

(If you use Unity, don’t use iTween. DOTween and LeanTween are quite okay, though!)

Afterwards, I explained how the same applies to the camera: the more movement is there, the better. We all know how cool AAA games use tracking shots for everything. You can do the same! But using Lerp() to make the camera somewhat smoother can be tricky, as sometimes the player can be too fast and not see where they're going. This is why we add some kind of foresight. This talk from the GDC 2015 can be helpful, even when not doing a sidescroller.

Apparently the original AssCreed had some teleportation mechanic, but it looked bland. I advised Lionhead to add some transition effects. Those can also be useful when the player gets hit - just color the screen completely red!

My game Snakoban has another kind of effect for changing levels. It was a bit of work, but everything is better than just changing screens without any transition.

Snakoban

"Never forget to shake the screen," I told the AssCreed developers. "And of course, use particles everywhere." Every new particle in the game is another step to AAA, as they give instant feedback to the user that something is happening or has happened. And they look nice, too, so even as pure decoration they are useful.

Our very own game prototype Power of Love has trails for the player characters. It looks cool, because it adds the illusion of velocity, speed and fast movement.

Power of Love

Even with all the improvements so far, Blizzard's prototype looked kind of flat. So I introduced them to the concept of layers - giving the player a shadow, even a simple one, already creates the illusion of depth. Having a foreground and a background with different scrolling speed ("parallax scrolling") is awesome too.

Although they already worked on the prototype for a day or so, they still missed the most important thing in a game (or any medium, really): emotions! Always take care your game evokes feeling. This is why we improved the story a bit, worked on the colors and chose a cool music that fits. (I think they changed the story later.) Anyway, humor is also cool, but I don't know much about that. It’s up to you, dear reader!

Of course, music is great, but sound effects are needed, too. Just like particles, sounds add a lot to the feedback and the atmosphere. Foot steps, "ouch" sounds, you name it. Sound can even create things that aren't there! Want a forest full of animals? Just play a sound loop with rustling in the leaves and singing birds, and your graphics department can leave early, because they won't have anything to do.

Obi Wan gives a good lession, in this regard: it's only real if it has a sound!

Obi Wan and the sound of laser

For the final touch Crytek added simple light effects, to focus on the important things in the game (the player), and increase the atmosphere. Nobody could believe this was still the same game, just with a bit of bling created within a few hours. And we all know that Assassin's Creed became a big hit!

(You can download the "game" here. It was made with Monkey-X. The tileset is from Silver IV. The dust is from here. The first music track is by my brothers, the second one by Matt Goles. Of course, Assassin's Creed is a trademark of Ubisoft.)

Jana visited Ramallah for a workshop

Ramallah Street

It's always a great experience for me traveling other countries. Not only to visit new places and meet different people, but as a welcoming reset of perspective. Getting to know places like Ramallah in Palestine is such a journey that often helps you experience things differently than you thought they would be. In Germany we mostly hear about Palestine in the news, when terrorists are bombing people or a new election is running. My friends and family were worried for my safety, not only because of Palestine, but moreover my plane landing in Tel Aviv, Israel - also mostly known to Germans for bombings, stabbings and elections.

Only a few people know that students in Ramallah study Computer Science, create games and were going to take part in the Global Game Jam for the first time this year.

Ramallah city

As it turns out, everything is different than expected and my invitation to give a workshop for students became a pleasant trip. Of course, the infamous questioning of Israeli airport authorities every flight is starting with, the twice, thrice check of your bags, is annoying. Whatever, you tell them the story of your life in twenty minutes and be done with it...

As a German traveling this region is somewhat special, as you get reminded of your country's own history and the parallels to the ongoing conflict more than once. It's not only the Holocaust I'm talking of, but also the separation of a country through a wall. A separation that not only cuts off people locally, but also mentally. It's saddening how few everyone knows about each other, despite having free internet access and therefore unfiltered information. But I guess a separation like that sits deeper than the lack of information and I'm not sure my short travel report will give this deep wound any justice. So let's focus on the stuff I understandgames!

Every year on the last weekend of January the Global Game Jam takes place. The whole world jamming to one theme in local hubs together and Ramallah was jamming this year, too. Thanks to the French-German Cultural center, Thorsten 'Storno' and his team from the German Indie festival A Maze, the freshly founded local maker space and the Palestine game developer Pinch Point this was going to happen. Ammar Tazami from Pinch Point and I were giving workshops in advance - about game art and design for game jams from my side, and Ammar about 'Working with Unity'.

The participants where Computer Science students from the whole country, but mostly the Birzeit University near Ramallah. The number of women in my workshop was astonishing. Okay, one participant 'cheated', by bringing his two sisters with him, which was great.

Although, according to an interview with Palestine-based marketing and PR head Katy Hanna 70% of the Birzeit graduates are women. Are there really more women studying computer stuff? I would like to know more about that!

Ramallah market

Ramallah was founded by Christians and still has a lot of churches. And therefore also bars that serve booze. Although well known, Ramallah only is one part of two cities growing into each other. The bigger part (ca. 120.000 inhabitants) is Al-Bireh, it's Muslim sister.
What confused
me and a lot of people I met is that Ramallah (together with Al-Bireh) seems to be a city like any other. Sure, oriental with hundreds of one-man street shops and carts, loud, vivid, crowded and no car movement without reflexive honking. The streets often miss some kind of pavement, which is either non-existent or used by palms and olive trees, therefore people walk between cars. If they would have the ability to honk, they probably would.

Ramallah crowded

But between women wearing colourful head scarfs (or not) and men sometimes clothed in thawbs, you may spot hipsters and always well-dressed young people. They have Macs, iPhones and probably visited or even studied outside of Palestine. The only difference (well, I was there for three days) is the ubiquitous sense of being locked up. Even though Palestines can travel, it's not an easy process and has to be allowed by Israeli authorities, while flights can only happen from Jordan. You might easily forget all this while sitting in one of the many cozy cafés or bars, drinking delicious Arabic coffee with cardamom or the new Palestine Shepherds beer.

workshop

Therefore it was a pleasure to meet some of the local developers, although for a much too short time. My talk mainly focused on simple tools to restrict yourself. I feel that beginners often try to add too much to a picture or game in order too make it more interesting. But the better approach would be to focus on a few elements only and flesh them out. In the end I gave the students a small game Friedrich and I created together shortly before I went to Ramallah. Students had the task to exchange the games graphics and come up with new graphic assets, remembering all they have learned in the last three hours. One of the students, Ahmad Nairat, sent me his graphics (the one on the bottom):

LongTongue_Mod

Two weeks after me, Thorsten and Matthias Löwe came to Ramallah to prepare the Global Game Jam. Look at what the guys in Palestine created!

See my workshop pdf here.
Load our game Long Tongue here.
See more of my fotos from Ramallah here.