Mega Tact v0.7a: Create Your Own Tact

Announcements that go here will appear on the front page.

Moderators: Bob the Hamster, marionline, SDHawk

Post Reply
User avatar
Mogri
Super Slime
Posts: 4678
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Mega Tact v0.7a: Create Your Own Tact

Post by Mogri »

"FFT is a fine game," you've always said to yourself, "but it would be better if Squires could shoot lasers from their eyes."

Good news, Mega Tact fans! Your day has come. In v0.7a, you can create custom rulesets, allowing you to redefine almost the entire game. Your dreams of firebreathing, flying Calculators can come true at last. No, wait. Call them "Mathemagicians." That's way cooler. Also, make Throw Stone turn the target into a frog. The game is pretty much perfect at that point.

But seriously, you can create your own rules. Are you a big fan of LFT or FFTv1.3? You can reproduce those hacks in Mega Tact. You can do all of that... and more.

In less sensational -- but more practically useful -- news, the unit editor is less painful to use than it used to be, and Mega Tact will be more generally stable thanks to the existence of a development environment. Also, many, many bugs were killed in the making of this release.

Check out the full changelist for more details!
User avatar
Meowskivich
Blubber Bloat
Posts: 2199
Joined: Tue Mar 06, 2012 12:38 am
Location: Earth
Contact:

Post by Meowskivich »

I'm happys this is being worked on :D
dOn'T MiNd mE! i'M jUsT CoNtAgIoUs!!!
Play Orbs CCG: http://orbsccg.com/r/4r6x :V
User avatar
Mogri
Super Slime
Posts: 4678
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Post by Mogri »

What's coming in v0.8? you ask.

Good question! 0.8, code-named "Lightning Bow," will have some highly practical changes relating to core game mechanics.
  • Line of sight. A common tactic when using a crossbow or dictionary (which have a minimum range, resulting in a "blind spot") is to fire past a unit who's next to you, causing the shot to hit the unit even though you can't technically target him. You can't do that in Mega Tact right now, because LOS doesn't work! That will change in the next release.

    Of course, Lightning Bows use a different kind of LOS targeting, with a parabolic arc instead of a straight shot.

    The bad news is that the LOS formula for FFT is undocumented. I've cobbled my own approximation, which is hopefully good enough. The good news is that you'll be able to see the actual effective target in the attack preview, which is a step up from FFT's "spray and pray" targeting.
  • Spell-proc weapons. Certain weapons, such as the Poison Rod and Holy Lance, have a chance to cast a spell when used to attack (or with the Archer's Charge).

    Of course, Lightning Bows cast Bolt on hit.

    The bad news is that the exact details on spell proc mechanics are largely undocumented. I seem to remember that you can evade a spell even if you were hit by the weapon attack, but you can't get hit by a spell if you were missed by the weapon attack... though I'm not 100% sure if that's right. The good news is that you'll see the spell proc in the attack preview. Which... doesn't really make up for the bad news this time. Sorry about that.
  • Knockback. Much of the appeal of the Squire class comes from the ability to knock back opponents with Throw Stone and Dash. If you manage to knock an enemy off a cliff, he takes damage as a percentage of max health based on the fall distance, mitigated by his jumping ability. It's an unreliable and situational form of dealing damage, but man, is it ever classy.

    Of course, Lightning Bows can cause knockback if you score a critical hit.
  • Crystals. Everyone loves a good crystal pickup. I mean, come on, they fully restore your HP and your MP! What more could you ask for?

    Of course, Lightning Bows can kill units, causing them to crystallize.
  • AI for Charmed/Confused/Berserked/Chicken units. Right now, these status effects do absolutely nothing! Well, except that Berserk increases your attack damage and Chicken increases the damage you receive.

    But that all changes in 0.8, when these status effects will cause the afflicted unit to fall under AI control. This will make them laughably ineffective. But, hey, that's the whole point of Confusion and Chicken, and par for the course for Charm and Berserk.

    Of course, if one of your units is Charmed or Confused, you can always attack him with your Lightning Bow.
User avatar
Mogri
Super Slime
Posts: 4678
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Post by Mogri »

Writing AI for Mega Tact

There are basically three kinds of AI to consider in Mega Tact, and this is mostly true of FFT as well.

Confusion AI tells the unit to move to a random tile and use a random ability on a random tile. This usually has no real effect, since odds are good the unit will target an empty tile. Confusion is by far the easiest AI to implement, since there's no real logic or heuristics to consider.

Chicken AI tells the user to run away from enemy units. Besides Chicken status, this is also used for AI-controlled units with Don't Act. Ultimately, if you can write a pathing algorithm, you can write this, so it's not terribly difficult.

Standard AI is the tricky one, of course. The advantage of having written this (and I have, and it's done, pending more thorough testing) is that v0.8 will offer not only functional Charm/Berserk, but also AI-controlled opponents. You'll be able to test out your team against a computer player, or even pit your computer-controlled team against another player's computer-controlled team.

Of course, just like the real thing, Mega Tact's AI is not going to give you a run for your money in a fair fight.
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7684
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

That is awesome!

Yay for AI!

I am curious about how the standard AI makes decisions. Care to elaborate?
User avatar
Mogri
Super Slime
Posts: 4678
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Post by Mogri »

The original method was to iterate through every possible combination of movement destination, action selection, and target. Each attempt receives a score based on what exactly it does: points are given for altering stats and applying statuses -- positive statuses give negative points, and the various statuses and stats have different weights, some of which are target-dependent (for example, a point of damage is more valuable against a target with low maximum HP, while Berserk status is less valuable against a target with high PA*). The effect scores are subtracted for allied targets (who recieve a stronger weight) and added for enemy targets.

This process proved unsurprisingly expensive for units with a large number of potential actions, so the next step is performance optimization, which includes reducing a unit's action pool (such as eliminating Potion, Hi-Potion, X-Potion, Ether, and Hi-Ether when Elixir is available) and caching of targeting maps and such (very helpful since many abilities that share a skillset also have similar targeting/effect ranges).

Ultimately, the optimization is not strictly necessary -- due to the nature of the application, I can (and probably will) just run AI calculations as a background job -- but having an execution time that ran upwards of 30 seconds was physically painful. I'm pleased with the results when it actually finishes, though!

*This isn't exactly right -- for example, you wouldn't necessarily want to cast Berserk on an enemy Oracle who is using an MA-based stick as a weapon -- but it's good enough.
User avatar
Mogri
Super Slime
Posts: 4678
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Post by Mogri »

The first fully-automated Mega Tact battle is now complete: http://www.slimesalad.com/fft/index.php?Fctn=3&id=111

Needs a few more tweaks, but it's functional. Coming super soon!
Last edited by Mogri on Thu Nov 21, 2013 12:56 am, edited 1 time in total.
Post Reply