Lumberyard

It’s been a really busy two months here at Shy Snake. We have made a few adjustments to the development of Spy DNA which we think will make for a better game. The big change is we have moved from Unreal to Lumberyard game engine. This also created an opportunity to make a few other smaller changes to the game.

We decided to move to Lumberyard because it allows us to make much more dynamic maps. Unlike other engines it doesn’t require us to pre-bake lighting to get good quality lighting on the maps. This frees us up to procedurally generate maps, allowing for a greater replay value and much more variety in missions. It also allows us to change the maps on the fly in response to player actions. This means a more destructible world. 

We are mostly complete with the port of the game code to Lumberyard. AI is the last major piece left to do. At this point the UI is mostly complete, the game logic code is ported, animations are working, and we integrated the articy code for the dialog system. We are still on the same schedule as previously announced with a public demo / early access, possibly as early as December, but for sure in Q1 2017.

Animation is another area that was impacted by the change. We are switching from in-place animation to root-motion animation. What this means for the players is the characters should move in much more realistic ways. The characters’ feet should slip far less. Also we added start, stop, and turn animations so the beginning of movements will look a lot better. 

The transition required us to re-import all of our art assets. We took this as an opportunity to replace our character models with higher quality models. To do this we switched character creation tools and are now using iClone Character Creator. 

Same character created in Autodesk Character Generator on the left and iClone Character Creator on the right.

Now that we have worked with Lumberyard for almost two months, we have learned a lot about it. If fits very well with our code base. As we have settled in the level of productivity on our game, code is settling at a higher level that we achieved with Unreal. This means we will be able to put more effort into building a good AI for you, the player. 

Now it’s not been all positive. On the art side things are going a bit more slowly. Lumberyard is an editor in transition which has created some overhead for us in making maps. In part this is offset by switching many maps to procedural generation. However, it will be a bit before we can show you the before / after of the player base. Yes, even though we can now procedurally generate maps, we can also still hand-generate them. 


We will have much more on this going forward. I believe the engine transition will allow us to ship a game which is more in line with what our players expect. It allows us to generate a much larger variety of maps, allows you to have a larger impact on the map in terms of being able to destroy objects, and allows us to invest more heavily in AI making the gameplay more interesting.

Procedural maps in Spy DNA

Since shipping our pre-alpha demo, the pace of development hasn’t slowed here at Shy Snake. Even as we’ve been posting less on our blog, we’ve been working harder on Spy DNA. After reviewing the feedback from our play testers, we’re working to make the game even more engaging and intuitive to play in time for the Beta release.

What should you expect from Spy DNA when it goes to Beta? Well, for one, it will have procedurally generated maps.

This means that each time you start a mission, it’ll have a unique map, so that even if you’re replaying the level -- or the whole game even! -- you will have to work out the strategy each time you play.

You’ll encounter different buildings, different street and block configuration in cities, or different terrain and vegetation in rural areas. The items to be retrieved or civilians to be rescued will not be in the same spot either. There may be elevation changes, and the enemies may come from a different location.

Depending on the difficulty level, there may be less or more cover, and obstructions to line of sight, in addition to the competency level of your enemies.

All of this together will guarantee a unique experience each time you sit down to play Spy DNA, and it will take both Alex and Jason’s efforts to make it work. 

That's a lot of boxes

Alex is already working to create architectural modules out of which the program will assemble all the buildings in the world of Spy DNA. The blocks will come in a variety of sizes and shapes to cover all kinds of structures, from family homes to military facilities and everything inbetween. 

In order to make the different buildings look unique, we’ll be designing numerous materials that will change the appearance of the buildings’ surface. This way we can make our cities have all the kinds of buildings you’d expect, from residential houses with wood siding, to industrial brick structures, to stucco apartment buildings, and steel, glass, and concrete of the commercial and office complexes.

Look at that office carpet. Look at it.

When you load a level, the algorithm will combine the building blocks into complex maps depending on some pre-defined parameters, things like, is it a city or a forest? What kind of buildings if any, are there? What are the mission objectives? 

If you have to restart a level, you can expect the general look and feel of the map to remain the same, while its topography changes. So if the first time you found yourself in a city, you can plan on the mission being set in an urban setting on each playthrough, but you may find yourself in what would feel like a different part of the same town.

