Friday, August 16, 2019

Turns

As described in earlier posts, Tidewoken is a turn based game.

Each character gets added to the turn control at the start, while summoned characters can be added later.
Once a character gets removed from the game, this character is removed from the turn control.

Initialization

We're at the GameState


All the now spawned characters will be added to an array, then a random bool decides which team starts first. Now the turn order is written per character, alternating between both teams.

In this step the main game HUD will be updated with the character portraits:

Mystic and Assault

Mystic summoned his Ghost Wolf

Once the Actor Tick of my Game State runs, the turn timer of the first turn starts.


Once the current turn time is below 0, there is a check for pending actions like spell casts and movement. This way you can already skip your turn while moving and the turn will automatically be ended after all actions are done.



"Start Next Turn" is pretty simple, it just increments the turn order or resets it (based on if its the last character in the turn order) and starts the end turn event on the character and also the main turn code.


The main turn code calls functions like On Turn Start/End events


Why Blueprints

In my past I have been working with a few GUI based programming options, like the Warcraft 3 World Editor. I kind of got used to this method of coding and I really wanted to do a full scale Blueprint based Unreal Engine project. 

I think Blueprints are a really good way for new programmers to learn logic without getting hindered by syntax. 

Some functions later on will be written in C++, like server backend communcation, because there is nothing available in Blueprints like this.


If you want to know more about a specific topic, please let me know in my Discord! https://discord.gg/jrGyj2p

Tuesday, August 13, 2019

A new challenger appears

This post will be dedicated to my first class, showing some of his skills and playstyles.

If you have further questions, feel free to join the Tidewoken Discord server!

Mystic

I was starting a "design as you develop" approach with Tidewoken, thus needing a class that combines many elements as possible, while still being fun to play.

The goal was to create a class, that is not only a ranged damage dealer, but can be a summoner, support and meele damager.

Therefor Mystic was born, a spiritual caster with a two handed jade axe.


Before creating the 3d model of Mystic, my only Blender and 3d modeling experiences were my map tiles (and a barrel...). So I kind of dived into the cold water there.


The base humanoid was created with MakeHuman (http://www.makehumancommunity.org/).
All the armor and his weapon was modeled in Blender and textured in Substance Painter.



Summoner

Mystic can be played as a pure summoner, focusing on his only summon, the Ghost Wolf.
The Ghost Wolf is controlled by AI, but there will be ways to manipulate the Ghost Wolf's target.

There is a total of 16 spells in the "Clairvoyance"spell tree, supporting the Ghost Wolf and offering map manipulation tools.

Here is a preview of 4 of  them, including a legendary spell:






Caster/Support

The Mystic can also be played as a ranged damage dealer, focusing on magic damage, map manipulation and impairing.

For me, one of the most interesting spells is the Spirit Realm which was featured in the last spell preview post.
This spell allows you to either protect your allies from damage, when just the ally is in the Spirit Realm, but also makes it possible to enter the Spirit Realm with 2 allies and one enemy, increasing your damage against this enemy, while weakening the other enemy.
Realm Keeper improves the effect of Spirit Realm, but not without a cost! :)

Flexible spells like that one is a big part of Tidewoken. I want to give the player the freedom to play the classes like he wants to.







Coming up

Next week I will try to record a video of Tidewoken showing some spells in action. I had some issues with recording software, but I'll figure it out till next week.

I will also post technical background of spells, as this is one of the most complex systems I've built.

Saturday, August 10, 2019

Tooltips

Since this is a devblog, I'll try to cover as many technical challenges I've faced while developing the core systems for Tidewoken. This is one of my first games using Unreal Engine, so there were a few of those challenges. Also sometimes Blueprints are just stubborn :)


As mentioned in my last post, Blogger destroyed half my post, so I'll continue with tooltips.

Goal of tooltips

Tooltips should show the player everything he has to know about the spell, so he won't get frustrated the first time he casts the spell. 

This is particially hard with spells that either do many things at once, or do very unique things.


For example, let's compare two Assault spells "Rune Of Health" and "Summon Target Dummy":





Rune Of Health is pretty self-explanatory
You should probably read that one before choosing it


As you may see, writing tooltips can be a hard task for some abilities.


To make this process easier, I have created a few systems hat assist me.



This entire spell info part is generated using all the different variables a spell can have.

Everything looks complicated with Blueprints...

For all the different font colors I use UMG richtext widgets and the built in "Replace Inline" function.

Because I don't want to fill hundreds of values manually, I parse substrings like {value1} to give me the correct value, based on the characters attribute level:


And for distinguishable damage types, I just replace phrases like "physical damage" with my RichText options.




Dynamic size

Some tooltips are longer than others, so I calculate the amount of spell info lines and then I divide the length of my tooltip string by a fixed amount. 
The added amount is now applied to my scale box.



I'm not sure if there is a easier solution, but the results are pretty good so far.

If you have suggestions or questions, feel free to join my Discord: https://discord.gg/jrGyj2p


Coming up next week is an entire blog post about my first class "Mystic", about what he is supposed to do and some spells that should accomplish that.

Friday, August 9, 2019

Spell preview

Edit: I have a Discord server now if you have questions/want to contact me! :)
https://discord.gg/jrGyj2p

I seem to manage to update this blog more often than I thought, although there are not many readers :)

Thanks again for everyone interested in this project!



Spells in Tidewoken

Tidewoken features over 45 spells per class, which will be a big feature of this game.
Everyone who knows Guild Wars 1 will probably already know that I am heavily inspired by this game.

For those who don't know Guild Wars 1:
It is a very unique MMO which features hundreds of spells that you can choose from, while only being able to take 8 of them in each battle.
GW1 really changed what I love about games, you should check it out, it's still playable!

I really loved the idea to combine both games, Guild Wars 1 and Dofus into a competitive arena game.

Spell System

Like Guild Wars 1 you are able to take 8 of (currently) 48 class spells with you.
One of these 8 spells can be a legendary spell. Legendaries are a bit more unique and powerful than regular spells. In GW1 these were known as "Elites".


Example build that focuses on "pushback" damage

Attributes define how strong these spells are.

Attributes of the class Mystic
I choose not to include a secondary class or a way to obtain spells of a different class.
This is purely a design choice, because I am not able to balance all these spells and different interactions as a solo developer.



Tooltips

Because I already have over 90 spells, I have to build my spell systems flexible.
The tooltips of the spells are created based on the spells variables, changing values and damage types are automatically highlighted. The height of this widget is also calculated with the length of the text.

Spell values improve with higher attribute level

To create this tooltip I simply have to fill a variable in the blueprint of this spell:



I can't talk about spells without showing a few example spells which I really like:






I wanted to post more about the technical background of the tooltips, but Blogger successfully killed half of this post.
It will be in the next blog entry then ! :)