Shy Snake’s got their hands full

snake with tools

We’re working on a few things here, one is almost done, and the others will follow soon after.

Thing One is one of those quick changes that turn out really big and involved. The idea was to switch out the scripting language we used in missions and dialog flows to help Alex write and debug missions quicker.

If you ever did a DIY project of your own, you know that sometimes, you open things up and go, “Well, while we’re in here, might as well do that other thing I was meaning to do.” And soon you have a disassembled motor on your dining room table and tools on every available surface, and there’s no turning back, just through. So, good news, we’re almost at the point where the motor goes back in. Jason will write up a blog post about that soon. Once the motor is in, that is.

As soon as the motor is back in and running, we’ll push an update to the Beta channel on Steam. You should see some stability and performance improvements from that. The maps should load quicker, for example.

Now Thing Two is directly tied to that first bit. While Jason’s been working on pulling things apart and putting them back together again, Alex was using the new scripting language to create new missions, which are now just waiting for a bit of testing and polish before they can be added to the game for you to play. That bit will come a little while after Thing One is up on Steam.

So stay tuned, and we’ll have a new shiny version for you to play with soon.

Beta update December 2019

By Jason Sams, Lead Developer

As our closed beta is approaching one month old, we’d like to give everyone an update on where we are and what’s coming up.

In the 28 days Spy DNA has been in Beta, we’ve fixed more than 100 issues that our Beta participants and ourselves have found testing. We’ve given priority to any issue that was a potential crash or was otherwise game-breaking. “Game-breaking” in this context means that the game gets into a state that makes it impossible to continue, and you must close it and reload; e.g. situations where you can’t complete a level because of a bug.

We tracked down some hardware compatibility issues, and a few software ones. At the time of this writing, we’ve pushed 20 builds to our Steam Beta channel. That’s just under one a day on average if you count the weekends, and one a day if you only count workdays.

Spy DNA has undergone a few changes since the Beta started. Outside of bug fixes, we’ve added, refined, and sometimes even re-implemented things in response to player feedback.

  • The equipment system underwent a major internal overhaul. We track both regular encumbrances due to weight, but also due to trying to carry too many items in your hands. To make things easier on the players, items are now put in appropriate storage when picked up and taken from storage as needed. For example ammo gets stored in a belt, pants, or vest first before it takes up precious free item slots.

  • Pre-mission planning now allows for setting up weapon attachments and packing inventory before the mission starts. These are saved as defaults for future missions, for each uniform type.

  • Objective and location markers on the screen now support mouse-over tooltips to see which objective or location is being marked.

  • Added hotkey “o” for objective screen

  • Right click to cancel orders now also selects the character whose orders are being canceled, to prevent confusion over who is selected.

  • Character UI hotkey “i” now goes directly to equipment.

Right now we don’t have any crashes or game-breaking bugs in our tracking tool. We have received a lot of feedback we are still working on for improvements to tutorials and making the UX easier to understand.

We have a few things we want to focus on before pushing this to early access. The big things we still need to do are:

  • Add tutorials for a few more game mechanics. Right now we have enough unique mechanics that some parts of the game are difficult to pick up just by playing.

  • Add a few more missions so the players have enough to do.

  • Improve a few parts of the UI where information isn’t communicated clearly to the player; mostly around pausing and encumbrance.

  • Refine the artificial intelligence controlling the NPCs in the game, to make the levels more engaging and challenging to complete.

As we approach Early Access, the rate of releases will be slowing. During the early part of the Beta we wanted to push out fixes as fast as we could, but now that things are much more stable, we want to put more effort into keeping the release build stable. We have separate channels set up in Steam, with the main branch being a conservative stable build, and “Beta,” where we will continue to push more frequent releases.

Early Access players will have access to both though Steam and will be able to choose the one that fits them best.

Finally, now that we have hammered down the biggest issues, we’re ready to expand the Beta to include more players. We’ve reopened our Beta enrollment form* and we’d like to invite you to join the Beta if you haven’t already. Or, if you know someone who likes tactical combat sims,** feel free to share the link with them too!


*) If you follow the link and find that the form is closed, never fear! Just email us and we’ll be sure to get in touch with you as soon as we can.

