-
-
Notifications
You must be signed in to change notification settings - Fork 587
Units
The purpose of this document is to serve as an overall design guideline for developing new units.
It is not meant to educate on the basic info, which is provided on the website documentation.
//TODO: clean up this wiki page from the basic info, which should be merged into documentation if essential
//TODO: provide examples of good and bad practices for each category
This game project strives for 3 sets of units, each having creatures from 7 realms that range from 7 level types, plus a few other creatures that summoners (materializing the creatures) or summons (creatures by a materialized creature).
That means over 150 units, hence the need of this document, which will hopefully serve as an overall guideline.
//TODO: as a reference, mention how many playable characters some of the other reference games have, like HoMM3/Dota2/LoL
//TODO: perhaps include sets here and deprecate the other page https://github.com/FreezingMoon/AncientBeast/wiki/Factions
Each unit should nicely fill into an available position from a certain realm and set, adhering to that specific theme and fulfilling an unique role during combat, essentially filling a void, by providing something that other creatures do not.
Every unit should have a recognizable outline while the amount of details and color pallet is not overdone, also exaggerations are definitely a very nice touch. A great video on that https://youtu.be/8wm9ti-gzLM
//TODO: talk about generic roles in eSport games, especially in mobas
Creatures come in 3 sizes, occupying 1 (small), 2 (medium) or 3 (large) hexagons.
Larger creatures are more expensive and are usually higher level (but there can be exceptions to this), meaning increased stats and more powerful abilities, other downsides being harder to maneuver or attacking sideways, while smaller units have a tendency for a more supportive role during combat.
//TODO: provide pixel size for technical stuff
Each creature has 9 stats and 9 masteries. The stats define the main traits, while the masteries how well versed they are at performing or enduring specific abilities, representing the types of damages (with exception of the pure damage type).
//TODO: check table for picking unique stuff
Units have 4 abilities along with upgrades, the first ability is a passive one, automatically upgrading itself after staying alive a number of rounds, next one is usually a melee range rather basic attack but still having some kind of gimmy-trick to it in order to set it apart somehow and keep things interesting, then a more powerful ability that costs more energy and last, an ultimate one that tends to be very expensive but can have a huge impact on the combat's outcome. Active abilities become better after a specific number of uses; it's ideal for all upgrades to not be designed as dual-edged swords as much as possible, since they can't be avoided. Good ability design is when a player can easily figure out what that creature can do just by looking at it, everything serves a purpose! Take great importance of the main details.
The ability icons are svg format, usually found on Game Icons, style being transparent background and 4px black outline for all the shapes.
Due to the fact that we're reusing mirrored left/right and diagonals mirrored sprite sheets, all the units should be fairly symmetrical overall in terms of negative shape, except held gear (which could in practice switch hands provided unit is ambidextrous).
Creatures should have recognizable negative shape and should properly differentiate themselves from other existing ones. They shouldn't be bloated with too many attention drawing tiny details and it should be fairly obvious overall what they're capable of, as well as to which realm they belong to. A great video about how to design character design can be found here https://youtu.be/8wm9ti-gzLM
Each playable unit should have its cardboard converted into a spritesheet that nicely exposes all the parts, keeping in mind any existing overlaps in the cardboard.
We'll mainly be using Rive for animating units using 2d rigs and skeletons, as the app has nice free version, allows for unlimited files, has agile development, strong community and provides both desktop clients plus easily accessible web based version. Keep in mind that Rive can handle deformations.
These actions will usually be required:
- idle
- walk
- basic attack
- advanced ability
- ultimate ability
- receive damage
- death
There will probably be a few more bonus animations, like taunts, cheering, sad and such. Walking animation should be done only forward, even if units can walk diagonally-up/down (need to investigate!). Animation for the basic attack and some of the abilities will probably require sprites for 3 directions: forward, diagonally-up and diagonally-down, since most units cannot attack directly up or down.
//TODO: add technical specs
These games should be carefully observed regarding animation style:
- Iratus: Lord of the Dead - Steam, Gameplay, Gameplay
- Heroes of Might and Magic 3 - Wikipedia, Gameplay
Since our game engine, Phaser and Rive don't yet work together nicely out of the box, we can have the Rive skeletal animations exported into spritesheets, which can be easily used in-game or Rive animations could be rendered offscreen to a texture that Phaser will display or something along the lines, see this thread.
Alternatively, each creature is 3d modeled using Blender and have each action rendered into a sprite sheet by using our custom Blender add-on called Spritify. While this workflow doesn't rely on a closed source tool, it's way more complicated, source files are large and the output is not a skeletal animation that can be used in our 2d game without pre-rendering.
- https://youtu.be/uDqjIdI4bF4
- https://youtu.be/o05kiVoB2oY
- https://www.youtube.com/watch?v=mMpik32gkt4 - Getting started with Rive
- https://youtu.be/9_Gz-fFfFek?si=P14nA5xCrgdBSFAP - Rive crash course