A New Project: Untitled Game

Xavier describes his creative process in making a (currently untitled, text-based) game and discusses other topics such as programming, game development, and linguistics.

I’ve begun work on yet another project, because I have difficulty focusing on only one project at a time (or, rather, I have difficulty focusing on one project for an extended period of time, resulting in me rotating which project I’m working on).

The project itself is a currently untitled and I’m not sure what the main story will consist of (though I have a general idea), but I know a few things about it:

  1. It will be created using a game engine (story-making tool?) called Twine. That means that it’s going to be a text-based game, kind of like those old choose-your-own-adventure books.
  2. The game will take place in Kithria, the world I have created for low-fantasy stories, games, and whatnot.
  3. Like most of my other works, it will explore various social themes, including (but probably not limited to) racism and sexism.

Below are some of my thoughts so far as I’ve been working on the game.

Working with Game Engines

Disclaimer: I am aware HTML is technically a markup language and not a programming language, thus why, when I’m referring to both, I use the term ‘computer language’.

HTML is relatively simple as a baseline. Before I started working on this game, I had a little experience with HTML during my time as a CS major and the web developer for the Daily Egyptian. I could take a template that already existed and mess around with it to make the website I wanted. As well, I could make a (admittedly garbage looking) webpage from scratch fairly easily. What I could not do was create a beautiful webpage from scratch. And I still can’t. But Twine is based in HTML, so it should help me learn, maybe. Right?

Wrong!

I learned a similar thing when I first started working on Project Divus, in which I played around with Unity a bit. For those who don’t know, Unity is a game engine that is based in the programming language, C#. Making a game using Unity, however, requires more knowledge on how Unity works than how C# works. This is because Unity has its own classes, methods, and functions built in that the programmer needs to know how to call properly. Unless you’re adding completely unheard of functionality, the chances of you needing to know C# seem to be pretty slim, and knowing C# won’t make you proficient in using Unity.

This also applies to Twine. The only actual HTML I have used in the 6+ hours I’ve spent working on this game (at the time of writing) is to make a table so my buttons don’t look weird. Other than that, it’s all been calls to macros built into Twine or SugarCube (a sort of secondary engine built on Twine), none of which are accessible in basic HTML. Both pieces of the engine (Twine and SugarCube) have their own documentation, just like basically every computer language (Unity also has such documentation).

This all comes down to one main idea: engines themselves are, in effect, child languages of whatever language they’re based on. This is perhaps why creating an engine is so difficult and time consuming – in fact, many developers forgo it because creating a proper engine can take years for a relatively simple game – because you are trying to build a new language.

As well, this goes to show that just because someone is proficient in a given computer language doesn’t mean they’re proficient in engines based on it and vice-versa. Although, knowing a single language from a family of languages makes it far easier to understand other languages; e.g. object-oriented languages, such as Java or C#; or Romantic languages, such as Spanish, French, or Latin. Obviously knowing one language won’t make you fluent in the others, but I know of plenty of university students who have been able to decipher Latin documents because they know Spanish.

Nothing in Game Development is Simple

I already knew this was the case. Most people who have tried game development already know this to be the case (probably). Those who don’t know this to be the case would be anyone who has never tried to develop a game or watched someone develop a game (or who has used a very simple drag-and-drop engine, which generally aren’t powerful and are less of making a game and more making a level in a game unless you really know what you’re doing and you put a lot of time and effort in, but I digress). Making what you think could be the simplest addition to a game takes a long time. I mentioned before that I have spent 6+ hours working on this game in the past two days. All that time was spent on character creation (which I’ll discuss later), and that part isn’t even done.

On top of that: if you’re not careful, a single wrong word can spend hours to fix (especially if you, say, wrote a line of code that you knew you would be using again and just copied and pasted it to the new location only to later realize it was wrong). On the bright side, none of the bugs I accidentally included in my code took hours to fix. They each took half an hour, and there were approximately a lot of them. Most of that time, of course, is finding out what you did wrong; often, once you’ve found the problem it’s fairly simple (though it’s usually either changing a single character or sifting through the whole document to find every mistake). I once had a project to create a parser for a programming language in one of my CS classes; it took me 2 hours to figure out how to fix it (with the help of my manager at the DE of the time) and all I had to do was change a 0 to a 1.

So, yeah, programming ain’t a walk in the park. But you probably already knew that.

Trying to Make Things Interesting

