Repository
https://github.com/IntegratedQuantum/Snake3D
New Project
What is the project about?
Snake3D is a game inspired by snake. The game logic is mostly the same as in snake:
- The snake dies if it hits itself.
- The snake can eat colorful tiles to grow. This adds a point to the players score.
- The snake starts with a length of 3 tiles.
- The snake dies if it hits a border tile(Borders are white in this game).
- There are multiple(currently 2) levels.
- The game gets faster the higher the score of the player gets.
- The highscore for every gamemode/level is saved after each game.
The major difference is that Snake3D is played on the surface of a cube:
This adds a whole new dimension to the game.
→ Now the player cannot see the whole game at once.
→ The cube must be rotated to see other areas.
→ The game works with relative control, meaning the player can turn the snake right/left relative to the current direction of the snake
→ The player needs to coordinate rotation of the cube(WASD
) and turning the snake(←
→
).
There are also already two different levels apart from the empty one:
There is also a second gamemode that creates border-tiles each time the snake eats a fruit.
Technology Stack
The game is written entirely in java.
It requires no library. The 3d-projection is written by me.
If you want it I could explain 3d-projection in another post in more detail.
The game can run on any operating that can run java. It even works on a raspberry pi.
The game needs two processor cores to work efficiently.
Roadmap
- bug fixing: Sometimes one side of the cube disappears although it should be visible.
- The graphics part should be a bit more efficient and easier to understand.
Game Enhancements:
- More levels
- Add the ability to select a level in hard mode
- Possibility to select bigger cubes
- Far future: multiplayer
UI Enhancements:
- Add a better menu
- Allow the player to still rotate the cube in menu/after death
- Settings: Controls, Dark mode/light mode, leaderboard
How to contribute?
If you want to contribute(Thanks in advance), just make a PR and add detailed information(maybe a picture) in the description. If you are unsure if your contribution will be accepted, you could first ask in the issues tab. I will answer within a few days.
GitHub Account
https://github.com/IntegratedQuantum
(In case you are wondering: The name QuantumDeveloper was already taken when I joined github.)