December Adventure
Posted on
Welcome to my December Adventure Log!
Usually these are relatively coding related and focused on doing what you want and what you can. Eli has a more complete explanation.
This reads in reverse chronological order, so start at the bottom and read on up if you'd like!
Day 31
This concludes my adventure.
- Made solid progress on the game, and learning Godot
- Moved to a new apartment
- Celebrated the holidays with friends and family
- Worked around a networking nuisance
I'll clean up the proxy setup instructions into their own more instructional post soon and keep working on the game.
Lastly, turned on some Zola features that I had apparently
been missing. External links now open a new tab, and notable for this post is
the auto generated ids added to headers, so that the link to Day 0
works.
Day 30
Got billing for the cloud hosted VM figured out, fun combination of new address + out of town + setting up a new service was causing issues yesterday.
So now, the ramblings of setting up the MC proxy:
On the VM setup Tailscale:
- Setup correct ssh key for device we're connecting from (laptop in my case)
- Ssh in and install tailscale
The order of these could in theory be swapped and the initial connection be done through a terminal on the web, but personally I prefer the old fashioned ssh key setup
- Rename machine to
monarchfor ease of identification, and because this is a pet, not cattle
Back On monarch:
apt install tmux, for ease of disconnection and picking back up, and since it's where live when in a command line environment- (on the dashboard for the vm:) Create firewall:
- inbound rules allowing TCP & UDP on 25565
- remove inbound to port 22, since we'll do that there via Tailscale's connection
Here's where we fall apart for a bit. On monarch
- Try to setup port forwarding with ssh,
-L,-D, and-Rall didn't seem to work, even after properly setting up keys between the two
- Try
netcatpiping to a temp file then catting that back out.
nc -l -p 25565 0/tmp/fifo
This failed for some unexplained reason, but seemed hacky even by my standards so kinda ok with pivoting
-
install caddy
- then install xcaddy
try to install through aptinstall go and use that install methodgive up on actually finding wheregoinstalledxcaddyinstall by using the directly downloaded binary on github, get runtime error on running it
This isn't working, can't even get the to point of installing the l4 caddy extension (caddy-l4) that is needed for this, which does look like exactly what I need
-
Uninstall
caddyand thexcaddys andgoand pivot again -
Try forwarding with
socat
socat TCP4-LISTEN:25565,fork TCP4:marble:25565
IT WORKS!
- Run it in a tmux session. This is still hacky, so we'll clean up tomorrow. but for now this is fine.
- Disconnect from the
tmuxsession and call it good for the day. Can work on a more permanent solution later - Update servers domain to direct to to this VM's IP, using an A Record DNS record
Socat was already installed, so this should have been one of the first things worth trying. Live and learn.
Also, updated the css again after writing the above to include ol, and be
based on characters so that it scales consistently regardless of zoom level:
ul, ol {
padding-left: 3ch;
}
Day 29
Small CSS tweak which vastly improves the look of this website.
Style stolen from Matklad, these two lines of CSS make the right edge of all of the text on my site here line up just about perfectly, without leaving excessive space between shorter words on shorter lines.
body {
text-align: justify;
hyphens: auto;
}
In addition I made a small tweak to the ul, which reduces it's left padding by
15px.
ul {
padding-left: 25px;
}
Much subtler change but means nesting bulleted lists don't reduce the line width as much as they otherwise would.
It's a cube! and it spins!
Opened up the game project and tinkered with getting spin on jump working. It's not spinning exactly how I'd planned going in but I think this random cycle is more fun for now.
Day 24-28
Holiday tech support:
-
Lousy Looper Logic
- Micro-USB cable found for looper to connect to the computer
- This was then flashed with new firmware so we can now load audio files to loop from said computer.
-
Dying Laptop Dismay
- Ram or motherboard or CPU going bad, and can't be swapped out on this 2019 ThinkPad.
- Confirmed not just a Windows issue through a boot via USB to Kubuntu, resulting in the same inconsistent freezing fixable only via a forced reboot
- New laptop decided on, in this case a MacBook Air which should be excessive for nearly everything
Finishing off today by drumming a bit then updating the page here. I've got
access to a full kit for a bit, which is entirely unlike to the electric mesh
pad + low volume cymbal kit I'm usually on. Fun to tap terribly along to
Sungazer,
Knower and many others.
Day 23
Began a new project for the adventure, which is actually picking up an idea from last year since it now seems necessary.
My new apartment came prepackaged with an ISP, which won't let me port forward for a minecraft server without an additional charge. So I will be setting up a tunnel to a VPS for the port and paying for that instead.
This is also theoretically more secure and will also set me up for more self-hosty stuff, so I don't mind this hassle too much. It does still feel like an unnecessary hassle in what was otherwise a straightforward move.
Day 16
In the calm before the storm I tried to play PEAK with friends.
I'm not sure what updated, but something changed after an apt-get update on mh
Ubuntu install that broke the game, and it would not run for more than a few
seconds, and was consistently failing after an alt tab.
The fastest way to get this working was to follow the first tutorial I could find to swap to KDE. This feels like it should not have been the solution, but here we are.
In the future I think I'll be looking for a distro that will let me roll back updates more easily. In this situation I didn't want a solution to the problem immediately since there are probably a million options and I didn't want filter thorugh and try things and find the one thing that happened to fix it without breaking other things. An alternative tool eneded up working this time but "just use this instead" isn't a solution either. At that moment all I wanted was the previous setup that was working before something changed.
NixOS or GUIX or something similar is probably the real solution here, but it'd be nice if I didn't need to change around everything.
Day 11 - 15
My adventure took a fun but unexpected pivot, so this project was put on hold for a bit.
The rest of this week and next weekend will be filled with the expected interruption of moving, primarily in terms of packing. Ideally will pick up this project again next week.
In the meantime I've been thinking about the character in this game. It might make more sense (from a practicality standpoint and a lore standpoint) for this to be a "city" under construction. Our character could then be a component of the city that's making it's way to it's spot. This could explain why large chunks of the area are off limits / out of bounds for the player.
I'll continue to think on this.
Day 10
Woo day 10! Idk, this game doesn't look 1/3 done, even though this month is.
Of the systems need to understand and make work, I have:
- camera
- lighting
- geometry
- enough character movement for a walking sim
And still need:
- sound
- effects
- music
- character
- design
- feel
- better jumping
- better sprinting
- world
- moving bits
- reactionary bits
- the actual build out of the city
I think to trim everything, this may become a walking sim. I've been enjoying the planning and building this world. May swap to 1st person if I can't get a character design working that "fits" the feel. I see why NaissancE was first person, no way to make a character that fits that world and mine is (hopefully clearly) inspired a lot by that game aesthetically.
Day 9
Today spent a bit of time laying out the city at a very high level.
Did this up in TLDraw, then exported as svg. There are some limitations with using svg's in Godot, but for being an outline to fill in this has been working out fine.
It is going to be a lot to fill in, so may need to limit scope down and pick a path or subsection to we'll be working through in this game. I would like the full city to be explorable eventually but its currently ~3500m^2, so there's no way that's going to get properly filled in with the detail it needs this month.
Day 8
Had some fun and made the car for the gondola transit system. Gave it some lights on the inside and everything.

