our rambling
Want to be notified of new blog posts?

Tino van der Kraan

Lightmapping in Unity 5 April 30, 2015

By Tino

In Unity3D, scenes can benefit greatly from atmospheric lighting and the shadows these lights cast. Nowadays most of this can be done realtime and can have some stunning results. However, the more complex your scenes will get, the more demanding this is for the computer running the scene. For complex scenes it’s recommended to bake the lighting information of your environments into texture maps so that the calculations for this lighting will only need to be done once. Setting up your lights and environments can sometimes be a little tricky without immediately giving you the results you might be after. This blog will cover some of the basics of creating lightmaps for your Unity3D scene as well as some tips and tricks to help you get to a pleasant result quicker.

The following will only cover baking lightmaps in Unity 5 using Baked Global Illumination and will not cover any of the Precomputed Realtime Global Illumination.

Lightmapping quick start

This is pretty much how a simple scene with a plane, cube, and directional light looks without any lighting baked in.

Blog-LightBake_04

Default Unity scene with a plane and a cube


In order to bake your lighting information into a lightmap you need to tell Unity at least two things. Which light is going to have its information baked in, and which objects are going to remain static in the scene.

Step 1: Mark your objects as static

Blog-LightBake_02

Object set to static

Step 2: Set your scene light to baked instead of realtime

Blog-LightBake_01

Lighting baking mode set to baked

Finally, with Baked GI checked in the Lighting tab you should see the lighting baked into this little testing scene. In the bottom right of the lighting tab you will see how many lightmaps have been baked, at what resolution, and what the file size of the lightmap(s) is. Now that the basics are out of the way, let’s look at some of the knobs, dials, and options that can give us some control over this.

Blog-LightBake_03

Simple scene set up to bake lightmaps

Lightmapping custom objects with ‘Generate Lightmap UVs’

A 3D object can have several UV channels. Normally, objects store their texture location information into the UV0 channel. By default, Unity will bake lighting information using the UV0 channel which usually does not give desirable results if you have overlapping UVs. With a 3D package such as Maya or 3ds Max you can create a set of UVs in the UV1 channel that Unity will reference when baking lighting information. You can also have Unity automatically generate information in the UV1 channel by checking the ‘Generate Lightmap UVs’ box in the .fbx importer settings.

Blog-LightBake_05

Generate Lightmap UVs

On non-organic objects it’s pretty useful to generate these lightmap UVs automatically. On organic objects I recommend creating a custom UV1 channel as the automatically generated results usually put the lightmap seams in rather visible places.

Continuous/Auto Baking

This is a checkbox that can be found at the bottom of the Lighting panel. When left on, any changes in the scene or in the lighting settings will automatically be calculated in the background as you continue working. Unless you have a beast of a machine or working on a really small scene, I recommend you leave this off and only Build your lightmaps when you need to. Additionally, when manually baking lightmaps Unity will store the lightmaps in a folder with the same name as your scene in same folder as your scene.

Blog-LightBake_06

Continuous/auto baking

Baked Global Illumination settings

Lightmap resolution and padding

The way to increase the resolution in your lightmaps is to increase the texels (texture pixels) per unit in your lightmap, higher values will create larger maps. If you notice that some of the light information starts to blend or bleed into the wrong surfaces of your objects you can try increasing the padding so that there will be more space on the lightmap between the UV islands. If you notice compression artifacts on gradients you can try unchecking ‘Compressed’ at the expense of lightmap file size. Lastly, the indirect resolution will determine the resolution of the bounce light in texels per unit. As you may notice from the images below, pushing this value much further past 2 did not have much of a noticeable effect.

Blog-LightBake_26

Indirect resolution at close to 0

Blog-LightBake_27

Indirect lighting at 2

Blog-LightBake_28

Indirect lighting at 4

Ambient Occlusion

