esimov / minecraft.js

Simplex noise based minecraft map generator

Home Page:https://esimov.com/2014/10/perlin-noise-based-minecraft-rendering-experiment

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

minecraft.js

This is an experiment adapted from Notch's Javascript Minecraft renderer, but extended with new aditions, like random terrain generation, fog and fake shadows, possibility to navigate and look over the generated landmark.

As a fundation is using the simplex noise random seed distribution algorithm. For the Javascript port of simplex noise algorithm check simplexnoise.js.

Screenshot

Live demo

Features

  • Highly adaptive
  • Customizable
  • Using fake shadow and fog for generating atmospheric environment
  • Posibility to navigate through the map (hovevery this is somehow limited)
  • You can look around and change the altitude of the camera with the mouse
  • You can play with with the sliders from the side panel to generate different maps and environments

How to run

  • npm install to install the node-static package
  • node app.js to run the server
  • localhost:3000 to run in the browser

If you wish to change the default seed distribution you can change the code below:

for (var pixel = 0; pixel < noise.length; pixel += 4) {
    var x = (pixel / 4) % ww;
    var y = Math.floor(pixel / hh / 4);
    x /= ww;
    y /= hh; // normalize
    
    var size = GUI.frequency || 2;  // pick a scaling value
    // add octaves
    var value = Math.floor(
            (simplex.noise(size * x * GUI.x, size * y * GUI.y, 0.1 + GUI.z) +
             simplex.noise(2 * size * x * GUI.x, 2 * size * y * GUI.y, 0.1 + GUI.z) * 0.5)
        * 177);        
    noise[pixel] = noise[pixel + 1] = noise[pixel + 2] = value;
    noise[pixel + 3] = 255;
}

If you wish to replace the simplex noise algorithm to Perlin noise you need to change the line below:

var simplex = new NOISE.Simplex();
simplex.init();
simplex.noiseDetail(4, 2);

with

var simplex = new NOISE.Perlin();
simplex.init();
simplex.noiseDetail(4, 2);

The Perlin noise algorithm is included in the package.

Running example: www.esimov.com/experiments/javascript/minecraft_v2/

Author

License

Copyright © 2016 Endre Simo

This software is distributed under the MIT license. See the LICENSE file for the full license text.

About

Simplex noise based minecraft map generator

https://esimov.com/2014/10/perlin-noise-based-minecraft-rendering-experiment

License:MIT License


Languages

Language:JavaScript 85.2%Language:CSS 9.9%Language:HTML 4.8%