TRI – scripter’s dev log #7

This is the seventh entry I wrote for the TRI dev log on TIGForums. You can find the previous parts there. From now on I will post the entries here, too.

Yes, we and our project TRI are still alive! After a pretty long break at the end of 2012 we decided to move the game into a different direction, especially regarding the style. The story changed, too, but this is not quite as relevant, as the story and plot we thought of were never an integral part of the alpha versions. In the current pre-release we even removed any hint of story, because we want to add NPCs later, and concentrated on other stuff this time.

2012 - 2013

The pause in the last quarter of 2012 was mainly for doing contract work, to get some money for food and shelter - but it also gave us time to rethink some design decisions we made regarding TRI. The main concern was to make everything easier for us to create content, which means:

  • simpler textures mostly just quadratic tiles
    • We combined this with a shader to look up the tiles – fed with the tile texture atlas and a noise texture, the walls, floors and ceilings don't look too much like repeating patterns.
    • Currently this shader works fully with Direct3D, but is a bit broken in OpenGL – because of a bug in Unity3D 4.x there are ugly artifacts visible for everyone on Mac or Linux. This will hopefully be fixed some day ...

tiles
random tiles on the walls

  • simpler mapping – standardized box mapping will do in most cases
    • This is done in the 3d modeling program (3dsMax). Additional customization of the mapping is done only when necessary.
    • Of course this means that for more sophisticated architecture the textures have to be carefully chosen, so for example it doesn't show too much seams on curved walls.

seams
visible seams - will be fixed

  • simpler level creation– try to stay in a grid of 1x1x1 meters initially
    • I wrote a MaxScript tool for 3dsMax in order to have vertex snapping on a 3D grid. It's a pity this isn't built in, as my solution is quite prone to errors (often, undo doesn't work) and unintuitive to use. But it's better than nothing. I think in Lightwave this functionality is called Quantize.
    • The tool allows us "to go into detail": by clicking on a button you can half the unit, so it the unit 1m becomes 0.5m becomes 0.25m becomes 0.125m ... etc., thus everything really will be in a grid. Of course there are exceptions, like round shapes.

vertex snap
3D vertex snapping tool

  • simpler level export click a button in 3dsMax and the stuff is in the game
    • Another tool for 3dsMax is an exporter which automatically exports all the objects in the scene as a complete FBX which is used as the level geometry in Unity3D. Having a fast pipeline is awesome.
    • The exporter prepares certain objects specifically for the game. For example, there are surfaces in the game where the triangles don't stick, so we assign them a particular material. Every submesh with this material will be exported as its own gameobject, and therefore can be easily recognized in the code.
    • We can add some keywords to the name of a mesh so it gets treated differently when exported. For example, adding "$Export:Bridge" to the name will remove the object from the level and export it as a separate file named "Bridge.FBX", or adding "$NoExport" won't export this object at all.

exporter
export tool

  • simpler mission design – the main goal of every level now consists of collecting three keys in order to open a portal to the next level
    • With just three symbols in the top right corner of the ingame GUI, everyone knows what they have to do without much explanation (ideally).
    • Even though the premise of collecting three statues sounds kind of boring, it actually freed us from having to think of overly creative, but in the long run unnecessary mission goals. The goal is clear and creativity can be spent on the level design and puzzles.
    • The pacing is slower now and the learn curve for the player was decreased, because single levels are often dedicated to single gameplay elements. They are also less confusing as it is more clear what to do next; we reduced the elements that look interactive but really aren't.

goal
collect statues = mission goal

All this simplification resulted in a better consistency of the looks and the gameplay. The new art style can be tweaked quite easily by changing a few colors, the ambient light and the global fog. Improving the gameplay and layout of a single level even after texturing and mapping it became easy. With the new limitations, we can predict the ideal size and content of a level much better and we're more confident now when creating the level design.

We also built a tutorial mission which will introduce the player to the world, so it contains a show-jumping course for learning the basic controls, but will also be the start of the story, as NPCs will give the player motivation to actually move through the levels.

tutorial
tutorial parcours

Right now we get mostly positive feedback, especially regarding the level architecture. But not enough people are playing the game – let alone buying the alpha version. The trailers we do might be big turn-offs, as creating the triangles seems tedious. It's actually fun and feels natural, but how can we tell the hard to convince trailer-watchers? We probably need to make it more clear that TRI's focus is not only on puzzles but also on exploration.