Tag «Unity»

The Sky of Bronze – The Game

As was promised in the last blog post, here’s a short article about the project we worked on in 2018 (mostly): a turn-based survival game as part of an app about the Nebra sky disk. The sky disk is a bronze circle with 30cm diameter and probably the oldest depiction of the known cosmos. It was found by treasure hunters in 1999, here in Saxony-Anhalt, and is now one of Germany’s most notable archeological discoveries.

The sky disk, as shown in the game

The project was an idea by MotionWorks, a local animation studio known for the Marco Polo series and games, and of course for a lot of other projects. MotionWorks’ plan was to create a mobile app that would teach children and teenagers about the sky disk in a playful manner: with short films, 360° pictures, puzzles, background information - and a game. So they approached us for a commission and we said yes, because educational games are satisfying to make, and because the regional and historical relevance of the topic appealed to us a lot - after all, the sky disk was found close to where we live and work.

As we only created the game and not the remaining parts of the app, we worked in parallel with other local businesses all under MotionWork’s lead. For example, codemacher was responsible for programming the app and making sure that people can use it on-site in Nebra via GPS. I.e., whenever you reach a certain hotspot in Nebra, a new animation would play. The Sisters of Design created the website and even a booklet with a comic, crafting instructions and an Android code for the app. It looks gorgeous and has a goat (the unofficial mascot of the whole endeavor) key ring pendant as a gimmick. MotionWorks themselves animated the clips and invented the story and characters: main characters are the two children Mimo and Leva who serve as guides through the whole app.

We created a game concept about village life and traditions a few thousand years ago, when the sky disk existed for quite some time already and was now worshipped and sacrificed. Thus our game does not really cover the disk (other than using a picture of it here and there), but the Unetice culture, which came around 1,000 years afterwards. This way, our game could reuse graphic assets from the rest of the app, as the animations followed a Unetice family trying to prevent their people’s demise.

Primary goal was writing a concept that would not be yet another color matching game, with bronze stars and moons in place of the jelly beans maybe. Instead we eventually envisioned a survival game on a small grid-based world, strongly inspired by board games, and this level would change constantly both through actions by the player (e.g. uncovering the board tiles, cutting trees, hunting animals) and by random events (e.g. forest fires, flooded lands). The player would walk around to gather resources like wood, meat and fur, and trade these against tools and - most importantly - bronze jewellery. Starting as a pauper, with this bronze players achieve higher and higher ranks: becoming the chieftain is the ultimate goal of the game. Such a high-score system was fitting, as hierarchical structures were established during the bronze age.

The hardest part of the game was to make the workload manageable. For example, we planned to have several mini games which would simulate the gathering of each resource. Only after creating a few prototypes for them it became clear that the amount of mini games had to be cut down to one. Instead of hunting animals with arrows in a “Angry Birds”-like fashion and similar gameplays, we settled for an abstract Minesweeper-inspired game that we could reskin for each activity (fishing, rabbit hunting, tree cutting, etc). Although this sounds like we betrayed our original goal, make no mistake: the mini games are only one part of the sky disk game. The player has to explore the world, plan their path, interact with various traders, sacrifice items to the gods, and so on - all before running out of time.

Just like in the app’s animated movies the protagonists are the Unetice children Mimo and Leva. The player plays one of them, and during the game, every few rounds a randomly chosen event happens. This was done via “collectible” cards featuring short stories describing the world and life back then. To some extent the cards also help to give the player a sense of progress, as they follow the four seasons over the span of one year - the game starts with spring and ends with winter.

Apart from being a cool project overall, it was nice that the app was showcased a bit more officially than usual. Because it has a regional impact (i.e. relevance to the region) it was funded by the county Saxony-Anhalt and by the Mitteldeutsche Medienförderung, and thus it was presented at the state chancellery in Magdeburg (the capital of our county) and later again at the Ark of Nebra. The Ark is a modern-looking museum serving as starting point for a walking tour to the look-out at the top of the ancient Holy Mountain - where the sky disk was dug out in 1999.

The Ark of Nebra

When the app was completed it was uploaded on Apple’s AppStore and Google’s PlayStore. We'd like to thank MotionWorks for the opportunity to work on this project - it was very interesting to learn about the sky disk after having seen it (or rather a copy of it) in the Landesmuseum already, and a joy to create something meaningful yet fun.

