petri

Petri is in charge of coding at Almost Human Ltd.

 

Normally the last few weeks of development before launch are really stressful because everything has to come together in a nice clean package. Usually this means frantically trying to fix the remaining bugs, making sure the game runs great on all supported hardware while at the same time polishing the game. The last weeks are very critical to achieving that certain high quality feel. That’s why this time I’ve decided to ease the pain of the last few weeks with a head start. In this blog post I’ll talk about the most important performance optimizations that I’ve been working on for the last two weeks.

Performance Profiler

Some might think that optimizing is boring and tedious because the work is very time consuming and nothing seems to happen to the game on the surface. To help with this I’ve turned opimizing into a sort of game for myself. Whatever I’m optimizing I first come up with some metric, usually a number whose value I can track and try to make it as small as possible. I set up a challenge for myself to see how low I can push that number. Some things are easy to measure like memory consumption of the process with Windows Task Manager or the time needed to process a single frame. But to really dig deep into performance issues it’s necessary to breakdown the measurements into smaller bits to get a better idea what to optimize. Therefore I built a performance profiler directly into the game that I can summon with a press of a button.

The profiler shows milliseconds and percentage of frame time spent in each subsystem of the game and various other statistics. To run at 60 frames per second the computer can spent up to about 16 milliseconds to process each frame, including updating the game world and rendering the view. The profiler also shows amount of temporary memory allocations (Malloc column) during the frame — more about that later.

Memory optimizations

Legend of Grimrock 2 is a 32-bit application on Windows so that means that the application can use up to 2GB of memory without hacks. To make matters worse in my experience the real limit is closer to 1.5GB presumably because DirectX resources eat up virtual address space. Textures and other assets eat a lot of memory so 1.5GB is not that much today. Optimizing memory usage will also help with load times, and can potentially increase overall performance too. It’s important to get the memory usage as low as possible without sacrificing quality of assets.

After cleaning up unused assets we determined that we still needed to shave off some more memory so I begin looking into what could be done on the code size. One easy optimization which was already planned for Grimrock 1 but I never had time to work on was a simple animation compression technique. In Grimrock 1 animations are stored as “array of structs”, where the struct contains position, rotation and scale. This was not optimal because, for example, scaling is very rarely used. In fact most skeletal animation nodes have only rotation movement. A simple optimization is to store keyframes as “struct of arrays”, meaning that position, rotation and scale keys are optional. For many animation nodes we just need to store constant position and scale values and varying rotation keyframes. This optimization cut the memory usage of animations by 20 MB.

Another big optimization was compression of vertex format used by models. Previously all model vertices had normal, tangent, bitangent and texcoord vectors stored as 32-bit floating point values. Floats have a very big range and high precision, more than we need so I compressed those into 16-bit integers. Also a common trick is to leave out the bitangent needed for normal mapping because it can be reconstructed in the shader by computing the crossproduct of the normal and tangent vectors (TBN handedness still need to be stored but it fits nicely into tangent vector’s fourth component). Vertex format optimization yielded about 75 MB saving.

Rendering optimizations

Grimrock 1 didn’t need a geometry level of detail system but Grimrock 2 has much longer view distances and has many more models on the screen so the number of triangles drawn can get quite large. I had implemented a very simple level of detail (LOD) rendering system some months ago where we simply swap between high detail and low detail meshes based on their distance from the player. While this increased the frame rate this resulted in ugly snap when the lod level was changed which limited the usability of the system. When doing the performance optimizations I revisited the old lod system. After doing some initial tests with the artists we figured that a crossfade between the LODs would be the ideal solution. Unfortunately alpha-blending the models is out of the question with a light prepass deferred renderer. A pretty common technique is to use alphatest dissolving instead. I used the technique successfully in Alan Wake’s rendering engine and it still works great today. The end result is quite good and it’s hard to see the LOD transition even if you know what’s going on. We also use the same dissolving technique to fade out small objects like grass.

