gameplay

December 2019 Spy DNA Beta update: Equipment

Spy DNA handles equipment differently than other games. We attempt to simulate the real world as much as possible. So I will talk about encumbrance, uniforms, and accessories.

Encumbrance in Spy DNA involves two mechanics: weight, and free items. Weight will be familiar to everyone. More weight means it becomes harder to move and you have to slow down.

We also add the mechanic of free items. The idea is that to carry an item, you either need to store it in a pocket, backpack, or other location made for the purpose, or you have to carry it in your hand. Because of this, even a few free items will quickly make it impossible to move. This represents the character’s inability to hold everything without dropping anything.

Too many free items

To clearly show why a character is slowed down or can’t move at all, we now show two distinct icons over the character portrait to indicate the two encumbrance conditions: a kettle-bell weight for weight encumbrance, and juggling hands for too many free items.

Uniforms are used to ease the management of character equipment for missions. Each playable character has four uniforms: base, casual, field, and fancy. These act as preset slots for equipping characters.

Too much weight

When heading out on a mission, you can select one of the three non-base, uniforms. You can customize the appearance and equipment. Whenever you modify a character’s uniform, it is saved and will be loaded the next time you select this particular uniform again. So if another similar mission comes up you can click a uniform and start with the same equipment you used last time, or modify it to suit the needs of your current mission.

Note that when a character returns to base, the leftover equipment isn’t kept. Any storyline changes or resources advancing the characters’ progress is applied to the state of the base level when you return from the mission.

New demo update

We hit an important milestone a few days ago: Now we can play missions all the way though, which starts when a mission is generated at the base, continues to mission planning, infiltration and team selection, mission execution, and finally, return to base.

Here’s a video we made of the full mission sequence all the way through successful completion.

At this point, the development here at Shy Snake has shifted gears towards stabilizing and polishing the release. Here is a quick list of the top issues resolved this month:

1: Added grass and ground cover to generated maps
2: Addressed performance issues with having lots of trees on a map
3: Added the mini-map in the HUD (For the body-cam fans, don’t fret, it is still available)
4: Fog of war visualization on the map
5: Viewing characters when obstructed by building walls or roof
6: Loading times optimization

We’ve been optimizing our development for the end goal of shipping the Spy DNA game. So we have often delayed or skipped short-term objectives if they didn’t help to get us to the end goal. As a result we are a bit behind on the playtest, but pretty much on schedule for the demo and early access.

Here’s a view of our internal bug tracker:

Let me explain what these milestones mean to us.

First playtest:
At this point we feel the game is mechanically complete. The core player experience is in place and should give the player a good representation of what to expect in the final product.

First demo:
Everything in the playtest with more mission and character progression. Save/Load must be robust and the base fully functional.

Early access:
Everything in the demo plus access to the full party. The first chapter of the story line has to be playable and several side quests need to be finished. A lot of the bugs in the 0.4 bucket are not necessary for 0.4, we just haven’t created the 0.5 bucket yet.

During early access we will be adding content and polishing the animation and AI systems along with fixing any issues that come up.

We had a few bloopers getting ready to record the video. In one case, I wanted to make sure when a character went down they dropped their weapon. But I forgot to mark the weapon dropped in one case and this happened.

Then while recording the playthough a few missions failed painfully early.

So with that I will leave it, and please enjoy the first public video of a full mission playthrough.

Spy DNA Development Update: Character creation

By Jason Sams, Shy Snake Lead Developer

Let’s talk about that all-important part of an RPG, creating your character. Last month I wrote a post about complexity in games. Character creation process in any RPG is usually the first thing the player does, which affects every aspect of the player’s experience afterward.

In order to get to the character creation, you need to go to a job interview with Dr. Crotalus

This presents some unique challenges to a game creator, or even a DM/GM.

First, you’re asking a player to design the character they want to play, having no knowledge about how your game works. For most people this means taking a guess, playing a bit, and potentially starting over.

Second, the choices made during character creation are typically permanent, and affect gameplay for the full playthrough of the game.

As a GM for a pen-and-paper game this was particularly difficult. The players would make their characters, and usually 3 sessions in, we’d be tweaking them, as players realized that the characters they wanted to play weren’t what they actually created.