I mentioned, like, a bunch of lines ago that I spent over 6 hours over the course of the last 2 days working on character creation for this game. That’s because I’m trying to make things interesting. You see, appearance (and gender) in this game is more than an aesthetic choice. My plan is to make it where characters in the game will make judgement calls based on what you look like. If you’re a Shelezar but look like a Mikri and the character happens to be racist against Mikri, they’ll treat you as such. If you’re a woman and you’re interacting with a character that thinks women are lesser than men, they’ll treat you as such. The flipside is also true: if you look like a Kapfian, military personnel may favor you because Kaps are known for their combat prowess. If you’re a woman, members of certain cultures will favor you because that’s their culture. And setting up the appearance mechanics – the part where the player determines the character’s appearance on top of the part where the game goes through and sees what people group they might be confused with – took me most of those 6 hours. That means that I definitely need to make that appearance mechanic matter. Because you shouldn’t devote time to something that won’t matter. It’s bold because it’s a life lesson.

The main issue I need to find out now (before I move on from character creation; that’s right, it’s not done yet) is whether I want to follow through on another idea I had: basing the game mechanics on Lady Luck’s Chosen Few. Right now, the mechanics I have set up for the game are fairly simple and much more reminiscent of standard TTRPG mechanics: a number is generated and modified by four attributes the PC has (in this case Endurance, Strength, Agility, and Wit) and the result of an action that has multiple (more than one) pass-fail states is determined based on the final number. It’s simple and it’s easy. Making a game based on LLCF mechanics will be far more complicated. That being said, trying to work those mechanics into a text-based game like this will be a lot easier than trying to work them into a more standard video-game. So, I still need to make a decision on that.

Conclusion

So far, I’d say I’m happy with this project. Despite the pitfalls I’ve run into, it’s going pretty well and I’m making some decent headway. Admittedly, I should maybe not be putting another project on my plate, but I’ve decided to disregard that fact in an effort to add one more thing to have consistent updates that I can share publicly, alongside Isle of the Dreamer. So I’m making this now.

Lady Luck’s Chosen Few

Another project I’m working on is a tabletop roleplaying game (ttRPG – for those who don’t know what that is, D&D is the most popular ttRPG) called Lady Luck’s Chosen Few. It is intended to be a rules-lite system that is easy to pick up and easy to play. The creation of it began a few months ago after reading a blog post by The Angry GM (post itself here) about disregarding Tabletop conventions (such as ability scores) to create a better system.

In short: the article explains that when sitting down to create a Tabletop RPG, you should not ask yourself, “How am I going to handle ability scores?” but rather answer the question that ability scores were created to answer, “How am I going to resolve situations that characters get themselves in based on chance, where the character’s capabilities are taken into account?” Another way to word this is, “How is action resolution handled?”

From the problem this article presented, the idea evolved into: I want to make a ttRPG that is easy to pick up and play, is more oriented to low-fantasy settings (magic is limited or extremely dangerous and mythical creatures are a rare sight), where death lurks around every corner, combat can be easily resolved in a few minutes (thereby lowering its prevalence in the system), and character creation is based on a character first mentality, rather than stat-based.

After the jump is a brief introduction to the rules so far.

Character Creation
A staple of the game itself is that the player’s characters (PCs) are extraordinary, not because they were born that way, but because they made themselves that way by garnering the attention of some cosmic force which now guides their path. Character creation requires determining 3 simple things: what your character looks like, how they behave, and what the life event was. None of these have to do with rules or game mechanics.
After determining those three things, play can begin. But, obviously, there needs to be some way to define a character’s capabilities through game mechanics, otherwise, everyone’s the same.

Action Resolution
Any action that has a higher than ~20% chance of failure requires the roll of a standard six-sided die. Before the action is rolled, a certain threshold is determined by the Game Master (GM – controls all the NPCs [non-player characters] and the environment). If the player who is controlling the character rolls at or above the pre-defined threshold, their character succeeds in whatever they were trying to do. If they roll below that threshold, they fail. Each roll can be affected by a character’s ‘Aptitudes’, which apply to different situations on a case-by-case basis. Any given aptitude will, at most, affect a player’s roll by 1.
Practically, any injury received counts as a death blow – a roll is made to determine if a character survives that death blow.

Character Capabilities
To represent their connection to some cosmic force, a given character has a stat known as ‘Luck’ (hence, the name of the game). They can use this luck in two ways: spending it (lowering the current value) to increase a roll by however much is being spent, or burning it (lowering the max value to gain an aptitude).
Characters also start with a Wealth stat (that can only be burnt) which is used to determine what equipment they can have.

I will likely put the rules for this system on its own page of this blog as I am able.