21st July '14 by Team Junkfish
Hey Grant here again,
In my last blog I mentioned a concept that I refer to as 'Responsibility'. Now I'd like to talk some more about it and how it is used in a couple of my favourite games.
What do I mean by this?
Basically the player should be able to trace back a particular outcome to either their own skill or a decision they made.
'I didn't react quickly enough to that boss's attacks'
'Whew! I made the right call!'
'I jumped too early'
'I should have put that unit somewhere else'
It's the flip-side of player agency; by making sure the player is always in control of what their character does we aim to make them feel responsible for their ultimate success/failure.
Why is this a good thing?
If it's clear to a player what led to them getting killed – be it poor choice, action or even just inaction – they will make a note of it and try to do things differently next time. Hopefully the feeling of having learned something reduces the frustration caused by failure, as it means that even in defeat you are improving. The same is true for victory; if they can trace a success back to their own skill it shows their progression as a player and even if they ultimately lose it reinforces the feeling of 'Well I'm getting better, maybe the next run will be the one!'
Examples in other games:
Here are two examples of recent games that I think implement this concept really well. As usual I highly recommend them, especially to those interested in a challenge.
XCOM: Enemy Unknown
A tactical strategy game where the player must save the earth from alien attackers by adapting their technology and using it against them. XCOM offers a lot of meaningful choice in the form of decisions such as:
Which technologies you should research first, which affects what equipment you will have at each point in the game
How best to spend your scarce resources on this equipment
Which missions should be picked, with the ones you don't pick having small negative effects that build over time if left unchecked.
These are all part of the base management section of the game, and all are related to Responsibility, but the parts I want to talk about here are the combat missions.
The missions in XCOM involve you giving orders to a small squad of soldiers, moving them carefully about a grid trying to kill or stun any aliens they come across. It's basically the closest thing to 'Wizard's Chess' we're likely to get. Your tactics are very important here as your soldiers' armour has all the hardiness of wrapping paper and they will crumble into dust after a couple of hits. This means that if you make a poor strategic decision, such as ending your turn with a troop out of cover or spreading the squad too thinly it is almost guaranteed to result in someone getting killed.
While there are absolutely situations that feel like there was nothing you could have done, these are few and far between. Most of the time you are able to say 'Nope, I shouldn't have done that. That was a mistake' and the fact that you can name your soldiers only adds to this feeling. It's hard not to feel guilty and even a litte upset watching a soldier with your grandmother's name survive 19 missions, become a glorious world-destroying badass, then get suddenly blasted into mush because you were too hasty in trying to kill one enemy. Sorry Granny C, but without a proper strategy your jet pack and plasma shotgun were useless.
They might as well replace those stats with "Just 3 days from retirement"
A procedurally generated platformer that is absolutely ruthless. Spelunky is the purest form of this design philosophy; every single death is due to an oversight on the player's part. You didn't look down before leaping and land in a spike trap. DEATH. You throw a rock at a crate of explosives and find it launched back at your face. DEATH. You smash a pot to grab some treasure, only to find a spitting cobra inside. DEATH. All of these can happen in a split second and before you have time to register what happened you get the game over screen, complete with a replay of your demise and a little bit of text explaining just how you fucked up.
Now you're thinking 'A-ha! So if I just take my time and check everything I will be fine!' Nice try but WRONG. Even forgetting the unavoidable situations and enemies that require rapid-fire reaction times, if you spend too long in a level (say because you stop every few steps to check ahead), an unstoppable, insta-killing ghost will appear and begin chasing you. That's right, this game punishes both being too hasty and being too cautious.
Spelunky forces the player to strike a balance between moving as quickly as they can while also giving themselves as much time as possible to check the environment for hazards. This means that even if you are aware of every trap, enemy and dangerous situation that you can run into, there is still a chance you'll mess up your timing and get killed. And you will have only yourself to blame.
This explosion was caused by my own bomb. Yeah...
How are we going about it in Monstrum?
Well for starters we are trying to give everything dangerous some kind of signpost. Any sounds loud enough to alert the monster will be loud enough that the player should notice them. Every trap will be visible to a vigilant player and no room should have only one entrance and no hiding spot, there should always be a way out if players are skilled and clever enough. In addition we are working on some new systems to give the player more control of how their playthrough will go, increasing the impact of their decisions on their chances of success. More on that later
While all this may seem at first like we're making things too easy, remember that one of three deadly monsters could come round the corner at any moment. That stress and the pressure to keep moving make it harder to stop and carefully scan the environment for dangers. Being chased is even worse, in fact that is when a player is most likely to run into some kind of danger. Monstrum requires constant vigilance and quick reaction times if you are to survive and make it off the ship.
I hope this blog and the previous one on choice (assuming you read it) have given you an insight into the kind of game we are trying to make. The reason I have chosen now to discuss these design decisions is that several upcoming blogs will probably reference them. For example you might see something like:
So why are we putting this feature in Monstrum?
and those of you who have read these blogs will understand what I am talking about.
And as a thank you to those people, here's a gif of the (currently empty) cargo maze
I have to go now, my planet needs me,
16th July '14 by Andrew Bean
Today I'd like to talk about the occlusion culling process used in Monstrum. As good as Unity is, we couldn't use its culling support since it doesn't support dynamic occlusion. Additionally, our light culling system was overhauled as well using a completely different system to the one we had before.
We tried everything. Well, maybe not everything, but we did go through quite a few techniques before we got to this one. We tried cheaply rendering the scene and processing the image to look for renderers. An improvement, but it had an unavoidable expensive function call to get the texture off the GPU. We tried culling with raycasts from the camera every frame to get the renderers. Too many raycasts were necessary to see everything. We tried culling our culling raycasts. It worked in smaller rooms, but as soon as we entered a larger room it somehow ended up doing even more raycasts than before. Fantastic.
Well, we now have a solution. Or at least a better solution. It isn't perfect, but it breaks in places we should be able to avoid. I don't know if this method already has a name, or if there is something that was overlooked that can make it more generic or something. But here goes.
The culling starts by setting up a grid encapsulating the ship. Each node on the grid represents a cuboid the size of a corridor piece, and stores information about what nodes it can see, and what renderers are inside it. This is used for storing the occlusion data. Each time the camera changes what node it is in, the node at the camera tells all the nodes it can see to enable the renderers associated with them. Simple. The tricky part is working out what nodes can see each other, and this is the bit that is new.
Each node raycasts up, down, left, right, forward and backwards to figure out whether it can see the node immediately around it. This creates a graph of the level that we can traverse. You might notice that raycasts won't necessarily generate the most accurate graph. You would be right! It does have surprisingly few errors actually, but we will likely generate a much more accurate graph later to iron out the kinks.
Next, the core algorithm kicks in. To find out what nodes a given node can see, the graph is traversed using a flood-fill method, with a few modifications. Any node we expand in to is added to the list of nodes the camera node can see. The modifications are used to stop expansion in to nodes we won't be able to see. We are currently experimenting with both real time and baked versions of this process.
If the angle between the expand direction and the camera's forward is > 135° , disallow expansion. This forces the flood-fill to spread out vaguely in the direction of the camera's forward – the bit we really want to see. (Real time only)
A node is prevented from expanding when its centre is outside the camera's frustum by a small margin, since only stuff in the field of view will be rendered. (Real time only)
Nodes that are reached by going around a corner 'too much' are prevented from expanding. This check is not done in open areas, since corners won't necessarily occlude.
Once the path goes right, it can't go left (and vice-versa). This is because going left after a right would result in a U-bend that can't be seen around.
An advantage over the other systems we tried was that this is all CPU-based and didn't rely on expensive API functions like GetPixels() or raycasting to work, meaning we have greater control and flexibility over how it works.
Last time I talked about this there was a system to determine if a light should be on, using a render of the scene and use of special colours. We scrapped this in favour of a new simpler system. Lights aren't actually that expensive in Unity, but shadows are, meaning if we can reduce the number of lights with shadows, we are 90% of the way there.
Effectively, the new light system fades light shadows over distance. The only trouble with this (and this is something we wanted to avoid) is that far away lights can bleed between rooms. Our solution to this is just position lights well so that they don't. Additionally, there are some lights that end up casting large shadows, and these can be quite jarring when they fade. Fortunately, we can usually identify and workaround these on a case-by-case basis.
I hope you found something of this interesting! Until the next time!
11th July '14 by Jaime Cross
We've got some pretty big news to announce that may disappoint a few of you: we have decided to officially push the release of Monstrum back by a few months to January 2015.
This isn't something that we've taken lightly, but truth be told we don't think Monstrum will be at a level that we as devs, or you as players, will be happy with by our original release date. We've had a lot of feedback from the people who we've shown it to, and are incredibly amazed and happy for the support people have given Monstrum so far in its early stage. As such it is on us to make sure that the game is as good as it can be, even if it is a little late.
Some of you may ask about making the game available through Early Access too, and while that is a possibility we still think that it is not the best fit for Monstrum just now. We're making a horror game, and we want to make sure that the horror factor can't be undermined by some of the silly/funny/game-breaking bugs that may happen in some Early Access games. That doesn't mean that we'll never do it, but we want it to be at the point where you get a decent experience even if the game is incomplete.
In the meantime you can keep up to date with Monstrum's progress on our dev blog, Facebook and Twitter feeds.
Thanks for your understanding and patience,
9th July '14 by Adam Dart
It's time again for another art blog post!
Now that we have the basis of our container section working in the game I can talk to you about a couple of small challenges that come with building art assets for procedural generation.
Within this new area the player needs to navigate through a series of broken containers which are all stacked up against each other. Due to the procedural systems in place, we need the containers to be built to allow the system to lay them out to form a coherent path through this section of the ship. Because of this we need to build a large amount of container variations to allow for every single type of corridor placement. This system works in a similar way to how our corridors are spawned.
Modelling and texturing all the different variations individually would take us far too much time, so we needed an efficient way of doing this. We split the faces of the standard container, leaving us with 5 main pieces: The sides/top, the back, the front doors, the floor, and the frame of the container in which the faces are placed into. Additionally, we needed broken variations of each face of the container, excluding the frame, for the player to move through.
Once these are made, all we had to do is swap out the faces of each container piece to form the appropriate path, combine them into one mesh, and then export them to go into the procedural generation system.
However, by having everything work within a grid system the scale of objects need to be very specific and when working on making assets to realistic proportions, it can generate some difficulties when they don't necessarily fit.
This led us back to the classic door problem...
To get into some of the containers, the player would have to open these doors to get into them. The problem was that containers in the hold (stacked to the brim) meant that there was no room for the player to open them. This proved fine for the doors on the inside as they were smashed open to create a path, but for the single containers on the edge of the hold we needed the occasional openable door for the player to get in.
The default container doors were far too large and the space between the ceiling and floor meant that the doors would clip through them as they were not paper thin. We could not scale the size of the container frame as it had to fit into the grid, and the container would look incredibly wrong with 2 doors of different sizes.
In the end, I decided to make an additional door variation :
A doors within a door! ( I am so happy this exists!)
The smaller door on top of the larger one meant that the door was small enough to fit into the walkway segments when open, and was large enough to fit into the frame of the container. This allowed us to have both variations of door which solved our problem!
Tait also came up with a creative solution to generate a large amount of colour variation on the cargo containers using only a few texture maps.
The idea was to use a base texture and change the saturation within unity to give us many colours using one map. Doing this however, meant that small details such as rust and any painted materials other than the one we wanted would also change colour. What he did was create a decal model slightly over the original which he put on an alpha texture, separating the paint layer that would change colour and the rust layer which does not change, giving us realisitc looking colour variations.
To finish off this blog, we'll show you some of the content we've created to fill up the insides of theses containers. We've got a couple of stranger things in there, but I'm not going to show you any of that to save them for the final game, so here are some of the more generic things we have made...
We're working on a pretty cool section of the ship next which is also pretty secret (Something you'd maybe see in a James Bond Movie!)
If I told you, I'd have to kill you.
.... so look forward to the next blog!
Adam and the Arts!
7th July '14 by Jaime Cross
As we've spoken about in the past, a lot of us on the team really love playing board games. They offer some great insight into game design, and generally are pretty fun too. As such, I've stuck together a list for people who might be interested in getting some board games but don't know where to start. This is based off of personal experience, so things like Ticket To Ride aren't included as I've not played it (despite being a good game to start with from all accounts).
The Settlers of Catan (2-4 players, 2-6 w/ expansions)
Catan is the big cheese of the boardgame world, with it being one of the most popular games in the world and something akin to a gateway for most people. It also helped popularise the German-style "Eurogame", which has fairly easy to understand rules and requires some degree of strategy, but tends to avoid people being "knocked out" of the game with a focus on point scoring instead. Basically, you have to gather resources from different areas which can be used to build various things, such as towns and roads, and expand your settlement out so that you have access to more resources. Or to stop others getting them.
In order to actually gain resources you roll two dice which determines which tile will give you materials. Anyone with a town or city next to one of those tiles gains that respective resource.
You gain points for things like the number of towns and cities you own, having "Longest road", or collecting points cards from a "development deck", which costs you resources too.
Bean helpfully described it as "Monopoly, but fun" but much like my brief description that undersells it. You can plan ahead to either do your own thing and avoid other expansions or be disruptive and break chains of roads. And then there's the bartering system, where you can trade resources for whatever you choose, allowing for some power plays to come to the fore. The expansions are worth looking into as well, with Cities and Knights giving the townbuilding aspect a bit more of a push.
Cards against Humanity (3+ players)
Are you and your friends horrible people? Are you unsure? Then this is an easy way to find out. The premise is simple, someone plays a card that has a question or a phrase with a missing segment, and you have to answer it with your own card. The winner is whatever the person asking the question likes best.
Simple, right? Here's a fairly safe example of a question and answers:
And they get far, far worse. Very un-PC, poking fun at everything and anything, but easily gets a laugh out of a group of people.
Dixit (3-6 players, 3-12 w/ Odyssey)
And swinging it all they way back round is the fantastical story telling game of Dixit. Dixit starts with a storyteller describing a card in their hand, and other players giving them a card from their own hand that they believe matches the story best without showing anyone else. The cards are revealed and everyone tries to guess which one is the storyteller's card (except the story teller, obviously). If everybody or nobody gets it right, everyone but the storyteller gains 2 points. Outside of that, the storyteller and players who guessed correctly gain 3 points, and players whose card gathered votes gains 1 point per vote.
Basically, it involves the storyteller giving just enough detail for some people to get their card but not giving it away. This can lead to some interesting metagame stuff with inside references depending on who you're playing with.
It's also really pretty:
Click here for a better look.
Fluxx (2+ players)
Fluxx has a load of variants, but it is pretty easy to pick up. The first rule is simple: Draw a card, play a card. That's it.
Mostly. The cards you can play might also be rules, which come into effect immediately. Have a rule that says "Play 3 cards"? Then you get to play 3 cards total on your turn. They might also be goals, which you need to win. Don't like the current victory condition? Then change it to something that fits your needs. How do you actually win? You need Keepers for that. Here's an example from the Chthulu version:
You can also play Actions and Surprises that can mess things up, and some versions have "Creepers", which are like anti-Keeper that you usually want to get rid of. Fluxx is a fairly quick, light game that is good to break out if you need to kill 15 minutes or so.
Gloom (2-4 players, 2-7 w/ expansions)
Gloom is another storytelling game with a rather macabre theme. In order to win you have to make your family as depressed as possible and off them, while making sure that other players' families stay alive and happy as long as possible. Happy stuff. The fun comes from the little bits of info on each points card that you can play, allowing you (and other players) to create individual narratives for each character and family, chronicling their ups and downs in life.
The cards themselves are quite unique too as they're all transparent. So you literally play a card on a character to affect its points.
There's also the inevitable Chthulu offshoot if you're into that too.
The Resistance/Avalon (5-10 players)
Oh boy. A game of The Resistance (and it's very close cousin Avalon) usually takes around 20-30 minutes. A session of it can last a good few hours. The bare bones of the game is simple: guess who the bad guys are, and complete missions without them sabotaging them. A "commander" decides on who is going on a mission, and all of the players vote on if they want it to go ahead. If it does, those players on the mission decide if it succeeds, or in the case of the spies, fails.
Problem is that the spies all know who they are, but the resistance members don't know who anyone is bar theirself. So the air of suspicion hangs on everyone, making it a really tense game for the get go. Is the commander a resistance member or a spy? Have the spies managed to successfully shift the blame onto an innocent player? This game is less about the components and more about the meta side of things like, say, Poker. What people are saying, how they're acting, what tells do they have, how have they acted in previous games, It stretches out beyond the one playthrough.
We've only ever had a 9 person game though, the max head count still eludes us :(.
I'll try keep these ones a bit shorter, but if you're looking to move onto something a little heavier then here's a few that we play quite a bit!
Risk: Legacy (2-5 players)
Get a group of 5 people together, have them sign a blood pact (or other legally binding contract) to commit to one of the most unique games you're likely to play. Gameplay is similar to standard Risk, but the game changes with each successive playthrough. Factions can acquire powers, the map can be build up with cities and bunkers then torn down again, the game itself goes through massive changes depending on certain events occurring. If they ever do. When all of you sign that board you are building your own, individual version of Risk, and for better or worse you have to live with that. This is a game that is best experienced by simply buying it and playing it because even board games can have spoilers.
Red November (1-8 players)
Imagine being a dwarf. Now imagine being on a submarine. Now imagine it falling to bits. That is Red November. If you've played FTL then you may see some parallels here, with players scrambling around each area of the sub and trying to fix it by using "minutes". This gives the game a slight time travel twist, as events occur that must be dealt with by a certain point, but players can still potentially fix up other parts of the ship while skipping over them so long as someone deals with it in the end. There is also "paranoid" rule, in while players can attack each other in addition to helping.
Also don't get too drunk.
Pandemic (2-4 players, 1-6 w/expansions)
You may know of the Flash/mobile game of a similar name. This is the inverse of that, with players taking up different roles to try and rid the world of various diseases. It is hard, and will kick your arse in more than one occasion, but makes the rare victory so much more gratifying. It also has "difficulty modes", so if the game is proving too hard you can make it a little bit easier. Chicken. It also seems like it's getting a Legacy version similar to Risk: Legacy, which sounds very exciting.
Quantum (2-4 players)
Quantum is a strategy game with a little bit of the Eurogame stuff mixed in. It's clean, concise and generally very well put together. The rules are simple enough to get at first glance (get a cube on each planet, dice move equal to their number, lower numbers hit harder) with a focus on offence to keep the game moving forward. One of those "easy to learn, difficult to master" type of games. There is some extra tweakability with ability and action cards, allowing you various abilities like being able to destroy attackers if you're defending, warp to different planets or plant down cubes easier. And custom maps. It's a great entry point for strategy games and is deep enough to keep seasoned players interested.
Galaxy Trucker [Anniversary Edition because BEAN] (2-5 players)
This one's a bit of a cheat as it's the version with most of the expansions with it. Totally worth getting it though, as it adds loads to the base game, most of which is optional. Galaxy Trucker is pretty chaotic. You build a ship and charge into the great unknown in order to earn some money without being blown to bits. Which will happen, as chances are your vessel will be a bit of a hodge-podge tin can instead of an Enterprise. The scramble for parts at the beginning of each round is typically messy (in a good way!) and the different variety of ships, such as the cylinder and twin ships (and in a later expansion, sphere and flotilla) allow you to try different styles of play. Or you could leave things up to even more chance and have the dice decide where you can and can't build.
Dominion (2-4 Players, 2-6 w/ expansion)
Dominion is a deck building game, where people add cards from collective pool into their personal decks, where they can draw cards to play from. You can use these cards to do things or buy more cards. Dominion sort of kicked off this type of game, which differs from usual Collectable Card Games like Magic: The Gathering due to the "community pool" of cards that people take from, instead of individual bespoke decks. The game has a variety of difference scenarios that use different types of cards, and more expansions that you can shake a stick it. It's not too difficult to get into either, but does look a little daunting at first.
So yeah. There's a list for you all, but there are definitely more out there to investigate. NOW GO PLAY!
P.S. Sorry for the pun.