Glowstick0017 / Little-Plane-Project

Flying through a procedural web world
https://glowstick.me/tlpp/
MIT License
111 stars 36 forks source link
collaborate education flight-simulator github github-pages hacktoberfest hacktoberfest2024 learn open-source opensource perlin-noise procedural-generation

The Little Plane Project

alt text image

image image

image image image image image image

Introduction

The little plane project is a small passion project that I started based on my interest and curiosity on perlin noise and procedural generation. Rather than making a project in a prebuilt game engine like UnityGodot(we don't like Unity around here anymore), I wanted to create my own engine from the ground up using only javascript and no external libraries (only using a prebuilt algorithm for SHA256 made by Angel Marin and Paul Johnston). I made this project in javascript so that a majority of people can read and understand what's happening in the code (may not be too understandable since I have poor documentation, standards, and this is my first decently sized javascript project), as well as an extreme ease of access to a demo of the project to anyone that can use a browser. Credit also goes out to Javidx9 or OneLoneCoder for their explanation on Perlin noise in the first 10 minutes of this video which tremendously helped wrap my head around what Perlin noise is and how to go about my implementation.

Table of contents

Getting started & controls

Hi! Thank you for checking out The little plane project. Thus far there isnt much to do in the plane project but fly around and discover generated chunks that nobody has ever seen before. To get started visit the play site. You can move with either the WASD keys like any other game or you can use the arrow keys if you're oldschool. Up/Down changes your speed and Left/Right changes your direction.

image image

To open the command box, hit your Enter key and you can use any of these commands to change your experience. I recommend using the seed command to generate a new world since the play site always starts on the same seed.

image

Enjoy your time and please send any suggestions you have to Glowstick#0017 on discord or leave your suggestions here.

Commands

Command Description Default value
color Toggle between full world color and gray scale to view underlying perlin plane 1
quality \ Set rendering quality, the lower the more detailed.
Anything below 10 will lag. Range 5-20
10
seed \ Generate a new world with the given seed.
Any length of characters, words, or numbers can be entered for a unique world
random
speed \ Set flight speed. Range 1-10 1
teleport \ \
tp \ \
Teleport to specified coordinates 0 0

Instructions within the Application

With the addition of the context menu thanks to jackwebdev, detailed instructions are available within the application itself, providing information on controls and command execution. These instructions enhance the user experience and understanding.

Roadmap

Upcoming features to be implemented

How to run a development copy of the project

This project was made to learn the concepts and technologies used as simple as possible, from how perlin noise works to simple javascript fundamentals. The only thing you need to do to make and see your own changes in action is simply clone the repository, make your experimental changes to the code, and open index.html on your browser to view your changes. If you made any changes you think would be helpful to add to the original repository, feel free to open a pull request. All proposed changes will be reviewed and whether or not they're added, there will be meaningful comments left to help support everyones learning journey.

Contributors

Meet the talented individuals who have contributed to The Little Plane Project and learn how you can join them in contributing to the project:

License

Distributed under the MIT License. See LICENSE for more information.