ChunkDev ๐Ÿฆ‹'s Avatar

ChunkDev ๐Ÿฆ‹

@chunkdev.bsky.social

Building ChunkCity - an Infinite City Builder for PC & mobile ๐Ÿ’ป๐Ÿ“ฑ. No engine, built with #Kotlin and #libGDX

902 Followers  |  275 Following  |  679 Posts  |  Joined: 18.10.2024  |  2.1263

Latest posts by chunkdev.bsky.social on Bluesky

This is GOAT

03.02.2026 20:27 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Shinestone so to speak

Sorry...

02.02.2026 22:09 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

IntelliJ IDEA by jetbrains

01.02.2026 14:59 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I didnโ€™t have a compiler course or the Dragon Book. Watching a YouTuber called tsoding build compilers from scratch on YouTube was my sole inspiration.

31.01.2026 21:19 โ€” ๐Ÿ‘ 8    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Probably, yes - just not yet. I want it to be in a somewhat presentable state first.

31.01.2026 21:14 โ€” ๐Ÿ‘ 8    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

First post of the year after a few stressful weeks at work. Added support for Kotlin objects (singletons): no lazy init yet, but the implementation was refreshingly straightforward.

#kotlin

31.01.2026 20:31 โ€” ๐Ÿ‘ 247    ๐Ÿ” 13    ๐Ÿ’ฌ 8    ๐Ÿ“Œ 0
I Made My Game's Map 1000x Bigger! - Village Builder Devlog #11
YouTube video by Nikita Lisitsa I Made My Game's Map 1000x Bigger! - Village Builder Devlog #11

A new devlog about my village building game! ๐Ÿ“บ

Learn about how and why I transformed my game's world from a tiny 200m patch to a mighty 100km island! ๐Ÿ”ฅ

#gamedev #indiedev #indiegames #devlog

youtu.be/00f5GLnVtok

24.01.2026 23:02 โ€” ๐Ÿ‘ 72    ๐Ÿ” 20    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
I'm making a game engine based on dynamic signed distance fields (SDFs)
YouTube video by Mike Turitzin I'm making a game engine based on dynamic signed distance fields (SDFs)

The video:

youtu.be/il-TXbn5iMA

06.01.2026 19:53 โ€” ๐Ÿ‘ 209    ๐Ÿ” 57    ๐Ÿ’ฌ 20    ๐Ÿ“Œ 15
Post image

I just learnt that Valve used it in Half-Life and called it "Half Lambert"

05.01.2026 23:00 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Probably set to private like I did

02.01.2026 13:14 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

Nice, top 80%

02.01.2026 12:38 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

I tried similar things before but this one works exceptionally well while being extremely simple yet elegant.

Also thanks for sprinkling in hermite splines, just to conclude that even math says it's a great solution.

02.01.2026 12:33 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Duff's device - Wikipedia

It reminds me of Duff's device: en.wikipedia.org/wiki/Duff%27...
So it's basically goto, and maybe shouldn't be used because it's confusing

31.12.2025 20:27 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

So... just two more years? Anyways, I'm looking forward to it

31.12.2025 19:41 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

New blog post! (yep, at New Year's Eve.) A short detour into a fun one-liner shading model I use for clouds in my game ๐Ÿฅฐ

lisyarus.github.io/blog/posts/a...

31.12.2025 15:03 โ€” ๐Ÿ‘ 52    ๐Ÿ” 7    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

I need two different move instructions since I use separate stacks for primitive (.p) and object types (.a) for implementation reasons.

The .i in the MUL instruction stands for 32bit integer multiplication, indeed.

30.12.2025 20:12 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Thanks, I haven't released it yet

30.12.2025 19:51 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Basically role playing with code

30.12.2025 12:40 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

I considered doing it this way, but adding a separate function and calling it reliably behind the scene sounds like a major headache. So instead I added special instructions to the VM to communicate a bit mask of used default values to the function.

They are only present before inlining.

30.12.2025 10:52 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Taught my Kotlin scripting runtime to handle default parameters and named arguments. For simplicity, default evaluation lives in the function body and gets removed when inlined at the call site.

#kotlin

29.12.2025 20:40 โ€” ๐Ÿ‘ 185    ๐Ÿ” 6    ๐Ÿ’ฌ 8    ๐Ÿ“Œ 1

These numbers would piss me off, too

26.12.2025 10:30 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

Angular lerping done wrong in production

25.12.2025 22:33 โ€” ๐Ÿ‘ 23    ๐Ÿ” 4    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 0

Lua has the issue of extensive boxing and not using statically known types for optimizations. For that I consider it surprisingly fast ๐Ÿ˜„
Not using LuaJIT here as that wouldn't be as portable.

Optional parameters and passing parameters by name weren't on my roadmap but who knows ๐Ÿคท

23.12.2025 15:28 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Absolute tsoding

22.12.2025 19:09 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

Good question. I don't support default or named parameters nor `by` keyword yet so that may be a limitation. In terms of raw performance see the attached screenshot where I let it calculate prime numbers up to 1,000,000. My project is under 10k LOC.

22.12.2025 17:40 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Things are serious when Unsafe is involved

22.12.2025 17:17 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Take WebAssembly for example, it's machine code of a virtual machine

21.12.2025 22:56 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

This is not CPU assembly but assembly for interpreting during runtime. That way you don't need a "proper" compiler which wouldn't be allowed on some platforms anyway.

21.12.2025 22:48 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I'm writing a compiler to compile and run Kotlin within Kotlin without external dependencies. The assembly you are seeing here is proprietary.

21.12.2025 22:39 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

Added vararg support to my runtime. Fewer things broke than expected.

#kotlin

21.12.2025 19:59 โ€” ๐Ÿ‘ 318    ๐Ÿ” 8    ๐Ÿ’ฌ 10    ๐Ÿ“Œ 0

@chunkdev is following 20 prominent accounts