I am realizing now that it is a pain to have the camera jumping when walking around in the car, so may have to rethink/adjust some things in that regard.
I am also a bit concerned about the performance concerns that could come form relying on tons of shapes. But that's a problem for later me.
Day 7
D&D night! My gnome bard continued his adventure, and otherwise I went for a longer run with more sunlight today and did not do much else.
Didn't get much time in on the game today. Did confirm that you can build basic interiors like I wanted by adding boxes that subtract. Functions similarly to Unreal Engine, which makes it intuitive for me, and hopefully cover enough of my 3d modeling needs.

Day 6
Today I:
- Went for a short run
- Walked around downtown w/ friends
- Stopped by the library and checked out the roof which is available to the public apparently. Bit cold for it today and not a wild view in any direction but still was cool
Day 5
- Basic reusable pylon shapes made
- Basic menacing building in background made

This looks like progress but is effectively not much more than shapes on a screen.
What's cool is each of the pylons is a scene, so I can re-use them, and they can have their own logic running within them. What they need to truly work great is a bit of logic connecting them together in a chain. But that's more detail than we're going for here.
Still thinking through exactly what I want the path to look like, so no sketch of the layout today.
Looked a bit in to volumetric fog but that'll need more tinkering and research.
Day 4
Tired ramblings, but not travel induced this time and generally focused on planning out this game.
I'm not sure how weather should/would work in this world.
Clouds, or at least
Fog can form within large enough buildings but I'm not quite sure how the
condensation could precipitate operate. For sure Details for later, but
something to consider when working on laying it all out. (even if what gets
built is all dry.)
But the layout itself, I'm thinking a sorta train station vibe. Well, more a cable car/ski lift/gondola based transit system. This will be heavily abstracted into hollow rectangle you can step into that moves ( ideally, it will start as immobile and just there for show ). But it should suggest the idea a gondola, and I should work on this instead of writing about it. So that I have a todo list:
- sketch what the entrance to this looks like, so that it can be built
- build a pylon that can be reused in places
- build some super basic building off in the distance (literally a rectangle)
- look into fog area affects in Godot, so that the abyss below is an abyss below (maybe like day 28 of drawtober)
In terms of gameplay, descending down into a city below to make your way to the top of that tower sticking up out over the mist would be cool, and a clear target to aim for. That would require building a large portion of a city. Let's start with the building you start in and fill in the gaps to get to the building you're aiming for.
Day 3
Travel day: travel rambles!
- Would have been yesterday, but weather got in the way
- Flying is always fun, but I am exhausted so not squeezing in technical work today
- Packing a Penny board for the flight back has been surprisingly fine, no concerns from security (Which I guess why would there be?). Not useful for the small airport I've been sitting at though.
I think the architecture of airports could be a good source of inspiration for some of the building in the game. Lots of fun hallways and several floor levels, with clear paths you should and some where you shouldn't go. Should have snapped some pics for reference. Maybe next flight.
While waiting for the flight I watched/listened to the Linus Torvalds interview on LTT. Mostly it was just a fun video. "Do anything once", "Respond in 15 minutes or delete it" (for e-mail), and "If I knew how much work it would've been I wouldn't have done it" (re: starting the linux project) were some fun lines from Torvalds. Not quite words to live by but certainly fun words to consider.
Note from mid flight:
Once on the plane, if your phone charger doesn't work in the outlet immediately try again after take off. Don't just unplug from the phone. Unplug from the outlet as well and plug it back in.
Listened to the Cortex episode featuring Hank Green during the flight.
- It was good.
- I do not have as many or as varied of projects Hank Green.
- I think I could do with a bit more of that kinda chaos.
- Bonus section at the end, with more John Gruber. It was also good.
Getting off the last train home I got to use the penny board. I think it halved the time it would've take to walk from the stop, saved a whole 3 minutes maybe. It was a blast.
Only had the energy for listening to stuff today, no mid-travel tinkering. Collapsing now that I'm home.
Day 2
Getting over a light cold tonight, fixed the image that was posted yesterday so that it shows up correctly. I think that's enough for tonight.
Day 1
Dinked around a bit with stuff in the engine. Been using a premade 3d character, and am working on adjusting that a bit. The 3d model is a bit more detail than I'm ready to work with for the moment, so it's been swapped for a block.

Also featured are some cubes in the background from earlier tinkering.
Day 0
My 2024 December Adventure was broad in scope and occasionally dubious of consistent coding, instead branching out into repair, musical noodling and compatibility ramblings. This was fun but also left the month feeling lacking on a concrete bit of progress on real projects.
This year I'll be focusing primarily1 on building a game in Godot. A game should overlap many interests, so regardless of what I do it'll usually be moving the game forward. After some tinkering with the engine this November I'm feeling fairly confident going in, but I've never built a full "game" so we'll see exactly what shape this end result takes.
I have every expectation I'll be distracted by side quests, and have a busy month ahead of me. Expect anything and everything in these updates.