An open API service indexing awesome lists of open source software.

https://github.com/michaelkolesidis/beachy-beachy-ball

A beach ball adventure! Can you make it to the end?
https://github.com/michaelkolesidis/beachy-beachy-ball

3d 3d-game ball ball-game beach-ball beach-ball-game beachy browser-game game game-3d internet-game marble-race online-game summer summer-game threejs threejs-game web-game webgl webgl-game

Last synced: 6 months ago
JSON representation

A beach ball adventure! Can you make it to the end?

Awesome Lists containing this project

README

          

![Beachy Beachy Ball Logo](./images/logo_bg_blue.png)

![Attention! Free Software](./images/attention-free-software.png)

This software is free (as in freedom). **If you use any part of this code, you must make your entire project's source code publicly available under the same license.** This applies whether you modify the code or use it as it is in your own project. This ensures that all modifications and derivative works remain free software, so that everyone can benefit. If you are not willing to comply with these terms, you must refrain from using any part of this code.

For full license terms and conditions, you can read the AGPL-3.0 at: [gnu.org/licenses/agpl-3.0.html](https://www.gnu.org/licenses/agpl-3.0.html).

## Technologies

The core technologies used are _JavaScript_ and _WebGL_. The following libraries and tools are used:

| Name | License | Description |
| ----------------- | :-----: | -------------------------------------------- |
| React | MIT | Component-based, front-end interface library |
| Three.js | MIT | 3D graphics API for the web, based on WebGL |
| React Three Fiber | MIT | A React renderer for Three.js |
| Drei | MIT | Useful helpers for React Three Fiber |
| Zustand | MIT | State management |
| Vite | MIT | Frontend development tooling |

## Screenshots

![Screenshot](./screenshots/screenshot_001.png)
![Screenshot](./screenshots/screenshot_002.png)
![Screenshot](./screenshots/screenshot_003.png)
![Screenshot](./screenshots/screenshot_004.png)
![Screenshot](./screenshots/screenshot_005.png)
![Screenshot](./screenshots/screenshot_006.png)

## Roadmap

## Gameplay and Rules

The player controls a beach ball, and has to hit the star at the end of the level in order to win, while avoiding a variety of obstacles. If the ball falls off the level, the game restarts with the ball in its initial position.

### Controls

| Button(s) | Action |
| :----------: | :-------------------------: |
| ←↑→↓ or WASD | Move |
| Space | Jump |
| Enter | Start game (on main menu) |
| M | Mute/Unmute |
| R | Restart |
| P | Show performance stats |
| Esc | Toggle menu modal (in game) |

## Software Used

A non-exhaustive list of all the software that was used during the development of _Beachy Beachy Ball_.

- Visual Studio Code
- Figma
- Blender
- Adobe Photoshop
- Inkscape
- Google Chrome
- Microsoft Edge
- Mozilla Firefox

## Assets

All the assets used (3D models, images etc.) are either using Creative Commons / Public Domain or they were created by me.

## 💖 Support the Project

Thank you so much for your interest in my project! If you want to go a step further and support my open source work, buy me a coffee:

Buy Me a Coffee at ko-fi.com

## License

Copyright (c) 2023 Michael Kolesidis

Licensed under the [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.html).