To make your objects feel more grounded in the environment it is common to add what is called ambient occlusion. Ambient occlusion is basically a phenomenon where areas appear darker when surfaces get close to each other. The Ambient Occlusion value in the Lighting tab determines the intensity of this effect and the ‘Max Distance’ is the distance along the surface after which this effect is no longer visible. The cube I used for the examples below is 1 cubic unit. With a max distance of 0.5, the falloff of this effect therefore travels halfway up this cube. With an Ambient Occlusion intensity of 5 it now becomes pretty clear how this works.

Blog-LightBake_13

No Baked GI, no Ambient Occlusion

Blog-LightBake_14

Baked GI, Ambient Occlusion at 1 with Max Distance at 1

Blog-LightBake_15

Baked GI, Ambient Occlusion at 5, Max Distance at 0.5

Final Gather

As for the last option in the Baked GI section of the Lighting tab. I’m not quite sure what kind of noticeable added benefit Final Gather has to justify the extra baking time but if someone is out there that knows and can show me, then that would be great.

General Global Illumination settings

This section in Unity’s lighting tab contains settings shared between precomputed realtime GI and baked GI. I’m not going into the directional mode as it’s pretty well explained in this blog post on the Unity forum: http://forum.unity3d.com/threads/directional-lightmaps.280716/. Further along in the Lighting tab, Unity’s tooltips can shed some light on what Indirect Intensity and Bounce Boost do exactly.

Indirect Intensity

Blog-LightBake_16

Indirect Intensity tooltip

 Bounce Boost

Blog-LightBake_17

Bounce Boost tooltip

The Default Parameters in Unity’s Lighting tab affect the quality of the bake. I usually set this to ‘Default-VeryLowResolution’ in the initial stages of of the baking process in order to make me aware of problems sooner without having to wait very long for a bake to finish. Then, when I’m reasonably certain there are no big lighting problems, I set the Default Parameters to higher resolutions.

Atlas size

This value determines the dimensions of the lightmap in pixels. When using large surfaces such as floors or ceilings you may notice that an atlas size of 1024 probably isn’t enough. In this case you could cut up your mesh so that the lightmap can be distributed over more texture maps. Another option is to increase the atlas size of your lightmap so that there is more space to put the information onto. Try to keep your target platform in mind when considering very large texture maps. Something you might encounter is that when dialing the Atlas Size up to 4096 or higher is that the Lighting tab will still say the lightmap is set to 2048px. This will occur when you manually initiate your lightmap bake and the lightmap will appear in your project as a texture. The texture import settings of the lightmap will be set to 2048px by default. Change this to this to the Atlas Size you entered and you are good to go.

Blog-LightBake_18

Atlas Size set to 4096 with continuous baking disabled. Manually punch in the Max Size of the texture

Tips and tricks

Advanced Generate Lightmap UVs

This section in the FBX import settings allows you to determine how the UV1 channel for that object is automatically generated. This can be useful for problems in automatically generating UVs for objects that don’t have perfect 90 degree angles.

Blog-LightBake_19

Generate Lightmap UVs Advanced options

Preview Texel Density

In the top left of your scene view you can find a dropdown that allows you to change how you see the scene. In the bottom of this dropdown you can find preview options for Global Illumination. The last option in that list should say ‘Baked’. This allows you to preview the texel resolution of your lightmap. Smaller squares represent more resolution in texels per unit in your lightmap.

Blog-LightBake_20

Preview Texel Density

Scale in Lightmap

In the Lighting tab, under the Object section, you can find object specific lighting settings. One of which is the ‘Scale In Lightmap’. This value determines how much space this object will take up in your lightmap. Combined with the Texel Density Preview, you can see how this translates in resolution when you hit that bake button. This can be useful when determining the Scale In Lightmap to make the most use out of your lightmap textures for static objects at various distances from the camera.

Blog-LightBake_21

Scale In Lightmap

Bake only an object’s shadow