So as an experiment, I had everyone make two characters. One was created the traditional way, rolling dice and allocating stats and skills on a character sheet. To create the other character, I gave everyone a list of 23 questions to answer for me before the game. Then I made characters for the players based on their answers, using my knowledge of the game world and rules.

The players could freely pick which character they wanted to use for each mission, given they were alive and well enough to go. You’d expect that the players would favor the characters they made for themselves, but instead they played the characters made by me, the GM, about 80% of the time, only breaking out the other character for special situations. Why?

As a GM you have more knowledge of what lies ahead for the players, what they will need, and typically how the system works. There is much less guessing. So as long as you know what kind of character the player wants to play, you’ve got a much better chance of creating one that will work well for the game.

Based on this experience, we wanted to replicate this character creation process in Spy DNA.

At first, we created a set of 21 questions with about 3 answers each, and then used that to configure the characters. And it was terrible. There simply wasn’t enough detail in the resulting playable character.

So we went back to the drawing board and came up with a new design pattern for the questions that was more suitable to a computer game, i.e. it didn’t require a human to read between the lines in the player’s answers.

Now in Spy DNA the character creation consists of three groups of questions:

1: Self: How you think of your character.
2: Favorite mission: What kinds of missions you prefer.
3: Approach: How do accomplish your goals.

Within each group we now start with a high-level question, and follow up with a refining question depending on the previous choice.

You can make your own character by answering a questionnaire

Under this model, you will see roughly 17 questions as part of character creation. However, there are more than 80 questions in the questionnaire, so any single pass will only see a small part of the whole. At last count, there are more than 230 answers to choose from during the creation process, each with a different effect on your character.

To test whether this system actually works as intended, I have been asking people to think of a character they want to make, then try using the questionnaire to create it. Afterward, we look at how close the resulting character is to what the player intended, and the results have been vastly better than with the old 23-question system.

It being us, we used this opportunity to take things a bit farther. As you go through the character creation questionnaire, we record the choices you make. Those become part of your character’s persona. They will influence how other characters react to you in-game. As an example:

Q: Which type of mission are you the most comfortable with?

1: Assassinations: Neutralize a single target using a variety of means.
2: Counter-terrorism: Aggressive combat tactics designed to neutralize a group of enemies before they can do harm.
3: Breaking and entering: Quietly break into buildings, avoiding detection
4: Asset manipulation: Recruiting and convincing assets to work for you.

You can see how this may both influence the type of missions your team were to receive along with how some characters, including those in your party, may respond to you.

You can select a pre-configured character to play

The character creation system in Spy DNA is designed to help players create a character they will enjoy playing, but you don’t have to use if if you don’t want to. In addition to the questionnaire, you will also have an option to play a pre-made character, or use the traditional system where you can directly assign the points (probably not included in Early Access).

Managing complexity in games

A little while ago, I gave this 5-minute talk about managing complexity in games such as Spy DNA.

The main point of the talk is, that as the computer technology advanced, game mechanics of strategy RPGs and tactical games have not kept pace.

Driving and flight sims do a great job of simulating real-world conditions while keeping the game experience accessible and fun. At the same time, RPGs and even first-person shooters still rely heavily on artificial constructs and arcane rules of combat created in the era of pen-and-paper games.

With Spy DNA, we endeavour to bring this sort of detailed realism to the RPG world: simulating combat on a very detailed and granular level, all the while preserving the approachability and the fun of playing a game.

The slides are embedded below. Post your questions in the comments!

Demo prep

We are getting ready for the demo. Today we made a new video from the latest build. This is the first time we’ve shown a play-though from character creation to combat. We’ve been focused on playability over the last few weeks, so we’re fixing lots and lots of smaller issues.

The big task was working through issues with load and save of games. Because the demo takes you through character creation before you can start taking sample missions, we wanted players to be able to save a character they generated. We also implemented a loading screen while working on load game. We hope these additions make the demo more enjoyable for players.

Another significant change from our previous videos is an updated camera system. While watching people play, we found players used three camera positions frequently. So we added direct support for the most common camera uses. 

  • A low camera which shows things from the view of the character
  • A high camera which shows the tactical situation
  • A target camera which flies the camera over to the active target
  • And we still have “free” camera so the player can move it around as they desire

For the low and high camera they save the player's view height and angle so if you switch away and come back you won’t have to reset the camera each time.

