Monday, November 23, 2009

Battle Healer (Putting the Spoils in SSPL)

I've been getting kind of excited about a strange idea. Now, before anyone reading this gets too excited, I've been very busy, so this is more brainstorming for a distant future. So the idea: basically it is a new healing item that will come in moonstone, merc, and cad forms (no asklepian).

It can heal players as normal, but the difference is it can be used on monsters. If used on a monster you "heal" them as normal, but instead of getting healed the monster builds up a healing "charge". After being healed for X seconds (or Y (where Y is less than X) seconds after the monster is not actively being healed by the healer), the monster will start getting healed by that charge, and the charge will reduce. When the monster is killed, the charge disperses, probably in the form of little globs that can be picked up for a chunk of health, exactly like blood from monsters is picked up for spirit.

The healing will probably also have a small ramp up period. Starting out slowly and increasing over time as you continue healing the same monster. The exception being burst healing. This part will be very hard to implement.

Obviously the healing will be more effective in some way. Maybe it takes less health away when it heals, more likely it would add additional "faustus" once it ramps up. Or maybe a combination of the two. I'm not at the balancing point yet. How many ranks it will cost, whether it will be capped, and all that is for later.

The basic reasons for all the mechanics:
1) Healing monsters - I wanted a more battle-focused style to be viable. For those fighter-minded healers. Or healers who just want something different.
2) Monster starting to be healed after X seconds - Encourages faustus/bursting, and introduces decision making and risk. Forces the healer to consider which monster is likely to be targeted next.
3) Slow ramp up - More decision making, you need to choose the right monster. It can't be about to die, because you need some time to heal it. But it can't be too tough, otherwise you'll make it even more powerful. Unless you want to keep it alive so people can tag, of course.
4) Monster starting to consume healing from the charge Y (Y < X) seconds - More decision making. You have to pick a monster and stick to it.
5)Healers being able to pick up their own blobs - Alternative self-heal option. Potentially very powerful. I need to be careful with this.

This is how early brainstorming goes. It will be interesting to see what happens in the end, if it every gets implemented.

Some questions I've asked myself, and the answers I'm leaning towards now:

Q: Can a healer be healed by their own globs?
A: Hell yes.

Q: Is this unfair for moonstoners, since they need to get up close and personal with the monsters and can't continually heal some monsters, like feralers?
A: Maybe there needs to be some adjustment for this, but keep in mind they're also closer and ready to pick up the globs when they come out. So if you're a rodding moonstoner (likely) then you're primed to pick up some bonus healing right away. Any consideration for moonstoning should be focused on making rodding interesting.

Q: Can I burst?
A: You betcha.

