Code Monkey home page Code Monkey logo

little-plane-project's Introduction

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.

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 <value> Set rendering quality, the lower the more detailed.
Anything below 10 will lag. Range 5-20
10
seed <value> Generate a new world with the given seed.
Any length of characters, words, or numbers can be entered for a unique world
random
speed <value> Set flight speed. Range 1-10 1
teleport <x> <y>
tp <x> <y>
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

  • biomes by using multile perlin planes to simulate different conditions including sea level, temperature, humidity...
  • Instructions in context menu
  • mobile controls (either joystick or click on displayed WASD)
  • context menu friendly on mobile
  • menu screen or esc menu
  • command to change plane or color of plane
  • user adjusted color values
  • toggleable stats
  • color command that shows underlying perlin plane in black/white
  • different worlds
  • randomly spawned airports to refuel
  • deliver packages from airports to others directed by arrow on screen
  • user feature suggestions

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.

little-plane-project's People

Contributors

glowstick0017 avatar vlazic avatar christianfds avatar mellowmancer avatar ba-13 avatar jackwebdev avatar bilal-shahzad avatar rubemfsv avatar bhimeshagrawal avatar danil179 avatar richardhartleydev avatar anttijankeri avatar antoash avatar auung avatar isoletslicer avatar oriapp avatar thedrb123 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.