Untold Evils
Back in high school, a classmate named Stephen and I started passing the time in our introduction to programming class by creating our very own role-playing game dubbed Untold Evils. Since neither of us were artists or had any idea how graphics worked in Pascal, we did the whole thing in glorious ASCII art. By the end of the semester, we had a character walking around a map and turn-based battle encounters. Sadly, none of of this work escaped the Alan C. Pope lab.
Coincidentally, both Stephen and I ended up attending Georgia Tech. At the end of 2003 and feeling empowered with our more refined programming skills, we teamed up with a couple new friends and decided to remake Untold Evils. This time we had much greater ambitions! There would be a story, art, music, graphics, and gameplay all reminiscent of our favorite role-playing games growing up. To deliver, we would develop a game engine which not only played Untold Evils, but allowed anybody to create their very own role-playing game with minimal programming experience. Assuredly, the start of a role-playing game dynasty!
We released a couple of demos of early builds showing potential, but we never quite made the dream happen. After a year of on-the-side work on the game, we would officially call it quits[1]. We still knocked out quite a bit of the fundamentals of a game, and below are some of my favorite parts:
Real art!
For the first time working on a game, we had a real artist. Amanda created a whole set of concept and in game art, and she really nailed the old school pixel aesthetic. The perceived quality of a game really goes up ten notches when the art looks amazing!
Classic midi music
To this day, I still get psyched listening to the on-point midi music composed by Stephen. Just the music alone makes me want to take on the project all over again 😜. You can really see yourself locked in a classic turn based battle while getting ready to fire off your latest round of magic missiles.
Multi-game launcher
We wanted to not only create Untold Evils, but a game creator which let anybody make their own role-laying game using our game engine. In this vein, I built a game launcher which would let you browse, download, and run any game compatible with our game engine and posted to our site. A classic example of focusing on all the wrong things but still learning a lot along the way. Sadly, we only ever had the privilege to feature Untold Evils in the launcher.
A fully scripted game
When creating a game with a lot of scripted content, such as in a role-playing game, you quickly realize the shortcomings of mixing the game logic with the engine logic. And since we wanted anybody to be able to create a game using our engine without needing Java, we would need a more accessible language for game creators. A scripting language was born.
// Part of the script behind the opening scene in the GIF above
trigger(
key = welcomeCutscene
timesOccurs = 1
conditions[
checkFlagsTrue(initComplete);]
actions[
enableCutscene(true);
setCameraPosition(0,12);
startDefaultDialog(null, /<newline> <newline> Welcome to the world of <color-255,255,0> Untold Evils! </color>);
panCamera(45, 12);
wait(3000);
startDialog(generalCommand);
wait(2000);
panCamera(guard 1);
startDialog(guardsBlocking);
panCamera(call);
startDialog(heroIntro);
enableCutscene(false);
setCameraLock(call);]
)
I had absolutely no prior experience creating a language. Out of a combination of ignorance and thrill-seeking, I also did not even think to use a language which already existed such as Python or Lua. Thus, I created what would certainly be considered a mess by anybody other than me at the time. None the less, the entire Untold Evils game, from opening title sequences to gameplay, was built entirely in script and outside the purview of Java code. By the time Untold Evils development wrapped, the theoretical game creator had 52 script functions at their disposable to turn their role-playing imagination into gaming reality.
Footnotes
[1] I end up posting a lot of stupid embarrassing stuff on the Internet. At the wise age of 20 and still optimistic about Untold Evils, I created a post on a forum titled “programmer’s dedication (or lack there of)” in which I earnestly questioned why programmers tend to abandon their projects. And I quote, “I see projects that get started, build fancy webpages, advertise to get attention, and some even look promising, but after a month or so the project looked like it has just disappeared with nothing but an outdated news section”. Seven months later, Untold Evils, fancy webpage and all, would cease development.[/f]