Amsterdammit

Community Forums/Showcase/Amsterdammit

Warpy(Posted 2008) [#1]
Hello!
I've been working on this since last thursday, which I think is a record for me not posting to the showcase.

For ages I've wanted to make a game where you control a trading empire, like in Anno 1602 or any number of other German games, but you don't have a god-like overview of the whole world. Instead, you are confined to your banca in whatever port you reside in, sending ships full of letters and goods to your agents in foreign places for them to use.

There were two main problems with this idea - the first being that you need to have a simple, intuitive way of writing letters that can be interpreted by the game, but don't take too long to write and look plausibly like a person wrote them. I had a brainwave about how to solve that, so I could proceed to the second problem - that I would have to create an incredibly complex world for there to be any interest in the game - repeatedly doing the same thing over and over is only fun when there are pretty graphics to go with it.

So, the letter writing system.
I've made a system that works like predictive text on your mobile, but with an added grammar constraint that interprets what you're writing as you write it, and suggests what you might want to next write while correcting any mistakes you make. You could feasibly write out whole sentences and have the game interpret them, but most of the time it's only necessary to type the first couple of letters of the word or phrase you want and then press tab or enter to automatically complete it. It's rather clever!

And now the game world. I've arranged the world as a set of towns, all inter-connected by roads or waterways. There is a working postal system which directs letters between towns on the fastest routes. Each town has a population, which needs food in order to grow, and farmers who arrive at harvest time with their herds and crops. The player's task is to buy up raw materials and turn them into finished products which the populace can buy, while not pricing themselves out of the market. This all works at the moment, but it needs a lot of balancing, and I haven't even gone near the subject of AI yet.





Thanks,
I hope someone understands all this!


puki(Posted 2008) [#2]
Won't constantly writing letters get tedious when playing the game?

How many letters will a player have to write in a game?

I'd rather the computer auto-wrote it.

I love these types of games though - I always cheat and give myself millions of money.


Warpy(Posted 2008) [#3]
That's the whole idea, the computer auto-writes most of it. Give it a go. It's just like playing a text adventure, really.


Picklesworth(Posted 2008) [#4]
It's a pretty neat system. I like it!

After playing with letter writing for a while it felt completely natural; not as if I was communicating with a machine. Will this involve a time delay if you flesh it out more? For example, I was once pondering a real time strategy game that simulated the transport of messages back to the general, where even friendly units sent far away would be shrouded in mystery.
...I can see that actually working in this format.

Your stuff is always great, Warpy :)

Edit:
Duuh there's a time delay right in the screenshot. I honestly meant "will this make prominent use of a time delay?"
Thanks for being patient and figuring out the question :)


Ginger Tea(Posted 2008) [#5]
with a title like amsterdammit i thought it would be about running a successfull chain of cafe's and brothels


Beaker(Posted 2008) [#6]
What exactly is a "beef factory"?


Warpy(Posted 2008) [#7]
Picklesworth - Yes, there's a time delay. If you send a letter to an agent in Zeebrugge, for example, it takes a couple of days longer to get there.


chwaga(Posted 2008) [#8]
brilliant, though it's quite confusing.


Warpy(Posted 2008) [#9]
Hello again, I've done a lot of work on the game since my last post.



I've rejigged the window so the input box is underneath the scrolly thing. By the way, you can always press the up or down keys to navigate the scrolly thing, in case you miss anything.

I've implemented a save/load system that works using JSON packets. Basically, every object in the game world can be serialised so this could also be used for network code, which is one of my next things to do.

I've made the economy just about work on itself - if there is a gap in the market, a merchant will set up shop and start trading in the missing product.

If a merchant can't find the raw materials it needs in its home town, it will send letters to merchants in other towns offering contracts for that material. You can send a letter back with your price for the material and the name of your agent who will supply it, and from then on the trade will proceed automatically.


Yan(Posted 2008) [#10]
The ZIP appears to be missing "contractlettergrammar.txt". :o/


Warpy(Posted 2008) [#11]
Another update!



I've made the trading a lot more fluid and like a real market, and a variety of things have changed in the workings of the simulation, but you can't really see that.
What you can see is the typesetting system I've spent two days flat out on. I'm pretty chuffed with it - it can do different fonts, different sizes, it fits text to boundaries intelligently, and it can do columns!
Here's my test sheet:


Pretty cool, eh?


Taron(Posted 2008) [#12]
Very nice, warpy! What's next, a word processor, hahaha! :)
You should have a permanent info available for keeping track of your inventory and accounts.

I think it's a very novel and cool approach to this type of game! I like it a lot already. Would be incredible if you'd introduce a stock-ticker, hehehe! Something one could buy, once enough money was available.


Who was John Galt?(Posted 2008) [#13]
I wish I had a fraction of the inspiration for game design Warpy has.


Warpy(Posted 2008) [#14]
Look what I made!



Left click to draw beard, right click to shift filings about, match the patterns.

It runs fine when I'm in linux but extremely slowly in vista. Blame intel graphics? D3d?


plash(Posted 2008) [#15]
Excellent! This is interesting.

It runs fine when I'm in linux but extremely slowly in vista. Blame intel graphics? D3d?
SetGraphicsDriver GLMax2DDriver() ;) Works real fast after that (XP)


Taron(Posted 2008) [#16]
runs perfectly fine on XP64... lol ...what a nonsense! :o))))


Picklesworth(Posted 2008) [#17]
The really weird thing is how your games, in all their nonsense, somehow capture essential parts of life. That game somehow feels like a... a... creative shaving game. What the heck?! I never would have guessed anyone could make a game about styling hair, but that thing actually kept me occupied for five minutes.

You've captured the mundane with astounding attention to detail. Now I want to grow a beard so I can shave it!


Warpy(Posted 2008) [#18]
That is my new epitaph.

"Here lies cp,
he captured the mundane with astounding attention to detail"


Warpy(Posted 2008) [#19]
a new version!

Can't remember what else I've changed since the last version, but I've made the grammar thing a lot more versatile. Before, if I had a derivation of the form
S -> aB
I couldn't have another derivation of the form
S -> aC
where capital letters are symbols, and a is a word.

I've changed that now by keeping a stack of derivations that represent each possible derivation that could start with what you've already typed. As you type more words, the stacks that don't fit any more are removed, hopefully ending with only one stack at the end of the sentence.

I've made a few other changes to the grammar thing to make it a lot nicer to work with, such as no longer just using the first word of a derivation as its representation in the machine-readable output, and derivations like S -> AB.

So I've been able to do a lot of the things I'd previously ruled out, like having several ways of issuing the same command, and making sure you stick to correct English grammar, like "an apple" instead of "a apple", or "1 cow" instead of "1 cattle". I've changed 'beer' to 'ale' so it's quicker to autocomplete, and I've added conditional orders.

The conditional orders are "try", "if" and "when". You can type "try to <command>" and the merchant will attempt <command> every day until he succeeds, at which point he'll stop trying. Simple.
You can type, for example, "if you have at least $100 and the price of cocoa is less than $0.50 or you have less than 10 cocoa then buy 10 cocoa for the going price", and the merchant will do what you expect.
You can type "when you have at least $100 and the price of cocoas is less than $0.50 buy 10 cocoa for the going price", and the merchant will wait until the conditions are met, then buy the cocoa.

So it's all getting quite clever, and I think I have an idea of what the gameplay will be - not to micromanage your merchants' affairs on the level of telling them exactly what to buy and when, in order to profit from gaps in the market, but rather in giving them the correct orders so that they manage their own affairs most profitably. I want to do stocks and investments next, to solve the problem of what happens when a town's populace gets more money than it can spend, and possibly introduce classes of society, so certain products will be more popular with certain kinds of people, or the richer people will be more willing to spend more money for a scarcer product.


plash(Posted 2008) [#20]
I want to do stocks and investments next, to solve the problem of what happens when a town's populace gets more money than it can spend
Build the LHC!!

Quite a fascinating project you have here.


Warpy(Posted 2008) [#21]
Another diversion, which I'm considering making into a surveying / charting mini game: Eugottabeclidding (or .bmx)



It's a virtual ruler and compass set, for making geometric constructions. I've also spent a frustrating evening making it calculate the area of arbitrary polygons, even with holes in, albeit very slowly.


Warpy(Posted 2008) [#22]
Yet another diversion, in bmx or exe form.



The idea is that there is a train travelling along a railway on a cliffside, and a camera following it. The camera's view is flat-projected to give bendy platformer effect. The ultimate idea was to have mario that runs round corners.

It's very easy to break, and I've spent all day trying to work out how to get it to work, so please tell me if you think it's a good idea.