Skip to content

Commit

Permalink
demo
Browse files Browse the repository at this point in the history
  • Loading branch information
stevenctl committed Sep 21, 2023
1 parent 0d611df commit 85d20c9
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 35 deletions.
70 changes: 35 additions & 35 deletions content/posts/tech/3d-autotiling/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,24 @@
title: 3D Autotiling
---

## Preface

It took a few attempts to figure out how to organize this. At first it was
written in the order of the things I tried out. I started with a very complex
thing that led me to learn some more basic approaches. I will build from those
foundational concepts up to the current state of my project.

A while back I picked up a book on 3D modeling. It made me think I could make 3D
games. Turns out there's a lot to it. And I got frustrated at my first attempt
to kitbash some modular castle set into something decent. It didn't feel fun
rotating and aligning everything properly.

I got sidetracked for months learning a bit about procedural generation because
I wanted a more interactive workflow. I implemented Marching Cubes in compute
shaders, Heightmaps using compute and vertex shaders and my favorite thing: Wave
Function Collapse with a simplified Marching Cubes. 3D autotiling was the sweet
spot I was looking for.

This project has exposed me to a bunch of areas in the graphics and asset
creation pipeline. I'm pretty happy with where it is right now and I'm hoping I
can polish it off as a solid tool for making small and big games. The ultimate
goal is a level of polish that can be exposed to end users to create their own
levels. I don't think I would have become interested in shooters if it weren't
for Halo 3's forge mode. I probably logged 1000 hours in Minecraft when I was a
kid (and learned Java because of it!). Games that let you make stuff are the
best.
<video src="demo.mp4" autoplay muted loop></video>

I picked up a book on 3D modeling and then tried to start making a game.
Building a castle felt a bit tedious to me, even with a modular kit. In 2D and
3D, I hate rotating and aligning tiles to fit.

My impatience led me down a months-long rabbit hole learning about procedural
generation. I've come up with what a pretty decent Wave Function Collapse
implementation, including Blender tools to help with asset creation. I
implemented the core algorithm 4 times. First in Blender/Python intending to
export to Unity/C#. Unity was annoying so I tried Bevy/Rust. Turns out an
editor is a valuable debugging tool and I finally have a solid working version
in Godot. The ultimate goal is a grade of polish with which end users can
create in-game or in-engine levels.

I don't think I would have become interested in shooters if it weren't for Halo
3's forge mode. I probably logged 1000 hours in Minecraft when I was a kid (and
learned Java because of it!). Games that let you make stuff are the best.

---

Expand All @@ -41,17 +33,25 @@ the gaps if I explained things well enough.
{{< cards >}}
{{< card
link="01-marching-squares"
title="Part 1: 2D Autotling with Marching Squares"
title="Part 1: 2D Marching Squares"
>}}
{{< card
link="02-basic-wfc"
title="Part 2: Basic Overview of WFC"
>}}
{{< card
link="03-driven-wfc"
title="Part 3: User Driven WFC"
>}}
{{< card
link="04-generating-tiles"
title="Part 4: Generating a Tileset"
>}}
{{< card
link="05-sockets"
title="Part 5: Simpler Adjacency"
>}}
{{</ cards >}}

## First Drafts

The following are brain dumps that will be rewritten.

{{< cards >}}
{{< card
link="01-marching-squares"
title="Part 1: 2D Autotling with Marching Squares"
>}}
{{</ cards >}}
Binary file added content/posts/tech/3d-autotiling/demo.mp4
Binary file not shown.
Empty file removed noop
Empty file.
7 changes: 7 additions & 0 deletions static/favicon-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified static/favicon.ico
Binary file not shown.
Binary file added static/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions static/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified static/images/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed static/images/share.png
Binary file not shown.

0 comments on commit 85d20c9

Please sign in to comment.