Okay first of all I wasn't sure what one to stick it in, so I put it in graphics, 'cause I guess that's what it's about most of all.
I've had an idea that I think would be really fun to implement, but I can't do it myself for a lack of knowledge about the graphics and other related stuff, so I was wondering if someone would like to work with me on this or something.
So yeah basically, it is a game, or a simulation you could call it that uses A.I (something I've wanted to code for a while).
Basically, it is a simulation that is made of dots, or birds-eye view of people, and a map that contains lines that represent walls and other objects. There are two main types of dots, zombie (infected) and survivor (non-infected). Just by knowing this you can probably guess what the simulation is about; the survivors trying to survive being infected by the zombies, but the idea is that the survivors will employ strategies to increase survival through an A.I, they are supposed to act like what humans would act like if they were put into that situation. It's supposed to be just a fun programming practice but perhaps if it works out good we can actually turn it into an app for a smartphone or something.
Now, the core action of both dots are as follows:
- Infected chase the nearest non-infected dots.
- Non-infected dots go as far away from the nearest infected dots as they can.
The game starts with one zombie and 25 survivors (for now).
I will now list my ideas on how the dots are going to be programmed to do more than just run away/chase:
- When a zombie manages to catch a survivor, it will start biting it and making the survivor lose hit points, another survivor, if their courage is high enough (explained later), then can stop the process of the zombie biting the survivor, doing this will stun the zombie for a moment to give both survivors enough time to run away, also some times the survivor will be able to wrench themselves from the zombie and stop it biting it.
- If a zombie does manage to reduce the survivors' hit points to zero, it will move away and the surviving dot will turn dark gray. This means that the dot is downed, but not yet dead. It will continue to lose hit points until they reach -25, then it will die and become a zombie. Downed dots can be revived by a medic dot (explained later) with a reviver, and a defender can also give the downed dot an adrenalin boost that will increase the hit points to zero again, letting the dot live a bit longer so the medic can get to it. Downed dots can crawl slowly, and will crawl to the nearest medic.
- When the single zombie has managed to infect four dots, the armoury will open, which is a room that has two cabinets, one that has weapons and adrenalin needles, and one that has revivers and small handguns.
- There are two types of survivors, medics and defenders. Each type of them are randomly picked but there will always be less medics than defenders, if enough defenders die then medics will convert to defenders, dropping their revivers and grabbing a defender's gun. Medics will carry revivers, little machines that resemble defibrillators that can revive downed team-mates and small handguns, and defenders will carry large assault rifles and small adrenalin needles that will give downed team-mates longer living time.
- Zombies take damage when they are hit by bullets. They have a higher hit point range than survivors, but when it reaches zero the zombies die.
- In the simulation, there are many tasks that can be achieved, but there needs to be priorities, just like a human would. The basic list of priorities goes as follows:
-: Survive. (run away from infected) or if downed, crawl to nearest medic.
-: Revive team-mates (for medics) or shoot zombies (if defenders)
-: If lacking a weapon or revive pack, find and grab one.
-: Open doors to get through to the other side.
-: Shut doors to block zombies out. (If there are no survivors on the other side of the door, close the door no matter what. If there are survivors on the other side however, a choice needs to be made, based on zombie proximity and survivor courage level. (explained later).)
But priorities can change. No-one would survive if they didn't revive their team-mates, or shot zombies.
This is where courage levels come in. Each survivor has a level of courage from 0 to 10 that is picked randomly. Courage affects how the survivors change their priorities. A survivor with a courage level of 0 would always run away from zombies, no matter what is happening. They will never grab a medic pack, a gun or revive team-mates, they would just always strive to be the furthest away from the zombies. A survivor with a courage level of 10, however places survive low on the list. It won't try to kill itself though, as explained in a moment.
As something that needs to be done is brought to attention to the survivors, each one will decide what to do, based on several factors. Say, for example a team-mate needed to be revived. The closest survivor will be assigned to work out what to do using the A.I. The closer a zombie is to the downed team-mate and the dot in question, the less chance there is of the dot going to the team-mate and reviving it, but courage levels can influence this. For example, let's say there is a downed survivor five meters (real life terms) from the medic dot that needs to made a decision, and there is a zombie ten meters from the medic. If the medic's courage level was at two, it would probably choose running away from the zombie over reviving it's team-mate, but if the courage level was at eight the medic would go out of its' way to get to the dot and try to revive the downed dot, but if the zombie gets within a meter to the medic it will abort reviving and run away.
So a decision system like that should be implemented.
Okay, so that's the bare bones of my idea, the little details can be thought of later into development.
I would like to say that I am posting this, I suppose, just to get it out of my head. I won't actually write this unless someone with enough knowledge and optimism decides to work with me, because I'm not good at all with the graphics aspect, and help with everything else would be nice.
So yeah, feel free to offer to co-develop this with me, or even steal the idea and implement it yourself
PS. If you would like to work with me, please note that I am only fifteen years of age and tolerance will be required