Sometimes it is useful for an object to cast a shadow in the lightmap, but not to receive any lightmap information itself. When this is the case you can set the ‘Scale In Lightmap’ to 0.

Blog-LightBake_22

Scale In Lightmap set to 0

This object will still be influenced by lightprobes if this is enabled in the object’s Mesh Renderer component. One of the benefits I found using this for is parked cars. Due to the details and curved nature of the cars in one of our scenes it became pretty costly to get a good result out of baking these objects. The solution was to not bake the cars but just their shadows and ambient occlusion.

Blog-LightBake_23

No lightmap, casting shadows, affected by lightprobes

Consider which lights to bake and which to keep realtime and when

As of this writing, the Mixed Shadows setting on lights is not yet working as it should in Unity 5.0. The Mixed Shadows setting normally allows for baking lights into an environment while also supporting near lights to cast realtime shadows. This is great in cases where, for example, a character walks past a light and casts pretty shadows while having ambient occlusion and environment shadows baked in to be enjoyed at larger distances from the camera. Unity is aware of the Mixed Shadows issue and I can’t wait for it to be fixed. In the meanwhile, we would still like to have realtime shadows in our game. One way to do it is to only have the important lights cast the shadows you need in an environment.

Blog-LightBake_25

Manually mixing realtime and baked lighting

Hopefully you got something useful out of this blog and perhaps it helps you either get started with lightbaking in Unity or maybe it expands on what you already knew. Regardless, If you want to follow up with some questions or you have a trick or two to teach me about Unity then you can always hook me up on Twitter @tinovdk. Consider sharing this with people that can benefit from it. Thank you for reading through to the end. ^^

Elwin Verploegen

A Single Click: What The Player Doesn’t See April 17, 2015

By Elwin

Interactions with objects of various shapes and forms are an inherent part of playing games, but rarely do we think about what goes on behind a simple click. In this blog post we will broadly go over what it takes to get one of the interactions of Fragments of Him working. The interaction we will be analyzing is one of the first ones you encounter in the game, the opening of an elevator.

It all starts with a concept

We store the script for Fragments of Him in a spreadsheet. This sheet contains all of the interactions, dialogue, and animation descriptions for its numerous scenes. The entry for the interaction you see animated above can be seen in the image below. Interactions in our spreadsheet are given identifiers to keep track of whether the interaction is linear, branching, mandatory, or optional. More often than not there are various things that can be heard by the voice actor as a result of this interaction.

Elevator interaction in spreadsheet

Elevator interaction in spreadsheet

With all of the above written down, it’s up to the art team to figure out how to proceed onward. Almost all of the game is based on familiar or real locations so we use a lot of photo references to construct our scenes. There’s also the question of how will the environment react to the player’s interaction, what are the materials that we use on the scene geometry, and how will the lighting in the environment react to the characters in the scene?

Creating the environment

The scene description states that this takes place in an apartment building and that we need both an elevator and a staircase. Some of the reference for the elevator can be seen below. We usually look at multiple reference photos and take elements from all of them to form the final result. In this case we took the interior panels from one photo and the hand rests from another.

Elevator reference material

Elevator reference material

Elevator reference material

Elevator reference material

Before starting on creating assets we usually discuss these reference images to determine what we prefer, after which the modelling can start. We’ll do this for every interaction so that we end up with a complete scene (at least at a basic level). At many points in this process we reflect on how it’s shaping up and how the player moves through this space. For example, early on we noticed that we made one of the hallways too long which this took away some flow from the experience. When realising this early on it’s relatively easy to cut out the chunks that don’t feel pleasant from a player’s perspective.

Creating the character

Now that we have the environment covered, we’ll need a character to interact with this elevator. The process here is similar to the environment. We get a description from our narrative designer of Will (one of the characters in the story), which gives us a general idea of who this person is. As a team, we go over a bunch of different photo references and pick the photos that fit with the person and the narrative. From this point forwards the elements from the photo reference are combined and mashed together into concept art.

