DOUBLEX'S PROFILE

Just a nameless weakling who's incredibly nub at everything

Search

Filter

Basic knowledge on using Javascript ES5 access modifiers and inheritance

I've made the following changes:
1. Changed the name of the 2nd pattern from Private Function to Composable Revealing Module.
This change leads to a better indication that the 2nd pattern's a special case of the revealing module pattern.
2. Changed the name of the 3rd pattern from Protected Class to Parasitic Inheritance, which supports multiple inheritance.
I feel very sorry for not realizing that I've just reinvented the wheel.

Using OODA to write battler AI

author=the13thsecret
Obviously, perfect defense by the enemy is undesirable. However, I'd also just say that changing the probability for the enemy to properly respond is reasonable.

For example, Ralph has a Fire Shield equipped against a fire boss. Normally, boss should attack each player in a four-actor party 25% of the time. Instead of changing the time Ralph gets attacked to 0%, maybe instead 20%. If Ralph also has a Fire Helmet, maybe dock another 5% probability. After all, if the player is beefing one at the expense of others, he should be able to accept the changing odds...assuming he notices the subtlety in the first place. Plus, if the change is obvious and Ralph is always ignored because of the fire equipment, the player now has a blatant counter-strategy with equipment distribution.

Another example. Let's say the boss has stance tendencies. If the player decides to spam super attacks, the boss starts mixing in more defensive options after a while. Realizing that there seems to be an uptick in boss defense, the player switches to stat-effects to get beefy. Eventually the boss catches on and instead of more defense, mixes in more offense while the player is goofing off with silly stat-effects. Thus, we now have a battle of cat-and-mouse.

Anyway, I like this article and I wouldn't mind fighting a smarter enemy...but maybe not this smart.

This remind me the "chaotic" parts of OODA, as it also suggested that some probability and uncertainty should be added into the mix when making decisions(the D part), thus increasing variety and reducing the chance being deciphered.

Using OODA to write battler AI

author=Hasvers
author=LouisCyphre
It's cute on paper but it is remarkably unsatisfying to play against
I wonder. That's definitely true if you also make enemies stronger and/or more numerous. I could see the appeal of a game where you are the guy with 5-digit HP fighting four puny humans who happen to be clever. Though of course they have to be able to fail in predictable ways.

Exactly. It's completely possible that the battles are designed in ways that no matter how well the enemy AI utilizes the OODA, players can still consistently defeat them if they can constantly make the best moves.

Using OODA to write battler AI

author=LouisCyphre
Worth noting: This is the RPG equivalent of a fighting game boss that reads your input to block.

It's cute on paper but it is remarkably unsatisfying to play against. No one likes being 100%, perfectly countered with nothing they can do about it. Imagine a FPS where enemies are perfectly accurate, or--more relevantly--trying to beat a modern chess AI. It isn't fun. Don't put these in your game.

In a game that uses this, all you do by equipping the Fire Shield is make enemies target someone else. There's no point in making any character beefier than normal, because that makes enemies target the next ally down. You can't have frail healers, because they will be focused down. And above all else, unlike any action game where you can overcome these issues with good positioning and reaction time, in an RPG you are purely at the mercy of enemy attack rolls.

I strongly encourage anyone who read this and thought, "Wow! My game needs this!" to fully rethink why they are making a game in the first place.
Then I'd tweak the OODA application a bit: Instead of using it to beat the players, use it to entertain them, by making the battlers to try their best to do what the players expect them to do so the players will feel/think that they're controlling the battles.

For example, the battler AI observed that all party members will be healed from fire elemental damages but are especially vulnerable to ice elemental damages. Then the battler AI will realize that the players are expecting their enemies to deal fire elemental damages to them frequently.

To entertain the players, the battler AI can be designed to shift among fire, ice and some other elements(making the battlers to use that element to deal damage, to be healed from damages with that element, and to be especially vulnerable to the opposite element), in the way that the battlers appear to be randomly changing elements so the players will constantly have to react to those changes. But in fact, the battler AI is written in such a way that it'll always deal ice elemental damage to the players only if the actors have lots of hp, and it'll deal fire elemental damage to them if the actors are about to die. The perceived randomness can be achieved if there are lots of elements to shift.

That way, the players will consistently experience imminent dangers, yet they're actually safe(unless the players do want to be defeated) as now the battler AI wants to entertain the players instead of beating them.

But yeah, the original post explicitly stated that it assumes that the battler AI is to beat the players lol

How to write an atb system script

DoubleX RMVXA Basic ATB has just been written. I hope it can help you better understand how an atb script can be written(later I might elaborate its implementations).
Pages: 1