This game was written in seven days for the Experimental Gameplay Project February challenge.
The challenge was to design a game using only ASCII characters (letters, numbers, punctuation). I've held true to the spirit of this theme, and although I've spruced it up with some background graphics and a user interface, this doesn't affect the fundamental gameplay which is pure text.
Your goal is to move around a set of letters in 3D space to make them align into a famous quotation. Some letters are closer to you and smaller, some letters are further away and bigger, but when you are in the right position, they'll all line up perfectly.
I would very much appreciate feedback on the gameplay. Not so much about the bugs (of which I know there are plenty, particularly in the GUI), but about the fundamental gameplay concept, whether it's fun to play, how it could be developed - if indeed it is worth developing. You can use the comment form at the bottom of the page to leave feedback.
You need Java 1.6 installed (get it from java.com if you don't have it already). Then just run the JNLP file below. You'll get a security warning which you'll need to approve so that the game can use your graphics card (which must support OpenGL2, so anything from 2004 onwards).
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Changes made after challenge ended:
- failed to load native libraries when run directly from Firefox - bug in jME3 - fixed.
- added keyboard shortcuts Z and X to zoom for those with no mouse wheels.
- adjusted zoom step to reduce frustration at being imperceptibly off target.
- fixed display becoming tiny in level 14 onward on Macs due to bug in jME3's RadialBlurFilter
The music tracks were written by Roald Strauss at IndieGameMusic.com.
Sound effects are modified from originals by sagetyrtle and Benboncan at FreeSound.org.
The owl logo is by lemmling at OpenClipArt.org. GUI images are modified from originals by Urs Roesch, Andreas Schamanek and jean_victor_balin at the same site.
Thanks to Rob van den Berg, Erik T. Heinecke, Aleksandra Holzmehl, Jeffrey Doss and Allison Marie for useful testing and feedback.
I gathered 100 quotes for the levels, but didn't have time to set them all up, and felt that there wasn't enough variation in the gameplay yet to justify that many in any case. (You can find them all in res/levels/levels.xml if you're bored: F4 in the game enables my editing mode).
There is still some scope for additional challenge with the existing code though, in particular I notice that it becomes much more difficult when the letters are not spread roughly equally around their axis.
One particular feature I'd like to add to later levels is the ability to rotate different groups of letters independently - an alphabetic Rubik's cube of sorts. This could start off with each group of letters coloured independently for clarity, but then develop into some very tricky levels indeed.
Sound: I managed to achieve the 'wind chime' effect I was looking for, but it wasn't as great as I thought it would be. So that needs some work.
Fonts: I want to add more 'calligraphic' fonts, but problems with kerning (both in the fonts I tried, and in my own code) prevented that being in this initial release.
And, quite importantly, I need new "depth generation" functions. At the moment, it's quite easy to figure out which letters should be in the middle, since they tend to stick out more than the others.
This was my second graphical game and my first 3D game in a long time, so I spent a lot of time on reading and setting up and finding my feet, so it's just as well the theme was relatively simple.
The name "Wise Up" derives not only from the obvious, but from my mantra in the first few days of repeating over and over "Y's up" to recall the correct orientation of the axes.
jMonkeyEngine3 was a pleasure to use, but Nifty GUI was a bad choice. I used it because it was bundled with jME3, but it's quite immature and I ended up spending nearly half my time fighting it. It has some good features and is one to watch in the future, but for now it's riddled with bugs, illogical behaviour, inconsistent layout rules, and lacks some key API functionality as well as any kind of useful documentation.
As you can see from the development screenshots, the basic gameplay idea was implemented in the first two days, and the rest of the time was largely spent on adding the UI and generally making it prettier. This was a mistake and I should have focussed more on developing the concept. However, as a useful result I now have more experience as well as a reusable library of functionality for future projects.
I also should have left more time to properly design the levels and develop the user's introduction to new features. During development I simply toggled each feature on and off within my test level as I developed it, so I almost hit the deadline with no levels at all.
I think for the next EGP challenge, I'll keep a day to day development blog, which will help me ensure that each day I have developed something useful to report rather than gotten sidetracked in peripheral details.