Monthly Archives: August 2014
More Information about the Latest Version of Potion Wars

Spankers and Spankees,

I’ve managed to find a bit more time, so I can explain in a bit more detail some of the overhauls I’ve made to the latest version of the game. But first, I want to talk about my update schedule.

My plan is to make a new post when one of the following two things happen:

1. I have a new version of the game to post (either bugfixes, or a new episode).

2. It’s the first weekend of the month.

The second type of post will simply be to reassure you that I’m still alive, and still working on the project. I’ll probably also give you some idea of where I am in the process of creating the next episode. Furthermore, at the top of each monthly post, I’ll post the version number of the currently released game.

The version numbers are structured as follows:


So, version 1.11 (the currently released version) can be played through the end of episode 1, and it is the 11th version that (in theory) allows you to play through the end of episode 1.

So, when I first release episode 2, the version number will be 2.1. You’ll be able to play through the end of episode 2, and it will be the first version that plays to the end of episode 2.

This way, if you don’t want to have to check my blog every day, you can just check at the beginning of each month.
Furthermore, I’ll be traveling all in a vain effort to attend my brother’s wedding, and get back to school in time for classes, so for the next few weeks I’ll basically vanish. That shouldn’t stop you from posting feedback, bug reports, etc. if you feel so inclined. Just don’t expect me to respond until the last week of August.

Now, on to changes in Potion Wars 1.11. Be warned: Wall of Text ahead. I don’t expect anyone to read this from beginning to end. I’d recommend playing the game first, and if something happens that trips you up, then reference either this blogpost or the manual.  If after looking at both you’re still confused, feel free to ask me. I might not be able to respond right away, but I will as soon as I can.

———————————————Mac Compatibility———————————————
Unfortunately, the latest version of the game is no longer compatible with PlayOnMac. I don’t know how it broke, but it broke and I have no idea how to fix it. I even borrowed a friend’s install discs and tried to create an OS X VM so that I could compile directly to Mac, and I failed miserably. Mac’s business model is basically “You want access to our OS? Shell out obscene amounts of money for our hardware or STFU” (FYI, my mild dislike for Apple has now turned into a burning hatred). Needless to say, I’m not going to give over a thousand dollars to a company that I detest. And no, I can’t just ask said friend to compile the game for me, because I’d rather not tell my real-life friends that I spend the majority of my free time writing spanking porn (I’m not very trusting).

So, sorry Mac users. I tried, but you’re reduced to using a virtual machine or dual booting (or getting a better OS 😉 ).

———————————————Save Game Format———————————————

Unfortunately, this version of the game is no longer compatible with old saves, so you’ll have to start over. When more episodes are released, I will strive to make the games backwards compatible. But for now, the first episode is short enough that it isn’t really worth the effort.

I’ve massively overhauled the format of your save games. Now, instead of rolling my own function for saving state, I’m using an extended version of Python’s “Pickle” module that I stole off of the ‘Net, called “Dill.” This grossly simplifies my save and load code, and makes it much easier to maintain.

I’ve also consolidated all of the game’s state into a single object, making the whole thing much more centralized, and therefore much simpler to save, restore, and modify. This change required a lot of small changes across a lot of code, so if you see anything weird happening after loading a game, let me know. It’s possible that the game isn’t being saved/loaded properly because I forgot to change some small piece of the code.

——————————————-Character Customizations———————————————–

I’ve added some basic options at the beginning of the game for character customization. You can now select your character’s height, body type, hair length, and hair style. Of these choices, the only one that will eventually be changeable is your hair style (changing hair style is implemented, but rather buggy, so the player can’t currently access that choice). Everything else is fixed.

You can also select your character’s starting equipment. You can choose one of three types of weapons: a spear, a sword, and a dagger. You have access to the same clothing (with the exception of the quality shirts) that you can buy at Terry’s Taylors.


I’ve laid the groundwork for modifying the enchantments on equipment. Essentially, you’ll be able to transfer enchantments between different pieces of equipment, so you don’t have to choose between the “Modest Mail of Mauling” and the “Sexy Schoolgirl Skirt of Sucky.”

Each piece of equipment will have a different max enchantment level. Typically, you’ll have a choice between having a higher defense and fewer enchantments, and more enchantments and a lower defense. For example, clothing will almost never provide a defense boost, but will have a high maximum enchantment. Plate armor will provide a large defense boost, but won’t be able to contain more than one enchantment.

Essentially, I aim to implement a quasi-item crafting mechanic without all the obnoxious “get three suits of leather armor, six peacock feathers and a demon testicle” fetch quest crap that weighs down every item crafting mechanic ever. Seriously, I will never understand why game designers seem to think that going grocery shopping is fun. Fighting the  Divine Demon of Destruction for the Shiny Sword of Super Slaying is challenging and fun. Cluttering up my inventory with a dozen rare items scattered about the deepest, darkest corners of the gameworld only to discover that I am one plank of wood away from forging the Shiny Sword of Super Slaying is not.


We now have both primary, and secondary stats. The primary stats are:

1. Strength
2. Dexterity
3. Talent
4. Willpower
5. Alertness

The secondary stats are:

1. warfare
2. grapple
3. magic
4. resilience
5. stealth