We are using distorted planar reflections for our water rendering and this requires rendering the scene twice, once for the main view and once mirrored upside down. This can get really heavy on frame rate. Fortunately it’s not necessary to draw the reflected scene with full detail. In fact many object don’t need reflections at all, usually those that are far away from the reflective surface (except if they are really tall like towers). Making an automatic solution that handles all cases nicely is pretty hard, so we gave a few hints to the renderer to help pick the objects to reflect. Objects in Grimrock 2 have three reflection modes: “never” means that the object is never reflected. It’s used for small objects like most items. “always” means the object is always reflected, like the sky and very large structures. “cell” is the default option and used by almost everything. With this option we take advantage of our grid structure. The level designer can paint in Dungeon Editor which cells in the level have reflections enabled. Static objects with “cell” reflection mode will then skip reflection rendering if their cell is not reflective. For dynamic objects we currently use either “never” or “always” mode so that we don’t have to check constantly where they are and update their reflection enable flag.

Game world update

Years of object oriented programming tends to produce bad habits. One good example is the game object update logic that was in place two weeks ago. In Grimrock 2 game objects such as monsters, doors and teleporters are made from components such as lights, models, clickable zones and particle effects. In the object-oriented way each game object had a update() method which calls update() for all its components. Can you see what’s wrong with this? There are at least two big problems (and a few other missed optimization opportunities). First the code has to iterate through all components regardless if they actually need to be updated. For example models do not need to be updated at all because there is nothing dynamically changing about them. Secondly the code has to “megamorphically dispatch” to the component update routine, meaning the code is jumping between different component types all the time. This code branching is very slow. A much better approach is to update all components of given type in one go, i.e. update all particle systems in one pass, update all animations in one pass and so on, something like this:

...
updateComponents(LightComponent)
updateComponents(AnimationComponent)
updateComponents(FloorTriggerComponent)
...

This restructuring of update alone saves several milliseconds per frame. It also has other very nice properties. The code is easier to profile and it’s easy to toggle updating of component by type. It’s also trivial to change the update order of component types. For example, animation components should be updated after monsters so that animations start playing immediately, not one frame after the monster’s brain has decided what to do.

With all of these optimizations in place the average frame rate seemed decent (we haven’t tested on low end setups yet though so we may have go back to optimizations later). I have a frame rate number displayed on the screen all the time and I’ve set it up so that it turns bright red if the frame rate dips below 60 fps. While testing I noticed that every now and then, apparently for now reason, the frame time spiked above 16ms. I immediately began suspecting Lua’s garbage collector and added Lua memory statistics to the profiler. It turned out we were allocating about 40 KB per frame, at 60 fps that’s about 2.5 MB per second! After a few seconds of this Lua decided that enough is enough and collected garbage which dipped the frame rate. We were very lucky that this problem had not surfaced with Grimrock 1. Lucky because garbage collection issues are really hard to fix. I suspect that the working set and garbage generated was much smaller in Grimrock 1 so the problem did not exist.

I began hunting down the source of garbage. Thanks to the update restructuring it was easy to add per component type mem alloc statistics and a few culprits were quickly found. Some cases were easy to optimize away, like the creation of temporary tables here and there. Much more problematic was vector math code that created a lot of temporaries. Lua garbage collector is not particularly good at short lived temporaries like these. I decided to try an experimental technique, to make a separate vector and matrix classes that would be allocated from a pool. At the end of the frame the temp vectors and matrices would be returned back to the pool. The only problem was how to handle “boxing”. Temporaries could not be stored permanently in objects’ fields because their values would become corrupt at the end of current frame. A simple solution is to use boxed vectors as member variables and copy the values explicitly from temporary to the boxed version. It’s a bit of a chore to do it but it seems to work okay.

I still haven’t gone through all the places but the most bad behaving temporary allocating routines have now been optimized. As a result temporary memory allocations per frame has gone down from over 40KB to about 4KB per frame. My goal is to keep optimizing it below 1 KB. Garbage collection is already pretty harmless but I want to beat it so there’s no doubt about it.

That pretty much sums up the work of the past two weeks. Together with content optimizations the game now uses about 25% less memory and runs 25% faster. Not bad for two weeks of work! Hopefully this was an interesting read. If not, then prepare yourself for some more artsy blog update coming next! :)

 

Information about Grimrock 2 has been a little scarce lately so it’s about time we unravel some of the mysteries. Let’s get going!

The events of Legend of Grimrock 2 will happen on the Isle of Nex, a secluded island faraway from civilization. An island is a perfect place to setup an unforgettable dungeon crawling experience because we can mix indoor and outdoor locations seamlessly while still maintaining that atmosphere of mystery and danger, and the density of interesting things that is at the heart of Grimrock. If you think about it, the island is the perfect microcosm, where the party may explore dark woods, misty swamps, underground tunnels and ancient ruins without need to travel great distances. For us, an island is the perfect “dungeon” with a welcome variety of different types of environments.

