Introducing Terrain Tools (plus TS1 engine support)
Over the past few weeks, I’ve been working on getting The Sims 1 working within our engine, to ready it for a mobile version. This has led to the development and improvement of a feature that was not explored in TSO before: terrain tools.
This enables a whole new level of creative freedom for designing interesting lots which can use the terrain to spice up a lot with multiple buildings, or even enable lots based entirely around a terrain feature such as a mountain, mesa or digsite. I for one would like to see a jam lot in a digsite, so sims can bury their dreams while they make jams just to save some time.
Immediately, you’ll remember that in the original TSO terrain tools were always listed as “Coming Soon!” in the build mode panel. The only place the terrain really appeared was in the very edge of the lot, where it only slightly resembled the terrain around your lot. Now when you place a lot on uneven ground, the terrain will accurately reflect what you see in the map view, including steep cliffs.
Additionally, floor tiles and foliage can now be placed on slopes, thanks to a new FSO custom 3D floor renderer. Terrain was very limited in TS1, so it was only really used for one lot in Magic Town, where they even had trouble making a path down the hill due to sloped floor tiles being impossible.
The tools themselves have been greatly improved from TS1’s versions. In the original, you had to click, follow and hold on a tile corner to raise or lower it, leading to you occasionally raising the wrong corner and generally having little precision or control over the results. In our implementation, raising and lowering terrain is possible though a tool similar to that present in Roller Coaster Tycoon, where you click a vertex and drag it to its target height. Additionally, you can hold the control key to provide a smoother falloff rather than the default “pyramid” pattern.
The flatten tool now works on a vertex level rather than a tile level. Select a terrain vertex with the target height, and simply drag a rectangle out over the vertices you want to be the same height. You can hold the control key to produce a smoother falloff here too.
I have also re-implemented the grass tool, which works like a paintbrush. To remove grass you hold control, and to change the grass state more gradually you can hold shift. Mousing over an area once changes the grass state by one level – mousing over it again or reclicking on the point will change it by another.
A work in progress
Note that while the feature is mostly complete, it has been released early in order to deploy emergency changes which prevent server crashes. This means that a few things may not look perfect, and due to the complete overhaul of the floor rendering, some things may be missing. This includes artefacts in water/pool rendering, diagonal tiles, and missing corner pieces on pools.
Additionally, you might find it hard to click on terrain that is high enough to cover other terrain in the background (go here and build/buy placement). This is because we must implement a new way to detect which tile the mouse cursor is over.
The Sims 1 in FSO
Since The Sims Online is actually built on the engine of The Sims 1, it’s not too much of a leap to adapt our engine to support and use objects and resources from the original game. After quite a bit of work, we are now running nearly all lots in a default TS1 neighbourhood (including downtown, studio etc), without much issue. You can imagine a few benefits to playing TS1 in the FSO engine, such as the lighting, high framerate support, 5 floors and powerful modding tools… but the true final objective is to get The Sims 1 running on mobile devices with an entirely custom UI.
While this is mainly a project in its own right, the development of this engine is gradually improving the state of our TSO engine. I’ve tracked down multiple very specific bugs which were completely untracable within TSO’s objects, notably the “running man” interaction bug and obscure behaviour with animation events. It was the development of this project that lead to the addition of terrain tools across both projects.
Finally, here is a mockup of the mobile friendly UI that will be used in the TS1 frontend. Note that these are just a few shots out of a large collection of menu mockups, but you should be able to note that we’re keeping it simple.