Q: Why different items?
A: Because in order to interact with monsters they have to be "sticky" when you bump a monster (except for the cad, since it can't burst.) You really don't want your prime moonstone to be sticky.

Q: Wouldn't it be cool if instead of healing normally it did some kind of weird charge-heal over time-splurt blobs when dead kind of thing for exiles like it does for monsters?
A: Maybe that can be worked on. If it could be balanced and interesting.

Q: Aren't players going to heal a vermine for like, an hour, and then use the healing globs to heal a PND.
A: We probably need limits based on the health of the creature, and fallens probably can't pick up the globs.

Q: Seriously, we're calling them globs?
A: Yes. Globs.

Q: Can this heal befriended creatures?
A: I have no idea.

Q: Can this heal friendly creatures?
A: Probably.

Q: Does spirtus/rodnus count for the people picking up the blobs?
A: Probably not. (This would make it much harder to balance, especially if you can pick up your own droplets, but the healing will attempt to be more effective to counteract this. This means that this is generally better used to heal fighters faster, rather than healers. Which is actually kind of desirable for the goals I'm focusing on.)

Wednesday, September 9, 2009

I may play alone, but I always win

Here is a screenshot of the test version of the new game type for Clan Lord Team Fortress that I've been working on. The end result isn't as ambitious as I originally planned, but it takes about 1/10 as much effort. The new game mode also includes an actual way for a team to win, resulting in a game reset. I'm contemplating using the feature in CTF, although I wouldn't be able to reset the scores at the moment, so that would still be a manual player action.


I think the new mode won't be as varied or balanced as CTF was. A
few classes will probably tend to dominate in this new mode, and spirit regeneration will be practically irrelevant as I anticipate deaths will be frequent. Lighter, more mobility based classes are at a definite disadvantage on this map, but I hope they'll still be useful. I'll be very curious to see how Fengineers are used, and if they are useful, as it will be a lot harder to get set up, but potentially very rewarding. And there are lots of interesting places to try to set up a base.

The map will definitely succeed in making CTF playable by smaller numbers of people which is the main intent. It should also create more constant action, although you'll end up spending a lot more time spawning, you'll spend less time waiting for people to attack your flag, or running to grab a flag, and a lot more time smacking people with fish.

I still hope to finish my original plans, which use the same map, but a larger portion of it. It should support a more dynamic game and a little more strategy.

Edit: Another nice side effect of this new mode is I finished my plans to make the Team Fortress code generic. Now area helpers could contribute new maps with ease, for both game modes if they felt like it. So we might see far more areas than we could possibly need in the future. I'm probably moving all Team Fortress areas to the playground in Puddleby. They aren't getting much play on Thieves' Island, and probably don't fit there thematically.

Friday, July 3, 2009

BOTW #4

Crunch (don't worry, I'll continue to keep /bug reports anonymous) reports in the comments that due to the way he trained that any poisoning is fatal to him! Yet another thing wrong with poison, apparently. Things like this are good to know, since getting rid of falling as a cure is a goal, and I'm likely to overlook edge cases like that.

Saturday, June 27, 2009

Darshak Expansions

Standard disclaimer for this blog that is much more relevant since the work done on this item approaches zero, on my end at least: This might never happen, or it might be changed significantly when it comes.

Ash is intended to see a few mini-expansions that add some quests and focus on a small "dungeon" expansion off the side of the main areas. Dungeons are linear or mostly linear sets of areas with an ultimate goal at the end. Bonus points for some new story element being added or an existing line pushed forward with each expansion.

I also haven't done any serious tweaking or balancing of Ash since it came out, and that is overdue. Probably before any expansion since the amount of work involved in that is significantly lower.

Thursday, June 11, 2009

BOTW #3: Creature Experience

We get a fair amount of bug reports about creature experience/difficulties, which is great! Getting experience right is really hard, especially at higher levels, and reports are a good way to look for potential problem areas. 

For example, there were some bugs about the new Ash ferals in general, particularly blight ferals due to their darkus. One intent of blight ferals was to reward people of that level who have moderate defense, but when I looked at the stats I noticed that luck hits were set to a pretty high level, which goes a long way to undermine that goal. I won't have that fixed this update, but it is on the list.

However we also get a lot of reports I don't choose to act on, at least not right away. A lot of times something can seem really hard because a certain training style doesn't fit that particular creature. Or the group doesn't have the right mix to counter it. It can be really hard for one person (the designer included) to judge what the "right" experience level is. So the feedback from lots of different types really helps.

While I'm on the topic I might as well repeat what I've said a few times. I tend to shoot for lower levels of experience when I initially design. The main reason for this is players get a lot less upset (in fact they usually don't even notice) when experience is tweaked up. But they get very annoyed when it is reduced. We can also get away with new areas being under-rewarding in terms of experience since the reward of exploring is still there. Everyone can tend to have their fun as long as things get adjusted in a prompt manner. I could do a lot better on the "prompt" part. 

Monday, June 1, 2009

Respia vs Sespus

I wanted to make a general post about the challenges of designing compelling and balanced healer abilities. But it became clear there were far too many elements to discuss. We can save those for another post. Instead I'll talk about one that has been a challenge for me when trying to design anything that isn't a "continuous" ability, and in general anything that breaks from the current healing formula to perform something really meaningful.

Many people lament that abilities don't take enough advantage of sespus, but the problem is without some kind of cooldown system (which is another topic altogether) anything that uses spirit ends up being improved by respia as well as sespus. You end up with the same "problems" as our current system, regardless of how effective you make the ability. Note I haven't done the math for any of this so I'm at "well informed player" levels; take it with a grain of salt.

As a result of this, most suggestions I hear (or come up with) that try to encourage sespus have at the very least a side effect of being a big buff to high respia healers. And in addition any idea that attempts to increase heal speed without including faustus training raises huge red flags, but that is probably a topic for another post.

Just to summarize my opinions on healer abilities that I was going to write at length about. I generally agree that new abilities need to encourage trainers other than what the typical healers train, or at the very least not devalue them. That includes sespus. They should also open up new specialties and options for healers either tactically (on the battlefield) or in a training strategy sense.

It is just a real challenge. One that most other games also face. I think the real solution will end up being branching away from strict "healing" as the only ability of every healer (which is how most other games approach it). But that has to be done very carefully. And it still doesn't change the respia/sespus debate.

Thursday, May 28, 2009

BOTW #2

So apparently there is a bug that sometimes causes people to repeat what they last said when they start a morph. I ran into this in testing, made a change, and couldn't reproduce it. (Remember folks, make a reproducible test case before you "fix" the bug.) Unfortunately the bugs I'm getting don't really help me reproduce things. All I've got is that it sometimes happens. What I really need is a 100% reproducible example.

Saturday, May 23, 2009

Poison

Poison isn't fun. The big problem with it is fighters are generally the ones that have the major defenses against poison, such as troilus and detha. One unlucky shot can mean a healer is poisoned for over an hour. And mystics? Forget it. The only thing that makes it bearable is that you can easily get rid of it by falling, but that isn't fun, just a nuisance.

So how should poison work in my ideal world?

1) It should reach full potency and reduce its effect much faster. Anything close to an hour duration is unacceptable for a "debuff" effect.

2) It should affect all classes more or less equally.

3) It should make things exciting rather than just be a hassle.

