Hey everyone. This is going to be a long form discussion about my process to make up for the lack of updates here. I have been hard at work and those of you who follow me on Twitter and that are in the Verified Discord server have seen some of the changes I've been making as they happen. I'm going to consolidate what I've done over the past couple of months while detailing my process here.
Redesigned ATB system
Those of you who have played the existing demo know that the battle system operates like Grandia, giving you a full view of all of the battlers on a single "time bar" instead of the conventional "wait to charge" bars per character in a standard ATB.
It was lacking, however, in a lot of areas. After struggling with various scripts from other developers I finally sat down and redesigned the system how I wanted it. The result is a significant improvement over the previous:
- ATB's biggest flaw in my opinion: waiting. Too much waiting. So, in my system, you can select your input for all available party members at any time before the "wait" period. This means no more waiting to reach the end of the bar then selecting. All that dead time now has a purpose.
- When a battler reaches this "wait" period, that's when the actual waiting should and does occur. There is a short amount of time calculated based on their action (huge, AoE spells will take longer to process, for example), and then they do the action once they reach the end, resetting the process.
- Enemies now display a letter in their name and on the bar so you can differentiate between troop members. With this new system, an adept player can get a jump on enemies and even stun or defeat them before they have a chance to attack.
- Party members have accompanying busts at the bottom to indicate their status.
They also make "ouch" faces when they get hit and it's really neat.
- Slip damage was so incredibly broken. Not only was it terribly unoptimized, but confusing, too. Things that normally operate on "turns" are tough to calculate in a system that is "open" like this one, so I made the decision to hit all characters with per-turn effects like poison, healing, etc. based on the number of battlers.
- The system will "remember" the last active party member / window when an action occurs. That way you don't have to scroll through a list of items / skills or try to remember who you were targeting, and makes the interruptions from an enemy making a decision faster than you less jarring.
- Sliding windows and a "drawer" effect because...why not? Actually, this decision was made because window animations do a fantastic job of drawing your attention to important areas.
- "Defend" is less useless. In v2.3, defending increased your defense x2, but it was a crapshoot as to whether or not it would protect you from an enemy's attack or not, and had no other purpose. In the revised system, it heals a percentage of your Life Energy and Mystic Energy, and can also be better timed to ensure you use it only when an enemy is going to unleash some nasty spell on you.
New battle cut-in graphics
Speaking of the battle system, here's something that adds some flavor:
No fancy plug-ins or animations here, just some script edits and several sprites in arrangement not too dissimilar from the "show picture" event command.
- There's a background sprite that darkens the battlefield that fades in first.
- The magic circle is a static 1400x1400 image (phew) that is faded in while being rotated a couple of degrees each frame.
- Finally, Oliver slides across the screen, slowing down a little before exiting on the other side. This suggestion was thanks to fellow developer, Korok'n'roll, and I think it really sells the idea.
The bust was drawn by the incredibly talented Ryuu, whose art you should check out right now.
Here's what it looks like in full:
My intent is to have one of these for each playable character, so it will be exciting to share more as they come.
Plus as a bonus, here is Oliver's concept art that it was based on:
Pixel movement & diagonal movement
This was an idea that was on the table for a while, but I constantly dismissed it because of the complexity, potential issues, and I felt that an RPG restricted to a grid would be perfectly fine.
Then I played Golden Sun.
I changed my mind.
Moving to a fixed 32x32 grid after playing a game with gridless pixel movement is awful. It just feels bad. It feels so much better to be able to move fluidly, so I made the move to add this regardless of the amount of work it would take. And it was totally worth it.
There is a stellar fleshed out pixel movement script created by f0tz!baerchen on HB Games. It's a long since unsupported script, and it took a fair amount of modification and optimization to get it to play nice with my existing script structure, but it is totally worth it. Movement is smooth now, and you can walk in areas that would otherwise be limited to the 32x32 grid.
It also allows for a completely custom collision map, down to the pixel, allowing me to make objects of all shapes and sizes collide in unique ways instead of just being stuck in a realm of big boxy empty spaces that the player can't walk on.
This does impact some existing mechanics, like "enemies only move when you move" similar to Lufia II: Rise of the Sinstrals, so it will take some thought to determine how to manage these existing mechanics. But it seems jumping and running may become an option, so Golden Sun style puzzles may be in Astravia's future...
Oliver also has a diagonal spriteset, thanks to RPGZexion from Chaos Project. This what really sells the diagonal / gridless movement.
Other, "Under the Hood" Changes
Alongside these major things, I've made a plethora of other changes and improvements to the game:
- Added controller input (xinput) so the game can be played like a normal, actual video game now.
- Added a "Localization" script that manages all in-game text through external files and locales. This means translation options are totally possible in the future.
- Added an animated menu cursor (that can be toggled)
- Made several things like the animated windows, battle speed, etc. adjustable options to suit each player's preference and experience
- Heavy changes to the introduction and pacing to better fit the finalized story outline
"When will there be a demo with all this?!"
I have had a difficult time deciding exactly where to "cut off" this demo and put it out for release. Adding pixel movement set me back a bit, but I hope to have something playable before the end of December.
As mentioned in some previous posts, my intent is to put the game into Early Access (on Steam, etc) with the release of v3. This means it will cost money to play the demo. However, I can't justify charging money for the first hour of the game, especially for those who have already supported me this far and already played the opening.
Even though the opening and first dungeon varies significantly now, I have decided that this next demo will be free. The downside to this is that my intent to have a whole new area and second dungeon ready is now pushed back and reserved for the Early Access release instead.
Sometime in February, the project is anticipated to be put on Kickstarter (to help fund the battler graphics, soundtrack, remaining art, and possibly a redone tileset and porting opportunities). When this happens, everything from the end of the first dungeon onward will be in Early Access. This means a solid 1-2 hours of the game remains free, which I think is fair. My intent for the final product is upwards of 15-30 hours.
If you love Legends of Astravia, and want to help me make it better, beta testing will remain free, always. So please join the discord and let me know if you are interested, as you will get early early access to the game's demos before they are ;officially released.
That's all for now! Hopefully the next update will be one announcing the download for this radically new and improved version of the game.