Sphereseekers is a 3D maze navigation game where players control a ball through challenging mazes filled with obstacles, reset zones, and timers. The game is designed to leverage iPhone’s gyroscope and accelerometer sensors, allowing players to tilt their device to navigate the ball. The ultimate goal is to navigate the maze and reach the exit as quickly as possible, while avoiding pitfalls and reset zones.
The project is currently being developed using the Godot Engine with GDScript. Initial development and testing are being conducted on Browsers.
-
Maze Navigation:
- Navigate the ball through complex obstacles.
- Avoid reset zones marked with visible warnings (e.g., a skull icon).
- Reach the exit to complete the level.
-
Stopwatch Timer:
- A stopwatch tracks the time taken to complete the level.
- The best time is displayed and updated if beaten.
-
Level Progression:
- On completing a level, the next level loads automatically.
- Levels increase in difficulty, introducing more obstacles and challenges.
-
Gyroscope and Accelerometer Controls:
- Use device tilting to control the ball’s movement.
- Real-time physics simulation for immersive gameplay.
- Game Engine: Godot.
- Language: GDScript.
- Version Control: GitHub repository at https://github.com/ScottWillard/Sphereseekers.
- Development Platforms:
- Primary: Desktop.
- Secondary: Mobile.
- Tools:
- Godot Engine.
- Git for version control.
-
Clone the GitHub repository:
git clone https://github.com/ScottWillard/Sphereseekers.git
-
Open the project in Godot by importing the
project.godotfile.
- Level Design:
- Build levels using Godot’s 3D editor and scripts to achieve the desired behavior.
- Add walls, obstacles, reset zones, and the exit area.
- Collision and Physics:
- Ensure all game objects (e.g., walls, reset zones) have proper collision shapes.
- Use
RigidBody3Dfor the ball to enable realistic physics.
-
Use Godot’s Input API to read accelerometer and gyroscope data:
Vector3 tilt = Input.GetGyroscope();
-
Map tilt data to ball movement for intuitive controls.
- Update the latest veersion on the website.
- Play on your browser.
sphereseekers/
├── Assets/
│ ├── *Contains all images and materials used in the game.*
├── Scenes/
│ ├── Interface/
│ │ ├── *Contains all UI menus.*
│ ├── Levels/
│ │ ├── *Contains all level scenes.*
│ ├── Objects/
│ │ ├── *Contains all game objects and their associated scripts.*
├── Scripts/
│ ├── *Contains all general-purpose scripts not linked to specific objects.*
├── Vector/Textures/
│ ├── *Contains vector-based textures for the game.*
├── project.godot
sphereseekersWebsite/
├── Public/
│ ├── game/
│ │ ├── *Game data*
├── src/app/
│ ├── GameEmbed.jsx
│ ├── globals.css
│ ├── page.js
Readme.md-
Tutorial Level:
- Fully designed and functional with a working exit.
-
Level Progression:
- Development of levels is planned as at least one new level per week.
-
GitHub Repository:
- All game files and website files are tracked in the repository.
- Large files (e.g., executables) are excluded using
.gitignore. - .pck files are accepted using git LFS.
- Implement leaderboards and scoring systems.
- Continue the development of new levels.
- Implemet mobile controlls
Team members can contribute by:
-
Cloning the repository:
git clone https://github.com/ScottWillard/Sphereseekers.git
-
Creating feature branches:
git checkout -b feature-branch-name
-
Committing changes:
git add . git commit -m "Describe the changes"
-
Pushing to the repository:
git push origin feature-branch-name
-
Submitting pull requests for review.
Team members can update the website by:
-
Install the HTML5 Export Template
- In Godot, go to Editor -> Manage Export Templates.
- Click "Download" (if no templatees are installed).
- Under Mirror, select "Official Github Releases".
- Click "Install" and wait for the installation to complete.
-
Configure the HTML Export in Godot.
- Open Project -> Export.
- Click "Add..." and select "Web" (HTML5).
- In the export path, make sure the filename is index.html.
- Under options make sure to mark "For Desktop" and "For Mobile" on the VRAM Texture Compression.
-
Export the Project
- Click "Export Project".
- Choose Sphereseekers/sphereseekersWebsite/public/game and replace the previous files.
-
Modify
index.htmlAdd the following line:<script src="pako_inflate.min.js"></script>
directly before this line:
<script src="index.js"></script>
-
Modify
index.jsReplace the entirePreloadermethod with the template provided insphereseekersWebsite\public\game\preloader.js -
Compress
index.pckandindex.wasmto.gzformat. you can compress the files usingGit Bashwith the following commandsgzip index.pck
gzip index.wasm
-
Remove
index.pckandindex.wasm
For questions or suggestions, please contact:
- Project Lead: Scott Willard
- Repository: GitHub Link
