The Daily Click ::. Projects ::. Web of Time
 

Project: Web of Time
Project Started: 30th December, 2009 Last Update: 3rd January, 2010
Project Owner: Muz Project Members:
Project Type: Time-travelling puzzle Project Progress:

Project Overview  
What it's about
What if things were different? What if people could back into time and change that one decision that changed the future? Your role is that of some kind of oracle, able to see all the way into the future and past, to 5 different races: humans, dwarves, elves, goblins, and orcs. You can go into any point of time to give advice to people, but not influence them directly.

The storyline is not hardcoded, which means that there's many, many threads of time that lead to the same conclusion. A bad decision may not kill an entire race if it's prosperous, but a bad decision at the wrong time could change everything.


Example event
[trigger at lvl 6 population, lvl 4 military]
Monom, a master swordsdwarf feels that the kingdom should be ruled by a powerful fighter, not by a sissy noble. He's managed to sway half the military, but the Royal Guard and the elite commando squad still remain loyal.

Nothing) The civil war rages on for a few years, the king is killed, but a freak crossbow bolt shot by a child also kills Monom. Everyone agrees to crown the child as the king.
[-2 military, -2 population, -3 stability]

A) Hire an adventurer to assassinate Monom
- Monom dies. Triggers the 'rebel adventurer' variable, where the adventurer becomes a notable person in the human plot, returns with dwarven riches and weapons, and starts an assassin guild.
[-1 economy, -1 military, -1 population, trigger for 'rebel adventurer']

B) Challenge Monom to a duel
The king dies. Monom becomes the new king.
[-2 economy, +2 military, -1 population, changed to 'dictatorship']

C) Send the commando team to defeat Monom
Many commandos die in the process but they manage to take him down.
[-2 military, -1 population]


The player can also go back in time to remove the invention of the crossbow from history, which results in (B) by default. The ideal solution to this problem is to go back in time, create an elite crossbow sniper squad instead of an elite axe-commando squad, which results in only -1 penalty. But without an elite axe-commando squad, the fortress can't fight off the giants later on...


Current phase
Coding support for mods - The game is designed to support modding, but it would be easier to read and write events by letting modders change external files themselves. Currently everything is in one file, which means that modders would have access to the source code, or wouldn't be able to write their own script.


Features finished
- A GUI that displays the events and crises one-by-one.
- Easy to use modding system, which lets storywriters write a full event in only a few seconds.

Upcoming features
- Inter-race interaction: Races can raid, trade and loot each other. Also, the possibility of decisions affecting other races.
- Events that don't do anything, unlike crises which force a decision.


Hiring
Artist: Someone to draw the backgrounds and foreground for the game

Interface designer: I have poor visualization skills, so someone with better artistic ability needs to tell me where to place things

Story/event writer: Writing a storyline is a lot of work, especially for 5 different races intertwining. A helping hand would be useful.

Project Forums Topics Posts Last Post
Public Forum
Public forum for open project discussion
0 0 No Posts
Private Forum
Private forum for project members only
0 0 No Access

Darn Lua object
Posted 3rd Jan 10, by Muz 2 Comments
Ah, a game-breaking problem. The Lua object only allows one Lua file to be open in a frame, which means no modding, without a lot of MMF duct-taping. Thankfully, the xLua object doesn't have this limitation, but I'd have to recode all the Lua objects to it.

Heh, guess I should be grateful that most of the code is in Lua, not MMF.
Starting a project page to make things interesting
Posted 30th Dec 09, by Muz 2 Comments
I've been trying to keep this project quiet until I make some significant progress on it, but it looks like there's quite a lot of things that I'm learning about that's fun to talk about. There's been interesting design decisions, so I think there's a bit for you guys to learn by making a project page dedicated to how I make this thing


Easy coding vs easy storytelling
One interesting decision I had to make early was between long code and long scripting. The problem with anything long is not the effort put in writing it.. it's the effort put in reading it. Making long code makes it harder to debug it later; long scripting makes it hard to read and write new events.

Here's an example: the array storing a value for a population growth from a crisis looks something like cri["dwa"][0][0]["PopG"]=20. This meaning that a certain decision makes the dwarf population grow by 20 units per year. It's not hard to type this, but it's hard to read in a rush. This format gives you a lot of control, like over which race it affects, which events, and how much.

But I didn't need control. What I needed was fast storytelling. There are probably a few dozen events to write and I wanted to write them quickly. Maintaining control helps in debugging and makes programming a lot faster, but it doesn't help in writing an event at 2 AM, or on the train on my cellphone.

So, I went and wrote over 200 lines of code (including comments) trying to simplify them to a few letters. I ended up with sol_popg(20), a sweet little function. Was it worth half a week and 200 lines of code? I think so, especially seeing how much faster I can make things later on.

It's not exactly a foolproof choice, though. If I had only two races, I wouldn't go to the trouble. It's like a movie set.. you just go through enough effort to make it look what you want. What goes on behind the scenes is irrelevant, you'll likely scrap it all later.


How it started off
Web of Time started off as an experimental sub-project to another experimental project. It's about trying to see what happens when you let the AI control itself. It's about how some races influence each other and stuff.

The idea is to keep it as simple as possible. I keep the races as cliche as possible so that it's easier to control. Strangely enough, it's a challenge to keep it cliche. There are points in the storyline where you can make dwarfs who live in woods or barbarian elves. This leads to a whole new way of playing. New plot threads are spawned. More threads, more possibility of things going wrong and more exploits.

Funny thing is that when you make a simulation game, there's no such thing as an exploit. The obvious choice is the right one. This helps greatly in game design. You no longer have to worry about the game being "fair", the focus is on being interesting, on exploring the solutions. Sometimes you may even choose the "hard" way, like bringing your tree-dwelling dwarves to greatness.

View Project Archive


 



Project Forums


Favourite

Advertisement

Worth A Click