We also implemented a compass; it shows which way the character is facing. More interestingly, we also added contact ticks to the compass. So you can see which way contacts are relative to your active character. Also you can click them to fly the camera over to any contact.

The map generation has been heavily tested and we have recently implemented a number of performance enhancements. Currently the large maps can strain some mid-range systems so we put some effort into improving performance. There is more to be done, but we got a very nice performance bump for the demo.

For the playable characters we doubled the number of commander appearances available for the demo. There are two male and two female commanders to choose from, each with their three outfits depending on mission. There will be many more for the shipping game.

The demo will also include default genetic enhancements for all the playable characters. You will get to see a small example of the enhancements in action. In the shipping game you will be able to select and choose how your commander is enhanced to mirror your play style.

We implemented new shaders for the trees, firing range, roof of the base, and a few other items. This was done to make them more friendly to the camera so they cut or blur away so you can continue to see the most important parts of the map.

The status screen has been updated to show not only injuries, but also attacks which were stopped by armor or implants. You can mouse over any hit and see the force and type of attack along with how much of it any armor you may have stopped. 

Movement was reviewed. and walk, jog, and sprint speeds were double checked for the demo. We spent a bit of time graphing the various movement speeds vs attributes. These are the base speeds with zero encumbrance.

Walk speed graph

Jog speed graph

Sprint speed graph

The jog (max sustained movement speed) graph is 3D because it’s based off both quickness and stamina. This was triggered when we picked up a few too many weapons at the firing range and unintentionally tested our encumbrance system.

Barring any unexpected problems we expect to have the demo out this month. Stay tuned!

Kickstarter update 4: Stealth

Update from Jason

It’s been a busy week here at Shy Snake.  We just pushed the update to move Spy DNA to Unreal 4.12.  We were waiting until our demo at AFK was complete so as to not break anything right before it was time to show.

I’ve been 100% focused on AI.  One big part of AI is making the system respect stealth.  In Spy DNA we have a system that gives each character attributes for senses.  These, combined with the characters skills, will determine how likely a character is to detect a player.  

Sound:

Everything a player does can generate a noise.  Some things such as sneaking are quiet, while firing a gun would be loud.  The sounds will dissipate over distance and with obstacles.  The sound strength when it reaches the character is used to make a check against the character's ability to determine if they hear it.  If they do then they may react.  For the players, when your character hears a sound, we add a symbol with an arrow to indicate the direction of the sound. 

Sight:

Sight in Spy DNA serves two purposes.  First is to detect a character.  The second is to evaluate the character.  Being a spy will often place you in locations where you will not be overtly carrying weapons.  This means that in an area mixed with friendlies, enemies, and civilians, an enemy would both have to see you and then decide you are a threat.  This means checks against their ability to spot hidden weapons, provided you don’t have a rocket launcher on your back.  Anything in your inventory that could blow your cover is a risk for detection even if it’s not equipped.  Obviously not having something equipped does make it harder for them to detect it.  This creates an incentive to carry light and concealable weapons on many missions. 

The sight AI includes a cone of vision so the enemies have to look in the correct direction to see you. If they hear a noise they will turn to look, provided they're not doing something more important already. The AI also ranks everything it sees in terms of “potential threat.”  A civilian going about their normal business would register near zero.  One running and screaming would start to move the needle.

Smell:

This isn’t really used to detect enemies, but rather hazards.  Gas leak, smoke, or a specific perfume could all be clues or hazards.  


Alex has also been busy.  While I have been implementing stealth, she has been working to de-stealth Spy DNA and make sure the fans of thoughtful tactical games know about us.  If you know anyone that would be interested in Spy DNA, please give her a hand in getting the word out.

 

Kickstarter update 2: Combat visualization

Folks, we're currently on Kickstarter, and sharing a lot of our updates there. We'll be also sharing the updates here for your convenience. If you haven't yet, help us by making a pledge, sharing our project on social media, or be daring and do both!

It’s been a busy week as we get ready for a live demo at Homebrew Arcade.

We’re focusing on improving the visualization of combat. Now it’s easier to see where the shots are going with trails on the 3D map. We also implemented cover and missed shot handling so it’s been a productive week. Missed shots means if you miss the intended target, we still track the shot in case you hit something else interesting. 