Using procedural maps also will allow us to adjust difficulty level for each level with more nuance. If the map is static, the only “levers” we can adjust are enemy skills and numbers. With a procedural map, we can adjust pretty much every aspect of the level as needed. More cover for the party, more easily spotted objectives, helpfully positioned fire escapes for your sniper, less cover for the enemies, all this will contribute to the mission being easier to accomplish. Adjusted the other way, the terrain, vegetation, and building layout can all contribute to make the mission more challenging.

One final aspect of procedural maps is that on top of adding a lot of flexibility they also allow us to make better use of our expertise.  Alex will be have more time to expand the story and create additional missions, adding to the amount of gameplay you, the player, get.  We have a lot of mission ideas and now we will be able to include far more of them in the game.  

We want to make Spy DNA a game that you can return to over and over, a familiar, but yet always engaging world, and procedural maps will help us achieve just that.

What do you like about procedural maps? What are your pet peeves? Tell us in the comments below. We read all of them!

Working on character creation

Character creation screenshot (work in progress): Talking to Dr. Britta Crotalus

Character creation is an important part of many games, especially RPGs, and it's a big part of Spy DNA. We're inspired greatly by Jagged Alliance here, a game that we think did the character creation really really well. In order to build a character that will be most enjoyable to play for each person, we need to figure out what the particular player's style is.

This is why after giving the player a chance to ask the good Doctor Crotalus some questions about the Spy DNA program purpose and history, we move on to a questionnaire that allows us to learn what kind of action the player is most likely to choose, and give their character a stat boost in those areas.

The screen shot above is still a work in progress, so the formatting as well as the questions and the stats balance etc. are all going to change, but not the intent: we want to make sure that you get the character that you'll enjoy playing.

What is that? Ah, yes, the perceptive reader is wondering why the screen shots appear to be in the first person perspective. That is because you haven't finished creating your character yet, and don't yet know what they look like. Once you pick your appearance, the game switches to third-person for good, but you still get to enjoy the character's view point through the body-cam on the bottom left.

Demo Complete!

We finished putting the final touches on the demo and are sending it out to a few testers tonight.  Once they have had a chance to play with it and we address any issues, we will send it to a wider list.

We have also decided to make the demo available to anyone that has backed our Kickstarter campaign at Beta or higher.  I.e. those that wanted an early look and were willing to put up with the limitations of early builds.  It’s around 1.4Gb for the two demo levels.  

One of the good side effects of working on the demo is it forced us to address some long standing bugs that we had been putting off.  

Examples:

  • Write a manual
  • Add objectives to the maps
  • Sort the dialog answers so “goodbye” was always at the bottom
  • Put the status indicator over the character portraits
  • Assign skills to the NPCs

We also added the end of mission screen which includes the status of the objectives, the party, and some statistics about the equipment used.

We also added an “event cam” to the game.  It’s purpose is to highlight important events to make sure the player is fully aware of what is happening in the game.  We will add settings for the final product so players can customize which events are highlighted.  

Changes of note:

  • Added check marks to objective list

  • Made movement modes available to AI waypaths

  • Maps can now specify if the characters start with a weapon equipped

  • Hide shooter weapon in gunsight cam to avoid possibility that weapon would block view

  • Fixed bullet trails and sounds for some weapons

  • Enabled event cam for kill shots

  • Fixed AI bug that cause NPCs to sometimes empty the clip into a already down character

  • Taught AI to reload

  • Added medium and heavy combat armor

  • Fixed icons for armor

  • Tweaked ROF for a few rifles

  • Added new pistol models

  • Added descriptions to armor

  • Fixed bugs applying armor to hits

  • Added keyboard shortcut for previous and next target visible to selected character

  • Replaced generic sounds with per-character sounds

  • Removed occlusion check for muzzle flashes.  Was causing flicker.

  • Greyed character portrait when stunned, unconscious, or dead

  • Set skills for all NPCs on demo maps

  • Replaced placeholder NPC models with correct models

  • Fixed bug causing turns for unconscious characters.

  • Reviewed max-texture sizes for small objects

  • Added post-mission summary and stats screen

  • Fixed bug with default aim point after a melee attack

  • Updated 3D queue overlay to fix bug with stuck targeting line

  • Fixed gun empty sound

  • Hide contact counts when character is unconscious or dead

  • Added sorting support to dialog answers

  • Changed default to show long answers rather than short summary

  • Fixed cursor hitbox for hud to resolve small dead-space area

  • Added skill check for spotting and rate limit spot checks

