How do you eat an elephant? Piece by piece of course. And what does this have to do anything I ususally write here?
I have been working on my Haskell game for almost a year now. There isn’t much to show yet, but things are slowly taking shape. Stars, planets, people and pets are already around. There’s beginnings of a tech tree and very rudimentary implementation for constructing buildings. In a sense it’s like eating an elephant. There’s this gigantic task that I don’t quite even know what it is about and I’m trying to get it done piece by piece. Trying to tackle everything in one go would definitely be a wrong move here.
I’m starting to get to the point with my Haskell skills that programming session doesn’t always start by me reading couple articles in order to understand how to do what I want to do. Granted, the program is pretty simple currently, but it’s slowly growing to the direction I want it to go. I’m especially fond on how there’s “real” world that is used for simulating and then every person have their own interpretation of that real world. A person might have completely incorrect information about something, firmly believe in that information and act accordingly. One portion of the game where this pays a big role is understanding opinions of other people. There might be two people that player doesn’t know well. When they are trying to figure out what those characters think of each other, these uncertainities are factored in. If you don’t know that one character is coward while other one is brave, you can’t understand why they don’t like each other. Even more, those two characters might have different view of each other than the player character.
So, which part of the elephant I’m currently eating? Spaceships and more specifically their crews. I wanted something simple that I could implement relatively fast, but turns out that crews are pretty complex problem to solve. There’s different positions: commander, radio operator, artificer and so on. There’s different ranks: 2nd class, 1st class, senior and chief. Every group of 5 second class crew members is supervised by 1st class crew member. And every group of 5 1st class ones are supervised by senior one. Whole bunch is supervised by single chief. And all those members need place to sleep and food to eat. Sometimes ship might be running with smaller crew than what’s optimal and so on.
So, there’s plenty of things to consider and write while trying to stuff ship full of crew and have them to do something sensible together (and I haven’t even looked into writing an AI yet).