If you want to talk with us (and other enthusiasts) about our games and/or game development in general, visit us at our Discord!

Ludum Dare 35: Wood for the Trees – Post Mortem

Wood for the Trees is my entry for the 35th Ludum Dare game jam which took place in April 2016. For now I don't know how the other participants will rate the game, as the voting is still going on. Yet it's maybe time for a small post-mortem, especially as my last few entries were not really worthy for one of those.

ld35_20160418_204744_379

The theme of this Ludum Dare was "Shapeshifting", which was a good theme, or at least I heard far less complaints about it than usual. For my part I didn't have an idea from the beginning - or rather I prepared several in advance, but none of them actually motivated me when the weekend began. For some time I just ignored the theme anyway and did some physics-based experiments, but everything of that was scrapped in the end. Semi-inspired by the theme I then went on with an environmental experiment, which would be about looping and changing level tiles. A bit like our 7DRL Me against the Mutants, but this time in 3D. As usual I did all this in Unity.

My base idea was to have tiles as parts for the level map, and each tile would be 10x10m (conveniently the size of Unity's standard plane), and instead of connecting the tiles in a linear fashion or even in a grid, I would define the connections manually so they can loop or have "impossible" connections. This way, a tile could be connected to itself (this actually happens in the game)! A lot of time went into developing the system of instantiating and destroying the needed game assets on the fly.

ld35_20160416_222626_207

With this representation of the game world it's possible for the player to see things that won't be there when they move. Thus I added smooth scaling to all objects when they get spawned or removed, just to make it more appealing and let people accept this strange environment. This system also imposed some limitations which actually turned out to make the game tighter and more focused:

WoodForTheTrees_MakingOfMovement

1) The player is allowed to move only from a tile's center to the next, in cardinal directions. At first I had free movement, but this imposed problems with the tiles that lie diagonal to the current one. It would just feel alien. Restricting the movement was the only solution, and it also made the gameplay (adventure game) much more clear.

WoodForTheTrees_MakingOfFog

2) With my system it only made sense to display 3x3 tiles at once, thus I had to limit the view distance to 10 meters. This made me a bit depressed in the beginning, because it meant a pretty big, boring wall of fog in front of the player. But then I invented the "fog trees" - trees that would exist only in the fog, vanishing when the player comes near. In the end, they really helped making the distance fog less boring and even gave the game its name.

As usual I experimented only regarding gameplay mechanics, but as soon as I added the fog I naturally began to design the game's appearance. The fog had to have a colour, so I chose one I actually liked. Everything else had to look (more or less) good from now on, which helped tons with not having to do that later. If I remember correctly the pixelation post-effect shader was added at the same time, and I just liked it - I don't really have a justification for it. But it also helps to hide the fact that my 3D models are all very low-poly and have no textures.

WoodForTheTrees_MakingOfModels

By the way, this is the first time that I used Blender for a game jam; I like it more and more. It fits my style quite well I guess. For the trees I utilized a tool called HappyTree by Sol_HSA, which made it easy for me to generate four different trees and reuse them all the time. I only changed the materials.

The narrative structure of the game also developed more or less naturally: due to the fact I played some "walking simulators" beforehand I was okay with incorporating a personal story. So all content grew out of certain relationships that occupy my mind often enough. As a result it didn't become a straight story really, but more like a set of emotions I wanted to share.

WoodForTheTrees_MakingOfAdventure

I didn't plan to do a full puzzle game, but somehow I actually added enough elements like finding typical items and having to combine them, so I can now call it an adventure game without shame. Overall it's a simple game in the sense that I didn't even add a visible inventory (as it wasn't needed), but thanks to the shifting environment and the somewhat allegorical hints the game should be longer than just a few minutes.

You could say the background story and the adventure game mechanics are somewhat contradicting or at least exist in parallel only. But whenever I think of my childhood (which the story is touching), I have certain games in my mind which I played back then, and Wood in the Trees actually recreates them in an abstract way. Furthermore, the seemingly mundane tasks represent the protagonists quest for absolution somehow. The mechanics and plot combined with the fog trees, the game's name, the colors and some of the objects in the game, it all is symbolic and it's okay that only a small percent of players understand them fully.

