Spankers, Spankees, and Switches of All Ages (18 and above),
Yup. A new version, not even 24 hours after the last one. This one fixes a crash
in the new event I added yesterday to highlight your job as a waiter/waitress
(yeah, so I didn’t actually *test* that event before I released it). Thanks
42idiot for being patient enough to report the crash, complete with logs!
Also, while I was in the neighborhood, I saw all that lovely space on the right
side of the screen, and decided to *also* display your character’s bum status.
I’ve been tracking it, I just haven’t displayed it anywhere, because the
character creation screen (where it was displayed in the previous version) was
crowded enough already.
So now you’ll see your bum status update in real time as you get your naughty
heinie swatted good!
Or it’ll just be boring, static text if you’re one of those *lame* people who
insist on being a goody two shoes superhero who never ever gets swatted.
Get it in the Downloads section!
Spankers, Spankees, and Switches of All Ages (18 and above),
Got a new build up. This is mostly a cleanup release. It adds a few tweaks to
the UI that should hopefully make it suck slightly less. In particular, it
hopefully provides some options to help people get the combat UI to fit
reasonably well, even if their resolution isn’t particularly close to mine.
Yeah, the player shouldn’t have to fiddle with setti:engs to get the UI to look
nice.
PASSION PROJECT I’M DOING FOR FREE!
There. You’re no longer allowed to criticize anything about the UI ever again.
Ever. Again.
Actually, that’s a lie. I welcome any and all constructive criticism. For one
thing, it helps me decide what to prioritize (would people rather have a slick
UI, or more content?).
Anyway, the changes in this new build:
1. Your statistics and outfit are now displayed on the story screen. We had all
that wonderful space on the right side of the screen, so I figured I’d use it.
You can’t currently change your outfit on the story screen (you still need to
go into the (C)haracter screen). That’s on my roadmap, it’s just a bit more
work than flinging it up there to see. I figure the statistics in particular
will help when you have statistic-incrementing choices, or for checking your
energy before you make the choice that *obviously* sends you into battle.
2. The combat screen is now more compact. I’ve increased the maximum length of
each line for combat status (right side of the screen), and reduced the space
between the combat log and the status. This should hopefully make the status
more compact. Note: You *may* not see less wrapping even with the longer maximum
line. The game calculates how many characters you can fit on your screen, and
uses that for wrapping. The maximum is only used if your screen is huge, and
would result in painfully long lines.
3. Two new commands are added to the combat UI. The first, `(+/-) Status Font`,
allows you to increase or decrease the font size of the combat status right
there in combat. Before, you could only change the combat font from the Options
menu, which is only accessible in the story mode. You can’t access the Options
in the combat mode because of an architectural snarl that I need to sit down
and figure out.
The second is `(Tab) Concise`. This toggles the combat status between a
verbose mode (what you see now) and a concise mode. The concise mode uses only
a few characters for each character (typically the first few characters of their
name), and only a few characters for each status. This should help when you
want to investigate powers in a battle with lots of characters.
4. A new command was added to the Story UI. `(+/-) Story Font` that allows
you to increase the size of the story text. This also affects the combat log
(left side of the screen), since they both use the same font.
5. F5 now saves, while F9 loads. This is apparently the same as is used by
Skyrim (and various other games I believe, including the Spiderweb games). Since
the keys are farther apart, this should also hopefully protect against pressing
(L)oad when you intended (S)ave.
6. For some reason, sometimes the player’s combat name wasn’t getting set
correctly. I haven’t been able to duplicate it, but I have seen it in some of
my older saves, and other people’s saves. I’ve thrown in a hack to update the
player’s combat name when loading a game if you’re on episode 2 and your combat
name isn’t “ScarletMoon.” Hopefully that should fix any bugged saves out there,
and we’ll have to see if anybody finds their combat name not being set (or
saved) properly when they play episode 1.
7. Did a bit of cleanup that should hopefully improve performance in combat
and on the character modification screen.
8. Fixed a bug in combat undo. The player was able to undo from one round to
the previous, and you’re not supposed to be able to do that (since at that
point you know what the enemy is going to do).
9. Fixes a crash pointed out by an Anonymous fan when starting the final battle
with Succubus for episode 2.
10. The title screen commands are now *above* the image. There were some
problems where some users had the buttons pushed right off the screen by the
image. Yeah, I know this is the ultimate copout. The GUI toolkit I’m using
doesn’t provide very much for working with images, so I haven’t found a way
to dynamically scale the image to fit on a screen, and creating multiple
resolution versions sounds like a headache in arbitrary “let’s see if this
works!” At least this way if the title doesn’t fit, you should still be able
to see the commands.
11. Fixes a bug where if you defeat Succubus in the restaurant, the game acted
like you’d lost. You should now see the correct content when you defeat her.
12. Fixes some typos.
13. Added a new (meaningless) choice where the Vanessa asks them if they’re
nervous about their new job at the start of episode 2. This was done to make
sure people don’t miss the fact that they got a job at some point between
episodes 1 and 2, so that they’re not caught off-guard. Vanessa was already
making an off-hand comment about it, but it was easily missed.
14. Juliana is now referred to only as Juliana. The name Generalissima isn’t
established the end of episode 2, and only if she’s getting spanked by
Clemency. Before, the game was just referring to her as ‘Generalissima’
without any establishment at all. The third episode will introduce her as
well, for those of you who don’t go sneaking into rich people’s houses.
Many thanks to Anonymous for the crash report, and 42idiot for some very
good criticism of the UI that inspired many of these tweaks. Also for pointing
out some typos, and the bug with the game not recognizing that you’ve defeated
Succubus, and finally for pointing out the flaws in how the story is presented
that inspired the last two changes.
Get it at the Downloads section!
AKA
Spankers, Spankees and Switches of All Ages (18 and above),
Sorry about my delay in posting. Been trying to beat Etrian Odyssey 2: Fafnir Knight. Because Etrian Odyssey X is coming out soon, and that’s like a cross over of all the other Etrian Odyssey games so obviously I need to beat the ones I haven’t beat before that comes out!
Anyway, I’m working my way through the bugs in the new engine. I’ve got the first episode translated over, and am about to balance the final boss fight of the first episode. I’m really liking the changes I’ve made to the combat engine. Combat feels much more dynamic to me, and Scarlet Moon herself seems to be shaping up to have a lot of flexibility.
I’ve also been doing some writing for episode 3, so that’s moving forward.
I also participated in a Game Jam over on animeotk.com (basically a week where you sit down and try to create a small game). Mostly I used it as an excuse to write a mini-CYOA in Twine. The game introduces a brand new superheroine several episodes (so several years most likely) before I’d originally planned. You can find it under the new tab: Twine Mini Games. Keep in mind that I banged it out in a week, so it’ll probably only take like half an hour to play, if that. It is a complete game though.
AKA
So I made a small mistake in my previous post.
The Supreme Overlord is in fact helping me (he helped design the costume for the villain for episode 2). However I don’t think he’s contributed any actual scenes yet, though I am working with him to change that.
I have another person, Whose Name I Do Not Know, who has contributed some scenes. It was those scenes I was referring to.
Sorry about that!
AKA
Spankers, Spankees and Switches of All Ages (18 and above),
Haven’t been super productive this month (worked my ass off to finish the code rewrite, so I’ve been taking a working break). However, I have managed to finish the first draft of game content. I write each update’s worth of content in three phases:
- Write a static version of the text. The purpose here is to get the bulk of the story on paper. To keep things simple, I give everyone fixed genders, names and outfits. Note that I do write up the choices as well.
- Go through a second pass and make the text dynamic, i.e. add additional text for male characters, outfits, etc.
I’m currently working my way through the second step.
AKA
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.
AKA Russell
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.
AKA
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.