**) Examples of such games include: Jagged Alliance franchise, XCOM franchise, 7.62, and Xenonauts to name a few

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.

Development update November 2019

We’ve been hard at work testing builds for Steam. Yes, you read that right: we’re getting ready for our first external Beta.

We just finished installation and launching of the Spy DNA game package downloaded from steam. This is a big milestone. It means we are very close to being able to invite external testers to start playing by sending them a Steam key, so we thought it would be a good time to update everyone on the state of the project.

Mechanics

The core game mechanics are in place. We are still working on a few supplemental features to add variety to the strategies the player can choose. The gun combat, armor, spotting, noise, movement, and skill checks are working robustly. We are still working on a couple of areas, primarily melee combat and special weapon attacks.

All finished missions are playable with the mechanics that are currently in place. Additional options for completing these missions will open up as we finish the attack and defense types.

Player party

The player party is complete. We are really happy with how the team has turned out and we think they’ll play off each other (and you) well. Check out the background dossiers of Spy DNA agents on our website.

The few remaining issues with the party are mostly cosmetic, some models need touching up, and there are some known issues around voicing.

Maps and missions

The first build of the Beta will include six storyline missions, at least two VR training levels, and five generated missions.

Storyline missions are right from the beginning of the game, so they will be gently increasing in complexity as the player becomes more familiar with the game. These missions are only available to play once per game, so if you want to try them again, you will either need to load an older save or start a new game.

The generated missions are basically templates from which any number of missions can be procedurally generated. An example of one such mission would be “rescuing a hostage from an enemy camp in the woods.” Each time you play, the map will be different, the enemies and the hostage will be in different locations, and so on, but the objectives will stay the same.

The five generated mission templates in the Beta will give you an example of each type of mission you can expect in Spy DNA -- stealth, low-intensity combat, and high-intensity combat. Some of them will also include infiltration options, which allow you to use the strengths of your team to prepare before you actually go in.

The modeling of the maps is still a work in progress. All the functional pieces are in place, but urban maps will appear a little sparse. When we get to Early Access, we will be decorating the maps to make them look more life-like. This will include adding more leaf roads, the things you would see on a typical road such as lights, signs, and other markings. In addition we will add driveways and more non-mission buildings.

The map edges will be addressed in later builds. We haven’t settled on a specific approach to this and are trying out a few options.

Training and Tutorials

We’re overhauling most of our tutorials for the release. We have a new VR-themed environment where all the training will take place. This will also give the player a place they can try out tactics without the pesky wounds or death.

The various team experts will be on hand to help, or at least entertain you during the training.

Models and animations

Character models are mostly finished. We are still chasing a few issues related to clothing customization that don’t impact gameplay. We’re quite happy with the way the characters have turned out.

For the animation the standing and crouching animations are in good shape. You will see an occasional glitch related to characters turning. Animations while prone are a work in progress and will be updated during Early Access. You can do all actions while prone, however, some things such as reloading a weapon will not be shown visibly.

This should give you an idea of what to expect when we start sharing the beta and then go to Early Access soon after.

Development update July 2019

It’s been an exciting month of June here at Shy Snake. We are doing a lot of testing now to make sure the game runs smoothly for players. We made good progress, so let’s get to the specifics.

AI

We are continuing work on the NPC AI system in the game. They now evaluate cover and will take cover if they need to. The AI evaluates cover based on where the PCs are, and only PCs it knows about are considered. So if you have a hidden sniper, you may be able to drive an NPC into their field of fire. Now, once you spring the trap, the others may choose cover more wisely.

Screenshot of cover points. The size of the red dots shows how good the AI thinks a given cover is.

Gunsight

We made another set of revisions to the gunsight. We made it larger, because when it’s open the rest of the HUD and other game UI is inaccessible, so there’s no reason to keep the gunsight small. This also provided room to add the various attack modes we were planning. Not all of these are implemented yet, but you can see buttons to select the six different types of attacks. Changing an attack mode will change the controls on the right-hand side to reflect the options available in that attack mode. In some cases, this will also change the aim point shape.

