Giter VIP home page Giter VIP logo

ecen4003_finalproject's Introduction

Voxel Terrain Generator

Built as my final project for ECEN 4003 - Concurrent Programming.

Generates a psuedo infinite terrain populated with stone, grass, water, and trees. Camera can either hover slightly above the terrain or can show a general overview. Terrain is limited to 128 blocks in Z, but limited to 2^35 blocks in both X and Y.

Contains the ability to generate, populate, and mesh in serial or parallel.

Compilation

Install Rust 1.8 or above, run cargo build --release.

To run the program, run cargo run --release. To run with arguments, run cargo run --release -- <arguments>.

Arguments

-s=<integer> Sets the seed for the world generator.

-tc=<integer> Sets the number of background worker threads used.

-tm Enables testing mode.

Testing mode disables user input, sets the camera to a fixed high speed, enables overhead view, and runs the same terrain twice for 4096 blocks, once completely serial and once completely parallel.

Controls

1,2 Sets Generation to serial/parallel respectively 3,4 Sets Population to serial/parallel respectively 5,6 Sets Meshing to serial/parallel respectively P Toggles the camera between terrain view and overhead view Space Toggles camera movement ; Sets camera velocity to 0 =,- Adds to camera Y velocity, Forward/Backward respectively [,] Adds to camera X velocity, Left/Right respectively (Will make the camera slightly jittery in Z movement) Escape Exits the program

Screenshots

Terrain View

Overhead View

License

Licensed under the MIT license.

Don't copy this and market it as your own class project, that's a really bad idea. Feel free to read the code and learn from it though.

See the LICENSE file for details.

ecen4003_finalproject's People

Contributors

mystise avatar

Watchers

James Cloos avatar Nathan avatar  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.