Sign in

ChunkDev 🦋

@chunkdev.bsky.social
937 followers 297 following 753 posts

Building ChunkCity - an Infinite City Builder for PC & mobile 💻📱. No engine, built with #Kotlin

PostsRepliesMedia
Reposted by ChunkDev 🦋
Rune Skovbo Johansen @runevision.bsky.social · 20/08/2026
Join me for a sunrise walk? I've implemented time-of-day, better atmospheric scattering, airglow so the night sky isn't pitch black, boosted ambient lighting in the dark, and carefully managed transitions. Still missing an actual sun 🤦, moon, stars, and sunrise time stretching. #GameDev #IndieDev
48511
ChunkDev 🦋 @chunkdev.bsky.social · 17/08/2026
I had the spontaneous idea to let active meshes follow paths and have colliders. The result: an elevator. I never planned to support any of this. I suspect this will be useful for quite a few other things, too. Paths can be edited directly in the game’s built-in mesh editor. #gamedev | #indiedev
0235
ChunkDev 🦋 @chunkdev.bsky.social · 13/08/2026
I finally added retractable landing gear to airplanes. For now, it happens automatically based on distance to the ground. Technically, the wheels are "active reference" meshes that the airplane system takes control over. #gamedev | #indiedev
0142
Reposted by ChunkDev 🦋
Nikita Lisitsa @lisyarus.bsky.social · 08/08/2026
What's that?? 👀 A new devlog about my village building game! 🤯 It only took me 7 months 😅 Enjoy: www.youtube.com/watch?v=xWrk...
youtube.com
I Added Realistic Water And Rivers To My Game
YouTube video by Nikita Lisitsa
06516
ChunkDev 🦋 @chunkdev.bsky.social · 09/08/2026
Quest markers are in, but there aren’t any quests yet. Targets are currently simple points with a radius, but they’re represented in three ways: on the minimap, as a screen-space indicator, and as a 3D marker in the world. A lot of steps just to tell the player where to go. #gamedev | #indiedev
1172
ChunkDev 🦋 @chunkdev.bsky.social · 04/08/2026
Added cogs to my game
090
ChunkDev 🦋 @chunkdev.bsky.social · 30/07/2026
Now with light switching. To keep chunk meshes such as buildings static, emission color and activation times are encoded in the vertex data and evaluated by the shader based on the time of day. #gamedev | #indiedev
1153
ChunkDev 🦋 @chunkdev.bsky.social · 28/07/2026
I could keep doing this forever. Quite literally, this world is infinite. #gamedev | #indiedev
0152
ChunkDev 🦋 @chunkdev.bsky.social · 26/07/2026
Originally, I wanted buildings to stay as static as possible, with referenced submeshes baked into them. Now I’ve added “active references”: With that, referenced meshes can become their own entities, allowing them to move, rotate, and light up independently. #gamedev | #indiedev
1193
ChunkDev 🦋 @chunkdev.bsky.social · 24/07/2026
Finally added a day night cycle to my city building game. #gamedev | #indiedev
0344
ChunkDev 🦋 @chunkdev.bsky.social · 22/07/2026
Cranes! I’m really enjoying this workflow: Create the meshes in the game’s built-in mesh editor, and then copy their IDs to reference them in code to do stuff. #gamedev | #indiedev
0123
ChunkDev 🦋 @chunkdev.bsky.social · 21/07/2026
My game (still) runs smooth on a 13 years old device #gamedev | #indiedev
1585
ChunkDev 🦋 @chunkdev.bsky.social · 20/07/2026
Cheap but effective night view
0120
ChunkDev 🦋 @chunkdev.bsky.social · 17/07/2026
Maybe, just maybe, I am using too many of those lights.
270
ChunkDev 🦋 @chunkdev.bsky.social · 16/07/2026
When you slep a cheap light overlay on your scene and it just looks better. At this point I have various system whose sole purpose is to render a bunch of particle like effects with as few draw calls as possible.
060
ChunkDev 🦋 @chunkdev.bsky.social · 14/07/2026
It's been a while. Here I added an effect radius preview. Technically I am using the same mechanism I use to mark objects without mesh rebuilding in general: Special marker meshes that get drawn only at certain pixels using stencil masks.
060
Reposted by ChunkDev 🦋
Nikita Lisitsa @lisyarus.bsky.social · 06/05/2026
You might remember that I was working on my own programming language a few months ago. I've decided to write a blog post about what this language is, how it is implemented, and what are my future plans! lisyarus.github.io/blog/posts/m...
lisyarus.github.io
Making your own programming language is easier than you think (but also harder)
118512
Reposted by ChunkDev 🦋
Nikita Lisitsa @lisyarus.bsky.social · 21/04/2026
Improved river height interpolation using cubic splines, fixed some weirdness on river banks & deltas. Still hunting a few remaining discontinuities... #indiedev #gamedev #indiegames
3495
ChunkDev 🦋 @chunkdev.bsky.social · 31/01/2026
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
823912
Reposted by ChunkDev 🦋
Nikita Lisitsa @lisyarus.bsky.social · 24/01/2026
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
youtu.be
I Made My Game's Map 1000x Bigger! - Village Builder Devlog #11
YouTube video by Nikita Lisitsa
38319
Reposted by ChunkDev 🦋
Mike Turitzin @miketuritzin.bsky.social · 06/01/2026
The video: youtu.be/il-TXbn5iMA
youtu.be
I'm making a game engine based on dynamic signed distance fields (SDFs)
YouTube video by Mike Turitzin
2022358
Reposted by ChunkDev 🦋
Nikita Lisitsa @lisyarus.bsky.social · 31/12/2025
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...
2547
ChunkDev 🦋 @chunkdev.bsky.social · 29/12/2025
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
81826
ChunkDev 🦋 @chunkdev.bsky.social · 25/12/2025
Angular lerping done wrong in production
6244
ChunkDev 🦋 @chunkdev.bsky.social · 21/12/2025
Added vararg support to my runtime. Fewer things broke than expected. #kotlin
103118
ChunkDev 🦋 @chunkdev.bsky.social · 19/12/2025
Implemented a Vector3 inspired by libGDX in my Kotlin scripting runtime. Overriding equality just works - and later sharing the native host class should work seamlessly as well. #kotlin
1025313
Reposted by ChunkDev 🦋
Nikita Lisitsa @lisyarus.bsky.social · 10/12/2025
Simulating water evaporation & precipitation, driven by a (somewhat fake) fluid simulation for the wind! Need to tweak some constants but overall taking e.g. year-average precipitation and temperature should give me some nice biomes. #indiedev #gamedev #indiegames
5849
Reposted by ChunkDev 🦋
Vuntra City @vuntracity.bsky.social · 10/12/2025
I refactored my code that generates a density map for the city to be more detailed and loved the resulting texture so much that I felt compelled to use it in the game. So I added these parallax map displays kind of like some cities have miniature versions of them. #gamedev #indiegame #procgen
3417
ChunkDev 🦋 @chunkdev.bsky.social · 06/12/2025
I added thread support to my runtime. It’s mostly a wrapper around Kotlin’s threads - and of course I had to demonstrate it with the obligatory race-condition example. #kotlin
733917
Reposted by ChunkDev 🦋
MegaChibis (Release on 15 Oct!) @megachibis.bsky.social · 06/12/2025
The level editor is no longer limited to one chunk! The stages can get huge now, if we so desire :D If it gets too large, I'm going to have to set a system where it loads/unloads chunks, but that won't be too tough. #gamedev #indiedev
0247
ChunkDev 🦋 @chunkdev.bsky.social · 03/12/2025
Sorry I had to use the most useless CS-class example ever to show off interfaces working. #kotlin
1237121
ChunkDev 🦋 @chunkdev.bsky.social · 30/11/2025
I discovered that adding new opcodes is sometimes easier if I introduce them through handwritten MiniKt assembly functions, so I can reuse the normal function resolution. The compiler inlines them anyway. #kotlin
1430415
ChunkDev 🦋 @chunkdev.bsky.social · 29/11/2025
Added generics for classes. It was painful. I wasn’t aware how much the compiler does for you. #kotlin
1200
ChunkDev 🦋 @chunkdev.bsky.social · 28/11/2025
Me: I won’t add many features to this tiny Kotlin scripting runtime. Also me: adds function-level generics. #kotlin
947318
ChunkDev 🦋 @chunkdev.bsky.social · 27/11/2025
One of Kotlin’s wildest features: you can define control flow altering functions using lambda expressions with a special syntax. Thanks to aggressive inlining it’s basically free. #kotlin
2948928
ChunkDev 🦋 @chunkdev.bsky.social · 25/11/2025
Higher-order functions take other functions as arguments. The fun part: you must not inline the call unless the target is constant - otherwise you break semantics (and your VM). #kotlin
1241024
ChunkDev 🦋 @chunkdev.bsky.social · 23/11/2025
I did the absolutely sane thing of letting the script run another script; Kotlin-ception achieved #kotlin
5994
ChunkDev 🦋 @chunkdev.bsky.social · 23/11/2025
Got sidetracked and ended up writing a tiny raytracer for performance benchmarks. 😅 #kotlin
1160
ChunkDev 🦋 @chunkdev.bsky.social · 22/11/2025
This is my first time implementing class inheritance via vtables (in my tiny Kotlin runtime). A::foo() vs B::foo() get resolved through vtables in the generated code if they cannot be resolved statically. Seeing it work correctly is more satisfying than it should be. #kotlin
1765136
ChunkDev 🦋 @chunkdev.bsky.social · 20/11/2025
Imagine your embedded runtime throwing exceptions with real stack traces - and your IDE actually picking them up correctly so you can easily navigate there. 🤯 #kotlin
3856629
ChunkDev 🦋 @chunkdev.bsky.social · 20/11/2025
The journey continues. I’m still aiming for the point where I can take some random Kotlin code and execute it within Kotlin. Recent additions: - Explicit nullability - Safe calls - Extension functions #kotlin
070
ChunkDev 🦋 @chunkdev.bsky.social · 17/11/2025
My embeddable Kotlin scripting language just got a new feature: classes. And if you look at the assembly, you can see the function calls getting inlined. #kotlin
1537120
ChunkDev 🦋 @chunkdev.bsky.social · 15/11/2025
Sometimes you get one of those insane ideas you know you’ll regret, but it’s just too intriguing. So… I’m building a compiler for a subset of Kotlin - something I can embed into Kotlin/JVM projects like Lua, but with static typing and better performance. #kotlin
2756828
Reposted by ChunkDev 🦋
Tzschk, but spooky @tzschk.bsky.social · 08/11/2025
First pass on some basic parks/plazas. #screenshotsaturday
214425
ChunkDev 🦋 @chunkdev.bsky.social · 06/11/2025
I added a tree cutter for your tree cutting needs. #gamedev | #indiedev
2295
ChunkDev 🦋 @chunkdev.bsky.social · 05/11/2025
Originally, terrain editing was click based. However, I noticed that clicking like a hundred times to make a hill is rather inconvenient. So now there's continuous terrain editing. #gamedev | #indiedev
0717
ChunkDev 🦋 @chunkdev.bsky.social · 03/11/2025
Experimenting with clipping based transparency. In contrast to actual alpha it doesn't require special sorting or separate draw calls. However, some GPUs - especially mobile ones - tend to dislike this type of rendering pretty much. It's also quite noticable on lower resolutions.
130
ChunkDev 🦋 @chunkdev.bsky.social · 02/11/2025
What’s going on here? Why is everything…chrome? #future | #gamedev | #indiedev
2114
ChunkDev 🦋 @chunkdev.bsky.social · 30/10/2025
Image building a city here... Generating terrain is such a messed up task. Whenever you touch one single parameter the outcome changes drastically. For now I settle with fewer biomes to keep my sanity. #terraingen | #gamedev | #indiedev
0255
ChunkDev 🦋 @chunkdev.bsky.social · 29/10/2025
Don't do this at home #gamedev | #indiedev
4617