The solution? Well I don't have it solidified yet. But in terms how how to reach all points

1) This is just stat tweaking. Speed things way up. Preferably have it reach full potency quickly, stick there for a little while, and then rapidly dwindle. And I'd need to change the effect of potions so they're still useful.

2) There are a few ways to do this, but I don't want to reveal how the current system works. But I've considered having Awaria help out on the healer side. As well as generally tweaking the formula so it is more fair to all classes.

3) #1 already achieves this to some degree. The idea is the effect should be really worrisome during one fight, but after that fight is over you'll probably be fine. Potions might need to be reworked to provide resistance since using a potion in the middle of a fight definitely counts as a hassle.

I'd also like to remove falling as an option for getting rid of poison, but hopefully with the changes you wouldn't usually want to fall. I just don't think you should be rewarded for falling. When phasing in the new system I might keep the falling behavior until everything gets set and remove it when I'm sure the system won't make poison unbearable.

I plan to introduce poison resistance bonuses to people who have trained to make antivenoms. This doesn't fit any specific poison related goals, but it is something I generally like to do with trade skills. Just to give them some real combat related effectiveness to encourage real people to train them.

Sunday, May 17, 2009

Bug of the Week #1

Someone reports that poisoning seems a lot more common. That comes from the changes mentioned below that I introduced when the Ash Island expansion was released that changed poison snakes to correctly identify when they've hit someone. A lot of changes were made a few months back that went in the other direction, where snakes were poisoning whenever they swung at a player regardless in certain situations. As a result of all the changes poison might be a bit more prevalent overall.

Although...

