NOTE: If you are using a chunk of code from this program, please credit me. :)
More than 400 lines of code! More than 12 hours of working! More than 40 bugs (that referencing before assignment error was the worst)! 1 game! :D
This is Among Us TESTING, which is based on the game Among Us. You are in a ship, and there are other humans beside you. Some humans are imposters, and some are crewmates. The imposters goal is to kill all the crewmates, and the crewmates goal is to complete all the tasks.
TESTING - Started the game
There is a bug where you can do tasks and the task number will go to the negatives.
Here are some common questions that one might ask.
How Does This Game Actually Works?
The humans in this game aren't really real humans. They are just bots.
I have been thinking for a while on how the tasks should be implemented, since in the real Among Us, they have graphics, but in this game, we only have the terminal, so I simplified the tasks by a lot.
The bots here are extremely dumb, so it's literally a game of chance on what the bots will do. (basically, the bots don't care on what you do)
What Do I Plan To Add? (detailed)
I'll be going in detail for the updates I plan to add.
This is pretty self-explanatory. I'm going to be implementing more rooms. I think this may be complex, since I would have to have many programs running at the same time (1 for each human, perhaps?) So, I think right now, this update won't be happening soon.
I'm thinking on how I should add more tasks. It would be very nice if you guys could give me some tasks that I could possibly use.
Chatting/Voting System with AI
For the voting system, I'm planning to had a chat with bots. You can chat with the bots, and the bots might respond to you. Based on what bots type, it will influence the choice of who the bots will vote for. For example, a possible conversation could be (sus means suspicious)
You (Cyan): I think red sus, since I think red vented
Green: Yea red sus
Blue: I'm thinking cyan sus
You (Cyan): why would you think that?
You (Cyan): bruh
You (Cyan) voted
NO ONE WAS EJECTED
More abilities for the imposter
Since there are no rooms, imposters can't really vent. For now, the venting will probably just be a "you can travel anywhere" thing. Basically, the crewmates can only follow a path to go to different rooms, but the imposter can go anywhere from anywhere, similar to teleporting.
Sabotage will be implemented soon. For now, the only sabotage I know is sabotaging the lights, so I'm thinking when the lights are sabotaged, you cannot move do anything except wait for the instructions to somehow fix the lights. Please comment on what other types of sabotage I could implement!
Ability to observe for crewmate
Right now, for the emergency meeting, it's mostly based on luck, if you eject the real imposter. When you observe a human, you can't do any tasks, and you can't host an emergency meeting, but you can see every single thing they do, whether they pass, do a task, or even kill someone. This could lead to more strategy.
You may be thinking right now, "Hey @Smart0ne. There are SO MANY cool and awesome things about this game, but how do they actually look like?" Alright, I prepared for that. I will show you some of the most intense moments in this game when I tested it.
The above picture was my winning the game as crewmate by completing all the tasks. It was intense since if the imposter killed anyone (1/2 chance), we would instantly lose. This started when we had 5 tasks left. :O
The above picture was my losing as imposter. I wanted to eject one of the crewmates, but then both of the crewmates voted for me, so I got ejected instead. :(
Thanks for viewing this project! Hope you have a good day!
For rooms and movement, you can do something like I did here: https://repl.it/@AtharvGoel/MazeRunner#main.py
I made this game to simulate the first book of the Maze Runner series. Basically, you are just trying to escape the maze. For your purposes, you can do something similar, except with a ship instead of a maze. The program works by creating a string layout of the maze. Different letters signify whether that position is a path, wall, etc. Then it prints out a small area, highlighting the letters with colorama based on what letter it is. I used getch to detect keypresses, so enters don't have to be used in between.
it would be nice if when you die you could see the tasks still getting done, until everyone finishes a task, or until red kills everyone. and i figured out that only red is the imposter, nit any of the other characters, so it made it really easy to win when i wasnt the imposter.
im also thinking it would be great if each character had their own set of tasks to complete.