Strength and Dexterity influence warfare and grapple (strength primarily influences warfare, dexterity primarily influences grapple). Talent and Willpower influence magic and resilience (Talent primarily influences magic, Willpower primarily influences resilience). Alertness influences stealth, and improves your character’s initiative.


I’ve shuffled the spells around, and drastically slowed down how rapidly you reach the next tier. Distort Magic is the new Tier 0 Advanced Status spell, and the Spectral Spanking family is the new
Tier 0 Spectral family.

Furthermore, the Combat spells now do a range of damage, instead of a fixed value. The range is affected by the difference between the caster’s and recipient’s magic. For some spells, it might influence the lower end of the range, for others the higher end. For others, it might influence both.

In addition to keeping the combat spells from being too overpowered with the new statistics, this will also make those spells more interesting. For example, combat spells whose minimum damage are influenced by stats are good to cast on enemies that have a low magic, but should definitely not be cast on enemies that have a high magic (or you might find yourself doing zero, or worse negative damage!). Meanwhile, spells whose max damage are influenced by stats are good to cast on enemies with a high magic (you’ll always do some damage), but will not be very reliable on enemies with a low magic (you might still get unlucky and do a tiny fraction of the damage you could do).

Furthermore, instead of requiring a magic of 3 to reach Tier 1, you now need a Talent of 10. Unless you’re the kind of person who spends 8 hours every day slaughtering boars in WoW, you shouldn’t hit a Talent of 10 until Episodes 3 or 4 (if you do hit Talent 10 before Episode 3 without excessive grinding, kindly let me know).


At Emily’s request, I’ve added a new command, the (S)pank command.  When you are grappling your opponent, you will be given the option of trying to spank them. Your chances of success are influenced by your grappling skill. If you are successful, you will inflict on your enemy the Humiliated status, which inflicts a -1 penalty to all their primary stats. If you fail, nothing happens. If you get reversed, your enemy will humiliate you. So, use with caution.

In future versions of the game, I’ll probably add an option to turn off the (S)pank command, for those who don’t like the “Spankings at every turn” style of spanking porn.

I’ve also sped up the combat interface some. Attacking an enemy is as simple as pressing the enemy’s number (or pressing Enter if you want to attack the first enemy, or the enemy you’re currently grappling).

I’ve also added Quick Spells. Essentially, you can have up to 12 spells assigned to the function keys (F1-12). In combat, you select that spell by just pressing the appropriate function key, instead of slogging through the (C)ast-Select Tier-Select Spell command sequence. There is a command (M)odify Quick Spells on the main interface (outside of combat) that allows you to change the spell assignments. Currently, they default to:

F1 – Firebolt
F2 – Weaken
F3 – Heal
F4 – Spectral Spanking

Every time you learn a new spell, that spell is automatically assigned to the first empty function key. In addition to being able to change a key’s assignment, you can also swap keys. So if you’d rather have heal at F2 and Weaken at F3, you can swap the two by pressing M-F2-F3, instead of assigning each one manually.

I believe that’s everything major.  Hope you enjoy the latest and greatest version of Pandemonium Cycle: The Potion Wars!

Potion Wars Episode 1.11

Spankers and Spankees,

Hella busy right now, so I can’t say much. Latest version is uploaded (see Downloads page). Made a lot of changes. Most of them are either behind the scenes, or obvious.

A few things that might trip people up:

I’ve drastically overhauled the code for saving and loading games. As a result, your old saves are no longer compatible. You’ll have to start over. Sorry, but the changes were so massive that making the game backwards compatible would have been more trouble than it’s worth, especially since only one episode is posted so far. If I have to modify the save format in later episodes, I’ll strive to make the game backwards compatible. But for now, you’ll have to start over.

I’ve streamlined combat a little, so that now you can attack an enemy by either pressing the number of the enemy directly (instead of first selecting (A)ttack), or by just pressing Enter. If you press Enter, then your character automatically targets the first enemy, or whoever your character is grappling, if your character is grappling someone. This option of pressing either a number or Enter is represented by (#Enter).

I’ve also set up the function keys (F1-12) as quick spells. Now, you save up to twelve spells as quick spells. Instead of having to slog through the “(C)ast-(#) Select a Tier-(#) Select a spell-(#) Select a target” sequence of commands, you can go through the “(F#) select a spell-(#) Select a target” sequence. When you learn a new spell, it is automatically added the first free function key. You can rearrange and change the quick spell assignments.  If you see (F#) it means you need to press one of the function keys.

More details on quick spells can be found in the updated manual.

I’ve also drastically slowed down how quickly you achieve spell tiers. Now, instead of achieving the next tier when you reach a Talent (originally called Magic) of 3, you get the next tier when you reach a Talent of 10. I’ve also made Distort Magic the advanced Tier 0 status spell (instead of Mass Weaken), and Spectral Spanking, Spectral Strapping, Spectral Caning the Tier 0 Spectral spells (rather than Spectral Push, Spectral Pull, Spectral Shove).

I’ll write a more detailed post early next week, but that should be enough to get you started for now.

Also, many thanks to Uninventive, Johny741, and an anonymous fellow I’m referring to as Jeffrey the Jungle-Ape without his permission (because permission is for pansies) for their patience and willingness to play the game over and over again to find bugs and crashes. Especially Uninventive. The guy (or girl) is either really really bored, or really really dedicated to helping me improve my game. Either way, I appreciate it.