Spankers, Spankees and Switches of All Ages (18 and above),
I’ve finished the major rewrite of Scarlet Moon. The bug with saving making the game unresponsive should now be fixed. There have also been a few small interface tweaks. The biggest one being that skills are now selected with letters rather than numbers (made the new implementation a bit simpler, and gives me more single keystrokes for selecting skills).
You can get it on the downloads page.
Note: I’ve also moved over to gitlabs, partially because Gitlab allows me to have private repositories without a paid membership, and partly because I like open source and like to use/support it when I can. The links in the Downloads page should all be updated already, but if any are broken please let me know.
Note that there is no new content (beyond a little bit of editing). However, now that I’ve finished my rewrite, my focus until the end of the first episode will be on writing the game’s content, and bugfixes.
So I’m eyeballs deep into the debugging of the Great Refactor. Right now, I’m working on debugging combat (the most complex piece, so naturally the buggiest).
At this stage, I’ve got attacking, and moving (moving is one of the more complex parts) working correctly. Right now I’m working on making sure skills work properly.
Events are also working correctly, I believe, as is saving and loading.
Fortunately, while I’ve found a ton of bugs, all of them have been pretty straightforward to fix (one bonus of the Great Refactor: everything being modified is local, and methods can’t do all sorts of wild and crazy shit behind the scenes, so it makes it a lot easier to track down the misbehaving code).
I’ve also been working on some of the writing for the rest of the first episode.
Sorry this is all taking so long. But I have a much better handle on how the codebase works, especially how the GUI is communicating with the rest of the system, so _hopefully_ this means we’ll have fewer of those weird-ass bugs that I couldn’t track down.
sss asked me about my thoughts on when a playable version would be out, and my response has turned detailed enough that I figured I’d make a post about it. But first, a brief announcement: My host is performing some maintenance this Friday, so my site will be down for about 30 minutes around 7 AM Pacific Standard Time.
As far as a playable version, I’m shooting for end of June. As a brief reminder, here are the three large tasks for writing my engine:
(1) Design and implement a GUI that the user sees and interacts with.
(2) Design a backend that contains all the game’s actual data
(3) Write a middle layer that takes user inputs from the GUI, and queries (and modifies) the backend appropriately, and then send the results back to the GUI to display.
I believe that (2) contains the bulk of actual lines of code.
For (1) I’m using IntelliJ’s GUI builder tool. It’s not the greatest ever, and the GUI will probably be more than a little rough at first, but it should be enough to create something playable. With that tool, creating a GUI consists of dragging and dropping some GUI elements onto a canvas, and registering a bunch of buttons.
The most complicated part of (1) is drawing the dungeon. However, I came across an excellent tool called Grid Cartographer: http://www.davidwaltersdevelopment.com/tools/gridcart/
Essentially, this tool allows me to draw a dungeon, and save it as both an image file, and an XML document. So I can use the XML document to load the actual dungeon data into the backend, and for the frontend, rather than manually drawing lines and filling in squares like I did for Potion Wars, I can just render the dungeon image that I drew. Using that tool, I’ve managed to implement the dungeon view with a minimum of pain (so far).
I expect (3) to have the most complicated logic (particularly when it comes to combat), but the vast majority of it should be about as simple as the GUI code (take a command from the GUI, and invoke a couple of methods on the backend).
I think I have a reasonably good chance of having all the GUI code written by the end of February, and the controller code written by the end of April. I expect it’ll then take about a month to translate (and edit) the content of episode 1 day 1 from LaTeX to the mostly-JSON format that I’m using for Crimson Glow. Then, I expect it’ll take about two months to debug the engine from end to end, because you can only test so much with unit tests. GUI code in particularly is notoriously hard to test automatically.
Spankers, Spankees, and Switches of All Ages (18 and above),
Just the monthly progress update. I’ve managed to get a _lot_ done over the holidays in between family obligations. Basically, there are three big pieces to the program:
- The code that the user interacts with. This is responsible for displaying the game, and receiving commands from the user
- The code that models the current state of the game.
- The code that takes the user’s commands (given to it by 1), modifies the model (2) appropriately, and tells the view (1) what to display next.
I’ve finished most of the first pass of (2). Right now, I’m working on the code for saving and loading (which doesn’t require much. I’m using a library called Jackson, which does most of the work for me). Once that’s done, I’ll be finished with the first pass of (2), and then I’ll move on to (3).
Spankers, Spankees and Switches of All Ages,
I’ve finished writing all the events for the first level of the dungeon (of two). Yay! Originally I had two other events planned, that I was going to write after releasing this level, one at Sofia’s clinic, and one at a Taironan church. But they don’t really contribute anything to the plot, and are probably better off being incorporated into an episode where they play a bigger role.
Furthermore, the first floor of the dungeon is designed and implemented. The things left on my to-do list:
- Finish the spanking combat text for any enemies whose text hasn’t been written.
- Balance the game.
- Toss it at my beta testers
- Debug the catfight code, and finish writing any in-combat spanking text for said catfight.
In the interest of getting something out, I’ll probably skip step 4 for now. Basically, in the location where a catfight can occur, you’ll just be given the choices to instantly win or lose, instead of instantly win, lose, or actually fight the catfight.
Note to self: Next time, build the dungeon with just encounters, write the enemies with placeholder spanking content, and throw it at my beta testers so that we can start balancing the game before I finish writing the text.
Spankers, Spankees and Switches of All Ages (18 and above),
A small fix, and a minor enhancement to saving:
1. Fixed the bug pointed out as a comment in the previous post, where the flag telling the game whether to allow in-combat spankings wasn’t saving properly.
2. Added a bit of code to sort file names based on name in the save and load menus. Before I was printing the files in whatever order the OS gave them to me.
3. Cleaned up some of the code to load games, making it easier to add data to the save files in a backwards-compatible manner.
Get ’em at the downloads section.
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.
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,
Welcome to the fancy-shmancy new home of Pandemonium Cycle: The Potion Wars! It is very fancy. And shmancy. Anyway, the blogspot blog is still going to be there, polluting the internet, but all new updates will show up here. Feel free to explore, and let me know if anything broke in the move.
I’ll post a longer post later this weekend. I have a screenshot of the new automap, and a few thoughts on the future of first-person vs. third-person, and thoughts on how to overhaul the combat mechanics in future episodes.