Copy paste planning doc into book
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Isaac Mills 2024-03-11 09:03:39 -04:00
parent ed99438f40
commit ea20471d5c
Signed by: fnmain
GPG key ID: B67D7410F33A0F61
3 changed files with 46 additions and 2 deletions

View file

@ -1,3 +1,3 @@
# Summary
- [Chapter 1](./chapter_1.md)
- [Politburo](./politburo.md)

View file

@ -1 +0,0 @@
# Chapter 1

45
src/politburo.md Normal file
View file

@ -0,0 +1,45 @@
# Politburo
Politburo is a game of social deduction and intrigue that pits friends against each other in a struggle for power.
# Defining the problem
The program in question, *Politburo*, fills in the gap between historically accurate gameplay (history buff appeal), social deduction, and backstabbing among players. *Politburo* is a game inspired by the game *Secret Hitler*, in which the liberals need to find out who the fasicasts are before they pass enough policies to win. *Politburo* is a card game that takes that idea of social deduction and historical background and adds a backstabbing aspect. The client for this project, Nicholas Doan is a history buff and plays a wide range of strategy and history adjacent games in his spare time. During our interview, he provided some great insight on enhancing the intrigue aspect of the game, and provided some useful feedback on the gameplay and themes.
# The Proposed Product
Our game will be implemented using Bevy's 2D game engine, and networking will be done with the `libp2p` library, allowing us to mostly forgo a central server. We will still need a central server running the reference `libp2p` server for connecting and hole-punching players. The client will use the `identify` protocol to connect to the central server. For matchmaking, the kademlia protocol will be used to find open lobbies. Once an open server is identified a peer-to-peer connection is established using the DCUtR protocol. The user will interact with the chat functions using the `bevy_egui` library (which will render the chat as a window in the game) and the game will be played with digital interactable cards on a digital interactable Politburo desk.
# Success Criteria
1. Players can connect to others via lobbies
2. Multiplayer is reliable and doesn't drop players mid-game
3. A variable number of players should be able to play the game
4. Players can communicate over in-game chat
5. Positions on the Politburo can only be held by one player at a time
6. Players can see what cards they have in their hand
7. Players can play and challenge cards
8. When not enough players are in the room, an AI can fill in the gaps
9. Chat messages are expressive and support a markup syntax like djot
10. Players are having enough fun to not want to leave mid-game
# Appendix A
- Rowan: The game I want to make? Have you ever heard of *Secret Hitler*?
- Mr. Doan: Yes, I have heard of *Secret Hitler*
- Rowan: Okay, so imagine that, but not at all.
- Mr. Doan: Okay, well thats good because I dont know the rules.
- Rowan: I was inspired by that to make something like this while I was walking down the street, I thought what if [I made], *Secret Hitler* but like, not *Secret Hitler*? What if *Death of Stalin* [was] a card game? Anyway, so thats the basic idea, its *Death of Stalin* but [a] card game
- Mr. Doan: I see.
- Rowan: So the basic idea on how its going to run is that there is a situation already in play or a situation card gets placed down. And the Politburo works to solve it. Or in theory they work to stall it. In reality, solving some problems will help some players over other players so some players would want to stall the solution. The ultimate aim of the game is to have your department be sufficiently popular with the people and having enough decision making power. A situation card is placed down [this part is skipped if a situation card is already in play], then you move onto the next phase of the game where each player gets 1 private conversation with every other player, which is meant to [foster] secret alliances and communications between players. And then the cards are played and the points are counted and then if the situation is solved, the current situation card is discarded and a new one is played. Thats the basic gameplay loop.
- Mr. Doan: Alright. Now what happens if a situation is not solved?
- Rowan: It continues to the next turn, and if it continues for long enough the country collapses and everybody loses.
- Mr. Doan: I see.
- Rowan: Yeah. I have a few questions for you: Other than what I have described, what kind of historical aspects of such a power struggle would you like to see in such a game.
- Mr. Doan: First of all, I dont know why you are asking me [that question] because I am not an expert of Soviet internal politics.
- Rowan: Let me put it this way: What kind of features do you want to see in the game?
- Rowan: Its mostly, yeah, the latter, the players are given a position on the politburo - Chief of the Army, Minister of Internal Security, Minister of Propaganda, etc… I was kind of thinking about [a scandal mechanic] where each player gets a secret.
- Mr. Doan: Yeah, I think you need some kind of random secret in order to make things interesting. You can of course just fabricate secrets as well, that totally works, but if the evidence isnt there… So then I think you need some kind of investigation mechanic where someone can accuse someone and there can be an investigation and if you havent done it right where you haven't paid off or bribed some key witnesses or planted fake evidence then the investigations gonna turn up like “No, that was false.” And then it gets turned back on you. Now people can accuse you of libel and falsely blaming people and all sorts of stuff.
- Rowan: All right. How long do you think this would go on?
- Rowan: Max 8.
- Mr. Doan: Ooh, that could go on for a little bit. Because thats a lot of talking that you need to do. Well, you said only a minute for each player. Id say at minimum 30 to 45 minutes to an hour. Youd need to run playtests. This sounds very similar to Model UN Crisis ad hoc conferences which feel like they can go on for a little bit. Although, we completed ours in like 2 days, but that was with everybody calling for unmods and “we need to write papers” and whatnot so I actually think 30 minutes is reasonable.