WoodForTheTrees_MakingOfAllSketches

WoodForTheTrees_MakingOfTiles2

Right next to creating the world system in Unity the hardest part of the game was actually planning it. I'm never big with story (something I really have to train), so I just wrote down a lot of things I'd like to say. Not everything made it into the game. And I laid out the puzzle progress on paper as soon as I decided that I would actually have puzzles. But only by actually implementing them I'd see if an item would make sense or not and from time to time a whole path was changed - thankfully always for the better.

Unfortunately I was not able to follow my initial plan to make the game within 48 hours ("Compo") and had to extend to 72 hours ("Jam"). I never felt that I would actually be able to finish it, which send me to a rollercoaster of emotions during the game jam - either I was relaxed and had a "it's okay, I don't care" attitude, or I was angry at myself that I would fail at Ludum Dare yet again. I'm still surprised I actually finished - and it sure helped that for the Jam I didn't have to create my own music. I suck at this still, and don't stop hoping this will change some day. Instead I used a track by my brothers, which they composed many years ago for a game prototype Jana and I made in university. It fits the game well enough and actually adds to the symbolism of Wood for the Trees.

A monster?

After several days between me and the development I can now think about the game again. In hindsight I would change a few things, especially as players rightfully complained about those. Being able to re-read the notes and texts would be a great addition, and probably easy to do. Not removing the notes in the game would be a good start for that. Moreover, the hit boxes for the clickable objects are sometimes to small, and generally it's not clear enough if you can interact with something or not. I would add a few more descriptions to some elements in the game, and also tweak the controls so they would be easier to understand. And I would take extra-care that players find the solution to the first puzzle easily. Last but not least I'm disappointed I couldn't add any sound effects - not even some step sounds!

If I find time and motivation, I might do these changes and upload a post-jam version.

WoodForTheTrees_MakingOfPress

In any case I'm happy that Wood for the Trees already got some media attention - AlphaBetaGamer made the start (with a title optimized for SEO a bit too much), followed by WarpDoor, PC Gamer and Killscreen. Wow! It shows once more that pixel games - even fake ones - are the way to go I guess. And I visited the A MAZE (a festival for indie games in Berlin) a few days after Ludum Dare, so I even made an Android build of my game. It ran very laggy and the controls weren't working correctly, but it was cool to actually being able to show something when talking about it. Even though I didn't show it around that much I had a lot of fun - the fruits of productivity.

ld35_20160418_144327_513

If you're a participant of Ludum Dare 35, you can rate Wood for the Trees here. In any case, the downloads can be found on itch.io - have fun!

And here's a video - be aware, it's the full walkthrough, so of course it contains spoilers:

Ludum Dare #35: Wood for the Trees (Full Walkthrough)

(YouTube videos try to set cookies and contact Third Party servers!)

Ludum Dare 25: Tale of Scale – Post Mortem

On December 15th, Ludum Dare 25 started. As usual, this 48h game making compo was an interesting experience, as exciting and awesome as it was soul-crushing. But this might be just me.

Like before, I didn't have the right idea for the theme. This time it was "You are the Villain", which was a better theme than usual, but unfortunately it only triggered gameplay concepts for me which all belong into the "that was already made before" category. So the first thing coming into my mind was "Dungeon Keeper", and as much as I'd like to do a game similar to this awesome piece of gaming history, it just would be a clone without the right amount of innovation (or would it?). Among the other ideas I had were a "Pirates!" roguelike, a game where you control four bandits at once (robbing innocents and wandering around) and a board game creator where you're the dungeon master placing the monsters (think "HeroQuest" or so).

1

None of these ideas were the incentive for me to actually start developing (although I still like them). In my mind, I combined them, added features and the result got bigger and bigger, and after finally deciding that it would be too much of a hassle, I started at zero again. Then I came back to a thought I had days before, namely the thought that often, good ideas for games (mostly puzzle platformers) are those which are inspired by childrens' fantasies. So I imagined a bit what a child could think, and being able to grab the moon with the fingertips and move it around just like that, well, that seemed like a good candidate. At this point, the theme was still in the back of my head, but I tried to ignore it mostly as it obviously would just hinder me to actually develop anything. I never was good in the "Theme" category, and for that I'm sorry, but I don't think it's the category I want to shine, really.

