2
2
title : 3D Autotiling
3
3
---
4
4
5
- ## Preface
6
-
7
- It took a few attempts to figure out how to organize this. At first it was
8
- written in the order of the things I tried out. I started with a very complex
9
- thing that led me to learn some more basic approaches. I will build from those
10
- foundational concepts up to the current state of my project.
11
-
12
- A while back I picked up a book on 3D modeling. It made me think I could make 3D
13
- games. Turns out there's a lot to it. And I got frustrated at my first attempt
14
- to kitbash some modular castle set into something decent. It didn't feel fun
15
- rotating and aligning everything properly.
16
-
17
- I got sidetracked for months learning a bit about procedural generation because
18
- I wanted a more interactive workflow. I implemented Marching Cubes in compute
19
- shaders, Heightmaps using compute and vertex shaders and my favorite thing: Wave
20
- Function Collapse with a simplified Marching Cubes. 3D autotiling was the sweet
21
- spot I was looking for.
22
-
23
- This project has exposed me to a bunch of areas in the graphics and asset
24
- creation pipeline. I'm pretty happy with where it is right now and I'm hoping I
25
- can polish it off as a solid tool for making small and big games. The ultimate
26
- goal is a level of polish that can be exposed to end users to create their own
27
- levels. I don't think I would have become interested in shooters if it weren't
28
- for Halo 3's forge mode. I probably logged 1000 hours in Minecraft when I was a
29
- kid (and learned Java because of it!). Games that let you make stuff are the
30
- best.
5
+ <video src =" demo.mp4 " autoplay muted loop ></video >
6
+
7
+ I picked up a book on 3D modeling and then tried to start making a game.
8
+ Building a castle felt a bit tedious to me, even with a modular kit. In 2D and
9
+ 3D, I hate rotating and aligning tiles to fit.
10
+
11
+ My impatience led me down a months-long rabbit hole learning about procedural
12
+ generation. I've come up with what a pretty decent Wave Function Collapse
13
+ implementation, including Blender tools to help with asset creation. I
14
+ implemented the core algorithm 4 times. First in Blender/Python intending to
15
+ export to Unity/C#. Unity was annoying so I tried Bevy/Rust. Turns out an
16
+ editor is a valuable debugging tool and I finally have a solid working version
17
+ in Godot. The ultimate goal is a grade of polish with which end users can
18
+ create in-game or in-engine levels.
19
+
20
+ I don't think I would have become interested in shooters if it weren't for Halo
21
+ 3's forge mode. I probably logged 1000 hours in Minecraft when I was a kid (and
22
+ learned Java because of it!). Games that let you make stuff are the best.
31
23
32
24
---
33
25
@@ -41,17 +33,25 @@ the gaps if I explained things well enough.
41
33
{{< cards >}}
42
34
{{< card
43
35
link="01-marching-squares"
44
- title="Part 1: 2D Autotling with Marching Squares"
36
+ title="Part 1: 2D Marching Squares"
37
+ >}}
38
+ {{< card
39
+ link="02-basic-wfc"
40
+ title="Part 2: Basic Overview of WFC"
41
+ >}}
42
+ {{< card
43
+ link="03-driven-wfc"
44
+ title="Part 3: User Driven WFC"
45
+ >}}
46
+ {{< card
47
+ link="04-generating-tiles"
48
+ title="Part 4: Generating a Tileset"
49
+ >}}
50
+ {{< card
51
+ link="05-sockets"
52
+ title="Part 5: Simpler Adjacency"
45
53
>}}
46
54
{{</ cards >}}
47
55
48
- ## First Drafts
49
56
50
- The following are brain dumps that will be rewritten.
51
57
52
- {{< cards >}}
53
- {{< card
54
- link="01-marching-squares"
55
- title="Part 1: 2D Autotling with Marching Squares"
56
- >}}
57
- {{</ cards >}}
0 commit comments