I mention a few terms in the paragraph that will be standardised. For more information, look at the terms at the end of this post.
The current core of GunFighter is the idea of Actions. These form the base of the commands you give to your team and their depth and level of detail is one of the ideas that draws me to this project
A great way to think of it is similar to the idea of verbs in the old adventure games – every item could be interacted with in a selection of different ways. Actions is similar but rather than a set of generic terms, it goes off custom actions for each and every object type. This lets players interact with the world in a wide range of different ways, allowing a selection of playstyles to be implemented from combat focused team operations to very stealthy single character missions. However, another way to look at it is to think of games such as Metal Gear Solid 2. In that game, the environment and characters allowed a huge amount of interaction with it, letting you do things like see glass be shattered while hiding behind a bar or having soldiers shot in the arm be unable to radio for help. GunFighter aims to be a framework that lets players feel like they are an isometric camera hovering just over a game of Metal Gear or Payday 2 or even Rainbow Six, directing the actions of the troopers below.
To walkthrough the idea, I’ll start by looking at the humble door. Seeing as the game is based around the idea of clearing out buildings, doors play a pretty vital part and a fair amount of time will be spent opening, wrecking and stacking up on them.
To begin, nearly all objects share the same similar actions. These are:
- Walk to – the default action and included by default in many other actions. This moves the selected character to the location or the object’s side closest to the character
- Watch – This tells the character to look directly at an object or area. Its more of a flag than an action and is almost immediately moved past in the timeline. What it does do is focus a character’s aim in the direction of the watched object. When defending, watch is a good way to setup the action but also helps to focus your squads fire on different targets. More importantly, Watch is an interrupt action, a special type of action that lets players gain a little more control over their squads behaviour. When the game starts playing back the action currently in the timeline, an interrupt will pause execution of the timeline and let you add or adjust new orders based on new information gained by whatever casued the interupt to be triggered. When watching a door, this is when something happens to the door (normally it opening, but also if someone on the far side pops their head up to a windows or if the door suddenly leaves it hinges) letting the player setup a reaction. Orders given during an interrupt can not be previewed (a feature of the standard order giving (or Plan) phase) so players have to gamble on their effectiveness. In addition, some items (such as flashbangs and other disorientating devices) can prevent interrupts and stop them being triggered.
- Check – This is an action much more focused on intelligence gathering rather than actual aggression. Check lets players gain more information on their environment. On a door, it lets players check if a door is locked, which way it swings, where the hinges are and if they can hear anything beyond it. Eventually, characters with different skillsets will notice greater details – for example, a character with demolitions can spot if the door has been set up for demolitions. You can check all entities – checking an injured character will tell you how they are injured while checking a live enemy with give you a quick rundown of their equipment, helping you to assist in fighting them.
In addition to the common actions, doors also have a large number of specific actions. I haven’t finished the full list
- Open – Walk up to door, open door, move through. This is a prime case for where another system comes into play. Modifiers is a similar system to stances in an RPG, letting you adjust common actions in a very slight way. I’ll write more details on this in a later post but for now, here is a small example. The overall modifier is in three parts:
- Stealth – Produces the lowest noise, most focused on letting your character sneak around. When using this with a door, your character will slowly open it, pushing the weapon through in front of them.
- Normal – This is a standard combat pace, not creating too much noise. When using a door in this style, the character will simply open it,
- Aggression – This is the loudest you can get but the actions are focused on causing the most damage and shock. When using this with a door, the character kicks it open (and potentially off its hinges) with a chance and damaging someone behind it
- Trap – Characters will be able to arm themselves with a selection of gear during the various missions and in some cases will need to stop bad guys from coming through a door. Trap lets you place an explosive or something similar in place to dissuade enemies. A potential idea is to also allow barricading or blocking with other, less exploding items but that is something to be tested at a later time.
- Stack – The engine’s focus is on team operations and a primary feature to facilitate this is a system focused on team operations. I’ll write up more about this later (he said for the 10,00th time) but stack is an action that either starts a stack around a position or joins an existing one. Stacks often lead to the next item…
- Breach – Breach combines actions like throwing grenades and moving through doors into one. With breach, you will be able to specify the factors around the breach (what is your breaching tool, are you using grenades, where in the room are you going to move to). The exact mechanics of this are still being worked out but this is a quite advanced feature that will be coming soon
- Look through – This is another Interrupt but rather than being a passive one (you set it off and it gets triggered later) it is an actual order much like move or open. Look through lets you see into a locked room via the door – again this is a place for modifiers, letting you specify if you look through the lock (restricted fov but little/no chance of being spotted), look under using a mirror (larger field of view but requires some setup) or look through any windows in the door (you’re getting spotted if anyone glances at the door but you can see pretty much the entire room). Look through is perhaps best thought of as preparation for a breach, letting you see the layout of the interior before you choose just how to chop your way through a door.
This system sounds rather complex and yes, it is. The core focus of the system is to make it that you can play the framework using almost any style of soldier and have a selection of ways within that to succeed. I’m currently working using an idea that both Rob Pardo and Chris Hecker stick to which is “Make the deep and hardcore game first, and make it accessible later in development, a.k.a. Depth First, Accessibility Later”. With this being a spare time project, I’m not required to release anything anytime soon and so can take great delight in creating a super detailed system. However, I already have a few ideas how to handle this for newer players, using a cut down list or generating a selection of the most used
In practical implementation, I’ve managed to get the base entity class set up containing within it an action list. You can assign each entity a type (such as character, door, cover etc). The next step is to prototype the UI linked to it, making it easy to see all the available actions. The aim is to have this showable before Christmas, letting a player mouse round a room and see the various actions available to them.
To conclude, a quick primer on GunFighters’s Terminology so far.
- Action – The building blocks of the game’s systems
- Action List – A list of actions that a character can do to an entity. These are stored on the entity
- Orders – The commands given by the player during the plan phase or after an interrupt is triggered and then put into the timeline
- Timeline – A combined view of all the orders a players has given to their characters. This is designed to let players more carefully link and synchronise orders
- Interrupt – Special actions that pause the game and lets players add new orders to the timeline based on the events that trigger the interrupt
- Entity – A object that has an action list and can be interacted with. These range from soldiers and civilians to desks, doors and even walls
- Character – A special entity that can do actions. Action lists of other entities will be adjusted depending on the characters team (a friendly character is interacted in a different way to your enemy).
- Squad – The set of characters that players controls directly
- Modifiers – Overall rules that can be set on a character to adjust the actions they do. The most common one is their overall stance (Stealth, Normal, Aggression). This will be the focus of the next blog post