Spankers and Spankees,
Fixed a few crashes pointed out by Uninventive at AnimeOTK (thank you!), and a bug in Cosima’s encounter (some of her path’s weren’t properly triggering unlocking the ability to ask Paloma about getting a white ribbon).
Get the latest and greatest version over at Downloads.
Spankers and Spankees,
I’ve taken full advantage of the long weekend, to finish up a fairly significant update.
First, I’ve fixed (hopefully) the various crashes that people have pointed out to me.
Second, I’ve modified your encounter with Paloma. Now, Paloma does not give you the ribbon after the two Vengadores harassing her leave (if she does give it to you without you asking, please let me know because that’s a bug). Instead, she just heals you and send you on your way.
Once you encounter one of the other guild trainers, they’ll tell you to go get a ribbon. Now, if you return to Paloma you have the option of just accepting her offer of healing, or asking about the ribbon. If you’ve been spanked as a result of not having a ribbon, you’ll also unlock a chance to spank Paloma.
Third, I’ve now included the beginnings of a manual (potionwars.pdf). It doesn’t have everything (for one thing, it doesn’t explain what the colored x’s on the floors of the dungeons mean), but it’s a start. It’s meant primarily as a reference, so I wouldn’t recommend trying to read it cover-to-cover. I would however recommend looking at the chapter on combat. Also, there’s a little seven page frame story at the very beginning, so I’d suggest checking that out.
Fourth, I’ve tweaked the combat some. First, I’ve made your enemies more powerful, and given you a few more hitpoints to start out. Second, I’ve tweaked the initiative system so that there’s a bit more randomness in who goes when.
Fifth, Emily over at AnimeOTK has graciously agreed to serve as my editor for future episodes. This will have the following impacts:
1. It will take a little bit longer for you guys to get each new episode, but since we don’t really have a set update schedule, that doesn’t matter anyway.
2. I have a much better chance of properly growing all the seeds I’ve planted in the first episode. I can’t begin to stress how important it is for a writer to have someone else whose willing to look at a story and poke holes in it. Especially for a multi-year project like this.
3. If you ever find yourself overcome with rage at low quality episodes, character derailments, or idiot balls, you can now blame Emily, because it will totally be all her fault.
Finally, one comment about the Paloma spanking: I’m sure you’ll notice that you have an unusual amount of control over the spanking. This was an experiment on my end. I wanted to try giving the player maximum control over the direction the spanking went. Unfortunately, the experiment is a failed one. Writing this scene was very time consuming and very boring. Seriously, there’s only so many ways you can describe essentially the same spanking scene. I also didn’t really want to have some sort of lego block thing, where the same thing happens just in different orders, because that would feel like a bait and switch: “Oh hey, look at how much control you have over this spanking! Hah! Sucker, looks like you don’t have as much control as you thought!” (That ended up happening anyway, because I got bored and wanted to finish the damn scene.)
Furthermore, having so many branches discouraged me from writing much in the way of dialog, because it would feel weird for the player to give Paloma a proper scolding in one path, and not in another when the only difference is that Paloma’s getting spanked with the bare hand instead of wooden spoon. Finally, testing it was a butt, because there were so many branches. So don’t be surprised if that encounter crashes a few times.
In short, don’t expect that kind of hyper-branching to happen again. I think it made the spanking scene duller than it could have been, it was tedious to write, and it doesn’t really contribute all that much anyway.
Spankers and Spankees,
On the previous post I got a question about learning Distort Magic, and I realized that I have yet to make explicit what the level-up mechanics are. I threw in a few references in game, but it’s not always possible to see those, and they’re very vague.
I had been planning on working on a manual at some point over the past few weeks, but between bug fixes and a bad head cold that struck me down at the end of last week, I haven’t had a chance.
So, until I’ve actually written up the manual, here is a brief rundown of level-up mechanics.
The basic idea is that your character improves depending on what you do in combat. That will get you 90% of the way to understanding the level-up mechanic, at least enough to beat the game.
In particular:
———————————————–Stats—————————————————————
Warfare – Increases if you attack often
Willpower – Increases if you cast status spells (explained below) often, or if you defend.
Grapple – Increases if you use grappling actions (grapple, break grapple, throw)*
Stealth – Flat chance of increasing**
Magic – Increases if you cast spells
Health – Flat chance of increasing every combat. Chance increases if player grapples or attacks often ( grapple and attack bonuses do not stack. Takes whichever is higher).
Mana – Flat chance of increasing every combat plus chance of magic increasing.
*Starting with the next update, attacking while grappled will improve warfare and grapple.
**Starting with the second episode, there will be a new command “Hide” that allows you to ambush your opponents (or just not get attacked). Hiding will increase stealth.
——————————————-Spells—————————————————-
Spells are broken into four schools: Combat, Status, Buff, and Spectral
Combat – Deal straight damage. Tend to be expensive, but can be devastating, especially against enemies with low magic. Firebolt is the first combat spell
Status – Interfere with your opponent’s ability to fight (typically by reducing stats, or paralyzing them, etc.). Weaken is the first status spell.
Buff – Improves your characters’ abilities to fight (also includes healing spells). Heal is the first buff spell.
Spectral – Weird spells. Typically have more than one effect (i.e. damage plus a status effect), or allow spellcasters to “simulate” other combat actions using a different stat rather than the stat the other action depends on. Spectral Push is the first spectral spell (Spectral Push simulates the “Break Grapple” option, but uses willpower rather than grapple to determine the chances of success. I’ll probably end up changing that to magic, however so that you can specialize in say combat magic, without grappling being dibilitating).
You learn spells of a given type by casting the spell of that type. So in order to learn Icebolt, you need to be casting Firebolt. Casting Firebolt will not allow you to learn Mass Weaken. Only casting Weaken will get you Mass Weaken.
Spells are further broken into tiers: 0 – 9.
Each tier has three spells: Basic, Advanced, Specialized. As per the name, specialized is available only if your character specializes in that school (the path to specialization will begin in the second episode). You must learn the basic spell before you learn the advanced spell, and the advanced spell before you learn the specialized spell. Advanced and specialized spells tend to be stronger and/or cheaper versions of the basic spell. Firebolt is the basic tier 0 combat spell, Icebolt is the advanced tier 0 combat spell. Magic bolt is the specialized tier 0 combat spell (at this point, you’ve only seen Magicbolt used against you).
Every 3 levels of magic*** a new tier opens up. Note that you do not need to learn all the spells of a lower tier to begin learning spells of a higher tier. You learn spells of a higher tier the same way you learn advanced spells of a lower tier: cast spells of the appropriate type. So if you want to learn Distort Magic (which is a Status spell) you first need to get your magic up to three, and then cast Weaken/Mass Weaken a bunch of times.
When learning spells, it does not matter which spell of the appropriate school that you cast. Once you’ve unlocked Tier 9, you will be able to learn Tier 9 combat spells by just slinging Firebolts all over the place. On the other hand, if you haven’t learned Icebolt, and you start slinging Tier 8 spells around, you may learn Icebolt rather than a Tier 9 spell. However, you have a better chance of learning higher tier spells than learning lower tier spells (assuming the higher tier spells are available to you). So if you unlock Tier 1, and you haven’t learned Icebolt yet, you’ll have a better chance of learning Lightning Bolt than of learning Icebolt.
***This will change. Based upon how stats are increasing in the first episode, if I keep this across the board, you’ll be learning Tier 9 spells by about a third of the way through the game. At that point, you should be only up to Tiers 3-4.
—————————————Spells by School———————————————————
Here are all the spells currently implemented, sorted by school and tier. Basic is at the top, advanced at the bottom. Remember, the player cannot yet cast specialized spells:
Combat:
Tier 0: Tier 1:
Firebolt Lightning Bolt
Icebolt Thunder bolt
Magicbolt Magicstrike
Status:
Tier 0: Tier 1:
Weaken Distort Magic
Mass Weaken Mass Distort Magic
Weak Charm**** Charm****
Buff:
Tier 0: Tier 1:
Heal Shield
Fortify Magic Shield
Super Fortify Super shield
Spectral:
Tier 0: Tier 1:
Spectral Push Spectral Spanking
Spectral Pull Spectral Strapping
Spectral Shove Spectral Caning
****Technically, this hasn’t been fully implemented yet, because these kinds of spells are tricky to implement, so I probably won’t implement them until I need to.
———————————————Sneak peak at next update———————————–
As a little sneak peak for rewarding you for reading this far, it occurred to me that the vast majority of the material for the various guild trainers is only available if you don’t have a white ribbon (and some if it will have small long-term consequences). Unfortunately, the only way to avoid getting a white ribbon is to basically avoid Paloma. Since at the beginning your character is really only good for one battle without healing, this means that you’d have to spend a very frustrating play session running from everyone, and then you’ll be painfully underpowered for the second episode. Neither of these is particularly fun. So I’m working on overhauling Paloma so that you can help her, get healing, and not get a white ribbon. Basically, after your first encounter with her, she’ll forget to give you the ribbon. Once one of the trainers tells you to get a ribbon, everytime you return to her you’ll have the option of asking her for healing, or asking about the ribbon. In terms of explaining why you never bother to get a ribbon (other than a recalcitrant “you can’t tell me what to do”), here are two possibilities:
1. If you help her, but never get a ribbon, it may be because you keep forgetting to ask. While it’s impossible for the player to forget (because the option to ask about it is staring you in the face) I think it’s reasonable that the PC could forget. After all, she’s running around getting stabbed, burned, and thrown all over the place, and she’s on the verge of collapse when she finally stumbles back to Paloma. Kind of pushes everything else out of your mind.
2. If you don’t help her, but never get a ribbon, it could be because you forget (see above), or you’re intimidated by her (since she’s kind of angry at you), and are afraid she’ll say no (or you’re ashamed, and feel like you don’t deserver a ribbon).
When Adrian confronts you about never getting a ribbon at the end, I’ll probably just assume one of the two above, because introducing new comments where there weren’t any before is a bit of a hassle (hopefully that will change, once I implement a script to convert some LaTeX with custom environments into Python source). However, keep in mind that just because a character says something (including the PC!) doesn’t mean it’s necessarily true. So feel free to rationalize never getting a ribbon however you want, and if the PC says something that contradicts your rationalization, just assuming the PC is fibbing a little to keep Adrian from getting too mad.
Spankers and Spankees,
I’ve finished fixing the latest round of bugs and crashes. I’ve also modified the status spells (weaken, mass weaken, distort magic, etc) a little bit. Before, status spells had an average chance of increasing magic, and a small chance of increasing willpower. However, because willpower affects the chances of a status spell working (whereas magic only increases its duration), I realized that willpower is much more important to having powerful status spells than magic is. Furthermore, whereas buff, combat and spectral spells all have an average chance of increasing magic, there are no other actions that improve willpower. So now, status spells have an average chance of increasing willpower, and a small chance of increasing magic.
Also, as a reminder: the old save games will no longer work. I made a poor choice when designing the save game format, and had to correct that choice, so old save games will no longer be loaded properly. So please make sure that you don’t try to load any of the old games, otherwise you’ll at best get crashes up the wazoo, at worst all sorts of weird behavior.
Spankers and Spankees,
No update today (sorry). Rather, I wanted to give you a warning. While fixing some of the latest bugs and crashes, I realized that I made a mistake when structuring the save file format. I had a choice between modifying the save game file, and trying to implement some sort of kludgy hack. Since the game is still new and very much in flux, I decided to modfiy the save game file format.
Your current save games will NOT be compatible with the next release.
I’m sorry about that, and I hesitated to modify the save game format. However, since there really isn’t that much content yet, I felt that losing your save games wouldn’t be too painful, especially considering all the paths I tried to put into the game for the sake of replayability.
I haven’t finished testing my fixes yet, so don’t expect a new version until tomorrow evening or Wednesday. Until then, I would recommend against playing because you will lose all your progress.
Spankers and Spankees,
I’ve fixed a whole slew of new crashes and bugs that people keep uncovering (jerks I mean, thanks!). Many of which were subtle, and very annoying to fix. I’ve also done a lot of rebalancing, so that hopefully now grinding won’t be as necessary to beat the boss. Though, this does of course depend on how your character develops (I was able to defeat the boss on the first try with 3’s across the board, health in the low 30’s and mana in the low 20’s, but it was close).
Finally, I’ve added a fancy new item: the staff. A staff is very similar to a spear, except that the damage is nowhere near as good, and it provides much better protection against grappling. Basically, it’s a defensive weapon for spellslingers.
I was planning on working on the manual this weekend, but I’m tired and grouchy from some of these bug fixes (maintaining consistent state is hard and I’m really bad at it), so I’ll hold off on that for now.
Fixed some of the easier crashes pointed out on AnimeOTK. I failed to replicate the sporadic problem of stats going down instead of up when improving, and hitpoints randomly dropping down to zero when also improving. I did however find a few issues with stats that linger past combat, so hopefully fixing those problems also fixed the negative improvement bug.
The biggest problem right now (which I don’t believe I’ve fixed yet, though I have started poking at it) is that when you go back to the title screen, and then load a save game and/or start a new game, the game enters into inconsistent state (for example, the player might start at the end of the episode rather than the beginning). I think I know what the issue is, but restoring state is complicated, so I’m not sure if what I’ve done has successfully fixed that or not. So if you note any weirdness after returning to the title screen, a) let me know and b) quit and reload the game. That should reset the state, and allow you to play normally.
There are also some balancing issues with spells, and stat growths that I plan on addressing this weekend, when I have a day to sit down and just get in fights over and over and over again.
Fixed a few more crashes, and a few bugs pointed out by Uninventive over on AnimeOTK. Haven’t fixed the bug pointed by Skull612 yet about the city guard. That one requires looking at code I wrote months ago, and I don’t want to do that yet. Just don’t ever go back to the Edge of Avaricum, and you’ll be fine. At least until something else that I don’t know about happens.
Also, Python’s tendency to do minimal static checks is rather annoying. Many of the crashes I’ve been fixing are the types of things that most other languages would catch at compile time (meaning I wouldn’t even be able to create the executable until I fixed them). But since Python only does minimal checks until it attempts to actually execute the code, it’s very easy for blatantly incorrect code to slip through undetected. Such is the price Python pays for its wonderful flexibility. Such is the price of the language’s wonderful flexibility.
Finally, I’ve stopped posting torrents of the game. Nobody is using them anyway. I’ll start posting those again if/when the game gets big enough for direct mediafire downloads to no longer be practical (which probably won’t be for a few years).
Spankers and Spankees,
I’ve finally gotten my hands on some install discs for Windows 7, and I’ve managed to get Windows back onto my machine (much to my machine’s chagrin I’m sure). This means, that I can finally start creating and posting Windows executables again. See the Downloads page for the most up-to-date version. I also stumbled upon some crashes and bugs while I was playing it, and I’ve fixed those. Both the Ubuntu and Windows executables are the most up-to-date.
As a reminder, the process for notifying me of bugs has changed. See the “Reporting Bugs” tab above for details. You can also find a link there to the list of bugs that have not yet been fixed. It’s recommended that you look at that before downloading the game, so you know what not to do until I can fix it.
Also, SAVE OFTEN. With the quick save feature, all you have to do is hit “q.” I tested the episode as I wrote it, but sometimes I change things that have unexpected consequences, and something that was working when I wrote it is no longer working. I ran through a few paths with the most recent executables, but my exploration was by no means complete. There are almost certainly still options that crash the game. Keep your save up to date, and let me know whenever you encounter a problem.
Spankers and Spankees,
I’ve fixed (hopefully) all the crashes and bugs that Zekel, Skull612, and Uninventive have pointed out (especially Uninventive). Thank you so for your patience, and feedback!
That’s not all however. No, I’ve been very busy these past two days. Yes. Very busy.
First, I’ve removed the Windows executable. Sorry, but it’s pretty much unplayable right now, so there’s no point in having it up, until I can a Windows 7 machine again.
Second, I’ve uploaded the most up-to-date Ubuntu executable torrent and I’ve uploaded the Ubuntu executable directly to MediaFire for those of you who don’t like torrents. See the Downloads page.
Third, I’ve licensed the source code under the GNU GPL v3, and uploaded it to a github repository. You can pull the source code off of there if you’re interested. It has everything except for the music files, because I’m not allowed to send the music files in plaintext. Sorry.
As far as users like us are concerned, all the GNU GPL v3 really says is that you are free to take my code, modify it, add to it, and use it in your own programs. HOWEVER, if you choose to release a program that uses my code, you MUST also release the source code. Probably the easiest way to guarantee compliance is just to “fork” the repository. This will create a different, public repository for you that you can modify without affecting the version that I’m modifying, and I can modify the original version without affecting your version. Furthermore, because the fork will be public, your source code will be released for you.
For those of you using Windows or Mac, and who refuse to install Ubuntu, downloading and running the source code is the only way to currently play the most up to date version. For more details on how to get the source code running, see the README.txt file included in the repository.
I’ve added some error logging to the code (which I should have done from the beginning). Now, if the game crashes, the error will be written to a file called “errors.log” that will show up in the same directory as the game. If the game crashes, please do the following:
1. Send me the errors.log and your latest savefile before the crash (assuming you can save). Make sure to give your e-mail a meaningful name that isn’t too long, such as “Potion Wars Bug: Can’t fight the boss.” or something.
2. Go to the github repository. Along the righthand side you should see a small link called “Issues.” Click that link. Then, create a new issue, and give it the “bug” label (you should see a list of labels along the right of the textbox in which you can describe the issue). Give it the same title as the e-mail you sent me, and explain the bug in as much detail as possible. In particular, describe in as much detail as possible what you did that triggered the bug, and how to get there from the savefile you sent me. This is as much for other players’ benefit as it is mine: what you say will help them avoid the bug themselves until I can fix it.
Note that I have deleted the Bugs tab. I will NO LONGER be tracking bugs manually on a page of this blog. It is HIGHLY recommended that you go and look at the issues page before you download the game, so that you know what bugs there are to avoid.