Welcome to SwarmShot, a beginner-friendly project to dive into game development with Python(using Py Game)!
The year is 2084. Humanityโs insatiable curiosity led to the creation of Project Genesis , a genetic experiment aimed at eradicating all diseases. Scientists engineered a virus that could rewrite DNA to repair any cellular damage. However, something went wrong. The virus mutated uncontrollably, turning most humans into mindless, bloodthirsty zombies. Worse, it spread to nearly all life forms, devastating ecosystems and leaving the world on the brink of extinction.
Amidst the chaos, a few species inexplicably developed natural immunity. These animals not only resisted the virus but seemed to carry a genetic marker that might hold the key to reversing the apocalypse.
You are Dr. Arin Locke, a robotics engineer and survivalist. Once a part of the Genesis project, you now bear the weight of humanity's survival. Armed with your wits, cutting-edge technology, and an experimental combat suit, you embark on a mission to save the immune species and unlock the cure hidden in their DNA. Armed with technology and a combat suit, you must protect, survive, and rebuild humanity.
- Gameplay Overview
- Folder Structure
- Setup and Installation
- Reference Links
- Folder Structure
- Contribution Guidelines
- Communication
- Mentor
- Contributors
- Run the main.py file using VS code .
- Map: 44x44 tiles, each 16x16 pixels
- Current Mechanics:
- The scientist (player) moves around the map
- Player sprite is animated using a spritesheet
-Run the example.py file( Inside Example_of_Game folder) .
- Top-down zombie horde survival game with:
- Player mechanics
- Pets and weapons
- Shop system
- Defensive buildings
- Zombie wave attacks (20 waves)
- Optimized spritesheet rendering for all elements
Refer to 1Gameplay.txt
for a full breakdown of mechanics.
SwarmShot/
โ
โโโ main.py # Game loop, UI, wave system, window creation
โโโ player.py # Player class (movement, health, weapons)
โโโ enemy.py # Enemy base class and enemy types
โโโ pet.py # Pet base class and properties
โโโ weapon.py # Weapon base class and bullet behavior
โโโ building.py # Building class (defense structures)
โโโ shop.py # Shop system logic
โ
โโโ ๐Example_of_Game/
โ โโโ ๐Contributors # Contains list of contributors
โ โโโ practice.py # Practice file for contributors
โ โโโ example.py # Demonstrates game mechanics integration
โ
โโโ๐1Gameplay.txt # Detailed gameplay documentation
โ
โโโ ๐Sounds/ # Game music and audio files
โ
โโโ ๐Sprites/
โ โโโ ๐Sprites_Building/ # Building sprites
โ โโโ ๐Sprites_Enemy/ # Enemy sprites
โ โโโ ๐Sprites_Environment/ # Environment tiles
โ โโโ ๐Sprites_Pet/ # Pet sprites
โ โโโ ๐Sprites_Player/ # Player sprites
โ โโโ ๐Sprites_Weapon/ # Weapon sprites
โ
โโโ .gitignore # Ignores unnecessary files
โโโ๐README.md # This file!
-
Install Python (3.12.4):
- Download Python from the official site
- Ensure Python is added to your system path
-
Install Pygame(pygame 2.6.1 (SDL 2.28.4, Python 3.12.4)):
pip install pygame
1.Run current Game -Navigate to SwarmShot Folder and open it in any terminal -Type "python main.py" command and press Enter. -The game will start and you can play it
-
Test Mechanics:
- Run
example.py
to get glimpse of Final version of game. - It is in Example_of_Game Folder
cd Example_of_Game python example.py
- Run
-
Claim the Issue: -Go to the issue page of the repository where the issue is raised. -Add a comment like:"Claim" -Wait for the repository maintainers to assign the issue to you.
-
Fork the Repository:
- Visit SwarmShot Repository
- Click Fork
-
Clone Your Fork:
git clone https://github.com/<Your_Username>/SwarmShot.git cd SwarmShot
-
Make Changes:
- Follow the folder structure
- Edit the code or files as required to resolve the issue.
- Use relative paths (e.g.,
Sprites/Sprites_Player/Char_003.png
)
-
Test Changes:
- Run the game locally
python main.py
-
Commit and Push:
git add . git commit -m "commit_message_as per issue" git push origin main
-
Create a Pull Request:
- Go to your forked repository on GitHub.
- Click Pull Requests,Fill out the PR form
- Submit PR
-
Engage in Review:
- Repository maintainers or reviewers may leave comments or request changes on your PR.
- Make the requested changes directly in your forked repository's main branch.
- Stage and commit the changes:
git add . git commit -m "Updated changes as per review comments" git push origin main
Stay connected on our Discord channel for updates and discussions with mentors and contributors or to ask any doubt needed. Make sure to use suitable channels according to your repo in the server.
- Saurav Gitte
Game dev and avid gamer
GitHub:
SauravGitte
Discord:
gittesaheb - Bhavya Gupta (aka Gamin8ing)
Game dev and an all-time gamer
GitHub:
Gamin8ing
Discord:
gamin8ing (or blackHole) - Srijan Suryansh
Github:
LordlyamigoDiscord:
Lordlyamiga
Thank you to everyone contributing to SwarmShot! ๐ Check the Example_of_Game folder for the list of contributors.
Happy coding, and let's save the world one wave at a time! ๐๐จโ๐ฌ