Runnerup bug: There was a bug that a creature on Ash Island wasn't working as intended anymore. It was a little muddled so I didn't quite understand the problem, but brief testing shows something is indeed wrong although not necessarily what the bug thought was wrong. Both snakes and these creatures use the same elements of the script which changed to increase poisonings, so it is possible there is something else going on. Although the bug for the creature on Ash seems to be that the effect isn't triggering properly, not that it is triggering too much.

Update: The runner-up bug is fixed now. It has nothing to do with my changes, it was in an entirely different script. As far as the more frequent poisoning, maybe some areas need to be tweaked. Whenever I fix long standing bugs I have to realize that all the areas designed in the past 5 years were tweaked and balanced based on that buggy behavior, so I'll keep on eye on it. Although hopefully I can get the energy together to rework poison, which requires a rebalance of all areas with poison anyway.

Monday, May 11, 2009

To Do

Any posts with a "todo" tag are generally notes to myself. Things I've thought of doing, but don't have the time or inclination to do. They let me get my thoughts down so I don't forget, and also give readers an idea of what I've been thinking of so they can say complain about theoretical changes as well as actual ones. (When I have readers, that is. You have to use google to find me now.)

Random Ranger Changes

1) Last Hits

I've been going through the code using some new tools we got a while back to detect combat actions (like "swung" "swung and missed") to fix up a lot of older code that used hacks and tricks to find the same information. Stuff like poisonous snakes and amedons are a lot more likely to actually poison you/set you on fire when they should because of the fixes. (It goes both ways, there were some false triggers as well as cases that didn't get caught.) It occurs to me that rangers probably need the same overhaul for their last hit detection. Right now I believe if two people hit a creature at the same time the chance of the ranger getting the last hit is 50/50. And I don't know what happens if Bloodmage damage over time spells kill a creature when a ranger was the last one to hit it. I think the ranger gets it, even if they hit it 15 seconds ago, but I'm not entirely sure.

So they're long overdue for a refactor that tries to assure that if they hit the creature on the same frame that the creature died, they get the last hit. I don't know how easy this is as there still might be some tricky guesswork and timing issues involved even with the new tools.

2) Growling

Rangers should "growl" when in a shape changed form. It gives them a special speech bubble, the text log shows up as "growls" instead of "says", and it sometimes makes a growling sound. This is probably a trivial change.

3) Tracking

Tracking could probably be improved in a few ways, but the most important is giving an actual reason for training to a longer duration. Some possible improvements include automatically switching to another monster of the same type if the monster you are tracking dies and/or automatically finding a new target whenever you or the monster switches snells.


Fighter Tests

When I took on Fighter Tests I intended to design 7th-10th circle because that was the minimum requirement to give everyone something to strive for. I thought it would be easy, after all you just have to tweak a few scripts and come up with 4 sets of 4 monsters from an already limited selection. It turns out that balanced tests at the correct difficulty level for a good progression are incredibly hard to design and the whole process took many hours more than I predicted.

I also think of circle tests as largely useless since they're incapable of fairly judging people. At best they just feel unfair, at worst they make people change their training styles to suit the test. So it is a lot of work for something that, even if done perfectly, is going to be flawed. It was pretty clear that 9th and 10th would not only be harder (since there were fewer monsters to choose from) but also affect fewer people, so I put those on hold until we had more monsters at that level. We have a lot more now. If I had been smart I'd have been designing the test while I designed the monsters so that I could design the perfect monsters for the test, put them in the world, then just release the test. But I'm not that smart. 9th and 10th circle tests are still just one of a few vague projects that I should do but don't really feel a motivation to finish.

Tuesday, May 5, 2009

Secrecy

I'm mixed on Clan Lord's secrecy "policy".

On one hand, surprise is a lot of fun. Knowing that something is coming tends to build up expectations which at best can be met. And often they aren't, even if what came is really neat. It could also reduce the effectiveness of plot elements. For example, if I announced there was a new healing item and I start some big story to introduce it, people will already know the end result. It makes things a lot less exciting.

