City Project [Server] is the backend part of the City Project open-source video game. City Project is a hybrid between an MMORPG and a strategy game, where players join the world, develop their characters, create villages, and conquer territories in a fully player-shaped universe.
Our philosophy revolves around open-source principles. Every tool and technology used has been chosen with the open-source mindset:
-
socket.io: Real-time bidirectional event-based communication librairie. We use socket.io to handle seamless real-time communication between the server and clients.
-
Redis: In City Project, Redis is used to manage data that requires rapid access, including:
- Player Coordinates: Fast lookup for player positions to ensure smooth movement across the world.
- Chat Messages: Instantaneous communication between players in various chat rooms.
- Other Real-time Data: Any data that requires quick read and write operations for a fluid player experience.
-
PostgreSQL: An advanced open-source relational database used for the remaining data storage needs of City Project. PostgreSQL is responsible for:
- Player Accounts and Characters: Secure and structured storage for player account details and progress.
- Game World Data: Persistence of game world elements such as villages, territories created or conquered by players.
-
Express: The REST API is built with Express, which enables the following functionalities:
- Account authentication: This is the part of the API that allows users to authenticate or create an account.
- Communicate with external APIs: This is what enables the application to communicate with external services (such as Discord, for example, to connect an account).
Join our Discord server to get involved in discussions, report bugs, or seek help.
Where every choice build a world