Hi! I go by Oblivion. For a quick introduction, I come from a background of programming, scripting and modding. Long famished by opportunities in large-scale RTS, the Sanctuary project has unleashed a beast in me. My work in Sanctuary revolves around anything the players interact with in Sanctuary once "Play" is clicked. This involves anything from creating a little bit of code that integrates artist or scripter assets up to programming entirely new fundamental mechanics.
There are many key objectives to hit on these systems:
Users must be able to interact with thousands of units, giving them various orders.
It must feel quick and snappy for the player. It must allow them to achieve complex behaviors with their armies using minimal inputs.
It must be light and performant, both on the client's end so they do not experience frame drops whether they move one unit or two thousand units, as well as on the host machine's end so that the entire game does not slow down.
Interactions must be unambiguous; what a player thinks will happen when they click a unit should generally happen or at least be consistent.
It must allow the player the full experience of commanding thousands of various unit types and using their myriad of features.
One of the very first tasks I undertook was creating a dynamically sized grid that permeates the map. Its primary functionality is allowing base building for players. It's quick, snappy, and allows the players to efficiently lay down construction plans. Pictured here are some representations of cells within the grid.
Along with the grid come what we refer to as placement ghosts. Virtual representations of the buildings players intend to build. Real time strategy players will be familiar with these as they're used to give a preview of a structure to assist players in seeing how something will build. Players can lay down build plans on the grid, manage, move, update, copy them, etc. They can draw lines and other shapes of placement ghosts. They can also save and place templates of build plans. Pictured here are various placement ghosts on the map. Please note all material presented is work in progress and has undergone change by now.
The grid and placement ghosts are intricately connected. All players have local versions of the grid on which they manage their placement ghosts. The grid is updated according to multiple factors. Putting placement ghosts on the grid locks the cells on which the placement ghost resides unless that is cancelled. Removing the ghosts (by cancelling those orders) frees those cells. The presence of units and structures on those cells also determine whether they are locked or not.
Grid cells that are within the fog of war are not updated locally even if a real structure is placed (to avoid using ghosts for scouting purposes). Finally, the terrain of the map the game is being played on also affects the state of grid cells. In most cases, this is mirrored between local grids. All of these mechanisms serve to seamlessly integrate base-building within the player's experience while preserving the key aspects of hidden information. With these tools players can conveniently and quickly queue bases they intend to build. Now we need to tie it all together with unit orders. You are a Commander on the battlefield. As such, you manage a single, hundreds or thousands of units and buildings by giving them a panoply of orders to execute. These orders have various levels of complexity, from a simple "Stop" order, which interrupts the unit's currently executed order and clears its order queue, to dynamic orders which layer multiple simpler orders to achieve highly complex behaviors, such as an "Assist Move" order, which will have engineers reclaim resources, repair or assist in construction of structures and production of units along their path. Orders can be queued, letting players plan out a chain of orders and let units sequentially accomplish them. Players have access to a host of functionalities when utilizing unit orders. Orders can be easily managed or removed within order queues, targets can be modified, locations can be dragged by mouse. Units can be added to or removed from orders effortlessly. All this functionality is neatly displayed to the player through sleek waypoints designed by our technical artist, Ozonex, whose dev log you can read here. Sanctuary intends to bring brand-new and innovative ways of managing your units across the vast battlefield. We're keeping these a little secret before we launch our Kickstarter, but it will allow for a never before seen level of control over your armies. For now, we'll be writing more developer logs in the run up to it.