At the start of the game, a party of four prisoners has ended up on the island against their will and start to explore the island. Pretty soon they will realize that they are not alone on the island and that the island is not an ordinary island at all… What are the mysterious towers on the island and who built them? Why is the island full of puzzles and traps? The story of Grimrock 2 will not be a direct continuum to Grimrock 1, but will be a completely new story with new characters that will expand the Grimrock universe.

A big part of Grimrock is, of course, the brain-teasing puzzles and for Grimrock 2 we have been busy developing new types of puzzle mechanics. Talking about puzzles is a tricky subject to discuss. We believe that the less you know about them in advance the better. So without ruining the surprises ahead, let’s just say that you’re not the only one stuck in the puzzles…

One of the few things some reviewers criticized about Grimrock 1 was monster behavior in combat. We have attacked this problem directly and rewritten the monster AI entirely. As a result monsters are now smarter and they know how to use their larger numbers to their advantage. The repertoire of tricks they know has been expanded greatly. For example, some monsters can call other monsters for help and can use group tactics against you. Of course the behavior of monsters depends on their intelligence so the most stupid and most fierce monsters are still, well, fierce and stupid as they should be. And talking of monsters, there will be lots of new monsters with some of the old, familiar faces making an occasional appearance for old times sake.

As explained in an earlier blog post , the character skill system has been completely redesigned and replaced with a perk-buy system that allows for more flexible character skill development. The design goal is make each level up meaningful and at the same time contain a tough choice. At level up, each character gains only one perk that changes the character in some way. Every perk gained is important. There are no in-between levels.

Tied to the skill system is the item system, which has also been expanded. Many items now have secondary powers that can be triggered by holding down the right mouse button on the action icon. The powers consume energy and range from special attacks to non-combat actions. In contrast to Grimrock 1, primary actions of items can be most often used by any character but the true powers can be used by a character with the right skills.

Potions can now be mixed directly in hand without going to inventory.
Spells can be cast using mouse gestures with less mouse clicks.

We have also improved the spellcasting and potion crafting systems to reduce the required number of mouse clicks. Potions can now be mixed without going to the inventory. Using an empty flask in hand will open up a miniature potion crafting panel (see screenshot) which you can even use in the middle of combat much like the spellcasting interface.

The new spellcasting panel allows mouse gestures to be used to cast spells. Spells are cast by holding the mouse button down while doing a swipe with the mouse on the correct sequence of runes. Talking of magic, the Mage character class has also been redesigned. The requirements to cast spells of different schools have been relaxed so that mages can cast larger variety of spells. In Grimrock 2, mages need not be one trick ponies.

Of course, Grimrock 2 also has new spells, a new playable race (with portraits to go) and a new character class. These combined with over a hundred new items, 22 new monsters, new environments, day to night cycle, plus as much more as we have time to crank in, means a lot of new stuff to have fun with!

In other news, we also have a big reason to celebrate today. Legend of Grimrock: The Series from Wayside Creations, the makers of Fallout: Nuka Break, has just been successfully funded on Kickstarter! WOOHOO! Wayside did a fantastic job with Fallout so we are super excited to see how Grimrock will translate to the new medium. Naturally we will assist Wayside and make sure the series will be true to the lore of Grimrock. There are still 4 days remaining on the Kickstarter, so if you want to take part in the development of the live series, there’s still time!

This post is getting rather long already, so let’s stop now to oogle at these shiny new screenshots!

 

As promised some time ago, in this post we’ll talk about the new skill system designed for Legend of Grimrock 2 and how it will improve the game.

Goals of the new skill system

When we started throwing around ideas about the new skill system, a few things came up often in the discussions. Firstly, every character level gained should feel special. Essentially this means that every skillpoint spent should improve the character in some way. In contrast the skill system of Grimrock 1 was designed so that you get a benefit every time you crossed a threshold in a skill. If you spent points in multiple skills, or otherwise didn’t reach the threshold, the character did not really advance at that character level. Combined with the fact that skills were very deep (maxed out at level 50), this resulted in a situation where optimal strategy is to pump all skill points into very few skills. Especially with magic skills, this resulted in mages specializing in one or two schools of spells, which resulted in fewer spells to be available to mage. Fewer spells = less fun to the player. Also at higher levels, spending skillpoints became almost automatic and there was less decision making involved.