Will character sketch

Will character sketch

As we got closer to nailing down the look of Will we tried to clarify the details of he way this person dresses. The outfits required for the narrative are largely determined by the year in which this part of the story takes place, what season and which time of day. Below you can see some of the silhouette concepts created by Baiba Gedrovica that helped us explore the possibilities in clothing and hair styles.

Will concept drawings

Will concept drawings

Once the character features are decided on it’s time to start the modelling process of this character. There are quite a few steps involved to get this from concept to a modeled, rigged and skinned model. Unfortunately, this blog does not aim to cover this particular process in depth. If you want to know more there’s some more info on the Unity website on the steps it takes to get a character in the game. This is the result of a single character with a single outfit:

Static view of Will

Static view of Will

Animating the character

At this point we have a static character that’s all set up to be animated. We made use of Xsens Motion Capture technology to record the motions and turn this into data that drives Will’s skeleton. While this method is not entirely drag and drop, it does help a tremendous amount in creating movement that appears very natural.

Animation Spreadsheet

Kaylee monitoring recording and keeping track of animation spreadsheet

Xsens Mocap

Tino in an Xsens motion capture suit

Tino described the process from modelling to getting it in the game as follows:

Model, unwrap UV, texture, rig, skin, record mocap, characterize mocap data, characterize rigged model, retarget mocap data to model, plot keyframes to character skeleton, tweak animations where needed, save into Unity, turn model into humanoid, cut up the animations into animation clips, toggle animation clip import settings depending on what’s applicable, drag model into scene, apply materials and textures, trigger the animation that you need when you need it, profit.

Many of these steps have to be done for every single animation in the game. Some of the other steps fortunately only have to be done once such as creating the model, its textures, the skeleton and its skin weights. There are roughly 250 unique animation in the game, in case you were wondering. The resulting animation as its portrayed in the scene, however, is quite pleasant.

 

Hooking it all up

When it comes to implementation, we have spent a lot of time building editor tools to assist us. I wrote a more detailed blog post on developing these tools last year. In short, it takes away the task of writing custom code for each interaction. That single button press triggers at least 15 scripts, 6 animations and 1 sound effect.

Elevator Interaction

Elevator Interaction

This totals to around 1500 lines of code (excluding the duplicate modules and the actual interface & code behind the above image).

If you have any questions you can contact me @elwinverploegen.

Elwin Verploegen

Fragments of Him Downloadable Content Revealed April 1, 2015

By Elwin

While the release of Fragments of Him is going to take a bit longer, we have been giving Downloadable Content (DLC) some of the thought and attention that it deserves. Let us take you through all the versions and DLC that you might be able to obtain now or eventually for Fragments of Him.

Basic Edition

Fragments of Him: Basic Edition

Fragments of Him: Basic Edition

The full game* as we intended it, completely playable in all of its glory.

Deluxe Edition

Fragments of Him: Deluxe Edition

Fragments of Him: Deluxe Edition

For those that want/need more, we bring you the Deluxe Edition. In addition to the full game*, you get the Director’s Cut. This version is exactly as our narrative designer intended the game to be, which is the same as the regular version albeit with a different title screen leading into the game.

In the Deluxe edition you can also expect a ‘Behind the Scenes’ video. This 4 hour documentary shows the developers eating greasy pizza, drinking mildly enjoyable (but potent) coffee, shooting NERF guns and weak attempts at rhetoric on whose weekend was more eventful.

Premium Edition

Fragments of Him: Premium Edition

Fragments of Him: Premium Edition

The Premium Edition contains everything the Deluxe Edition has, and more. The Premium Edition adds the Cinematic DLC. We know that some users desire a truly cinematic experience while playing Fragments of Him. We also realise that 60 FPS (frames per second) makes it a lot less cinematic (which is why most films are shot at 24 FPS). This is exactly why the Cinematic DLC will lock your frame rate to a maximum of 30 FPS, for the best experience you could ever want.