For instance, selecting “aim” will remove the controls to select the number of shots and will only show the maximum aim time circle. “Aim” is useful in situations when you want to max out your chance to hit on a target and be able to quickly fire with that increased chance to hit at a later time. Example, your sniper is positioned and aiming. If things go bad, they would get a quick shot at max aim to open the conflict.

Screenshot of the updated gunsight view. The buttons on the left are: aim, hip shot, aimed shot, area fire, overwatch, and suppression fire

Player base changes

The base has been moved to a generated map. The building and everything the player interacts with remain unchanged. However, this allows us to split up the base map so each function is better served and most importantly, dramatically reduce load times.

Map layout improvement

Our generated maps have gone through some iterative refinements to improve how we place buildings. They are now better form more realistic groups. In addition the new code is much more robust when placing buildings on smaller maps. This lets us avoid generating extra large maps for missions that don’t require it. AKA, take place mostly indoors.

2D UI improvements

We have cleaned up a number of issues in the UI. The graphs for movement and weapons have been cleaned up and updated to match the rest of the UI style. In addition we have updated several of the UI assets for a more consistent UI feel.

3D UI changes

For markers in game we have switched from the old 3D meshes above a character’s head to using 2D sprites. We now clip the position of markers to the edge of the screen so you can see at a glance which way you would need to pan the screen if you want to look at the marked object.

Internal cleanup & testing

Markers along edges of the screen show where the marked objects and characters are in relation to current camera view

We have done a lot of code cleanup to bring stuff that was written in the early days of Spy DNA development in sync with the latest changes. We also created targeted testing maps for several game mechanics and underlying components. This allows us to verify changes more quickly, plus the simple tests also act as good examples of how to use the mechanics.

Thanks for reading, hopefully this gives you an idea of the progress we have made.

Training in Spy DNA

by Alex Maier, your virtual training guide

In Spy DNA, player characters improve their skills by using them out in the field. However, trying to learn to disarm an explosive trap with a skill of zero may not give a squad member much of a chance to learn anything. So to help with that, the Spy DNA base has virtual reality training stations that allow player characters to hone their skills without risking their life and limb, or their freedom for that matter.

All party members as well as the Commander will be able to use VR training to learn new skills or get better at the ones they already possess. The rate of improvement will be comparable to improving your skills in the field, with the same hyperbolic learning curve, meaning that it’ll be fairly easy to go from skill level zero to five or ten, but going from 40 to 41 will require multiple times that much practice.

While at the base, you will be able to assign your squad members to training, which they will complete in the time they spend at the base. Their training will be halted while they are out on a mission, but will resume upon their return.

The team status screen will show which characters have been assigned to complete a particular skill training.

In case of the Commander needing to learn or improve a skill that is critical for game progression, you can have your character use the training stations to launch a VR training scenario, such as lock picking, alarms and traps disarming, target practice, or combat simulation. Imagine your trap disarming specialist having a particularly Bad Day™, and now someone else will have to learn to do their job.

Some of the simpler training scenarios, such as lock picking or basic gun training, will primarily serve as a player tutorial, or to help you overcome a difficulty spike, but others, more complex ones that mimic the gameplay loop, will be enjoyable in their own right, and we see players using them more than once to try out new tactics without risking their health.

Some scenarios such as the combat sim, will allow the Commander to take some of the squad members with them.

After the training session is over, the Commander (and the squad mates who were in it as well) will get to keep all the experience gained, with none of the injuries! Now ain’t that a sweet deal?

The demo release will include some training scenarios for you to try out, but more will be included in the full version, to cover all the skills available on the character sheet.

Gameplay and difficulty settings

by Jason Sams, lead developer

This month I’d like to show how players will be able to customize their gameplay experience when starting a new game. We previously showed the character customization screens for new games, and now we can show the first draft of the gameplay and difficulty screens.

First I want to talk about how we handle PC deaths on a mission. A death of the commander will always be a game-over event, where you will have to reload from a save (unless in Ironman mode, in which case the saves will be destroyed when Commander dies).

For the remaining members of the party, we’ll be implementing three options. The first (already done) is permanent PC death. This means that if a player character dies on a mission, they are lost for the remainder of the game. Now this may be considered very harsh by some players, so we will have two less severe options.