This also reminds me to briefly mention how cover works. We showed in the video how when a target is obscured it is grayed out to make clear what’s in and out of your line of sight. If you fire, and hit the cover, it’s actually treated as armor. So you really want to hide behind something solid. A concrete wall is good cover, a cardboard box, not so much. 

Here is a short video clip showing “missed” shots being used to effect. I forgot to remove the debug logging where I was fixing some hit location code this week so ignore the text on the left.

Next week will be focused on AI.

Combat in Spy DNA

This is Jason with an update on the Spy DNA combat system.  We’ve been making some graphics and demo videos for our Kickstarter pitch, and I thought we should share some of them with you. In today’s post, I’ll start with our new gunsight, that we use for aiming, and then move on to the combat system.

In Spy DNA we have put a lot of thought into making combat feel as real as we can.  One of the areas that’s often disappointing in games is the critically important mechanism you use to attack the enemy. 

Most games assign a character a simple chance to hit, usually modified by range and cover.  We use a full 3D world instead.  To avoid the problems, such as identifying obstacles and cover, when aiming in the  top-down view, we open a gunsight view when you pick a target.  

Single shot firing sequence

The biggest thing we do differently is replace the “chance to hit” with “Circular error probable”.  The rings around your aim point represent the 50%, 90%, and 99% likelihood of your shot landing within those rings. 

You trade off time aiming for more accuracy in your shot.  You can adjust it to try to get the first shot off quickly, or take some time to make sure you hit. You can also adjust the number of shots, burst, or burst length.  

When using automatic fire, burst or full auto, recoil will reduce precision of later shots as recoil adds up.  For single shot and burst your character will re-aim so follow on shots meet the same accuracy requirement you set.

Our damage model is based on your weapon and where you hit the target, not on a random dice roll.  So you will be able to aim for weak spots in the armor or for vital parts of your target.  Cover is handled the same way.  The ability to move the target point around lets you aim for exposed parts of the target. 

Now let’s talk about how our combat system works. We call our system Concurrent Turn-Based.  I’ll explain what this means.  We differ from traditional turn-based games  in some important ways.  

Let me start with what we are trying to accomplish. 

  1. The player should have time to think and take in the battlefield and environment.  
  2. The moves available to the player should as close as possible mirror the options that  a real-life soldier would have.
  3. The results of actions should be be realistic.

After a lot of experimenting we have settled on a system where the game focuses on a character when it is their turn to start their next action.  So while combat is ongoing, the game engine cycles though characters as their turns come up.  In this way it feels like a traditional turn-based game.  There is one very important difference.  While the game is progressing to the next player turn, every character and object in the game moves.  

This was not a decision we took lightly.  We made this decision to avoid the time quantization problem that traditional turn-based games have.  Think of the frustration where near the end of the player turn you move a character and trip one or more enemies.  Now your character (or whole party) just sits there helpless while the enemy takes a turn (or full round) worth of actions.  This is a side effect of games trying to map combat to a mechanism that doesn’t exist on a battlefield.  

In Spy DNA we are trying a more direct simulation of the world.  The character that makes contact would actually have the initiative.  The characters that spots them would make a reaction time roll (based on their attributes and combat experience) to see how fast they can react.  Also because other characters in the player party may be mid-action, such as movement, you could cancel those long actions and give them a new task.

I made a short video where a character ambushes two unaware NPCs.  The action commands I give the game are:

  • Throw a grenade
  • Draw my pistol
  • Crouch
  • Aim and shoot to finish off the second target

About three seconds of game time actually elapses in this demo.

Compared to Turn Based games, we have two major differences.  The first is turns in Spy DNA are not uniform in size.  Turns come up as the character completes their previous command.  This means that fast actions such as firing a single shot will result in that character's turn coming up again quickly.  Slow actions such as moving a long distance will mean many other characters are likely to take their turns before coming back to that character. 

The second major difference is the turns progress concurrently, i.e. all at the same time.  So if you give a move order to one character, and a quick attack order to another,  each time the second character attacks you will see the first make some progress on their move order.  In effect, you will see time progress forward for everyone until one of your characters completes all the commands in their queue.

Should a character spot something needing your attention while they completing an command, the game will stop and focus on the character.  This allows you to react to things that come up mid action such as an enemy coming around a corner.  

I hope this gives everyone a feel for the type of gameplay we are trying to deliver.