Monthly Archives: August 2015
New Etrian Odyssey Episode, A Few Changes

Spankers, Spankees and Switches of All Ages (18 and above),

A new Etrian Odyssey episode has (finally!) been posted. Get it over at the downloads section. I’m much happier about this one than either of my previous two. Which probably means it sucks, because that’s how this usually works.

As far as Potion Wars is concerned, I’ve been pretty busy lately (hence why I failed to post an update last weekend). However, I’m still chugging away. I have one and a half scenes left I want to write before I make the next release, which will finally, finally have the next dungeon level. However, I’ll also be introducing a some new game mechanics (weapon/clothing enhancement, and catfights) in addition to the next episode’s enemies. So there’s still a lot of debugging, and balancing ahead, so I can’t really give an ETA. In fact, I’m going to give up on giving ETAs anyway, because I always, always, always underestimate how long it will take me to get stuff done.

It doesn’t help that I’ve had a bit of writer’s overload the past few weeks. I think a lot of it is because I’ve also been working on Etrian Odyssey on Sundays. That’s a lot of writing. When I started Etrian Odyssey I believe I was either in the middle of, or coming off of a major coding period, so I needed some writing to change things up. Now that I’m in major writing mode for Potion Wars, I’m finding that also writing the Etrian Odyssey episodes is a bit much.

So here is what I’m going to be doing: when I’m in major coding mode, I’ll be working on my Etrian Odyssey Let’s Spank. When I’m in major writing mode, I’ll be working on a different coding project. This way, my Sundays can be a chance to take a break from Potion Wars, do something very different from whatever I’m doing during the week, and still contribute something to this site.

The question of course is, what will I be working on when coding? This project will be an attempt to apply the lessons I’ve learned from Potion Wars and since I started working as a professional programmer:

1. I’ll be using Test Driven Development. Basically, I’ll be writing the tests before I write the code. This will ensure that the code is much more stable.

2. I’ll be working hard to make the code much better documented, and follow some style rules so that the code is more readable.

3. I’ll be using actual tools out there in the wild to help me (say the build tool Maven, the language parser tool ANTLR, the GUI library NiftyGUI), rather than trying to roll my own hilariously inferior and buggy versions.

I’ll be working on the project in a combination of Groovy and Java. Basically, I’ll use Groovy whenever possible, and Java when the tool I’m using demands it (i.e. ANTLR). There are several reasons I’ve chosen these languages. Most importantly, there is an awesome testing framework out there for Groovy/Java called Spock. And since I’m doing TDD, having a good testing framework is a must. Next, Java is ubiquitous. So it has a lot of excellent tools out there, from IDEs to language parser tools. This also means that more people are more likely to know the language, which means I’m more likely to get programmers willing to help me (learning Groovy when you already know Java is very very easy, especially if you also know a scripting language like Python, Perl, or Ruby). Third, this will give me a chance to mess around with some of the tools we’re using at my job, which will be nice. Also Groovy looks like an interesting language that combines some of the safety of static type checking with the flexibility of duck typing. Also its strings are called GStrings. So you know, it’s just begging to have a spanking porn game written in it.

The repository for this new project can be found here: https://github.com/sprpgs/GroovyBooty

I can’t decide if my proposed name for the engine (GroovyBooty) is awful, or awesomely awful.

Right now, it only has one branch (other than a basically empty master), where I was messing around with Groovy’s ability to easily create simple Domain Specific Languages (DSL’s) to see if I could use it to implement a dialect for writing dynamic game text. Turns out doing it directly in Groovy isn’t quite powerful enough, so I’ll have to use ANTLR. Anyway, if there are any programmers out there who would like to get involved, but have been scared away in the past by the fact that my Potion Wars codebase is garbage, let me know.

The next question of course, is what game should I be using as my motivating example for building the engine? I have two possibilities under Eye of the Brainstorm:

The Majesty meets Princess Maker game I talked about a while ago:

https://www.spankingrpgs.com/?page_id=88

We also have a Multi-Generational Dungeon Crawler that I just posted under Eye of the Brainstorm:

https://www.spankingrpgs.com/?page_id=302

Both games will share a lot of the same code, so we don’t have to commit to anything just yet. I am curious about what people’s thoughts are though.

An important thing to keep in mind: Any sort of playable game using GroovyBooty is a loooong way off. It took me 18 months to get the first version of Potion Wars up in all its buggy, convoluted, hacky glory. And that was working on it for several hours a day for most of those 18 months. This will be a much more deliberate, slower development process aimed towards building a well-designed, stable codebase that can be easily maintained and expanded for years to come, rather than for just getting something out the door ASAP like with Potion Wars. Furthermore, I’ll only be working on this once a week in spurts.

And again, if there are any programmers out there who’d like to help develop GroovyBooty, shoot me an e-mail. Furthermore, if there’s anyone out there who would like to help with the design process, that would also be welcome. The only things I’m not looking for right now for this project are writers, artists or musicians, because we’re a very long way off from developing any actual content. I will happily take such help for Potion Wars ;).

Enjoy the new Etrian Odyssey episode