To add to the ultimate cinematic experience possible, we also introduce the Popcorn DLC where all the camera angles have been carefully picked for the most optimal narrative delivery possible without having to play the game whatsoever. All you need to do now is press the play button.

We also recognized that by giving you so many options to expand your Fragments of Him experience with all this DLC, that you need a way to manage it all. To meet you mid-way we also include the DLC Manager. The DLC Manager gives you an additional option in the menu to see what DLC you have enabled, which you are missing, and what discounts or sales are currently ongoing. Obviously perfect for those who want to stay on top of all the options in DLC. You can find this option in the in-game menu.

Fragments of Him: DLC Manager

Fragments of Him: DLC Manager

Season Pass

Fragments of Him: Season Pass

Fragments of Him: Season Pass

We know that you love DLC, and if you don’t, we hope that our DLC will convince you. If you really want to show support for your developer you can buy the DLC Season Pass ahead of time. All DLC will be available to you on release meaning that you don’t have to wait to enjoy the full game! The Season Pass contains 2 content packages that we haven’t discussed before.

The Effects DLC allows you to play around with the settings of the game, for those who want to use the full power of their computers. We recognize that not everybody feels comfortable using these settings, so we decided to put this in a separate package. Once enabled, you can use FSAA, MSAA, SSAO, Bloom, AO, Tesselation & more! The perfect DLC for the true PC gamer. A cheat sheet to all these acronyms will be included with this DLC.

The Polygon DLC is for those that deeply care about graphics. As most of you know well, pushing more polygons on screen will obviously make any game a lot better. With the Polygon DLC you will benefit from double the polygons, giving you twice as much enjoyment out of the same game.

Freedom Pass

Fragments of Him: Freedom Pass

Fragments of Him: Freedom Pass

Finding the compassion and empathy to characters in a game can be difficult, as such we decided to allow the players to let the players change the location of the game to Texas instead of England. The pass revamps all of the levels to look like Austin. This pass will also give you multiple options for the voice overs in the game. If your state is not available you can send us a request to freedom{at}sassybot.com, and we will make sure to look at your specific request.

Hats, Hats, Hats

Our final announcement involves hats. Research has shown that everyone loves hats in their games. This is why we will be opening up a hat shop on release, allowing you to customize all the characters in the game to your liking. Hats can be found in the game as well as bought in the store.

Fragments of Him: Introducing Hats

Fragments of Him: Introducing Hats

We also know that you have that one question: Can hats be stacked?

Yes. Yes they can.

Fragments of Him: Stacking Hats

Fragments of Him: Stacking Hats

 

That was it for the announcement, if you have any questions please send a tweet to @sassybotstudio

* The full game does not contain any DLC.

Elwin Verploegen

Lessons learned after 1 year in business March 26, 2015

By Elwin

March 1st 2014 is when we moved into our first office, and is also when we started working on Fragments of Him full-time. Since then we’ve learned a lot about making games and running a business. This blog post will go over some of the lessons we’ve learned and mistakes we’ve made.

Setting up shop

Setting up shop

We officially registered with the Chamber of Commerce on the 8th of March 2012, with a different name than SassyBot Studio. In this period Tino and I were still in college so setting up shop early gave us some time to figure out what it takes to run a business while there was still little risk involved. Signing up to be a company in the Netherlands is cheap and easy (all it takes is a single meeting). Running a company, however, isn’t.

We used the roughly 2 years of start-up time to write up a contract between the partners. Some of what this contract covers are things such as splitting of profits & losses and what happens when a partner leaves the company. There are a lot of things to think about and talk about with your business partners, so make sure you spend the time to do so or it might come back to haunt you. In the Netherlands you can get a basic template contract provided by the Chamber of Commerce (at least for our type of company). We amended this with a couple of points that we thought were important. Make sure to get a lawyer involved if you want this to be 100% secure.

