Pyseas is an opensource project that aims to create a 2D, top down, turn based board game in Pygame. Where players become pirates and control their own ship. Using a card-based dice system, players explore a dynamic map, complete quests, and battle rival pirates. This game is designed to be engaging and using interactive elements using tools called Python and Pygame-CE, but you don't need to be a programmer to get involved or enjoy it!
Every game needs thorough documentation, and you can find our Game Design Document (GGD) here.
- Increasing your skills: Learn and improve your Python and Pygame skills through practical, hands-on development.
- Learn about game development: Explore the world of game development and design, gaining valuable experience along the way.
- Create something enjoyable: Contributing to a project that results in a game you and others can enjoy.
- Join our community on Discord: Whether you want to help with ideas, give feedback, or simply enjoy the game, everyone is welcome!
No need to worry if you are new to programming. This guide will walk you through the setup step by step. by the end, you'll have everything ready to run the Pyseas project.
- Clone the Repository: First you'll need to copy the Pyseas project to your computer through a process called "cloning".
git clone https://github.com/ultimateownsz/pyseas.git
- Set up a virtual environment: A virtual environment is like a seperate space on your computer where you can install the software needed for this project without affecting other programs.
-
For Mac or Linux Users:
- In your terminal, navigate to the folder where you downloaded the project (usually the 'pyseas' folder) using the 'cd' command:
cd pyseas
- Set up the virtual environment by typing:
python3 -m venv venv
- Activate the virtual environment:
source venv/bin/activate
- In your terminal, navigate to the folder where you downloaded the project (usually the 'pyseas' folder) using the 'cd' command:
-
For Windows Users:
- Open Command Prompt and navigate to the 'pyseas' folder (where you downloaded the project) using the 'cd' command:
cd pyseas
- Set up the virtual environment by typing:
python3 -m venv venv
- Activate the virtual environment:
venv\Scripts\activate
- Install Required Software: Now, you'll need to install the necessary software that the project depends on.
- Make sure you're still in the 'pyseas' directory/folder and that the virtual environment is active.
- Install the software by typing the following command:
pip install -r requirements.txt # For running the game (runtime dependencies)
This installs everything you need to run the project.
- If you plan to do any local development or modifications, also run:
pip install -r requirements_dev.txt # For local development
This step is optional and only needed if you want to make changes to the project. 4. Run the project Now you are ready to start the project!
- Simply type:
python main.py
- The project should start running, and you'll see it in action!
Deactivate the Virtual Environment: When you’re done working, you can deactivate the virtual environment using:
deactivate
If you find something that's not working right or have an idea to make our project better, you can let us know by opening an Issue
here on Github. An issue is just a way to tell us about a problem or suggest a new feature.
We use Github Projects to organize and keep track of these issues, so we can make sure everything gets the attention it needs.
Before submitting an issue, check out our Contributing Guide for detailed instructions on:
- Reporting Bugs: Learn how to describe issues effectively to help us resolve them quickly.
- Proposing Enhancements: Follow our steps to suggest features and improvements.
If you need more help or want to talk about it, you can join our Discord community. We're here to chat and help you out!
See how to contribute: contribute
We chose to use Ruff to automatically lint and format the code. Run pip install -r requirements_dev.txt
to install Ruff and other relevant dependencies.
Important
Before you open a Pull Request, please run this bash commands to format your code properly and doesn't upset our linter:
ruff format . && ruff check --include I --fix . # this formats code and sort imports
ruff check . # run linting and perform fixes
mypy main.py
If you use powershell, run these commands:
ruff format .;
ruff check --include I --fix .;
ruff check .;
mypy main.py
This project is licensed under the terms of the AGPL-3.0 License.
We aim to create a game that is not only fun but also like we mentioned before open source and community-driven. Here's why we chose the AGPL-3.0 License for our project:
-
Focus on Local Gameplay First Our primary goal is to create a fully functional local game that anyone can play. This our starting point, ensuring a solid foundation before we expand the game further.
-
Future Multiplayer Features Once the local gameplay is polished, we plan to introduce multiplayer functionality. This will include the ability to host your own game servers, opening up more possibilities for collaborative and competitive gameplay.
-
Modding Capabilities / Expansions We want PySeas to be mod-friendly, allowing players and developers to customize and expand the game to suit their preferences. This flexibility ensures that the game evolves trough community contributions.
-
Why AGPL?
- The AGPL ensures that the code remains accessible to everyone, even when the game is modified or hosted on private servers.
- Any changes made to the game whether as forks or additions must be shared under the same license, making them available to anyone who wants to contribute.
- By using AGPL, we protect the game's openness and ensure that it stays true to the vision of collaborative, community-driven project.
In short, the AGPL aligns perfectly with our commitments to openness, community collaboration, and the long-term growth of PySeas as both game and an opensource project.