I tried to create a Unity3D prototype out of that idea with the moon. Of course, prototypes become the real game eventually when doing a game jam, but first I wanted to see if I could actually create something like that. The main problem to begin with was the scale of the object currently grabbed, as it always has to be the same size for the player, no matter how far or near it would be away. I read something about the focal length of a camera before and I thought I had to factor this in in any case. I experimented (using some basecode I already announced in my "I'm in!" post) and searched on the internet, but it just wouldn't work right. The object's subjective size didn't stay constant, and being very frustrated, I stopped after a while.

Thus, I re-evaluated the idea of the four bandits. This one would follow the theme and I'd really like being able to control a group of (evil) adventurers - in first person perspective! In order to make it easier for myself, I started programming the movement (again in Unity3D), which would be along the cardinal directions only and also on a grid. Just like those age old games you might know, "Dungeon Master", "Eye of the Beholder" or "Legend of Grimrock". In the end, the movement worked somehow, and you could add NPCs to your party, and press a button to see all four viewports at once. Probably I could have made a more or less full game out of it, but at this point I didn't see how I could add "fun" easily and I stopped yet again.

prototype 2second prototype, no fun

With the thought of fun being the most important part of it and without really expecting any results for this Ludum Dare anymore, I got back to the first prototype, and suddenly, the old problem was gone. Thinking about the focal length was a dead-end, and just getting rid of it was the way to get it work. The only problem now was the collision detection of an object that would get bigger the further it goes. Using Unity3D's SphereCast() was the wrong direction, because the size of the collision sphere would be always the same. So now CheckSphere() gets called with a gradually increasing size of the radius parameter, and it does that a lot of times every frame - because of the simple nature of the rest of the game, this was possible without any noticable performance hits (at least on my computer). Of course, this means that every object basically has an additional bounding sphere, and that's why most objects sometimes don't behave as expected, especially those which don't have uniform dimensions.

prototype 1first prototype, working

I uploaded the first prototype of the game - just a simple demonstration of the gameplay - late in the night, and those who actually started it and "got it", said it could be awesome. Yay, motivation! Also, I earned myself some sleep. The next day I "only" had to make levels and fix any occuring bug. Also, story. Also, sound. Also, ...

I planned five levels at the beginning, and because of some very sad events before Ludum Dare, I didn't think about it too long when I realized that I wouldn't have time for all of them - as one of the levels would had have a kindergarten setting. So, three levels were made (in 3dsmax), and they describe how the protagonist is a kid with just an overly active imagination, and how this leads to an unfortunate outcome. I didn't have time for more, and the ones I made aren't really balanced/tested, so I am sorry for that. On the other side I am just relieved that the main gameplay works and can maybe be the foundation of a cool game; the Ludum Dare version of the finally named game "Tale of Scale" is mainly a sandbox game which happens to have a subtly communicated goal in each level.

2the end result: Tale of Scale

A short summarization of What-Went-Bad:

  • The start, or rather the theme. Either it is the start of a game for me, or it just stands in my way. Harumph. I squeezed the theme into the final game, but as most people won't play it through, they probably will wonder where it actually is. I got a bit inspired by the movie "Looper".
  • I still can't make music. I tried composing some once or twice before, but I'm always embarrassed by my own efforts, so I don't ever get over a certain point.
  • I don't have a cool base code which actually would free me of the burden to do some stupid and boring stuff again and again. At least that's a learning and can be helped ... some day.

And What-Went-Good?

  • The idea was cool enough to let people ignore the crude levels and graphics, hehe.
  • I actually managed to make three levels, even in the timeframe I wanted to make them. Seems like I finally get the hang on estimating such things, and this is one of the things a game jam really can help with.
  • I made most of the sounds myself with a microphone, and they sound okay enough. Nice.

That's it! Thanks for reading, and don't forget to play the game (here's the entry page) - or at least watch this gameplay video:

Ludum Dare #25: Tale of Scale

(YouTube videos try to set cookies and contact Third Party servers!)