With LoG2 skill system we want to have more diversity and every level up should present an important choice to the player. After talking about this for a while, we realized that a minor tweak to the system is not enough. A major redesign was required.

Shorter skill trees

In LoG2 when you gain a level, you are rewarded with only one skillpoint. To counterbalance this the skill trees are much shorter. This way, every skillpoint spent matters now and there aren’t any intermediate skill levels. In fact, most skills are only 1-3 levels deep and there are many on/off kind of perks that you can buy. Some skills have other skills as prerequisites. For example, the Shield Expert skill requires that you have spent at least one point in Armors.

Technically speaking, the skills available to your character form “a forest of short skill trees”. Shorter skill trees mean that you can max out a skill with a few level ups (assuming that you meet the prerequisites), so this should encourage spreading points in multiple skills.

The skill system is also connected to the secondary actions of items described in an earlier post: some secondary actions are only available if you have enough points in a skill. For example, all characters can wield any axe found in the game, but only Fighters that have at least 1 point in Axes, can use the Devastating Cleave secondary attack of the Great Axe.

The skills available to your character are based on your character’s class. Every class has its own skill tree, but some skills are also shared by multiple classes. But there’s more to this! We have folded races into this same system, so that every race has a mini skill tree with unique race specific skills and perks! Some racial skills are automatic (e.g. all Ratling’s automatically get the Plagued skill), other skills you can choose how and when to advance. Insectoids can develop a thicker shell by spending points in the Chitin Armor skill and so on.

A nice feature of this is that it unifies traditional skills, perks and racial traits under the same system. So adding a new skill or trait is exactly the same and we have to maintain only one system.

That’s all! Please tell us what do you think. You can either post comments to this blog or write in the forums as usual. We’ll be reading through all the feedback.


Fighter Skills: Grayed out skills are locked because the character does not meet the prerequisites for those skills yet. Human Skills: Every race has some unique skills specific to that race.


Ogre’s Grip: A skill that only Fighter’s can buy, but they have to have at least one point spent in Two-Handed skill. Armors: You can spend up to three points in the Armors skills. Athletics: Even if you fill the entire fighter skill tree (unlikely) you can still keep spending points in the Athletics skill. Leadership: This is a special kind of skill which designates the leader role to one of the party members. Naturally, only a single party member can be the leader and this role is a keeper!

Sep 122013
 

This week I’ll talk about the creation of the gui for Legend of Grimrock 2. Let’s get rolling!

From the past experience with graphical user interfaces (GUI) we know that creating a gui that not only looks great but is also effortless and intuitive to use is hard work. For LoG1 we did many, many iterations before settling down with the final design (by scanning older blog posts you can see various incarnations that evolve to the final version). We are pretty happy with the original gui but as always there is still room for improvement. So, we spent a week with Juho furiously working on the gui and this is what we got:

The changes are not just eye-candy, some of them make the gui more usable. For example, you can now cycle through the characters by clicking on the arrows on the left and right side of the portrait. Also, the main statistics, experience, food, health, energy, protection and evasion are always visible on the upper half of the character sheet. With a quick glance you can now see whose character sheet is open regardless which tab is active.

On the visual side, the little drips of brown and green here and there remind of the new outdoor environments. A little feature that we wanted to do for Grimrock 1, but didn’t have enough time, is race and gender specific inventory panel backgrounds. Naturally now that we have moddable races (did I mention this feature already?), mods can define new background images for new races.

Like before the stats tab shows the remaining statistics, such as ability scores and resistances. We improved the layout a bit and grouped left and right hand statistics in their own boxes. As a new feature the percentile chance of scoring critical hits is now displayed in the stats tab.

(For the technically inclined, the gui elements in Grimrock 1 were manually packed in a texture atlas and the coordinates and sizes of every element were painstakingly entered in the code. For the new gui, I coded a simple texture packer that spews out a big texture atlas containing all the bits and pieces and a Lua file with the coordinates. The texture atlas has currently 192 pieces, so needless to say, making new iterations is now a lot less painful than with the old gui system!)

