Closed U-DAY-333 closed 1 year ago
Hey @U-DAY-333 ! Thank you for raising an issue ๐ You can self assign the issue by commenting /assign in comment ๐ Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES ๐ Donโt Forget to โญ our GameZone๐ฎ Make sure you join our Discord๐น๏ธ
Hey @U-DAY-333! We are already having a similar game request in #765 ๐ Make sure you come up with a cool unique idea ๐ Waiting for your new game idea ๐.
Hey @U-DAY-333 ! Thank you so much for your raising the issue๐ Itโs all yours, you can come anytime again and make some contributions! ๐ Alone, we can do little, but together we can do so much! ๐
๐ฎ Game Request
The world resembles that of Minecraft, a popular voxel-type 3D game based on boxes. You can add and remove everything and anything, different types of nodes are available. The borders are only limited by the size of an integer in Javascript, that means the world is generated dynamically as the player visits new areas. There is no vertical limit, but rendering distance is somewhat limited.
The topography of the world is generated by a pseudo-random function. The underlying system imitates that of Minecraft: the world is made of 16 by 16 by infinity node "chuncks". The pseudo-random function generates a single height value for each chunk and the height values in between are interpolated. Everything under the height value is filled with nodes and everything above is left empty. Depending on the height different types of soil can be found (grass, dirt, sand...).
Contrary to Minecraft the world renderer uses a 2D perlin-noise generator rather than 3D, there are no ores or tunnels underground, no enemies or mobs, no trees or physics. Since the renderer takes all the processing power the features must be limited.
A height map and a frames per second graph can be enabled in the menu.
Point down the features
The rendering is a simple painter's algorithm, everything is drawn from back to front, so nodes close to the camera are drawn over the nodes further away. As canvas doesn't have any 3D rendering capabilities the engine uses very basic 3D rendering techniques. Some optimisation techniques like back-face culling, occlusion culling and frustum culling have been implemented. Octrees aren't adapted to this game and scale, chunks are better suited.
To make things go faster a lower rendering distance can be selected.
Canvas doesn't support textures, so texture implementation must be made from ground up: an affine texture mapping system is used. Rendering with textures makes the game noticeably slower so a simple renderer, that uses plain colors, is also available.
Textures are stored in a png file, the texture placement is exactly the same as Minecraft's, so one could use any current Minecraft texture pack with this game.
Select program in which you are contributing
GSSoC23
Code of Conduct