On the other hand, anticipation can be fun too, and communication about development is a good way to gauge interest and take feedback from the community. Also, if I'm excited to tell you about an ability, it is probably something you're going to like. Sharing is a good way to encourage me to develop for the community, instead of just for myself.

Experimenting

I've been experimenting with new abilities. The idea is rapid prototyping with hopes of getting something fun, then working on balance or actually being useful later. The new Capture the Flag was an outlet for that experimentation as well as working with ideas that just don't work in a player vs. everything context.

Along those lines I was wondering if it would be easy to take direct control of monsters, using your mouse to control where it moves to. I figured the easiest way to test this was to patch it into the befriend AI and see if I could let the player control that monster instead of having it run off an AI. It worked wonderfully and I had a lot of fun just testing it. The best part (for me) was it didn't take much work. Kudos to RangerGM for really clearly written code.

It works surprisingly well: and you don't have to be still to use it (although you can). The monster will go to wherever your mouse is whether you are clicking or not. If you were to move the monster would move wherever you're moving, so they would tend to attack whatever you attacked, retreat when you retreated, and so on. But beyond that there are a lot of new tactics opened up which I'll leave for players to discover.

It can be a little weird. If you choose a menu selection, for example, your friend is going to run towards the north, and since I don't currently limit where you can tell the monster to go, it will keep going until it reaches that point, even though it is off your screen. You can always stop directly controlling the monster, of course.

I'm still considering the original ideas I had in mind that would use this technique. But I actually have to balance those and turn them into proper abilities. And that takes work.

Thursday, April 23, 2009

Discarded Abilities

Here are a few of my favorite ideas that didn't quite make it in to CTF.

Illusions/Hallucination - This could let someone toss a projectile at a group of enemies and cause them to see dozens of random sparkles and images (including flags and flag markers) for about 10 seconds. You would usually use it before moving in for a big attack to confuse the enemy.

I was really excited about this idea but never had the time to implement it. I also couldn't think of a class where it fit. Spy was the obvious choice, but they were already the most fully featured class: they didn't need more toys.

Speed Boost - It became clear in testing that speed was a huge asset. If you could outrun your opponent you could usually survive. That is why the flag decreases speed when carried. All too often once a flag was grabbed it was as good as captured. Slowing down the holder encouraged more fighting. It is also why the paladin saw a speed decrease. He used to be very fast so he could stay with groups and heal, but it became clear right away that speed and troilus was a nearly invincible combination.

Along those lines I wanted to give some class a temporary speed boost in order to catch up to someone at a critical moment (or get away). It never really fit the themes or the balance for the classes. Obviously it fits the theme of the Scout, but considering it is more of an anti-scout ability in terms of use, it makes more sense to give it to a slow class.

It came closest to being given to the Pusher. Allowing them to spend spirit to move faster, push further, and not suffer any "push back" from their push. But it never quite got there.

False flags - I thought it would be fun for spies to be able to set false flags on the ground, or carry a false flag. It would appear on the radar just like it was the enemies flag, causing people to chase you while a teammate snags the real flag. I also considered adding an "information" class that had all these information related abilities, including hallucinations.

Team beacons - I considered letting scouts set down a beacon that would direct all players on their team to that location.

I also thought about letting all players toggle an ability that shows where everyone else on their team is currently located relative to yourself: much like the flag markers work. Bonus for paladins: Color coded indicators to check on health. Overpowered bonus for spies: When disguised, you see the enemy instead of your own team. (That would never happen.)

Obviously if you are a disguised spy (uncloaked) this ability would show you as being on the other team, so it couldn't be used to sniff out spies, except that someone might be suspicious when a marker disappears or suddenly appears!

None of this got in because the markers get in the way of flag tracking, we'd need a more obvious flag marker before we could use these abilities well in ctf. But they work really well for the new game mode. Although they're less needed in such a compact space.