LoG2 will have many new harmful and beneficial conditions that your characters can have. The conditions used to be seen only in the stats tab, but the tab was getting a bit crowded, so the conditions are now indicated on the portrait. This is a very natural place for them, so I don’t know why we didn’t realize this earlier. Anyway, if you have any harmful condition the portrait rectangle turns red and by hovering on the portrait with the mouse you get a detailed list of all active conditions and their effects on the character.

Perhaps even more important than the character sheet is the attacking interface on the lower right corner of the screen (see below). We have also redesigned the attack frames so that the rune panel fits on the screen without hiding the little portrait and health and energy bars. It’s a lot cleaner now, especially with multiple mages. As a side effect the attack buttons are now a little bigger making it easier to hit them in the heat of battle.

Observant readers may have noticed that I haven’t mentioned the Skills tab of the character sheet yet. I actually skipped that on purpose, because the skill system has went through a major redesign and I reserve the subject for another blog post! Ha!

There you have it, until next time! …And back to coding! :)

 

Back from the holidays and already busy at work, it is time for another development update! In this update I’ll talk about changes to the item system that ended up having a pretty big effect on the combat mechanics as well. Did I get your attention? Read on! :)

Let’s take a look at a familiar weapon the dagger (see below). As you can see we have changed some of the item statistics to reflect the underlying game mechanics better. In the Grimrock 1 a bigger value was always better, but unfortunately the values were quite abstract. For example, the graphical interface showed an abstract statistic called “attack speed” and the player probably had no way of telling how attack speed was internally translated to a cooldown value. One of the goals of the new system is to make it less opaque, so that’s why instead of abstract “attack power” and “attack speed” statistics, the item tooltip now display a damage range and a cooldown value in seconds.

However, a much bigger improvement is the addition of secondary actions. Many items in Grimrock 2 will have two actions. The first one is the primary action that is most natural for the item and it can be activated quickly with the familiar click on the attack button. For example, the primary action of the dagger is a melee attack, but in Grimrock 2 you can also throw a dagger by holding the attack button down briefly. The buildup time for secondary attacks varies per action, so that simple actions such as throwing can be executed very fast, but more powerful attacks and abilities take considerably longer.

Some secondary attacks can be very powerful. For example, the longsword (see below) can deliver mighty Thrust attacks that have improved damage and much higher accuracy. It can also bypass enemy’s armor to some extend — enemy’s armor value is reduced by 20 points for the duration of attack so it’s much more effective against armored foes. To keep you from spamming special attacks and increase the importance of tactics, the special actions usually have an energy cost and sometimes a limited number of charges. We are also toying with ideas of level and skill requirements for some of the most powerful special attacks.

Talking about charges, the problem with items with charges, is typically that the player saves these items for special combats. Usually this means that these items will actually never be used and just pile up in the inventory. That’s why most items with charges will have another use in Grimrock 2. For example, the Meteor Hammer, a new weapon for Grimrock 2, has a melee attack in addition to its devastating Meteor Storm attack. This way a front line fighter can still use the weapon even after all charges have been used. Also, its much more convenient to shoot a fiery storm of death from an item held in hand than go rummaging through the backpack in the middle of hectic combat.

We are still toying with the secondary attacks and things might still change considerably. We have some pretty interesting abilities planned for new items, and there are other things in the plans as well, for example, to make certain monsters resistant and weak against certain attacks. But the addition of secondary actions has already made a big impact on the feel of the combat. More choices, more tactics. Buildup times of special attacks affect the rhythm and pacing of combat. Combat in Grimrock 2 will be different affair than in Grimrock 1!

 

It is the thirtyeighth day of my journey. The sea has been strangely calm for weeks with nought but a slight breeze and no drops of water from the heavens. The Ratling captain says that this is an ill omen, for in this season rains should be plentiful.

The reports of strange structures on the Island are perplexing to my mind. Surely some of them were made by the natives now long lost to the mists of time. But the tales of seafarers also tell about more recent, grander constructions towering above the trees. The natives and the priestesses long gone, who are building these structures and why?

The seamen believe that the Island is cursed — I say guarded by strong Magicks — since no ship sailing close to the Island has ever returned. Perhaps the ancient statues reported by the few survivors of shipwrecks are there to guards the secrets of the Island until the constructionwork is complete? Perhaps with the careful usage of the Art we are able to dispell the shields and grant us entrance to the Island? Perhaps the King’s endless thrist for knowledge shall be finally quenched? Perhaps.