We also joined a government funded organisation called Starterslift that helps startups with business, legal & financial support (including loans if required). They helped us lay many worries to rest and answer questions that would normally keep us up at night. In return, Starterslift asked us to fill out a yearly report (takes roughly 15 minutes to fill out). Try looking around in your area to see if there are anything similar startup support organisations, I’m guessing some of the bigger universities will have similar services and facilities available.

Spend some time to get your name out there, start networking. We picked up some minor contract
work along the way, which wasn’t only great for having the extra bit of cash in college, it also helps you build up a portfolio and a network of people. Our very first client is still with us to this day and we regularly benefit from those long term relationships.

Running a business

Something I was told by almost everyone, was that running a business actually costs you a lot of time in simple overhead. At the time this sounded silly, and it was at first. And then you realised that there’s actually a lot of things you have to do outside of building games. There’s bookkeeping, public relations, communication with clients, team management, update all the various relevant social channels, acquisition, travel to meetings all over the place and in between all that there is the challenge to find time to develop a game.

Whenever you make a planning, add time to manage these things. We certainly didn’t think about everything, so make sure you dedicate time to handle the various other things that come up, including contract work.

Administration and taxes

Administration & Taxes

If there’s one thing I hate doing, it’s my bookkeeping. I find it tedious, boring and I’d rather be writing code instead. However, it seems that the government is quite keen on everyone keeping track of what they’re doing with their money. I have spent roughly 2 weeks studying up on bookkeeping, making up a balance and in general how to handle money for a business. This is time well spent and you’ll hate yourself if you don’t do this right from the start.

We got an accountant to check if we’re doing our bookkeeping right, but you can also just pay a bookkeeper if you can spare the money. Just make sure to do everything according to the rules. If you’re in America you’ll probably need to hire someone to file all of your taxes. In other countries, like the Netherlands, most of this is actually not that difficult to do (but you should probably always get an accountant. You don’t want to make mistakes here that may bite you in the ass after a couple of years).

Keeping the lights on

This is a recurring topic with almost every entrepreneur, where do you get money from? Well in our case we looked for government funding. There are a lot of people looking at the same bag of money, so you better prepare one hell of a pitch. Browse around on your government websites, there’s usually a lot of funding that applies to games (multimedia, art, innovation in technology, and even cultural funds). Adriaan de Jongh, from the game studio Game Oven, has written an article on how they managed to receive funding for their game concept from the same fund that we had success with.

Something that most of us will end up doing while developing our first game, is contract work. Contrary to popular belief, this rarely ends up being “make a clone of this game please”. We’ve had a wide range of projects coming our way, and all of those ended up being an interesting experience. Finding contract work however, is a completely different beast. Remember how I mentioned that you should start building up a network as soon as possible? This is why. If people know what you do and what you could mean to them, it’s likely that they’ll think of you when something in the general area of games pops up. Animation? You can do that. App? You can probably do that. There’s a lot of areas of expertise that you can cover with a game development studio, make use of that.

Making a game is great, you know what’s even better? Having food on the table every day. You’re a business now, think like a business.

Marketing

For some reason, this has become some dirty word to many game developers. Marketing, however, is quite possibly one of the most important things you do as an independent game developer. Marketing takes time and you can’t expect to reach the audiences that matter to you with a single push effort when your product is released. With any released product, you would like people to know about it and buy it if it is any good. As a proof in point, in the past we have shipped a little game called Small Bang Theory to Ouya, Android, and iOS supported by a website and a press release. It is no secret that this has not been a success in sales although it has been a success in valuable lessons learned. We believe that one of the reasons this game did not do well in sales is that it did not provide an appealing value proposition and that it did not reach enough people. We fault the latter to a lack in support from fans and followers that will gain us the outreach we need for when one of our products is released. So what have we set in motion since then and learned about this in the past years?

Blogs

