Circle Nom is a fast-paced arcade game where you control a hungry circle trying to eat various foods while avoiding daggers. Featuring both single and multiplayer modes, customizable difficulty, and a variety of environments.
- Table of Contents
- Features
- Goal
- Prerequisites
- File structure
- Running
- Controls
- Screenshots
- Contributing
- Credits
- License
- Big variety with the game's foods, songs, backgrounds and others.
- Menus with many functions, including difficulty selection and play mode.
- Some of the in-game features are the Game Pause and song switcher.
- Easter egg mode and many others.
Singleplayer:
- Score as many points as possible, by eating the food.
Multiplayer:
- Survive longer than the other player, by eating more food than them.
- Python version 3.13.2
- Install required libraries:
pip install -r requirements.txt- This project uses the following file structure:
Circle-Nom/
│
├── assets/ # All static resources (images, sounds, fonts, etc.)
│ ├── images/
│ ├── sounds/
│ ├── fonts/
│ └── ...
│
├── circle_nom/ # Main game package (all Python source code)
│ ├── core/ # Core Game Loop
│ ├── models/ # Game entities (Player, Prey, Dagger, etc.)
│ ├── ui/ # Menus, HUD, overlays (Menu, Health Bar, etc.)
│ ├── systems/ # Game systems (audio, input, save/load, etc.)
│ └── helpers/ # Utility modules (functions, asset banks, profiling, etc.)
│
├── others/ # Other miscellania (README images, profiling result)
│
├── scripts/ # Build, packaging, and deployment scripts
│
├── tests/ # Unit, integration, Graph tests
│
├── requirements.txt
├── README.md
├── LICENSE
├── .gitignore
│
└── main.py # Entry point- Open the Circle-Nom folder with your preferred IDE and launch the
main.pyfile. - Download and launch the
Circle_Nom.exefile from the releases section in the project's GitHub page. You can also make your own executable by running themain.specfile with pyinstaller:
pyinstaller ./scripts/main.spec- Please note that both executables do not have digital signatures, which might result in some antivirus software flagging them as malicious.
Menus:
- Using keyboard:
- Move up and down between options using the
W,Sor↑,↓keys. - Switch between options using the
A,Dor←,→keys. - Press
Enterto enter the selected option. - Press
EscapeorBackspaceto go back in the menus or exit Circle Nom.
- Move up and down between options using the
- Using mouse:
- Hover with your mouse to select an item from the menus.
- With
M1andM2being yourleftandrightmouse buttons, useM1to enter normal menu items, or for slider items useM1&M2to move left and right.
In-game:
- Singleplayer:
- Move using
W,A,S,Dor the↑,↓,←,→keys. - Dash using the
LSHIFTorRSHIFTkey. - Change the music using the
Q&Ekeys - previous & next song. - Pause Circle Nom with the
Pkey.
- Move using
- Multiplayer:
- Move Player 1 using the
W,A,S,Dkeys. - Player 1 can dash using the
LSHIFTkey. - Move Player 2 using the
↑,↓,←,→keys. - Player 2 can dash using the
RSHIFTkey. - Change the music using the
Q&Ekeys - previous & next song. - Pause Circle Nom with the
Pkey.
- Move Player 1 using the
Contributions are welcome! If you'd like to help improve Circle Nom:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'Add some amazing feature'). - Push to the branch (
git push origin feature/amazing-feature). - Open a Pull Request.
-
Music used:
-
Dagger images:
-
Dash images:
-
Food images:
-
Background images:
- Wood Texture by barudakvisual - Vecteezy
- Wood Texture by dankudraw - Vecteezy
- Wood Texture by sarance - Vecteezy
- Stone Texture by aurigae - Vecteezy
- Stone Texture by graphicsrf - Vecteezy
- Stone Tiles Texture by graphicsrf - Vecteezy
- Rock Pattern Texture by emiltimplaru - Vecteezy
- Wood Texture by graphicsrf - Vecteezy
- Wood Texture by dankudraw - Vecteezy
- Wood Texture by aksamata - Vecteezy
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. See the LICENSE file for details.