Everything that's been said on TIB, ever
- Fractal algorithm to generate map
- Planet-sized game world
- Cities + countryside
- GTA-style local-level gameplay
- Greater goal of breaking free from some form of opressive regime
Connecting the Fractal City
Perlin Noise
At the moment I'm aiming for a cyberpunk world on the verge of social/economic/environmental collapse, which gets pushed over the edge by a nice friendly nuclear war. You're near one of the bombs when it goes off, and don't really want to hang around to get eaten alive by the hoardes of mutants (of course), or killed off by radiation poisoning. Or another nuke. Cue an epic trip cross-country to try and reach one of the last surviving mega-cities, which if you're lucky will be controlled by a friendly corporation who will let you live there. If not then you'll probably blow them the hell up and go look for somewhere else.
This means there'll be a few different NPC types in game:
- Refugee. They just want to get the hell away from where they are now, like you do. Some of them may be a desperate as you (car theft, murder, etc.), others may be more friendly. Others may just be waiting for the right opportunity.
- Mutant. Possibly infected by some killer virus, possibly mutated by radiation, possibly infected by mutated killer virus, possibly all of the above. Exactly which doesn't really matter from the gameplay standpoint, all you need to know is that they like to eat people and to infect others with the virus. Some of the mutants will have enough higher brain functions left to use weapons and cars. To ensure the virus spreads quick enough to be a threat to the player wherever he is, there'll probably be an incubation period of several hours during which an infected person can continue to flee from his current location.
- Corporate police. These guys have the best guns, cars, and cybernetic implants. If their parent corporation is still alive then they will be a formidable enemy, but if they've been wiped out by the war then they should have little backup and be relatively easy to take care of.
- Tribes. These are groups of people who have decided that enough is enough, and they want to set up their own civilisation somewhere. Some will be friendly, others will want to kill you and take your posessions for themselves.
- Corporate assault drones. Some will have gone haywire and will attack everything they see, others will be incapacitated, others will still be in active duty and killing whoever their controller tells them to. You can probably incapacitate and reprogram some of them.
Vehicles will probably be a bit more complex than those in GTA. For a start they'll have fuel requirements (Which will be more of a concern when you're out in the desert), and will probably allow you to attach armor/weapons/etc. so you can use them as weapons. Similarly the player will be more complex than the average GTA guy - you can get radiation poisoning, you'll need to eat & sleep, and you can use a limited number of cybernetic implants. At the moment there probably won't be any form of character creation screen - there simply isn't enough diversity available in the possible character types that would have a significant effect on play style or your chances of survival.
The game is likely to start a day or two after the nuke hits the city that you're near/in. The explosion would have caused you to get buried under some rubble, so you'll have only just woken up/crawked out. Most of the population will have already left the city and only the mutants will be left. There'll be very few cars to steal and few supplies to use, so your first task will be getting enough stuff together to let you escape the city and travel somewhere else. Once you reach the next settlement you'll probably trigger an event such as a hostile tribe or some mutants arriving, which will force you to leave the area and go looking for somewhere else to stay. Basically you need to keep moving if you want to stay alive :)
The winning condition for the game will probably be that you've found somewhere nice to live which is free from any threats. Exactly how the game will judge this to be complete is undecided - e.g. it could be a mega-city controlled by a friendly corporation, or it could be after the antidote to the killer virus has been found and you're somewhere safe from hostile tribes. Alternatively you could obtain transportation off of the continent, or the whole world could have gone to hell and death is inevitable - the aim of the game is to see how long you can survive. A resourceful player could set up camp near a corp-controlled city, wait for the mutants to invade and infect everyone, then go in to collect supplies before moving on to somewhere else. However people might not like the notion of an unwinnable game, so I might make the world have a total population. The game will then be able to work out when you're the last man standing, and thus you'll have won the game - no matter how improbable it may be.
Hmm.
More musings:
Well if you find yourself in the middle of a city full of mutants, then it'll pretty much be never-ending waves of enemies until you can work your way to the edge and escape. If I place the big corporate buildings in the middle of the cities (so all the best supplies will be stored there), then it would give the player an incentive to try and reach there. Especially if there are a few working aircraft around so they can get a free ride in/out ;)
Out in the desert though, it will be smaller, infrequent encounters like the ones you describe. During the day you'll probably get convoys driving along the roads, and at night you might find a few of them who have stopped for the night.
Maybe. I think there'll be too much anarchy for the corporations to bother tracking every criminal. Although being able to work for the different corporations would be nice, I don't think there'll be much in the way of missions in this game.
At the moment my current train of thought is to forget the portal engine idea and go back to an overhead view. Still keep the near future dystopian/cyberpunk/apocalypse setting, but instead of being an average joe you'll be an inmate in a penal colony akin to the ones in Escape from LA/New York. Basic premise is that the apocalypse/killer virus/whatever has occured, all the prison guards are dead, so you're free to break out and create havoc among the remaining populace.
If each major city is built like a fortress then I can also forget about a limitless map and instead write a generator for fixed-size city maps and wasteland areas. I could even go as far as using hand scripted missions (Or templates for the map generator to fill in) instead of complete randomness.
Dev thread
- Initial target system, map structure/rendering musings in first post
- Game world musings
- Vehicle graphics, ped graphics, other sprites
- Ped, car control keys/logic, car seating, car & ped definition files Seating MK 2
- Ped type definitions, sprites and animations
- Game name, basic vehicle stuff, collision detection, cars-on-slopes problem
- Diagrams
- More collision detection hell
How to kill a car:
In GTA 1, the performance of a car would decrease as it gets more and more damaged. This would coincide with a change in the engine sound. Eventually if the car got too damaged it would blow up.
In GTA 2, I *think* the performance stayed about the same. Instead smoke and fire was introduced (or at least fire was, not so certain about smoke). After receiving enough damage a small fire would start on the car. A few minutes later the fire would grow, and shortly after that the car would explode.
In GTA 3+, the performance of a damaged car would remain unchanged (Except for burst tyres). Smoke and fire is used to indicate the condition of the car. However rather annoyingly cars explode only 10-15 seconds after catching fire, which combined with the crap "exit car" conditions usually results in you getting blown up.
What I'm thinking that we (I) should do for this game is to have the cars behave more like they did in GTA 2. Once on fire a car will burn for a few minutes, giving you plenty of time to escape before it explodes, instead of leaving you to die by a stupid game mechanic (The rules which govern how you can exit vehicles). Generally speaking, enemies in GTA 3+ only use projectile weapons, wheras in GTA 2 they are fond of grenades, flamethrowers and rocket launchers. These can make them much tougher to take down, thus balancing out the fact that cars are more durable.
I'm also thinking that there should be other methods of disabling vehicles, beyond them getting blown up. Being able to pop tyres will be a bit too detailed for a top down game, so that's out of the question. However engine wear and damaged radiators are quite possible. I envisage the cars as having the following attributes:
- The remaining armour level of the car
- The remaining engine health of the car
- The strength of the car fire (0 for none)
- The engine temperature
Driving the car too fast for too long will raise the engine temperature. Once it reaches a certain point steam will start coming from the radiator, and the engine will take damage, decreasing its performance.
Shooting the car or crashing it into objects will decrease the armour level. Once the armour reaches 0 the engine will start to take damage; once the engine receives enough impact damage (gunfire, crashes, etc) there is a chance that it will catch fire.
The fire attribute will be used to model car/engine fires. Torching a car will start a fire, as will shooting a damaged engine. If the fire is small it will be classed as an exterior fire, and only damage the car's armour. Over time the fire will grow, until it gets classed as a large fire - at which point it will damage both the engine and the armour. If the armour level is at 0 then the armour fire damage will not seep through to the engine; the fire will just be cosmetic, burning on the remains of the chassis.
Once the engine health reaches a certain level the engine will stop functioning all together. Once the engine health reaches 0 the car will explode, killing the occupants. Due to the formulas involved, this is only likely to happen through impact damage or fire, as opposed to through overheating.
- More collision detection/movement #2 #3 Proper vehicle movement code
- Mission script system Mission variables Mission script tokens, variable repository Expression parsing
- Network play
- Lame psuedocode #2
- Assets and asset management
- Gameconfig file prototype
- Storyline & mission progression (respect meter, prison map), animated map tiles, Objects, handling of nameless sprites
- Goal-based Ped/car AI, ped/car events
- Ped AI control (auto/manual, for autonomous peds & mission scripts), spatial sorts
- Gang system, gang interaction musings:
One thing that does need thinking about though, is the gang system. Each ped will belong to a gang, the relationships between the gangs will dictate how they react to each other, some AI modes could be set to target specific gangs, etc.
...
You can then use the gang information to specify what ped types should spawn in a map region, the target for an AI goal, etc. GANGAI POLICE KILL CRIMINAL would cause the police to kill criminals, GANGAI CRIMINAL JACK NORMAL would cause criminals to carjack normal people, etc.
- Music players
- Specialised screen plotting routines
- Screen rendering overview (plotting order)
- Sound buffer/error handling woes #2 (OS_ChangeEnvironment = win?)
- City generator work #2 #3 #4
I still haven't thought up any big, sensible ideas for a storyline, so I think I'm just going to start with something simple. You will start in a city, the city will be fairly ordinary, and you will be doing a variety of missions for the different gangs/corporations in the city. We can just assume that the player's character is criminally motivated and feels that doing these missions is the right thing to do.
I still need to find some motivation for the player to move to a different city, though. In GTA 1/2 it was just a case of raising enough money (typically by completing most/all the missions), and then being allowed into the next city. This is a fairly weak system to use, and won't fit very well with my plans for interconnected maps.
There are a couple of more sensible ways I can think of unlocking the later cities - either you are granted access to them (e.g. by being given a new form of transport), or something forces you out of the current city (e.g. you become a notorious criminal and suddenly everyone is after you - or some disaster strikes the city that makes it almost impossible to live in).
The first option is OK, but can make things seem a little contrived. The second option is a bit more dramatic, but if you're able to revisit previous cities then it could potentially be a game-ruining experience - e.g. at one point in GTA 3, the mafia will turn against you. And the shotguns they use do a lot of damage, making it very difficult to travel through their territory without getting killed - much more difficult than with the other gangs that hate you. Also, if the disaster is big enough, it might not leave the city in an interesting state (e.g. if the population dies, it won't be very interesting at all to go back and visit)
One good thing I have realised though is that there's no particular reason why I need to prevent the player from going out and visiting other cities before the missions in them become available. In fact, I could make all the missions available from the start - but that might just lead to people getting lost and feeling like the game has no real direction (Mostly because it won't). And the more free I allow the player's movements to be, the more I get drawn towards my original idea of making DeathDawn a game of survival - that the game world is virtually limitless, you're able to go pretty much anywhere you want, and something forces you to keep moving if you want to survive (war, zombies, killer bees, council tax, etc.) Or there's some far away goal that you're searching for.
The trouble with this approach is that it would involve a lot of dynamic content, which could quickly get boring if not done right. Compared to a story-driven game where if you don't like it much you will at least know that there is an end to the game and it may be worth your time playing through to the end before giving up.
This almost makes me want to write to game modes - one story-driven one, and one dynamic, survival based one :(
#2:
Yeah, I think I might try the open-ended approach. The only thing that was stopping me before was that I couldn't find a sensible reason for the player to stop for a while in each city - but now I don't think that's much of an issue. The player might naturally want to explore the city (escpecially if there's the potential for some better weapons or vehicles hidden in it), and it should be possible to modify the map generator to run in the background to get rid of the pesky loading screens.
Of course, this will elevate it from the status of being a simple GTA clone to being a much more complicated free-roaming survival game that will take ages to balance :P
#3:
The two choices for setting I have are a Mad Max-style post-apocalyptic wasteland, or a Bladerunner/etc. cyberpunk dystopia (i.e. big city). Or somewhere inbetween. Or somewhere including both extremes.
The two choices of storyline are either no storyline at all (e.g. it's just a game of survival), or a fairly structured set of missions making up a storyline. Or somewhere inbetween.
Of course it's rather hard to fit all of that in one game, which is why I was trying to decide on just one subset to focus on. But I don't seem to be in the mood to pick one :|
#4:
But I'm of the opinion that if in order to create a cohesive world and storyline, I'll need to have everything planned out.
For a post-apocalyptic storyline, you'll have to have some sense of when the apocalypse was. A couple of days ago? 30 years ago? 100 years ago? 1000 years ago?
This wouldn't be such a hard decision, but you've also got the cyberpunk element to take into account. For me, the draw of cyberpunk is the emrgence of cybertechnology into society. So there'll be people with implants and people without. The implants would, for the most part, provide better performance than the original body parts. This means they're rather advanced, technology-wise. But if you've just had an apocalypse, would there be enough technological knowhow around to bring about a cybernetics revolution? What reasons would people have for replacing natural body parts with man-made equivalents? And of course it's a bit hard to have a cyberpunk dystopia in a load of open fields, so there will also have to be a few large cities dotted around the place. Large cities need a lot of resources to exist (food, building materials, power, etc.) - so there must be some form of industrial backbone to the nation. A backbone that either survived the apocalypse or was rebuilt after it. (Or, if the apocalypse is ongoing, has just been destroyed and could act as the catalyst for the games storyline).
If the apocalypse was a very long time ago, then it's possible that it sent the world into a technological dark age, which it's only just recovered from. But if it's that long ago, the after-effects of the apocalypse (irradiated areas, zombies, etc.) which would make a post-apocalyptic game interesting aren't likely to be present. It might as well be a straight-out cyberpunk game.
Now do you see what the problem is? :)
If I proceed without planning everything out, it would probably be OK for a game with a weak storyline. But could be very harmful for a game with a deep/big storyline.
On the other hand, if I do plan everything out, it will throw up some tricky questions, but at the end of it all I'll have a cohesive environment to base the game in, complete with a list of rules dictating what does/doesn't exist. This would result in a much more believable world (good for a survival-style game) and/or a much better storyline (good for a story-driven game).
Post-nuclear war megacities, as laid out in current story doc, along with details of cybertechnology introduction.
(Continuing my idea...) - faction system, pre-game segment
Also, I'm leaning towards having a pre-game segment (i.e. like the bits at the start of Half-Life 1/2, Doom 3, etc. where you can wander around in safety before all the nasty aliens arrive). This would help to provide a bit more depth to the game, and would be beneficial if I follow the "survival game" route - the player can start off as an average joe in a city, only for something big and disasterous to happen 10-15 minutes in, kicking off the survival game. (side-thought: Hmm, survival game. Battle Royale. Hmm.) This would be a much better start to the game than just dumping the player in the middle of the action and saying "Yeah, something bad has just happened. Sucks to be you."
Basically, the dream was somewhat inspired by STALKER (as have been a couple of other dreams I've had recently - so perhaps the game wasn't so bad after all). I was the leader of a group of people in the middle of a post-apocalyptic wasteland. There were some strange mutant things out to kill us, and our job was basically to survive. But to cut to the chase - I was only the leader because the people respected me. (Actually, I think there were several people in charge, and we were all following the same agenda. People would listen to whichever one of us was around at the time).
So when I woke up, this obviously got me thinking about the respect system. The more people respect you, the more willing they are to take orders from you, and follow you around. If you've shown the ability to survive in a harsh, post-apocalyptic wasteland, then people will want to follow your lead, so that they themselves don't get killed by the radiation, killer mutants, or roaming bandits. Eventually, if you build up enough followers, the game has the potential to transform from a singleplayer action game to an RTS, where your followers have enough respect for you that they'll build fortifications where you tell them to, and go off to die in battle when you tell them to. This RTS aspect would also go well with the Mad Max-style survival game, because then you'd be free to choose whether you want to live life as a loner or try and help everyone around you defend themselves from the dangers of the new Earth.
But then the implementation issues hit me. I won't have enough RAM to track the respect of everyone vs. everyone else, so I'm going to have to simplify it. In GTA 2, criminal gangs (factions) as a whole could respect you - not individuals in those factions. In GTA:SA, there was only really one faction you could gain respect from, but they introduced the ability for you to form gangs with members of that faction. The more respect they had for you, the larger the gang could be - essentially the same idea that my dream lead me to.
So if each individual had an allegiance to a faction (or to multiple gangs - perhaps using a sliding scale, so you could be 80% police but 20% bandit), and if each faction had a respect for the player (and any other key NPCs?), then the game can work out whether each individual will want to follow your lead. And similarly, whether each individual would want to shoot you, or offer you work.
That would be a good way of handling player respect, but what about NPC respect? There will be gangs of NPCs roaming around - will they have a leader, or will each member operate autonomously? I suppose the simple answer to this would be "Yes, they do have a leader", because that way the same system can be used for player-led gangs as NPC led gangs. But the question is how to represent that leader - does each ped have a 'leader' attribute, that contains the ID of the leader ped for that gang? Or is there a list of gangs stored somewhere, where each gang has a list of its members?
I suppose the best way would be to have a seperate gang list structure, because that way it's easier to count how many members there are in a gang, makes the selection of replacement leaders easier, etc. But it does mean I'll have to add some extra stuff to the load/save system ;)
By expanding the gang system to support things other than pedestrians, it could be a way of saying "This car belongs to this gang", rather than "this car belongs to this faction" or "this car belongs to this individual".
And as usual it looks like a lot of the engine backend stuff comes down to juggling data structures, which makes me wonder whether we have a better language available to write it in than C.
Summary: Each ped type belongs to a faction. Player is in his own unique faction, thus game only needs to track faction v. faction respect values. Player can never officially join a faction, just get good enough standings to work for them; can also apply for cyborg bodies, etc. if they like him enough.
Developing the ideas for the factions is also helping me clear up some of the implementation concerns - i.e. it's now quite clear to me that all peds of a certain type will belong to a certain faction. Thus the only way for a ped (mainly the player) to change to a different faction would be for him to change to a different type of ped - which makes sense anyway, since if you were to convert to a faction that makes heavy use of cybertechnology then your appearance will change because you've been given a cyborg body. However this may result in some transformations being one-way only - if you've had your body replaced with a mechanical one, would you later be accepted into a technophobe society? Or would you first go to the genetic-enhancement society and get them to grow you a new body?
Or, alternatively, the player would be restricted from officially joining any of the major factions; thus the player exists in his own special faction. This would also simplify the task of handling relationships with the factions (i.e. the respect system), because it would just be faction vs. faction instead of player vs. faction and faction vs. faction (or even ped vs. faction if peds in general are able to change faction).
Gameplan as here. Justification as follows:
This does mean that in effect many of the cities will be closed off from the player at the start, but I think this is a requirement if the game is to work as a running-around-and-shooting-things style game. I could easily have all the cities open at the start, and implement missions where the player is a delivery boy, pizza chef, flower arranger, etc., but it wouldn't make for a very interesting action game, would it? For it to be an interesting action game, the player needs to be forced into "action" scenarios if he wants to progress, and with the absense of a proper storyline to follow, those action situations are going to have to come as a way of enabling the player to explore new cities (or make money once inside them).
Or at least, that's what I'm going to keep telling myself, in the hope that I don't spot a flaw in this design and have to start from scratch again :P
TODO:
DOCS: UNKNOWN: Move text blocks into other docs as appropriate
???
Profit!