Every 2 weeks (we miss one every now and then, things get busy!) we post a blog about things we have going on at the office or updates on the game. As with every form of public outreach, consistency is very important. Try to stick to a schedule as much as possible and people will frequently return. Our blog contents have reached around 30000 people last year, just using our websites.

Setting up a blog is trivial, especially if you know how to make games. Grab a domain & hosting and set up a WordPress blog, most companies allow you to set one up from within their backend panel. Find yourself a nice template (if you have knowledge in building websites, customize one to your liking) and you’re good to go. Do some research into what’s cheapest in the long run, most companies charge you $1 or so for the first year, and then ask you way too much for all years afterwards. If you need a recommendation for hosting a website in the Netherlands, get in touch with me and I’ll send you in the right way.

Twitter

If you aren’t on Twitter yet, you should. There’s an amazing amount of indie devs on Twitter, and it’s a great way to get in touch with them. It’s relatively easy to start buildin relationships with other devs & journalists. You have to get used to typing in 140 characters, but that won’t take you very long. Do note that your message will get buried insanely fast, and it’s difficult to keep your messages relevant for longer than a minute. We’re currently around 450 followers, how many people we can effectively reach from our Twitter account is not known (I assume not that much, since Twitter moves very quickly).

Facebook

Even after recent changes that your Facebook messages will most likely not be shown to a lot of people, it’s still worth it to maintain a presence. There are a lot of people that actively use and search Facebook. It makes it easy for people to get in touch with you and to start a conversation. We try to keep our posts on Facebook limited to high quality post (and usually around 1 per week), as to not spam our followers on Facebook with random things. You can be a bit more lenient with this on Twitter. Currently, we have 477 likes on our Facebook page, giving us a reach of around 500 people per post.

YouTube

Tino started up a SassyBot YouTube channel back in 2013, mainly to post our teasers & trailers, but in January 2014 he decided to make a video tutorial called “Lightmapping: 3ds Max to Unity“. So far we have made 5 more tutorials, which seem to be in high demand on YouTube. As of today we have over 1400 subscribers and almost 140000 views on our channel with the channel peaking at 2000 views on a single day.

While this probably isn’t the regular approach that you will find regarding YouTube, we found this to be very worthwhile. First of all, we are helping other devs by sharing knowledge that we gained over the last year(s). Secondly, our company name will be out there for a lot of people to see, and we even had people email us for contract work after seeing a tutorial on YouTube.

Data Management

SVN Log

I will keep this one short. Back up your data. Back it up somewhere that isn’t at your work station. There have been too many cases where something happened at the work station of a developer, amounting in the loss of weeks or months of work. People can rob you, fires happen, floods, cyclones and whatever else that could potentially happen in your part of the world.

We use Tortoise SVN for our version control, and have this running on a server on the other side of the country. If something happens to all our computers at the same time, we can just get new computers and pick up where we left off. While this is something that you may never actually need, it is good to have the safety net set up for when you need it. You will thank yourself if something does happen.

So far we haven’t had anything major happening to us, but it’s good to know that whatever happens, your game is safe. Ah, it is also nice to not have to transfer project files using USB sticks by the way.

Planning

One of the issues we had throughout last year was that we did not have a very clear planning on how long things would take and how much there was left to do. We already used Google Sheets to keep track of tasks, scenes, locations, characters & other random stuff. What we added later was an estimation of how long each task would take (based on tasks we did earlier that year).

We have a detailed list of everything that needs to be done to complete the game. This includes audio, animations and even how long it will take to implement the interactions in the game. We then keep track of how long it took us to do each task and map that out in a Burn Down Chart. Here’s what our current chart looks like.

Fragments of Him Burn Down Chart

Fragments of Him Burn Down Chart

It takes some time to set all of this up, and it might be difficult to estimate what you exactly want to have in your full release, but it’s worth knowing the road ahead. It’s also very satisfying to cross things off a list.

