Back in December I signed up to do a two month programming challenge.The challenge was to create a Visual Novel or Dating Sim using whatever means possible. I was swiftly grabbed by writer and hobby programmer Sake-Bento before a digital artist, Tooaya, was conscripted to complete our team.
After some hurried messages sent back and forth during December, we decided we would create an Otome dating sim. The plot was to be about a girl, Merui, who gets her boss kill (and consequently, the boss' loot) stolen by a demon rogue called Alistair while playing her favourite MMO. Through various circumstances, she discovers Alistair could possible be one of three boys at her school. The player then has to guide Merui through various situations as she tries to discover the identity of Alistair and perhaps find love while she's at it. This is done almost exclusively through dialogue and stat levelling. There is no combat in the game. (Originally we had discussed including RPG battles set in the MMO universe but were dropped due to time constraints.)
My role was to be the programmer of the group, tasked with coding everything but the dialogue interactions. We decided early on to use the Ren'Py engine. I had no experience with Python whatsoever but I was fairly confident that I could teach myself what I needed to know during the two months. Our plan was fairly ambitious, we wanted to put together a full game that would last a good hour or so. Seeing as the game would be almost all dialogue, this meant a great deal of time would have to be spent on writing and the art. Hence, I ended up taking on pretty much the entire programming side of things.
I used code-and-fix... Sorry I mean, agile development, when it came to creating the game. I had a little experience with Ren'Py but my knowledge of Python was non-existent outside a little I'd picked up with earlier dabbling in Ren'Py. The first thing I did was scratch build an engine for the main dating sim part which formed the framework for the main game loop. This took a lot less time than I expected, finding that I only really needed to use scripting language to do it and no actual Python code.
After that, I started to build on top of the basic engine. Filling out the various choices a user could make and the interactions required. This is when it got interesting as we decided to use a fully customised GUI for the game instead of the default one built into Ren'Py. This meant that literally every interaction outside of dialogue choices had to be coded in Python. It was a very interesting, and tiring experience, but as my first ever attempt with Python (And in fact GUI programming) it was very educating and I like to think I did a good job of it.
We worked fairly steadily for the next few weeks until the last week or so in February. By that time, we had two major game components left to do as well as testing. It was a very hard and exhausting week. I managed to finish one of the components in a couple of hours but the other one refused to work correctly. Literally every time I fixed on bug, it introduced another. Eventually I got so frustrated I scrapped it. The team leader (Sake) asked to see the code anyway and I obliged. After a couple of hours, she got it to a state that I was able to give her a couple of lines of code to finish it off. Certainly taught me that fresh eyes are very useful when you've hit a wall in programming.
Finally after some major testing, the game was finally released on the 28th of February. I have to admit, I was unsure how people would react. I know we were very happy with the results, and felt that it was a good two months work. Whether other people would appreciate it was another matter entirely.
I don't know about the others in my team, but I know the popularity of the game amongst the Visual Novel scene took me by surprise. My own webpage exploded in pageviews, getting more comments and praise than I'd had for months. The Sakevisual group on deviantART gained about eighty new watchers in the space of three days.
We've had offers of donations to have us develop more games from some players and so far the reviews we have received have been largely positive. (You can find one on White Butterfly and another on Gamer Tell) We've even had fanart. The kind of sad thing, perhaps, is that people think that me and Tooaya are part of Sakevisual. We're not really, we happened to work with its founder.
The offers made us have a very serious discussion about whether we should go commercial. We had plans to make an extended edition of RE:Alistair (Currently code-named by me as RE:Alistair++) but we wondered if perhaps we could make it commercial. We decided against that so discussed other projects we could do. In the end, however, Tooaya and Sake-bento both had their own commercial and non-commercial projects they wanted to work on so it was decided that after RE: Alistair++ was finished. We would go our separate ways. The plan, tentatively, is that once we're all free once more, and have funds, that Sake-bento would contract us to work with Sakevisual to create a game.
Whether that actually happens, or not, doesn't bother me too much. The money would always be nice, but really the experience of finally releasing a full game that I worked on with a very diverse team on the other side of the Atlantic has been a great one. I learned a lot about programming in Python, as well as seeing a full game from conception to release. Maybe it was the surprising popularity, but despite it not being much of a challenge programming-wise (Compared to Shaders and 3D graphics), I really think it was worth the time it took to put together... And if working on commercial visual novels and dating sims is the final outcome of this challenge then all the better.