Okay, so we’ve tinkered for weeks, have our game engine coded and built, some nice models to work with and we spawn in a nice empty terrain level and do…
…nothing. We don’t have a game yet, just some models rendered in a 3D space. Now the real work of providing an experience for the player begins. This series will document my own construction of a gametype for Torque3D, from design notes/requirements through model/level setup to network testing, the results of which will be posted on GIT as part of an Open-Source package I’m releasing.
The End Justifies the Means
Over the past few years, I have collaborated with Sean Rice on a set of add-ons for Torque3d called the ‘BattleRoyale’ kit, named after the Japanese cult film. The idea was to provide a drag-and-drop solution to create military/battle simulations in Torque. With the demands of other projects and real-world issues we weren’t able to release our work as a commercial product, so we decided to Open-Source as much of it as possible. My major contribution to the package is a vehicular AI add-on called SENTIENCE. With numerous changes having been made to T3D since my original scripts and code were written I needed to test the functionality of my work in as close to a real working game as I could before releasing it to the world. To this end, I’m setting up a small project starting with a fresh install of T3D 3.6.3 - I will add numerous updates to this as I go along but for now I have something to start with.
Having lived and worked in Hollywood for decades, it’s hard for me to approach a project without some sort of script first. Most scripts get rewritten dozens of times during the course of a production yet without one, things rarely ever get started, much less finished. In terms of game design, the script is useful because it forces the designer to look at the big picture of the players’ experience - It isn’t art, code, or story that make or break a game but rather the sum total of how all the elements of it come together to create an experience for the user is what matters most of all. While most of the levels in my project will be utilitarian test area, I needed at least one level to show off what it really looks like. I used a template from World of Level Design to create a script/design document for my showoff level and will try as much as possible to keep the pacing and flow of the game in compliance with my design.
PURPOSE AND FEATURES
For technical reasons, I wanted to use an island as my level setting. This is an old trick: when you can’t hide the borders of a level with terrain or models, use a waterblock! In my case, I’m dealing with some issues Torque3D currently has with large/tiling terrains as well as collision issues between vehicles and terrain blocks. Despite this, I needed some spaces where I could run flying or hover vehicles flat-out without running out of terrain or seeing the world end. For my purposes, I’ll have a single large terrain block in the middle of my world to create the island, with a huge ground plane a couple hundred meters below it to simulate the seafloor. This will keep models from falling through the world if they stray too far. I’ll be using submarines extensively in the level design so I’m compelled to use a waterBlock instead of waterPlane for my ocean. My AI package has some specific requirements for path and spawning setup so these need to be integrated without taking away from the visual effect. For framerate and collision’s sake, I want a minimum of shapes in the level, perhaps a desert or snow scene with few trees or vegetation. In addition, I use procedural techniques all through the design process, so the level needed to be easily reused in different contexts. To make it even more complicated the entire game is still a multiplayer TPS, the vehicles and other effects are there to create the feeling of the player playing a small but critical part of a large scale operations. I have quite a number of requirements, now I need a way to make them playable.
- Primary: Test and Demo Sentience AI
Primary: Fun for players
Secondary: Test procedural level generation techniques
Secondary: Simulate an invasion. Give the player the impression he's a part of a larger conflict.
- Procedural - bases are prefabs loaded with mission. Depending who is attacking/defending, the base can be different. Attack/Defense setup and AI are randomly generated making the level different every time. Vehicular AI will use procedural pathfinding to keep players second-guessing.
Multiple Strategies – Players will be able to attack via submarine, helicopter, attack boat or parachute. Using different strategies plus procedural techniques keeps the level ‘fresh’.
One of my all-time favorite storytellers is Alistair Maclean author of Ice Station Zebra and The Guns of Navarrone. In both, the protagonists attack a land target from sea – using these storylines as a basis gives me a chance to weave a story into the technical needs of my level. In the Cold-War era story Ice Station Zebra, an advanced experimental British camera was stolen by the Soviets, along with an enhanced film emulsion developed by the Americans. The Soviets sent it into orbit to photograph the locations of all the American missile silos. However, the camera malfunctioned and continued to record Soviet missile sites as well. A second malfunction forced re-entry in the Arctic, close to Ice Station Zebra. Soon after, undercover Soviet and British agents arrived to recover the film capsule, and the civilian scientists at Zebra were caught in the crossfire between them. Much of the story revolves around the nuclear sub the Americans send to retrieve the satellite, including a spectacular icebreaking scene.
In The Guns of Navarone, the WWII Axis powers decide that a show of strength might bully neutral Turkey into joining them. Their target is a command of 2,000 British soldiers marooned on the island of Keros in the Aegean Sea. Rescue by the Royal Navy is impossible because of massive radar-directed superguns on the nearby island of Navarone. Time is short, because the Germans are expected to launch an assault on the British forces. Efforts to destroy the guns by aerial bombing have proved fruitless. So that six destroyers can pick up the stranded men, Commodore Jensen Allied Intelligence gathers a team of commandos to sail to Navarone and destroy the guns.
Now I have two great stories, each involving a commando team on a ‘quest’, against a background of large scale air/sea operations. My idea is to offer a player the chance to join either or both plots, by placing an ice-packed research station on one end of the level, and a super-gun emplacement on the other. In the middle is the McGuffin Generator, the object of the players’ quest. SENTIENCE will offer the player multiple ways of achieving the objective by allowing multiple types of strategies to capture the island.
LOCATION AND ENVIRONMENT SETTING
Ice Station Zebra satisfies a couple of my critera in that it takes place in a barren arctic world, has three factions and includes vignettes of close up fighting as well as large vehicles. I’ll include the super-guns from Navarone, but instead of the Aegean, the level will be placed somewhere around Polar frontiers of the North Sea. This will allow the level to be used for Viking, Fantasy, WWII, Modern, or SciFi settings with different building/vehicle assets.
- Large Ice Floes
An object of strategic importance, the McGuffin Generator, has fallen from orbit near Ice Station Zeta, controlled by TeamA.
TeamB wants the object and doesn't want TeamA to have it.
Optional: TeamC is the original owner of the object and doesn't want either other team to have it.
OBJECTIVES AND OBSTACLES
- Sieze, Control, Retrieve or Destroy the Science Station/McGuffin, with or without escape.
Two minor objectives
- Sieze, Control, Retrieve or Destroy Ice Station
Sieze, Control, Retrieve or Destroy Gun Commandery
Note: both minor objectives are required to access the Major Objective
- 'Icebreaker' postition
'Aquatic Assault' position
Two 'Surface Assault Points'
- ‘Big Gun Drop’
Follow 'Ice Station Zebra' visual style, kinda '60/'70s retro. Leave generic enough for level terrain to be used for fantasy, scifi or historical uses.
Stay Tuned: In my next installment I'll list the assets I'll need and begin setting up the project...