These were all the lessons that we could share from the top of our heads although I can imagine there are many more that were overlooked. As always, if you have any questions or want to discuss something with me. You can find me on Twitter @elwinverploegen.

Elwin Verploegen

Introduction to Game Design: You can absolutely start with a story March 3, 2015

By Elwin

This article is in response to Chad Carter’s article, “Don’t start with a story“.

Introduction to Game Design Header

If you want to make a game, you can absolutely start with the story.

You read that right, you absolutely can.

While it’s true that if you’re about to make the next procedurally generated dungeon crawler with exploding skeletonstm, a great story probably isn’t your 1st priority. In that case, your first priority is getting a proper gameplay loop going. If your gameplay loop is fun, that’s when you will start adding content. The story is just 1 of those pieces of content. I do urge you to think about the story early on, as adding one later just to say “there’s a story” generally ends up with something that just doesn’t make sense.

If you want to write a great story, write a book, graphic novel, movie, short story, or something else. Like a game. The last couple of  years we’ve seen a huge increase in games where narrative is suddenly more important than gameplay. Games like Dear Esther, Gone Home and the Telltale games like The Walking Dead. I don’t think anyone playing Gone Home has ever said “Man, those mechanics were the best thing I’ve seen in years!”.

You can design your game around a story, we’ve done it succesfully (you can read more on how we made the Fragments of Him prototype here). We started with the idea of a game where you follow the story of someone who just lost someone. I will quote Dr. Mata Haggis from the above link on the first steps of the design:

The theme was minimalism, and I wanted to do a game with a very prominent story in it. I worked on several ideas in my head, but the one that stuck was investigating why a person would choose to live in a minimalist style in their house. The result of this was the idea that the lead character had lost their partner and couldn’t stand to be reminded of the loss.

The story was pitched to myself and my colleague, this is  we started brainstorming on how we would turn this into a game. We brainstormed for a bit and settled for the simple mechanic where the player clicks away memories that remind him of his partner. This makes sense within the narrative and it was actually possible to do within the very limited time scope of a game jam.

No matter what your game is, story is important

I think there aren’t enough designers (or developers) who ask themselves a very simple question.

Why?

Call of Batman: Duty Ops

Call of Batman: Duty Ops

Why is my character doing this, why would the player be interested in following this person around for the next 10 hours of his life? Taking a game like Batman: Arkham City, a game with amazing fighting mechanics. Would that game be the same if it didn’t start from a story? Batman started out in a comic book and eventually made his way over to games, and its mechanics are based around how Batman fights, moves, talks and interacts. While I’m sure they didn’t write the entire story of the game on day 1, these are extremely important things to think about when designing a game.

Think of it this way, what if they decided to put the Call of Duty mechanics in the next Batman game. The story will remain the same and you’re still the mysterious guy in a bat suit fighting crime. But now you’re going from cover to cover with a sniper or assault rifle. Would this make sense or even be fun? It might actually be fun, but you’ll probably wonder why this is a Batman game in the first place.

Even AAA games need to have (at the very least) a global overview of what they story will be like before they start building things. Modifying the ending of a game because you didn’t like what you wrote last week will cost millions, changing the location of an event is also something that you can’t just do. These things need to be planned well ahead of time. The fleshing out and details can be done as you go along.

Building Fragments of Him

Fragments of Him is an interactive narrative experience, and we’re building it in the exact opposite way that Chad is suggesting. We wrote a story first, and are building the game and mechanics around that story. This is something that works great for our type of game, and will probably not work for other types. If you’re building a game that focuses on great gameplay and a fun experience, I definitely wouldn’t recommend starting with writing a fully fleshed out story.

I don’t think you can flat out say “Don’t start with a story”, because you can. There’s just so many different types of games and so many variables that come into play when making a game that there’s no best way of doing things.

Completely disagree with me? Got a game that focuses on narrative that I probably don’t know about? Send me a tweet @elwinverploegen!