Demo development update

This is Jason with a long[ish] update on our progress towards demos. We have been hard at work getting a demo ready. I wanted to give everyone a feel for what it’s like to develop a game with a small team.

AI 

Shipping a demo with combat requires the AI to behave in a reasonable way. Up to this point they have been heavily scripted, but to make a more interactive demo we have accelerated implementing a few things related to perception and reaction to threats. 

  • We now simulate “a quick glance”. If a character hears a noise and the source of the noise is in their line of sight but not field of view, they now have a chance to also visually detect and evaluate the source. 
  • We revised “contact tracking”. Previously the fog of war system was too aggressive hiding characters within the line of sight but out of field of view. Now you can track due to sound and neutral and friendly contacts are retained for longer. 
  • NPC AI now has separate tactics and actions. This allows them to return to their previous actions when interrupted and make better choices about when to take an interrupt vs continue what they were doing. 
  • AI commands can now be issued from the dialog scripting language. This was a temporary regression from switching to the new dialog editing software. 
  • Changed vision markers to appear if any party member has contact with enemy, not just selected character. 

Dialog 

Alex has been entering all the dialog for the demo and initial levels. This has exposed a few issues during testing and we have been fixing those as they pop up. 

  • Scripts can now be attached to any dialog node. Previously they only worked on player answers. 
  • Added support for N-way conversations. Previously dialogs could only be between the player and one NPC. 
  • Some sequences would cause the wrong portrait to be displayed in the chat. This has been fixed. 
  • Added scripting command to make a NPC face an object. 
  • Added scripting command to play a specific animation. 
  • Added item list to instruction nodes to allow item transfers between NPCs and player inventory. 
  • Characters now play a conversation animation while talking. 
  • [todo] Add sorting option to answers Fixed bug where NPC could interrupt an existing chat to start a new one. 

Objectives 

The game has always had a plan to present the player with specific mission objectives. We decided to pull this in [schedule wise] for the demo. So about three days ago I started implementing the objective screen. 

  • Implemented an Objectives tab in the character screen. 
  • Added a place to edit the objective list in the UE4 level editor. 
  • Linked the text descriptions to the description objects in the dialog editor. 
  • Added C++ code to track progress of objectives. 
  • Added C++ code to display objective state changes (complete or failed) to player log. 
  • Added objectives to test map and played though. 
  • Fixed bugs resulting from above additions. 
  • [todo] UI cleanup of objectives screen. Display check or X for pass and fail. 

Maps 

Alex has also been cleaning up the base map for the demo. We should have done this one earlier because the improvement in graphical quality have been huge. 

  • Review post-processing settings for map. 
  • Reviewed lighting on map. Added descriptions to items, which will appear in-game as tool tips if you hover over an item. 
  • Fix some material issues where the materials were too metallic (too reflective). Floors are never clean enough to behave like a perfect mirror. 
  • Fixed window transparency to work with the fog of war. 
  • Added AI paths and tasks to NPCs on base map. 
  • Added lots of environmental items to make the map look more like a real office environment. 

Misc 

  • Fixed bug where weapons could fire in a wrong mode if the player used the default mode. 
  • Added contact counts to character portraits, showing how many friendly, neutral, and enemy NPCs a character perceives. 
  • Fixed bug with NPC movement that would sometimes use the wrong movement speed (e.g. walk instead of run). 
  • Fixed bug where movement animation would not stop when a character finished following another character. 
  • Moved item descriptions from in-game editor to external tool to support localization. And yes, we hope to have the resources to localize the game. 
  • Fixed character names getting corrupted in event log. 

I hope this gives everyone an idea what two weeks of development here at Shy Snake look like. We operate at a higher than normal velocity and want our backers to know about the progress we’ve made. 

Calling all reviewers