There are black clouds billowing in the horizon. The storm is rising.

– Alarast the Sage of Royal Library

Hello all! We have been pushing hard on the development of Legend of Grimrock 2 and now we are going to have a brief but sweet summer break. But before we go a recap of what has been happening is in order!

The focus of work recently has been on the building blocks of the game, the monsters, puzzles, and environment assets. After the holiday break we are going to start putting the pieces together and building the (final) game world. (I put “final” in parenthesis because I know we are going to polish and tweak the levels to the very last moment before the game ships.)

With the added musclepower of Jyri and Jyri, we have been able to push an impossibly large amount of 3D models, animations and textures out of the oven in a very short time. For example, we have 16 complete new monsters and more is coming. Combined with the monsters from Grimrock 1 we have something like 40 unique monsters, although many of the old monsters won’t make a come back in the new game. The monsters of Grimrock 2 are also much more complex, many with multiple types of special attacks and unique AI behavior.

On the wallset side, we have seven completely new environments, more than double what we had in Grimrock 1. The amount of model files, material definitions and scripts is getting really tough to handle! :)

On the tech side, we have implemented water rendering and integrated a video player. After carefully evaluating our options we chose to use an open source WebM/VP8 video format. Being open source means that mods can also contain cinematic videos without licensing limitations. This was very important to us. The cinematics can also be played whenever needed, no longer just at the start and end of the game.

That’s it! Have a great summer!

 

Welcome to the second official dev update of Legend of Grimrock 2!

For the past weeks we have been progressing at a steady pace towards our goal looming in the horizon, the first playable alpha. I’ll go through some of the major events that have happened in development.

First of all we got a new team member, YAY!! Welcome aboard, Mr. Jyri #2 aka Jykä! Jykä will be working as an animator and will essentially double our animation content creation throughput. Jykä is already working on his first monster while getting accustomed with our content creation pipeline. We are know 6 men strong which is 50% more than when we were working on LoG1.

Jykä is an especially important addition to the team because he’s the only man who knows how to properly use a coffee maker (an important skill e.g. if you have high profile visitors) :-D

Continue reading »

 

Time flies when you’re working hard on something and, oh man, have we been working hard lately. It’s time for a first proper dev update for Legend of Grimrock 2!

The codebase has been in quite a bad shape after working so furiously on the first game. So I’ve been doing a lot of code refactoring which is a bit unthankful work because I’m rewriting a lot code and on the surface nothing seem to be changing. But still it’s very important and will speed up development in the future tremendously. Almost everything is now component based (except for the Party class which is a bugger to refactor because it’s so tightly connected to many places). Also I have rewritten the save game system, so that it’s easier to add new components that store their state automatically in save games.

I’ve also worked on the AI and as a result some critters are now noticeably harder to deal with. A completely new AI behavior has also been added. You can tell the difference immediately when this new behavior is activated but I don’t want to spoil the fun by revealing all the secrets yet!

The Dungeon Editor has also seen some changes. The inspector is now tree-based and shows the components of the selected entity. The “Paint Wall” tool has been extended quite a bit. It is now possible to paint different types of walls and floors in the same level. Shift-clicking on the map flood fills large areas. The editor also has a zoom feature, so tightly packed levels are easier to deal with.

Meanwhile Antti has been busy designing the levels. We have now about 5-6 playable levels in pre-alpha stage depending on how you count them. The levels have puzzles in them but monsters and extra polish will be added later. Antti has also been prototyping on a cool new puzzle mechanic which will eventually help extend our repertoire of tricky and brainteasing puzzles.

Juho and Olli have been modeling and animating new monsters and we have now eight new nasty critters, including two new spellcasters in development. We are trying to get a wider variety of monsters with different abilities in the game this time. If time permits we would like to implement unique AI behavior for most of them.

Jyri has been working on a new interior wallset and dungeon props. Jyri has also helped Juho and Olli by creating the very first monster that you will encounter in LoG2! Jyri reports that the monster has 3192 polygons, uses three textures, has 17 deformers and fits approximately inside a 3×3 meter cubic block. Can you guess what it is? :-)

So all in all, I’d say we are progressing at a good pace. But there’s still a lot of work left, so better get back to banging the keyboard!

 

