Dev Blog Update #1

Leaving the school project vibe behind us

Even though we’re working hard on the sequel called ‘We Were Here Too’, we haven’t forgot about We Were Here. Now, six months after the release, the game is still being played by more and more gamers worldwide. So we thought it was time to give the game a performance upgrade, allowing more gamers with lower-end setups to enjoy our game. Read all about how we achieved this as our programmers Sam and Thomas explain the fine details.

Since We Were Here started out as a school project and had to be developed in less than three months, there wasn’t too much time to optimize properly. Shortcuts in code were taken, unnecessary amounts of polygons were drawn and multiple lighting systems were stacked upon each other. Four major goals were set when starting with this overhaul:

  • Increasing overall performance (Especially for lower-end systems)
  • Less hiccups / frame drops
  • Solving frequently reported bugs
  • Preparing the game for future ports to other platforms

Spreading the load

A seamless game experience is an important part of the game. Upon entering the actual gameplay phase just after the matchmaking, a system called Dynamic Mesh Filter System (DMFS) was developed to simply split up different parts of the game (e.g. the theater and dungeon) and only enable those where the player is walking. This makes game-breaking loading screens in between puzzles obsolete. However, toggling large amounts of game objects at the same time caused hiccups as well. To improve this system, Sam redesigned it from scratch. He came up with an asynchronous recursive depth-first traversal algorithm that essentially spreads the load by enabling game objects within an area over time. In the example video you can see the player walking through the dungeon. As he walks past corners, the DMFS starts loading the area he is heading towards, and disabling those he left. This improved system, together with Occlusion Culling, makes for a smooth gameplay experience

Dynamic mash filter system demo in We Were Here

Spring cleaning the castle

We realised that refactoring our code base wasn’t the magic bullet to increase performance. There was more work that had to be done. Using the Overdraw feature in Unity, we noticed a considerable amount of unnecessary drawn meshes. Thomas took on the tedious job of detecting and removing all of these spots throughout the game. In the image below you can see a before and after photo of one of the worst cases he found.

A screenshot of the obvious changes between the dungeon colliders

One other major performance booster can be found when we took on the lighting system. Trading most of the Realtime for Baked lights to avoid stacking multiple systems and better tweaking the representation for each quality settings resulted in actual more frames per second when selecting a lower quality setting in the options menu.

We want proof

So let’s talk real numbers. To back this all up we benchmarked both the old and new improved version of the game in terms of frames per second. For this test we took a low-end and high-end setup:

High end test setup:

  • CPU: Intel(R) Core(TM) i7-6700HQ 2.60GHz
  • GPU: NVIDIA Geforce GTX 1060
  • Screen Resolution: 3200 x 1800

Low end setup:

  • CPU: Intel(R) Core(TM) i7-3610QM 2.30GHz
  • GPU: Intel(R) HD Graphics 4000
  • Screen Resolution: 1920 x 1080

The in-game graphics options were set to the highest values for the high end, and to the lowest on the low end setup.

Screenshots on the low-end system

Screenshots on the high-end system

Overall we are pretty thrilled about the results. We almost doubled the FPS for low end gaming setups (from 15 to 24). The results on our high end setup show only a slight performance increase. We see it just as a nice addition as we originally only aimed at boosting performance for gamers playing on lower end setups. We hope you will enjoy We Were Here even better now with this remastered version and keep an eye out for an all-new adventure coming soon with We Were Here Too. Don’t forget to put the sequel on your wishlist on when the page is online!


Sam & Thomas

Recent posts