Tuesday, March 17, 2015

GameDev Session - Pre-Alpha bug fixes



Here's a recording of the gamedev session from last night.

Things covered:
-Mousewheel zooming
-Variable timestep of player / enemy actions
-Fixes to multi-scene transitions with DontDestroyOnLoad / OnLevelWasLoaded
-Passive / Active Effects are now working for stats (Attack Ring, Haste, Slow)
-Some other minor bug fixes.

-New build of Pre-Alpha soon!

Friday, March 6, 2015

March Goals

Onto the next month of game development!  At the end of February I was able to hack together a rough battle-game demo (pre-alpha 0.0.1), which is playable below.

In March, I'm going to diversify my efforts.  Unity 5 was released, so upgrading the project is key.

I'm still going to work on implementing features and fixing bugs in the battle game, but also starting to do some writing about the world, story, and characters.

Lastly, one of the key pieces of technology I still need to make is a tree-traversal engine that can incorporate conditional / scripted logic.  This engine will be used to traverse the game map, dialog trees, and quests.  Look for a separate project / blog post focusing on the design and implementation of this.

March Goals:

  • Upgrade project to Unity 5
  • Polish / Bug fixes for the battle demo
  • Continue working on design of world, lore, characters, stories, quests, etc
  • Design of tree-structure engine that will power the map, dialog trees, quests, etc


Demo of new build


Watch live video from daydalus9 on Twitch

Pre-Alpha Release!

Here's the first rough build of the RPG!


Pre-Alpha 0.0.1 
Build Notes:
  • Improved Initiative List
    • Color coding for character type. 
    • Scrolls to fit screen
  • Current Player Avatar highlighted in Yellow
  • Enemy characters - red highlight
  • Player characters - green highlight
  • Mouseover character tiles - display stats
  • AP Count should be highlighted for Active Character
  • Show Battle Log on screen
  • Equipment Screen - Fixed to update for Active Character
  • Buttons should only be enabled during Player decision state

To Do / Known Issues:
  • Enemy AI - sometimes doesn't move. 
  • Enemy AI - only takes one attack, even if it has more AP
  • Improvements to mouse over stats (better buff/debuff indicator.  bugs with positioning)
  • Group Heal - temp effect should show up on all chars?
  • haste - not working?
    • how are we adding additional AP?  game needs to be more dynamic with 10AP
  • Able to quit / end battle from battle screen.
  • Some sort of end-battle stats (damage done, etc)
  • Dragon battle - killed someone -> crash
  • When you click a pending action (Move, Attack, etc), screen should indicate.  Select box should change (gray -> green?)  Red if move isn't possible.
    • need to have service to return bool, given location, if possible.
    • could also return patterns for Aoe effects.
  • PCs should start in semi-close position on battle, near edge
    • need to store extra data on board object for start locations - players / enemies

Tuesday, February 24, 2015

On character classes and balance


A staple of RPGs are character classes.  A few modern games have let the player accumulate skills without limit (Elder Scrolls series), but the majority of them lock the player abilities and progression to a fantasy archetype (warrior, rogue, mage, etc).  Of course, they inherited from Dungeons and Dragons, which codified the rules and powers from the old myths and fantasy classics (Greek mythology, Conan the Barbarian, Lord of the Rings).



So classes make sense from a narrative perspective, but what about from a game play perspective?  Particularly for a grid-based tactical combat game?  For that, we can look at the granddaddy of all grid-based combat games: Chess.

In chess, every "class" can kill any other, although their method of attacking varies.  They also have different move sets.  What makes chess interesting is that there isn't a straight curve of power. In some situations a knight is better than a queen, a pawn over a rook.

One way I've been looking at character classes is through their strengths and weaknesses, in relation to the grid-based tactical combat. Here's the breakdown:

mobility - how can a character move around the board (charges, teleports, diagonal)
range - how far away a character can attack (ranged weapons, spells, cleave, AoE)
damage - how much raw damage the character can inflict (crits, bleeds, poison)
survivability - how much damage a character can take (armor, resistance, regen)
utility - how can the character alter itself, allies, enemies or the board for the other categories (slow, haste, web, stun, shield)

In chess, the only attributes in play are mobility and range.  You could argue the "castling" move is sort of a utility of the rook.  But mostly, all the pieces have the same damage and survivability. 



Lots of RGPs try to create balance by giving all the character classes the same amount of power.  In a way, you end up with a single character classes "skinned" to look like a mage or warrior.  Chess blatantly has different powers in the pieces.  A queen can completely dominate the board.  But a knight can jump other pieces; a pawn can reach the end of the board and ascend to any other piece.  A chess game fought entirely of queens would be dull. 

So what I'd like to do in my RPG is take some tips from Chess and design classes that play in very different ways, and possibly aren't even balanced in relation to each other.  But in the context of grid-based tactical combat, each class would have use.

What I did was take the five attributes above and try to find some interesting combinations.  A lot of them end up as the classic character tropes from RPGs (heavily armored warrior, agile rogue, weak mage nuking from afar), but there some interesting ones as well.

mobility
range
damage
survive
utility
class?
1
1
0
0
0
fast archer
1
0
1
0
0
teleporting rogue
1
0
0
1
0
armored sprinter
1
0
0
0
1
bard
0
1
1
0
0
sniper
0
1
0
1
0
turret
0
1
0
0
1
buffer
0
0
1
1
0
blademaser
0
0
1
0
1
caster
0
0
0
1
1
armored cleric


Friday, February 13, 2015

Equipment Screen!

Here's a rough prototype of the equipment screen I've been building.  Will post a video once its fully wired up!


Tuesday, February 3, 2015

February Kickoff

January Wrap-up

In January the goal was to have a rough prototype of the battle game working in Unity, using a tileset to display the world, and controlling the player using the Unity UI.  Our current build we're able to Move, attack and use some of the basic abilities, despite a pretty rough user interface.

Since the holidays are over, I haven't had as much time for coding.  And lots of the work with Unity UI was simply experimenting with different techniques and APIs, so not all of it was directly productive.  But I think I have some good methods down now to do what I want (see the previous post on dynamic menus).

February Goals

By the end of February, I'd like to have a minimum viable pre-alpha build.  Here's what I'm shooting for:


  • 2-3 battles with an assortment of players / enemies to test difficulty / tactics / AI.
  • Functional menus for using Abilities, Items and changing equipment
  • Win/Lose conditions and displays
  • "Wrapper" menus that let you choose opponents, start battle, etc
  • Indicators in the UI for range of spells, area of effect, failure to hit, etc
  • More abstraction for loading resources from external files (maps, characters, tilesets, etc)


A more abstract goal I'll be working on in parallel:


  • Start brainstorming the story, characters, lore and gameplay elements of the game itself.  This brainstorming will drive the design of the actual assets used in the final game: graphic design of UI, tilesets, music, gameplay abilities, writing, etc.


I'm not sure I'll do as much streaming this month.  For one, my laptop is somewhat weak, and the stream lags and skips.  And lots of the plumbing I'm doing right now is pretty repetitive, boring, and not worthy of watching for hours on Twitch.

Once I get more into the content creation and testing, I'll record some more videos and post them.