Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.
Astralojia: A 2.5D Turn Based RPG Game [WIP]

Astralojia: A 2.5D Turn Based RPG Game [WIP]

Astralojia: Turn Based Battle System Development Log
http://www.astralojiagame.com
astraLogo600WIDE.png


This is a thread dedicated to the next few months of updates that I will have working on the battle system for a turn based rpg I have been developing called Astralojia.


Battle Module Current Todo List 782018 236AM

BASIC LOOP

- Selector.delayTime for input
- Right click goes back from Selector wait
- WhoHasTurn moves forward
-  WhoHasTurn reads what state to play (rpg database ability entry should use O_MoveStates rnum/share it, instead of using it’s own)
- Waits for state to play
- Instantiates attack prefab at location of WhoHasTurn
- Waits for state to play (wait for attack prefab to == null/finish)
- Damage Calculation Here: Figures out damage vs defense, stores it to each selectionTargets[]
- Instantiates impact prefabs at selectionTargets
- Waits/Delay (wait for impact prefab to == null/finish)
- Instantiate damage number prefabs at selectionTargets
- Wait/Delay
- Winds effects WM or MANA down, WhoHasTurn moves back to where he/she started
- Waits/Delay
- Check status effects from ability vs defense, place status effects from WhoHasTurn ability on selectionTargets if they don’t already have them on.
- Check for battle end condition
- If not met, go back to wait for next turn
- Add Check Status Effects 1) used against effected character, 2) see if they end on this turn
- Make sure in RPG Database that Status Effects must have at least a turns of 1 or above

IMPLEMENT FEATURES

- Implement ‘Move’ switch far to near and near to far.
- Ability far and near check
- Ability is greyed out if you don’t have enough mana or wm cost to use it.
- Ability is greyed out if you’re in the wrong position to use the ability.

DAMAGE CALCULATIONS

- Lvl increases Damage Base
- HandToHand increases near and physical attacks
- IQ increases defense
- Projectile increases far attacks
- Mana increases a little bit of all non-physical and increases signature ability damage
- If Targets element weak to element of the attack, more bonus damage
- Movement stat slightly increases near and physical attacks

BASIC AI

- AI: Conservative vs Liberal method
- Conservative = use mid-low mana cost abilities to save on mana and wear out opponent from using theirs.
- Liberal = use high cost abilities sooner.
- From Conservative to most Liberal:
- Counter, Defensive, All-Around, Offensive, Rusher
- Create All-Around first and foremost and create a range 0-100 that can be used as a base for each type.


ATTACK AND IMPACT ANIMATIONS

- Physical attack basic 1 and 2, physical impact weak, mid and strong
- Attack_Close_ All Elements, weak, mid and strong
- Impact_ All elements, weak, mid and strong
- Projectile_ All elements, weak, mid and strong

ABILITY BARS

- Power, Agility and Defense ability bars to add skill element.
- The following are what make them easier to use:
- Lvl as a Base to ease
- Power -> Mana
- Agility -> Movement
- Defense -> IQ

GUARDIANS

-  Implement later in sequels


BATTLE CONDITIONS

- Btl_Conditions: Turn, Opponent WM, Ally WM

VICTORY CONDITIONS

- Timed match
- Opponent lose match
- Connect victory screen

IMPLEMENTATION

- Plug into field module, hook up the loop

Current Lines of Code: 3301, across 3 scripts
Current Hours: 103 hours
Projected Time: 200 hours
Updated 7082018 235AM

Screenshots_RPGBattleModule_1.png

Screenshot_1F.png

Screenshot_2.png

Screenshot_3.png

Screenshot_4.png
 
Today, day 2 of development of the battle system, I've added ATB time and bars for party members and opponents. The bars fill up and move on to the next phase, which is character turn. In this game, as of right now, the plan is to have it in where you choose from Ability, Move and Defend, with added options throughout the series possible as the series evolves. I'm going to attempt to implement both a 'dodge' bar and a 'power' bar with possibly a defense skill mechanism as well:

https://www.youtube.com/watch?v=CbJP-eEtfjI

I've added stretch goals to the topic above, these are just dumb estimates and it could take longer.
 
For Day 3 I've worked on setting up action menu navigation. The camera transitions are now messed up in the beginning, but that's only because I need to be able to playtest quickly. There are three options that a character can start with, they are Ability, Move and Defend. I haven't set up status effects yet, but I'm thinking that status effects could stop a character from, for example, defending.

Each of these will have a simple skill bar implemented, nothing too fancy to keep it nice and clean:

https://www.youtube.com/watch?v=aBOEKudFykI
 
For Day 7, I've made it so that the party member will move into position in front of the opponent. He/She needs now to have their dash animation state activated. Achieving all of this is not as easily as it might seem, as all of this is within the field engine I've designed over two years. Unfortunately, but probably more fortunate for this forum, I'm going to have less time for the next 2 weeks as I'm moving out and have to save up the rest of my downpayment for the apartment:

https://www.youtube.com/watch?v=ddE8qHTD220
 
Today I realized that I needed to have my particle fx set up. I've got the character running up to his/her opponent and punching, but since there's limited animation the particle fx will be a deal breaker. Most of the animation in the game will be within the particle fx.

I'm using three different asset store libraries for the vfx. I'm using Pixel Arsenal, Stylized Melee Pack 1 and Pixel Weather FX:

https://www.youtube.com/watch?v=cmgbGk6eWJY
 
It might not look like much, but I've gotten instantiation working at ....KIND of the correct place for the party member. This allows me to just choose a file from the rpg database for the ability within the resources folder in order to instantiate whatever prefab is needed for that ability. In other words, quickly switching between graphics by just a selection of a file:

https://www.youtube.com/watch?v=gN7lcEC04Lk
 
For day 10 I worked on developing a skill bar system. This will hopefully work to take away all of that boredom associated with just hitting the 'attack attack attack' button.

There will be three kinds of skill bars in the game. The first is the power bar, usually for hand to hand combat. You need to score at least an 80/100 to successful land a hit on your opponent with this one.

The next is the aiming bar or agility bar, which will pertain to throwing projectiles like fireballs, windballs etc... You need to hit the needle in the center for this bar to be a success.

And the next will be the defense or dodge bar. If you can successfully pull this one off, your character will dodge your opponents attack completely. The only problem is that this bar will be the hardest by far, with a 5% chance of success.

The tougher an opponent you're against, the tougher the bars turn out to be. If you are low lvled and trying to dodge a high lvl opponent, you're not gonna have an easy time with it. If your character is lvled and adept at hand to hand combat, your skill bars will be easier when using hand to hand combat.

Here's an early prototype of the skill bar in use. I need to add another mode or two before I can proceed to add it into the game:

https://www.youtube.com/watch?v=aTEaJPBf9_k
 
For day 11 I've been working on the mechanics of skill bars. I'm adding skill bars as I believe that these days something more has to be added to the traditional turn based jrpg system.

There are different settings for what kind of ability you use, and offense vs defense stats effect how difficult it is to get through a bar. If you don't get a success on an ability bar, you never hit. I want it to feel almost like a baseball simulation, so I have different kinds of 'pitches' so to speak, from just a regular fastball to what I call a slider, which is where the bar is given a liiiiil push and then somewhere randomly gives you a big push.

The goal is to press the fire button before the arrow stops. Here's an example:

https://www.youtube.com/watch?v=V6mHIPeuLKg
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top