Here it is, the first official screenshot from Legend of Grimrock 2! Hope you like it! :)

Click on the image for larger version.

 

During the past weeks we have been brainstorming and prototyping ideas for LoG2. During this process it is important to keep an open mind to have the creative fluids flowing, so we have tried to not restrict ourselves too much. Many game designs were tried and at least three different storylines were written before nailing down the design for LoG2. In this blog post, I’ll talk about two scrapped designs we found interesting. As many times happen, these designs worked great on paper but not so well in practice.

Grimrogue

Everybody loves a good roguelike, right? Antti and I are big fans of roguelike games here at the office, so it was only natural that this idea, the amalgamation of a roguelike game with Grimrock, has popped up every now and then in our discussions. After all, the tile-based nature of Grimrock seems to be a perfect match with roguelike game design.

With this design levels would be procedurally generated, with some custom made levels here and there. Turn-based combat would probably work better than pure realtime. We even made a quick prototype entitled Grimrogue with turn-based combat and a minimap in one corner of the screen.

One problem we quickly realized was that the player would be focused on the minimap when exploring the randomly generated dungeon and all the gorgeous 3D graphics would be almost like a gimmick. We also had our doubts about turn-based combat. Turn based combat works really well from a topdown perspective where you can see all the units and can think about the best tactics. In first person view where you can only see in one direction, turn-based combat takes away tactical movement and reduces combat to a locked in place affair.

In the end, we felt that with this design we would lose lots of the appeal of Grimrock, the puzzles and the chaotic nature of realtime combat, so the design was scrapped. It would certainly be possible to make this sort of game but it wouldn’t have been Grimrock.

Travel around the Northern Realms in 30 days

Another concept which we tried to make work really hard was travelling in many locations around the Northern Realms, the world of Grimrock. We were initially really excited about this idea, and we made a prototype of the world map, with towns, villages and adventuring locations. There would have been a storyline that ties the main locations together much like the main quest in many RPGs.

In the prototype, the party could travel between the map nodes and choose where to go next. Towns and other encounters were menu based “resource management nodes” and adventuring locations were dungeons with puzzles and monsters. We were so happy about this design that we were about to write a lengthy blog post about it, when doubts began to haunt our heads.

Here’s a snippet of this unreleased blog post:

“One of the themes in Grimrock 2 will be travelling. We would like to explore the outside world that we hinted in the first game. Travelling vast distances in the world would of course not work tile by tile (btw. tile-based movement is definitely a keeper feature), so Grimrock 2 will have multiple locations and a greater variety of environments. Multiple locations will hopefully improve the pacing of the game (a breather after completing an area), give immediate subgoals for the player (complete the current locale), and more choices (where to travel next).

However, one thing that Grimrock 2 will not be is a massive modern RPG. There won’t be zillions of NPCs doing their business and endless wastes of wilderness to travel in. Grimrock 2 will be a different kind of experience with an oldschool heart. We want to keep the core gameplay still tightly centered around the party, tricky puzzles, scary monsters and exploration. Our goal is to make sure that anybody who played the first Grimrock, should be instantly at home with the new game.”

We really wanted this idea to work. The final paragraph of the unreleased post gives some hints about the problem with this design: “tightly centered around the party”, “focus on exploration”, “instantly familiar with the new game”… The problem with this design is the lack of focus. We believe that the charm of Grimrock is compactness, tight focus and emphasis on fun core gameplay. In Grimrock 1, the environment, the dungeon itself has personality and the quest was personal to the characters. Having multiple locations with different atmospheres and multiple linked goals would take some of that charm away.

A game of this sort could surely be made, but, again, it would not be a Grimrock game.

Conclusion

Some might think that brainstorming these ideas and making these elaborate prototypes was a waste of time. Surely we spent time on working on things that will not be in the final game, but more importantly we now know what we don’t want to have in the game. This is very important because it helps us to focus on the essentials.

What is Grimrock 2 going to be like then? Well, I’ve got good news and bad news. Which ones would you like to hear first? Ok, good news: we now know crystal clear what Grimrock 2 will be like. We are really, really happy, relieved and excited that we have settled on a design that feels good and has that magical Grimrock feeling to it. Bad news: you’ll have to wait for another blog post to find out the juicy details!

© 2013 Almost Human Ltd. Suffusion theme by Sayontan Sinha