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.py
file. - Download and launch the
Circle_Nom.exe
file from the releases section in the project's GitHub page. You can also make your own executable by running themain.spec
file 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
,S
or↑
,↓
keys. - Switch between options using the
A
,D
or←
,→
keys. - Press
Enter
to enter the selected option. - Press
Escape
orBackspace
to 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
M1
andM2
being yourleft
andright
mouse buttons, useM1
to enter normal menu items, or for slider items useM1
&M2
to move left and right.
In-game:
- Singleplayer:
- Move using
W
,A
,S
,D
or the↑
,↓
,←
,→
keys. - Dash using the
LSHIFT
orRSHIFT
key. - Change the music using the
Q
&E
keys - previous & next song. - Pause Circle Nom with the
P
key.
- Move using
- Multiplayer:
- Move Player 1 using the
W
,A
,S
,D
keys. - Player 1 can dash using the
LSHIFT
key. - Move Player 2 using the
↑
,↓
,←
,→
keys. - Player 2 can dash using the
RSHIFT
key. - Change the music using the
Q
&E
keys - previous & next song. - Pause Circle Nom with the
P
key.
- 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.