Designing Capture the Flag

Making Capture the Flag was the most fun I've had designing for Clan Lord in a while. It was refreshing after countless hours of NPC/quest writing and testing pushing the Ash Island expansion out.

The design evolved over the past year from idle player vs. player planning. The decision to focus on a April Fool's Boardwalk inspired homage to Team Fortress pushed the majority of the implementation into a few busy and rushed weekends. Before that my designs focused on a more RPG like environment where you gained skills and built up your base over the course of the battle. Area-specific and time specific buffs for completing quests was an integral part of the design. I had hoped to include those elements in the actual game world, too. Imagine getting group stat buffs from defeating certain bosses. Kind of like ethereal items, but shorter lived and affecting the entire group.

The entire game exists because of the Spy class. I really enjoyed the concept and thought it would translate well to Clan Lord. I also wanted to see how possible invisibility and disguises were using the Clan Lord engine. Invisibility worked out well, but disguises were a lot harder. I ended up turning off name tags to make them more convincing. By the way, I intend to include a message telling you who you just killed sometime soon, so you can still taunt your victims.

Of all the classes, Spy and Fengineer probably took a bit over 50% of the total work to implement. Even so I took a lot of shortcuts and hacks to get them working, especially where the Fengineer was involved. Fengineers not being affected by any Fengineer buildings is largely out of coding laziness rather than for design reasons.

I was pleasantly surprised with how fun the Fengineer ended up being to play. Walls were a last minute suggestion from a play tester, and they add a nice spice. While they probably aren't as powerful as fountains or mines, they give a Fengineer something to build once they've built their main structures.

I've been working on a smaller map with the intention of releasing it with a new game mode. The small map will be much better for the typical sizes of games we're likely to get. The current map is suited for 10v10 or larger, but feels pretty barren in smaller games.

The new map and game mode focus on funneling people right into the action. They should never be more than 45 seconds away from a fight after spawning, and usually a lot less. It is probably less advantageous to play lighter more mobility based classes in this format. While there are a lot of alternate routes and special scout shortcuts and back doors, it remains to be seen whether there will actually be a point in using them.

Wednesday, April 22, 2009

Bugs

People have been really good about reporting bugs lately. Both potential abuses as well as the normal "I think this should give more experience" types. We get well over 100 bugs an update now, up from around 60-80 last year. And I don't think this is just because we're creating more bugs than we used to. So kudos, keep them coming.

Since a lot of players aren't aware, I thought I'd review our bug system. When you /bug your bug is logged, as well as your exact location and the time you bugged it. The bug is also sent to all online GMs. A /pray also goes to all online GMs, and up until recently they weren't logged. They are now, but we don't generally check it.

After every update the bug log is dumped onto a bug tracking database using keywords, so remember to mark your bugs as best as you can.

Since we log where you are standing try to be standing as close to the source of the bug as possible, and since we log the time, try to bug as soon as possible. Try to include as much information as possible bugs like "This doesn't work" or "This doesn't give enough experience" aren't very useful. Even if you know (or think you know) a GM is watching, it won't make sense when they're reading a bug later without context. So make sure to provide that context.

If you think you've found an abuse it is a *very* good idea to bug before you try to reproduce the bug. And then again afterwards, reporting your results. You want to do this to cover your hide more than anything else. If some GM happens to be watching you abuse a bug, we have no way of knowing if you're just trying to help or if you're actively abusing things. And 90% of the time it is someone abusing, so don't expect the benefit of the doubt.

For bugs you think are time sensitive, or for whatever reason need a very long description, you can private message Eldon or me on the Sentinel with a description. You could also post bugs on the Sentinel if you think we might benefit from more reports. But remember that it is best to avoid posting bugs that can be abused in any way, or bugs which contain spoilers. And that in general the Sentinel isn't a way to get anything constructive done. Ever.