Dynamic Variables In Action

Purpose

To give a brief idea of the magic that happens behind the scenes that makes dynamic variables work.

Applicability

This article is optional and applicable to Game Designers (and Developers) using the D5.1+ code.

Video

Video explanation, if possible

 

https://youtu.be/46mGanOHe9E

Understanding Dynamic Variables

Purpose

To give game designers some idea of what dynamic variables are and how they work.

Applicability

This article is applicable to Game Designers using the D5.1+ code.

 

Written Explanation

It takes a lot of time and effort to tweak a game when you have to download the project, make changes, have it tested, and upload a new build.  Even worse, some companies, such as Apple, delay a build for testing and critical changes may not be able to get out to customers as quickly as we’d like.

We have created a system called ‘Dynamic Variables’ to work around this.  In its current form, it allows us to change:

  • which enemies appear in the game and how powerful they are
  • which weapon pickups appear in the game

 

 

You don’t need to have a deep understanding of this process, but it is useful to know how it works at a high level (especially for if there are problems).

There are three components to the Dynamic Variables system.

  1. An online google spreadsheet.  Each game has one; this is where all the values are stored.
  2. An intermediate webserver that holds all the values.
  3. The Unity editor, or one of our games.

The normal flow of information is like this:

  • you make some changes to the spreadsheet
  • you tell the spreadsheet to upload settings for debug/testing
  • a script runs on the server that takes all the values and packages it up as JSON (which lets us easily communicate the data between different systems)
  • the spreadsheet uploads those values to the intermediate webserver
  • the Unity editor (and debug builds of the game on the device) download the latest data when you press play (or start the game)
  • using these new values, the difficulty of the game is easily adjusted

When you are satisfied with the new values, you can tell the spreadsheet to upload the values for release, and then people with the released version of the game will get the new settings.

Our system also operates, in a limited fashion, in the reverse direction.

  • you create a new spawn point in the game by pressing a button
  • the game saves the spawn point information in JSON format
  • the game uploads the file to the webserver
  • you refresh the spreadsheet, and it gets the latest values from the webserver
  • the spreadsheet adds new entries for the new spawn points, which you can then edit.

This process also works when you delete a spawn point.

Prerequisites

Purpose

This article tells you what you need to have set up on your computer in order to start doing Game Design work.

Applicability

Applicable to: Game Designers using the D5.1+ codebase.

Written Instructions

You need to have the following things installed:

Our game is written in Unity.  It lets us write code once (“Unity” means “one”) and deploy it to different systems (like phones and computers).  We need you to use the specific version listed, as the code doesn’t work with earlier versions (we know it doesn’t work with Unity 5.0.2, for example), and it doesn’t work with later versions (like Unity 5.1.x).  [Any version of 5.0.3 or 5.0.4 should work. 5.0.3p3 is preferred.]

Note: It can be handy to have an older version of Unity when you are updating a game.  You can open up the old version of the game in the old version of Unity, and the new version of the game in the 5.0.3 version of Unity.

Blender is a 3d modelling tool. You need to install it (any recent version) and, I believe, run it once. Some of our artwork is in blender format, and Unity needs to talk to Blender to convert it to the format it works with. If you do not install Blender, you will not see the characters in the game (and may have to reimport your assets, which is time consuming!)