All posts by utilitron

Game patches

I have been hard at work over the last week designing and building a few new features.

The patch system works by checking a version number for the game on mageduels.com, if the number is different it starts the update process. Before launching the patcher, the game checks the version number for the patcher and if it is different, downloads and updates the patcher software before continuing on to updating the game.

I am happy with this approach because if at any time I release a new version of the game, it will go get the required files without having to send email blasts or hit up twitter or reddit and hope everyone sees it. But also it updates the patcher it’s self. So if in the event I re-write the patcher, the system will pick that up as well.

The other thing I was able to get into the game is a kill log. I have a database set up that logs kill counts by ip. This will be used to update a leader board I will be putting on this site.

TODO list for 0.0.2

Casting:

  • Fizzle on damage
  • Fizzle on low mana
  • No targeting ghosts
  • Reimplement casting effect

Character

  • Fix animation bug

HUD

  • Display poison on health bar (make hp green)
  • Add Buff/Debuff icon placeholders

Spells

  • Add icon holder for buff/debuff icon to be displayed on HUD

Map

  • Add rez spot near center
  • Make map more interesting

Rebuilding networking

As I make the push for a WebGL, I have had to rework some of the ways I was doing things. One of the major changes is I have been stripping out the client-side code in the headless server build, and stripping out the server code in the client build. I am working hard to make certain that as much of the core functionality of the game is server side to help prevent wide spread hacking.

I am also beginning to implement messaging. I have system messages being sent from the server. This will allow me to bring back chat. I am not certain if I will go for a chat window style or over the head chat yet.

ScriptableObjects

So because a lot of the parts of Unity are new to me, I may not have built things in the greatest way… at least not on the first pass.

Originally I wrote the spell system with a game object that implements a script that just holds information about the spell.

public class Spell: MonoBehaviour {
    public KeyCode key;
    public GameObject effect;
    public string type;
    public string words;
    public float castTime;
    public float manaCost;
    public float effectValue;
    public string effectTarget;
    public string effectType;
    public float delayTime;
    public float expireTime;
}

SpellManager

So after watching a tutorial on ScriptableObjects I have begun moving my spell system over.

public class SpellList : ScriptableObject 
{
    public List<Spell> spellList;
}

[System.Serializable]
public class Spell 
{
    public string spellName = New Spell;
    public Texture2D spellIcon = null;
    public KeyCode hotkey = null;
    public ParticleSystem spellEffect = null;
    public SpellType type = null;
    public string incantation = ;
    public float castTime = 0.0f;
    public float manaCost = 0.0f;
    public float effectValue = 0.0f;
    public EffectType effectType = null;
    public EffectTarget effectTarget = null;
    public float delayTime = 0.0f;
    public float expireTime = 0.0f;
}

SpellList

Server testing

I put some time in to getting a test server up and running this weekend. I was hoping to have something up and running, however there seems to be some issues with dropping connections randomly and the connection locking up after so many disconnects that needs immediate attention.

This process is sort of trial by fire, if you will. I have never set up a custom game server before, and it is a long ways from running a cs 1.6 server. I initially set up a VPS with dreamhost.com, unfortunately they informed me I would not be able to upload my server and run it. So I have moved over to a nfoservers.com VPS and am working on getting everything up and running.

Once I have worked out some of the kinks with connection losses and the server locking up, I really hope to allow people to start trying out the game!


Server Test 2016-01-30(server test on NFO VPS)

Erik: refresh and try again
Devin: ok
Erik: now i see you
Erik: dropped again
Devin: yah
Devin: and it sent me to the main menu and i cant click join again
Erik: I know, there is an issue with the mouse pointer not showing. refresh and it should let you again
Devin: ok
Devin: shit kicked me again
Devin: lol
Devin: you need to get the problems out first so you wont get bombarded with hey the thing kicks me
Erik: yea

Big Change Coming…

The past 3 months or so have been real slow in getting work done. Mostly because I am swamped at work and have some family matters that needed my full attention. Things are starting to die down and I have so much to catch up on in the game. I apologize.

I have been wanting to have a way to allow people to start to play the game and get some feedback. After a bit of looking for the best way to provide a “pre-alpha” copy for people to try, I decided to look into WebGL.  I will be looking into a hosting solution to allow people to join a server and play around with the spell casting system ASAP.