The first is cloning. If a character dies on a mission, they are lost for the remainder of the mission, but once you return to base, their clone will be thawed and they may continue on, sans any experience from that last mission.

The third option replaces death with being critically wounded. The PC can be rendered unconscious on a mission, but will recover once you return to base.

Next thing I want to talk about is the ability to adjust the randomness of skill and attribute checks. This will impact things such as lock picking, disarming traps, charisma checks, etc. We will give the player the ability to adjust the “fuzziness” of these checks. At one extreme, full deterministic, if your skill is greater than the check difficulty you always succeed, if it’s less you always fail. At the other extreme, skill checks are highly randomized, and luck and skill will have roughly equal weight.

The remaining gameplay options are about the type of missions you will be given, and the amount of time you’ll have to complete them. For non-storyline missions we have a pool of mission types available at any point. The sliders for mission intensity and map size will bias the selection from that pool, so the side-quest mission you see will be weighted towards the mission types you prefer.

Now for difficulty, we have talked about Spy DNA being a combat simulation. We want to maintain that feeling on both the difficult and easy modes. We do this by not altering the basic combat system, or adjusting the enemy AI. Instead we can adjust the strength of the player and the enemies.

For player characters, we allow some change in toughness. We do this by altering the strength of the genetic enhancements the character receives.

We also provide an adjustment for the starting skills and skill learning rate. Effectively this acts as an XP multiplier allowing the players to progress more or less quickly. The effect of both of these will be minor.

The last thing that affects the PCs is a “bad luck” adjustment. We give the player the ability to curtail random catastrophic events in combat. We do this because with a true combat sim, a bad luck event, such as getting shot in the head, is usually lethal. This will have three settings, “no one-shot kills,” each PC gets one exception per mission, and realistic.

The final knob we have for adjusting the difficulty is similar to the player options, but applied to the NPCs. You will have the option to adjust how good of equipment the NPCs get, both armor and weapons-wise, and how skilled they are.

We feel these difficulty settings will work better with our mission design, instead of adding more enemies or trying to vary the intelligence of the enemy AI.

Next month, luck pending, we will have another gameplay loop video. We want to re-play the same mission we showed before with all the progress we’ve made on map generation, AI, and attack types.

Procedural maps in Spy DNA Pt. 2: A peek under the hood

by Jason Sams, Lead Developer

I wanted to talk a bit about how we’re generating mission maps. A few days ago, Alex showed some of the visual results, and now I’m going to share some details on how we generate those maps.

In the past we would generate a map when loading it. This meant that if you took a mission at the base, saved the game, and then went on the mission, you might see a different map if you reloaded your game and tried the mission again. With the new code the map is fully generated up-front, so if you want to replay a mission, the map will not change when you reload. This was also an important step as we work towards supporting saving mid-mission.

Several things need to happen when generating a new map. Anyone who wants to create a custom mission for Spy DNA will want to understand how we do this in order to be able to create a map description in the mission editor that fits the scenario they had in mind.

1: We start by generating the terrain height map based on the size of the map, the amount of hills specified, and the roughness of the map

Mission editor “Map” tab has all the options needed to generate the mission map

2: We place the main roads (if any) based on the map settings

3: We divide the map up into blocks. The size of the blocks depends on the setting (Ex: Urban, Suburban, etc)

4: We place the locations specified in the mission. These may require placement of buildings or other items. If buildings are placed, the blocks in which they are placed will be zoned (commercial, residential, industrial) to match the type of buildings being placed.

Mission editor “Gameplay” tab has all the elements of the mission, such as NPCs, key locations, and objectives

5: We fill in the map with “decor” buildings. They provide cover, hiding places, and also enhance the overall look of the map

6: Secondary roads are added

Debug snapshot of a map in process of being generated, with roads placed and plots zoned

7: Map decor is added. These are things such as trees, grass, street signs, and other things you expect to see in the setting

At this point, steps 1-5 in the map generation are fully implemented. Step 7 is also partially done, and we will be adding the decor you expect to see along roads soon.

At this point the maps are complete for going to early access. The cosmetic Steps 6 and 7 will be refined during the early access period.

The next update will talk about the progress we are making with AI and dealing with larger numbers of NPCs on the map. Thanks for reading.