The game I wanted to play was Story Telling. Which in it's current state, might actually still be playable, but I can't say for certain. It was when I stopped working on it (I think), but it was dependant on a few external PHP libraries that have been deleted or modified so heavily over time, that their backwards compatibility no longer functions. So I opened up Dream Maker and decided to see what I could do with it.
Over the last couple of days, I've put in about two hours work into the entire thing. Regardless of the fact Dream Maker has remained open for well over two days. What can I say? The motivation just wasn't there. Tonight after work however, I decided to pull my finger out and see what I could get done in the few hours before I retired to bed.
Incidentally, I noticed a design flaw in what I've happily dubbed game_loop(), a proc which controls the entire flow of the game. After mulling it over for a little while, I came up with a solution and got the development process well under way.
Although the game isn't complete yet, I figured I'd let you guys in on what's done and how this differs from the previous four major releases I've made over the last five years.
- Another interface design, which I feel is cleaner and easier than the previous versions.
- In previous versions, world.Reboot() was called at the conclusion of a game. This was inconveniencing and no longer the case.
- In previous versions, you'd have to wait the full minute before the game would continue past the submission and voting stages regardless of whether or not everyone had done what was necessary. This was annoying, boring and dragged out the game longer than it needed too. This is also no longer the case.
- When voting, the time limit for a decision was always one minute. This has been altered to allow more time depending on how many players have successfully submitted sentences. An additional ten seconds has been added for every player after four. So four players have one minute, six players have one minute and twenty seconds.
- The code itself is far cleaner than it was in previous versions, with each "phase" of the game perfectly split up for easy maintenance. Although of no relevance for you guys, it did allow for easy implementation of #3.
- In previous versions, the game would only last for 18 rounds. This has now been bumped up to 20.
Those are just the things I've added in today. The game itself is very simple and doesn't leave much room for expansion unfortunately.
The only thing I've really thought about adding in the future was a simple configuration file that would allow hosts to setup the game how they wanted. For example, how many rounds per game, what opening sentences the game would randomly pick, and a means to set the key of the host (for use with Linux Dream Daemon and whatnot). If no config file was found, the game would generate one with the default settings for easy manipulation.
That and the whole scoreboard and medals thing, which is what I'll probably work on tomorrow (ignore the medals and scoreboard already there, they were tests I was running when that system was first released).
I'm also willing to bet a lot of you haven't played it before, and chances are the only way you know of it would be from going through the various hubs I have listed in my own blog. If you have played it before and enjoyed it, good news, it shouldn't take me very long to punch out a working beta version for us to play test.
If you haven't played it, I might as well outline what the game is and how it works, just to see if it's your cup of tea:
The game itself is simple. When the server starts, it'll pick() a random opening sentence, as the beginning of the story. For the sake of example (and actuality, as it's my only starting sentence presently), say the server picked "It's a dark and stormy night" as it's beginner. Once three players had joined the game, round one would begin.
The players will then be given a text box in which they can continue the sentence how best they see fit. In the above example, someone might submit "The lightening was flashing in the sky before loud bursts of thunder rattled the walls" and someone else might submit "The sound of the thunder echoed through the hallways as I lay in bed, hoping the storm would quickly pass me by."
Then, if the minimum required submitted sentences was met, players would vote for the best fitting sentence to continue the story. The sentence with the most votes would be the winner, and the person who submitted it would score three points, the runner up would score two, and the third highest would score one.
After which, the winning sentence would be tacked onto the story, and the entire thing would repeat, with players needing to submit a sentence which best continues the now amended story.
This would continue on for roughly 18 rounds until the game ended and a winner was named. The winner obviously being the best writer (or depending on the crowed your playing with, the person who submitted the most awful sentences, people voted for it simply for "the lulz", which in my opinion, just ruins the game).
Once completed, beta tested and polished over the course of May, I plan on permanently hosting two servers (as the game takes up next to nothing resource wise), a heavily moderated server for serious players who want to take the game seriously (me!), and a non-moderated server for those who are "in it for the lulz". Hopefully, this will leave me to enjoy my own game without looking like an unfair tyrant, and others able to play the game how they desire. This is all with the host files up for download, so you can ignore my server and host your own.
So there you have it. Feel free to post any ideas you have for improving it, or even beginning sentences you'd like me to build into the game.
[Edit] Oh! Here's a screenshot of it's current look.
(The journey of making this relatively simple game starting way back in 2005 to now is, in my opinion, an interesting one of self discovery and reflection. But this post is long enough, I'll post that one here later.)