Fixed a bug in the logging code that resulted in infinite recursion. See previous post for details on changes in 2.09.
Spankers and Spankees,
I’ve released a new update to Potion Wars (get it at the Downloads page).
Changelog:
1. The game now writes to errors.log all actions performed in combat, and the associated state. This should make it a lot easier for me to track down corner bugs that only arise when actions A B C D E E E E A F are performed in combat. So please, when you see a crash or other bug in combat please tell me about the bug and SEND ME THE ERRORS.LOG file. Furthermore, please, as soon as you see the error, kill the game and send me the error.log. That way, the last action in the log will be the action at the point the error happened. If the bug crashes the game, just send me the errors.log (along with a description of the error). Note that the errors.log file gets wiped every time you restart the program, HOWEVER the game also automatically saves the errors.log file from the previous 5 play sessions (named errors_1.log, errors_2.log, …errors_5.log). So if you see a crash, but accidentally restart the game before you send me the log, just send me the log file that corresponds to that playthrough.
2. I’ve added a scene with Airell (the pompous mage) written by Bonemouth and edited by me. You should see this scene if you pissed off Airell in episode 1, and he threatened you with a spanking. He’ll show up in the Adventurer’s Guild, just talk to him to start the scene.
3. Fixed a bug in one of Maria’s conversation nodes in episode 1, that would have caused a crash as soon as someone tried to access that quip. It was the node at the end of episode 1 that only triggered if the player managed to stay out of trouble with the guards (i.e. didn’t get into a fight with Maria, and didn’t lie to the guards). Apparently not a particular popular path among people who file bug reports, since I only saw it after I fixed a bug in my unit tests that meant my tests weren’t invoking the conversation nodes in episode 1.
4. Skyblaster the Sardine has joined the team as a beta tester, and support writer. He’ll be working primarily on in-combat spanking scenes for now. I’ve added his name to the in-game Acknowledgments page. Flash the Flamingo has also joined, he’ll be working as a Beta Tester, and number cruncher (basically he’ll help me analyze my growth and damage formulas, and make sure they scale like I want them to). I forgot to add Flash to the in-game page, and I’m too lazy to back and add it, but he’ll be there in the next release!
5. Implemented some code that should make it easier for me to maintain consistent state when transitioning scenes. Basically, any time a scene begins, I clear out all adjacent rooms, and remove all NPCs from their respective rooms, and then manually reinstate those rooms, and NPCs that actually show up in the scene (I do have some helper functions for rooms, and characters, like Avaricum Square or the girl at the Tailors, that don’t change between scenes). This will make a little bit more work for me, but it should make errors more obvious (a character who should be there is missing!), and gives me much better control over the configuration of each scene. So it’ll end up saving me time in the long run.
6. Characters now gain 2 points in Strength for every round they stay grappled. Otherwise, grappling would go up too slow for characters who initialize and actually want to stay grappled (i.e. the characters who should have high grapples!)
7. Characters gain 120% mana each time they gain talent, rather than 150%.
8. Removed ambushes. They were rare, buggy, and in my opinion don’t really contribute anything.
9. Miscellaneous bug fixes. Added some infrastructure for incorporating LaTeX written dungeon scenes into the game.
10. Removed Deidre from the Adventurer’s Guild. Originally she was going to provide the job on behalf of someone else. I decided I didn’t want that, so I’ve introduced a small retcon.
Also, although you can’t reach the dungeon in episode 2 yet, I have added it to the code. Here’s a screenshot of the corner you start in:
It’s not the prettiest thing ever, but that’s another side-effect of the rigidity of my current GUI code. Hopefully when I overhaul the GUI after episode 2, I’ll be able to rewrite the map code so that it looks nicer, and we don’t necessarily after to show the entire map at once (clearly 20 x 20 is about as large as we can without inducing eye strain). But who knows. I sure don’t. Honestly, I’m surprised it works as well as it does.
I haven’t implemented any of the events yet, but we’re getting there.
Also, don’t forget I released a new episode of Etrian Odyssey yesterday. Get it at the Etrian Odyssey tab.
Spankers and Spankees,
I’ve uploaded the next episode in the Etrian Odyssey Let’s Spank. It can be found under the Etrian Odyssey tab. Honestly, I’m not particularly happy with this one. I’m still having trouble figuring out Naomi. I’ve made some progress I think, but she still doesn’t flow as naturally for me as the others do. Of course, it could also just be the end of semester burn out that’s talking. I don’t know. Anyway, hope you enjoy it.
As far as Potion Wars is concerned, well I have a scene with Airell that Bonemouth wrote that I’m currently sitting on. I’ve also implemented the first level of this episode’s dungeon (though I haven’t written any events for it yet). I’ll try to finish editing Airell’s scene tomorrow, and get it posted (too tired to deal with it now), and I’ll upload a screenshot of a partial exploration of the first level of the dungeon.
Also, don’t forget that in my previous post I offered several alternatives to two Etrian Odyssey stories a month. Take a look and let me know what you think. If I don’t hear anything, I’ll just stick to the current two EO episodes a month.
Spankers and Spankees,
Things are finally starting to calm down, school wise. I have a weekend all but fully available for the first time in 2 months! So I’ll be starting the next episode of Etrian Odyssey this weekend, hopefully for posting next weekend (but we’ll see).
However, I’m still a little bit burned out from all the school-related craziness, so I won’t be doing a lot of hardcore work on Potion Wars until mid-May or so. Mostly fiddling with behind the scenes stuff. For example, I’ve been working on an overhaul of my plans for the overall story here and there, and I’m about ready to type those up and send them to Emily for her perusal. I’ll probably also work on setting up stubs of the conversation nodes for the second act of episode 2, which I can then allocate to writers (mostly myself). I’ve also got a scene written by Bonemouth that I need to incorporate into the current content, maybe I’ll see if I can do that next weekend, so that I can have a small update along with the Etrian Odyssey episode. Furthermore, Flash the Flamingo has offered to crunch some numbers for me, so that we can try to predict what mid and end-game stats will look like. This should help me determine whether the current rate of stat/health/mana growth will sustain the kind of fast-paced, and challenging gameplay that I want. I’ll probably be trying to work up the energy to get my growth equations out to him over the next week.
There is however, one thing I’d like to know from you (yes YOU). I’m rapidly approaching the point where I will once again have time to write two Etrian Odyssey episodes a month, rather than the 0-1 that I’ve been pulling the past few months. However, at the same time, I’m trying to decide which RPG I should immerse myself in over the next few weeks to recover from the end of the semester. So I’d like to know which option you would prefer:
1. I stick to 2 Etrian Odyssey Episodes a month.
2. I start another Let’s Spank, and write one Etrian Odyssey episode a month, and one episode of the second Let’s Spank a month, with the Etrian Odyssey episode taking priority (so if things get busy again, and I can’t sustain 2 episodes a month, I delay the other game rather than Etrian Odyssey). Here’s the shortlist of games that I’m interested in playing (in no particular order):
- Lords of Xulima – 1 plot character, create the remaining 5. Plot character is a man, but I have plans for him. Game tends to encourage spamming a small number of skills over and over again. Combat system is very neat, I may steal ideas from them. Claims to be open world, but it isn’t. Rather than having broken bridges, it has absurdly powerful monsters that you can’t hope to beat until you’ve gained a few levels. Story is rather thick for a dungeon crawl, but it’s not so thick that I can’t take it my own way.
- Icewind Dale – Create 6 characters. Standard fantasy races (humans, elves, dwarves, gnomes, halfings, half-elves). Standard fantasy classes. Hybrid classes are just as powerful as specialists. Pretty linear dungeon crawl, with minimal story. Gives me lots of wiggle room. Butt-tons of fun to play. Also has the best theme in the history of video games. First of a duology.
- Baldur’s Gate II – One of the best RPG’s in the history of the genre. Excellent gameplay, excellent story. Hybrid classes are just as powerful as pure classes. Create 1 character, find and recruit up to 5 more. Due to roleplaying constraints you guys would only be able to choose between 3 characters to fill 2 slots (the rest taken up by characters who are personally invested in the story, and that would not be kicked out by the kind of person I roleplay), and have some input on the PC’s class. However many of the characters are very spankable, and there are quite a few very spankable situations. Rather dark. May or may not transcribe game text directly, depends on how quickly I get tired of it. I may just take the basic events of the story and put them in my own words.
- Wizardry 6 Holy crap the party building options! 10 races (standard fantasy races plus faeries, cat people, dog people, lizard people, dragon people, wookies)! 15 classes! One of the few games I’ve seen that does the skill system right. Not only do you increase skills at level up, but you also increase skills by using them in combat. Hybrid classes are very powerful, and the game includes a powerful class change feature, so you can start as a specialist and transition to hybrid when the specialist starts to lose steam. The fact that Etrian Odyssey tries to claim the legacy of these games is part of why I’m so disappointed in their level up system. Faerie ninjas are possible, and are as powerful as they are absurd. Very thin story, very linear dungeon crawl, similar to Icewind Dale, though the story is even thinner. Gives me lots and lots of wiggle room. Game can get a little bit silly sometimes, but can also be more than a little dark. First of a trilogy.
- Realms of Arkania: Blade of Destiny – An interesting gem of a game. A little bit tedious, but does the best job I’ve ever seen of capturing the feel of being a dirt poor adventure scraping for enough money to buy food for tomorrow. Standard fantasy races, but races (except humans) also count as a “class.” For example, dwarves are essentially fighter/thief hybrids, while elves (two kinds)! are archer/mage hybrids. Lots of interesting party building options: can give your characters phobias (i.e. claustrophobia). Furthermore, your characters can learn how to dance or sing, allowing them to sing and dance for money in taverns all over the game world. Has an awesome travel system, where random events will occur while travelling (i.e. stumbling across a dungeon, having to cross a small rope bridge). First of a trilogy. Open world done right.
Keep in mind that all of these are PC games, so unlike Etrian Odyssey, I can record my gameplay sessions. My thoughts with this would be that I record my gameplay session, write a story using that video as a reference, then post a video to Youtube that highlights parts of the gameplay session that inspired events in the story.
My personal vote is for Wizardry 6 because of all the party building options, Icewind Dale because it’s atmospheric, and there are still some pretty emotional (for me) parts, despite the relative thinness, or Baldur’s Gate II because trying to write other people’s characters would be an interesting exercise in giving my characters unique voices. And I could use the exercise. So if you’re interested in option two, let me know which of game(s) you’re most interested in above. If most people are interested in option 2, and there’s a consensus around one of the games, we’ll start the party-building process. Otherwise, I’ll provide some more details about the two games that people are most interested in.
Or I could stick to writing 2 episodes of EO a month, depending on what people want.
Spankers and Spankees,
The latest update includes fixes for bugs pointed out by an anonymous fan in e-mail:
1. Saving immediately after the episode 1 dungeon dropped you back in the dungeon.
2. Carrie’s conversation at the end of episode 1 crashed on the male path.
3. If you’re fighting N opponents, pressing the N+1 number key crashed the game.
4. If you went down to the bottom floor of the guild, fought the pair of Vengadores at the beginning, then went back upstairs to fight the pair bullying Paloma, then lost, then tried to start the battle over, the game crashed.
Also, I’ve added a new option when you start the game: Now, you have the option of turning off enemy spankings. Basically, you can choose to make it so that enemies never try to spank you, nor will they ever reverse your spanking. I’d been planning to add this option after episode 2, when I overhaul the GUI, however the person who pointed out the above bugs really really doesn’t want to be spanked in combat (they are an exclusive top). So as a thank you, I implemented a simple choice at the beginning. Unfortunately, you cannot change this option during the game. After I overhaul the GUI, you will have the ability to change that (and other options, like difficulty) during the game instead of only at the beginning. The reason you can’t do it now is because I would need to design a whole new screen, and I don’t really want to do that much GUI work when I’ll be ripping it out and rewriting it in a few months anyway.
Something I want to emphasize: If you send me bug reports, or constructive criticism I will be happy. If you make me happy, then I am even more receptive to your suggestions. What this means is that:
1. If you’d like to see something that I was planning on implementing anyway, I may implement it sooner (like I did for Anonymous).
2. If it’s something that I can tolerate, but I’m not a big fan of, and it doesn’t clash too badly with the rest of the game, I may implement it. For example, I’m not a big fan of tentacle monsters. However, Bonemouth would like to see a spanking scene involving tentacle monsters, so I am carefully considering including a tentacle monster scene in episode 3 (which will take place in the forest surrounding Avaricum). Similarly, I’m not into age regression. However, Emily likes age regression so I included a few light AR scenes (it’s just shoving the PC into childish clothing, but it’s something) as a thank you for her help in editing.
So if you want to see something in my game, be it a gameplay feature, or a spanking scene, or what, send me bug reports. It will significantly increase the chances that I will include it.
Fixed the latest round of bugs pointed out by SSM, including the one where Carol wasn’t paying you for the swag you sold her. Also, I fixed a few other bugs I stumbled across in the shop interface, and a bug where Ildri’s spanking-for-indecency wasn’t displaying the right outfit for the player.
Spankers and Spankees,
Latest update fixes (hopefully…) all of the bugs pointed out by SSM in the previous post except for the problem with sold items not increasing your money. Life is pretty insane right now, and so I only have time to look at game breaking bugs. Since your money pile doesn’t matter right now, I’m holding off on fixing that problem.
So, don’t sell anything yet. Sorry about all of these problems, and thank you for your patience. A combination of being overwhelmed in school, having really really bad legacy code, and a non-existent testing framework means that the early releases are going to be unstable. I’m trying to improve on that testing framework, but some things are harder than others, and again I don’t have much time right now.
So thank you to those of you who are playing the game and reporting all the bugs (SSM, KingKruul, and cmfunk, to say nothing of Bonemouth and Ken). I really, really appreciate it. And I’m sure those who download the later versions will appreciate it as well.
Fixed a bug where the game crashes if you try to load a save from the end of the game’s content. Note that now you cannot save after the first act of episode 2. Once I add the next act, you’ll have to load a save file from before you agree to help Ildri repair the guild.
Spankers and Spankees,
New version, 2.04, posted to the downloads section. I’ve made two changes:
1. First, I fixed a bug pointed out in an e-mail from a player that caused the game to crash if the player attempted to inflict multiple statuses on enemies.
2. Second, I’ve made it so that the player can’t spank an already-humiliated enemy. Previously, spankings could be used to keep an opponent in grapple-lock indefinitely. While that doesn’t matter now, when there is only one PC, once you get a party that could become very overpowered.
Spankers and Spankees,
First, a new release has been uploaded. Get it at Downloads. It fixes a few crashes that I found, as well as some typos and the like pointed out by some of my beta testers.
As I’m sure you’ve all noticed (much to your annoyance), releases tend to be crashy and buggy as hell. Naturally, this is unacceptable. So lately I’ve started incorporating unit tests. I know, any of you with programming experience are exclaiming “You’re writing something as complicated as a game and you don’t have unit tests? What is wrong with you? Test driven development dumbass!” In my defense (sort of), this is the first program that I’ve ever written which is complicated enough to require unit tests. In school you’ll have one class that might briefly touch on unit tests, you do them for that one homework that requires them, and then you never touch them again because all your assignments are only a few hundred lines in one or two files. When programs are that small, it’s just as easy to throw in a bunch of print statements (I’m also forcing myself to use a proper debugger).
So far, I have tests that test attacking, grappling, breaking a grapple, and throwing. These tests make sure that my damage formulas are correct. I also have tests that run through and execute each enemy’s in-combat spanking text, and a test that iterates through each conversation node and builds the text that is meant to be displayed. While these two tests don’t try to make sure the displayed text is correct (that would essentially require me to write my text in Python, which ruins the point of LaTeX->Python!), it does minimize the chances of stupid crashes from undefined functions, trying to add a string and an integer, etc. Admittedly, a crash might still slip through if there’s an error in the branch of an if-statement that isn’t followed. However, I try to keep inline if-statements small and simple. Anything complex gets pushed into another node, so these tests should catch upwards of 90% of all the dialogue-related crashes.
Over the next few months, I plan on introducing some tests for the other combat actions, and tests for any new code I add, or code that I modify. These should make the code a lot more stable. However, these tests are by no means exhaustive. So if you come across a bug or a crash, I almost certainly don’t know about it. So please let me know. To paraphrase alt cor, bugs feed my soul.
Another thing I want to talk about is my plan for future releases. I’d rather not go 9 months between the release of new content. But at the same time, I also don’t want the game to gradually become more and more railroaded because I skip branches in a desire to release faster. I also want to release enough content for people to get meaningful enjoyment out of it. So I’d like to release enough content to provide a coherent part of the story (this was the original intent of the episode structure incidentally). To balance these, my plan is the following:
1. Write, edit and release the “spine” of a particular act. These are the scenes that drive the plot forward.
2. Write and release the scenes that aren’t strictly necessary for the plot, but provide some useful insight into it, or that aren’t immediately important, but lay the groundwork for future events.
3. Write and release the scenes that contribute nothing but fap material.
4. On to the next act.
Note that scenes in the second and third category are the ones that will typically be written by the writers who are helping me.
Alternatively we could do:
1. Write and edit the spine of act 1, then act 2, then act 3.
2. Write and release scenes that aren’t strictly necessary to the plot, but enhance it for act 1, then act 2, then act 3.
3. Write and release miscellaneous scenes for act 1, then act 2, then act 3.
So for example…
———————-EPISODE 1 SPOILERS!!——————————————
If I were to have followed the first approach in episode 1, then the scenes would have been released as follows:
Act 1:
1. Conversation with the guard -> conersation with Maria -> conversation with Adrian
2. Conversation with Elise, conversation with Peter, conversation with Carol (employee of the taylors).
Act 2:
1. Conflict with the Young Vengador -> Encounter with Cosima -> Encounter with Mai -> Boss fight
2. Paloma, Dining Room
2. Ildri, Morey, Airell
Act 3:
1. Scene with guards -> bar scene -> conversation with Catalin.
2. Pre-bar scene with Elise and Carrie, conversation with Peter
If I took the alternative approach, the scenes would have been released as follows:
1. Conversation with the guard -> conersation with Maria -> conversation with Adrian
2. Conflict with the Young Vengador -> Encounter with Cosima -> Encounter with Mai -> Boss fight
3. Scene with guards -> bar scene -> conversation with Catalin.
And then fill in the extra scenes starting from Act 1 on.
If you have a preference, let me know. Keep in mind that this only controls the order in which I write scenes. Obviously I’ll add scenes as others write them, so even if I write the basics of the entire episode first, I may add additional scenes before I’ve finished the spine, as others finish them up.