We’ve been working hard to create our first playable demo which we can share with the world. Well, primarily with reviewers, who can help get Spy DNA in front of 3rd person strategy games players.

The demo will consist of two levels, one to show off the RPG side of the game, with things like dialog and the tutorial, and the other level will focus on combat. Set in a remote location, the player will lead a party of three to infiltrate an enemy camp and claim artifacts and intelligence.

Keep in mind, that what we’ll be sharing is going to be a pre-alpha, very early demo, but if that is not a deal-breaker for you, go ahead and fill in this form so we can contact you when the demo is ready.


Demos!

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 pledgesharing our project on social media, or be daring and do both!

Development update from Jason.

We continue to be very busy here trying to get as much done as possible while we are live on Kickstarter. The current task is to get some demos ready. We are working on two different demo levels. One for the intro to the game and some of its RPG aspects, and a second for combat.

The intro level is the first level of the game after character creation. This is where you can walk around the base, meet the staff, and get a feel for the RPG aspects of the game. Alex has entered the dialog for the level and I just finished integration of the new system. Previously we were using a custom dialog solution we created ourselves. We switched to Articy:draft, because Articy makes it much easier to visualize the flow of the dialogs vs the purely text-based solution that we were using.

For combat we are using a test level that isn’t part of the game. We didn’t want to delay a proper combat demo until some of the later maps were finished, so we purchased a military base off the unreal market. Then we filled it in with some NPCs and objectives and re-worked some lighting. The map is serving a few purposes:

  1. AI development. We wanted to quickly create a believable map where the AI could be tested and developed.
  2. Large battle playtesting. The previous map didn’t provide a place where the party could really use long range weapons.
  3. A demo!

We don’t have an exact ETA for when these will be ready, though our goal is to finish them while the Kickstarter is still active. 

If you are a journalist or reviewer interested in a demo, let us know.

Putting the RP in RPG

Those of you following our updates closely may have wondered just how much story and actual role-playing will we have in Spy DNA. Well, wonder no more.

We just purchased a dialog/script tool that will allow us to both visualize the existing dialog branches and stories, and to integrate them with the game. The tool is called Articy:draft, and so far, we’ve been quite impressed with what it can do.

Aside from offering a handy way to keep track of all the characters, locations, and dialog lines, the tool integrates with our existing source control (big plus!) and with Unreal Engine. Once we’ve got that configured, we’ll be able to assign dialog directly to the characters, wherever they pop up in the game.

As is the Shy Snake tradition, we’re already planning some custom work in order to have the dialog have effect on NPC disposition and story line, and vice versa, have character skills and attributes as well as prior actions result in more (or fewer) dialog options when talking to NPCs.

Right now, I’m busy migrating the existing script from the ODS file into the Articy tool, and what I’m discovering is that the visualization makes it very clear where more dialog options can be added. Conversations without any branches or with only very few ones become immediately apparent once you lay them out like a flow chart.

So once all the dialog is in, I’ll be taking a second pass over it, adding more branches and optional outcomes, to make the role-playing aspect of the game match the combat in complexity and richness. How will I do it?

NPC disposition
Depending on where your behavior falls on the scary to nice spectrum, the NPCs you’re interacting with will like you more or less. The more they like you, the more information they will share, and the more readily will they comply with your requests. Not to say that you always have to be Miss Manners, because some NPCs may need scaring before they become cooperative, such as the baddies you take prisoner.

Skills and attributes
When you are talking with NPCs, you’ll find that your attributes and skills influence your dialog options as well as how convincing your character will be saying those lines. Going with your character’s strengths will mean having more successful conversations.

Going against your character’s “nature” may result in humorously bad outcomes. Not every character will be a natural at diplomacy and negotiation, so you can imagine that some conversations may not go as planned.

History
Things that your character already knows or places they’ve been will influence what dialog options they’ll have when talking to NPCs. Same goes for previous actions and acquired items.

All in all, my goal is to write enough dialog branches that you will not be able to explore them all in one play-through. You’ll have to create different characters and play a couple times to discover all the dialog options.

What do you like (or dislike) about dialog and story in games? When you play, do you try to exhaust every dialog branch or do you just click through the bare minimum so you can get back to fighting? Tell us below in the comments!