Terrain Generator

GitHub Repo

Features

  • Terrain generation
    • Based on the Wave Function Collapse algorithm
    • Chunk system
    • Multithreaded
  • Save system
    • Import and export saves
    • Save file explorer
    • CLI load save file
    • Custom save file type (.glowsave)
  • Player system
    • Movement
  • GUI
  • Installer

Download

Source: GitHub

Installer:

Architecture Download
win64 msi

Goals

  • Learn basics of OpenGL
  • Practice programming in C++
  • Implement the Wave Function Collapse algorithm
  • Create a functional and presentable game
  • Explore and use Microsoft Visual Studio and Git via Github

Beginnings

Origanally, I became interested graphics programming while following the devlogs of a performance mod for Minecraft called Sodium. Interesting, but as interesting as French song is to a cat. Sounds nice, but is utter nonsense. Thus, I wanted to better understand the conversations.

Additionally, I happened to be starting to learn C++.

Save system

glowsave icon
.glowsave file type icon
.glowsave byte format

Hover over each section to see its deciaml / ASCII value.

(little endian)

0000
0010
0020
0030
0040
01
4D7920576F726C6400000000000000
000000000000
D339ED6400000000
DB39
ED6400000000
1000
FFFFFFFFFFFFFFFF250F232B0000000000000000042C2022210F222A00000000000000040C092C
Version
Name
Created time
Saved time
Chunk size

Generation

Triangles mesh view
Debug line view, showing triangles

Issues

There are some cases where tiles don't have transition varients for every tile type and orientation. Instead, a Missing tile is placed, represented by purple and black.

To fix this, I could either make more transition varients (annoying) or remake the rules so only one or two transitions are possible.