Nikita Lisitsa (@lisyarus.bsky.social)
My terrain mesh is not okay π #indiegames #indiedev #gamedev
He/him I teach C++ & computer graphics and make videogames Working on a medieval village building game: https://youtube.com/playlist?list=PLSGI94QoFYJwGaieAkqw5_qfoupdppxHN&cbrd=1 Check out my cozy road building traffic sim: https://t.ly/FfOwR
6,309 followers 968 following 1,364 posts
view profile on Bluesky Nikita Lisitsa (@lisyarus.bsky.social)
My terrain mesh is not okay π #indiegames #indiedev #gamedev
Nikita Lisitsa (@lisyarus.bsky.social)
My new outline shader pass took ~3.2ms per frame, which is way too much. Optimized it to ~0.8ms simply by doing an early-out, now it's pretty acceptable π #indiedev #gamedev #indiegames
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Thank you!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Sad to hear that, hope tomorrow'll be better!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Though I've just implemented simple culling of bounding spheres by the 5 remaining clip planes and it looks like it's more than enough for my case, so, cheers I guess!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
To elaborate: the usual way I do this is by SAT-based convex polyhedron intersection test, which gives perfect culling. However, it doesn't work for infinite polyhedra :(
Nikita Lisitsa (@lisyarus.bsky.social)
Ok so #graphics folks if you have any references for doing frustum culling with reversed-z (where the frustum is infinite) I'd love to know about them!
Nikita Lisitsa (@lisyarus.bsky.social)
Think I've managed to hack together an outline shader that doesn't overdarken large flat areas parallel to the camera β¨ It's not perfect, but defenitely better than what I had before #indiedev #gamedev #indiegames
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Thank you!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
That's a game I'm working on :)
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
In this case I just forgot to add one var to another, lol
Nikita Lisitsa (@lisyarus.bsky.social)
Imagine building a fortress here π₯ #indiedev #gamedev #indiegames
Nikita Lisitsa (@lisyarus.bsky.social)
I think something is horribly wrong with my outline shader... #indiedev #gamedev #indiegames
Nikita Lisitsa (@lisyarus.bsky.social)
Working on a new, smarter outline shader that doesn't darken flat areas parallel to camera view, based on computing a best fit depth plane around a pixel. It works, but somehow I'm struggling to make it as smooth as the old one π #indiedev #indiegames #gamedev
Nikita Lisitsa (@lisyarus.bsky.social)
Really like this generated island - two big parts with their own mountains, a huge peninsula & bay on he left, etc #indiedev #indiegames #gamedev
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Yes, and also a bug π Parts of parent chunks should render while the child chunk is being prepared, already fixed that by now
Nico β‘οΈ| Wishlist A Stranded Spark on Steam! (@tomatecebolla.bsky.social) reposted
The finish line is closer! I planned A Stranded Spark to be a 6 month project, but life, work, nice feedback and falling in love with the project made me extend the development for almost 2 years. But I regret nothing!π¦π§‘ποΈ I hope soon I can share a build and start testing! Would you be interested? π€
Nikita Lisitsa (@lisyarus.bsky.social)
Turned the cliffs into a different stone type, something limestone-ish. I think I'll stop just playing with procgen now and work on more important stuff like incorporating this in the rest of the game π #indiegames #indiedev #gamedev
Nikita Lisitsa (@lisyarus.bsky.social)
If you squint your eyes and pretend that the dark green thing on the right is actually a forest, the mountain in the distance starts looking really impressive, lol π #indiegames #indiedev #gamedev
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Exactly!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
I don't torture myself with visiting this place π
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
The heightmap is based on just several layers of fractal perlin noise. Mountains are fractal ridged noise (= 1 - abs(2 * perlin() - 1)). All computed with automatic derivatives using dual numbers, which I use to place stone/grass, etc.
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Water is temporary ofc, just to give some idea. I don't have actual water implemented yet π And ofc stuff like forests, biomes, etc will happen, but not right now
Nikita Lisitsa (@lisyarus.bsky.social)
Pretty happy with today's result for procedural map: large central island + smaller ones, nice gentle shores, steep cliffs, hills, medium mountains, and huge snow-capped mountains π₯° Btw, the main island is ~50km in length. #screenshotsaturday #indiedev #indiegames #gamedev
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Well, I guess it worked 100k years ago, so...
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
I'll leave it to you to guess which platform it happened on
Nikita Lisitsa (@lisyarus.bsky.social)
> get an overly generic reply with excessively pompous wording > check out profile > "AI job coach & innovator" > posts 5 generic replies per minute to random accounts with 10k+ followers Something something dead internet something something scam
Nikita Lisitsa (@lisyarus.bsky.social)
First crude landform generation tests. I'll probably do some tectonic plates generation in the future, but right now I want just a rough idea of how the map should look like, so noise-based stuff is fine. #screenshotsaturday #indiedev #indiegames #gamedev
Nikita Lisitsa (@lisyarus.bsky.social)
Not what I should be working on rn, but I had an itch to prototype some simple procedural mountains with "erosion" based on analytic derivatives computed using dual numbers β¨ #indiedev #gamedev #indiegames
Nikita Lisitsa (@lisyarus.bsky.social)
Been proctastinating & overthinking for about a week, but today I finally started working on a new, much larger map. Here's a test with a simple mountain-ish ring, with terrain LOD & async chunk generation. The ring is about 3.5km in radius and 2km in height. #indiedev #gamedev #indiegames
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Cool, cool!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
What's it gonna be exactly? Or no revealing yet? :)
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Happy birthday!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Lmao, I turned off VPN and it started to show the correct list, wtf
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
> the CIA has updated the total area of the United States several times I guess the 'C' in CIA stands for cartography
zaratustra (@zaratustra.bsky.social) reposted
technically, the US has revised its definition of "area" multiple times until it was bigger than china en.wikipedia.org/wiki/Geograp...
Nikita Lisitsa (@lisyarus.bsky.social)
Absolutely great fckn job, gloolgle Apparently US is ~300'000mΒ² larger than China (no it isn't), while Canada, Australia and Argentina just don't exist
Nikita Lisitsa (@lisyarus.bsky.social)
Game devs post your first shipped game and your latest shipped game (I haven't shipped many games...)
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
In my game I'm planning to have no minimap β instead you can seamlessly zoom out anywhere to any zoom level! That's quite technically demanding ofc, but should be worth it
Karl (@hexaquo.at) reposted
Finally finished part 4 of my Godot Grass Rendering Series! In this one, we'll dive deep into level-of-detail and impostors to create an infinite field of grass while keeping the GPU cool: hexaquo.at/pages/grass-... #godot #gamedev
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Oh my god, I thought it's the creators themselves who did this, and always thought it's absolutely horrible and unwatchable...
Nikita Lisitsa (@lisyarus.bsky.social)
I had a student who did my university raytracing course in Odin, now they've sent me an image made by their raytracer and I'm dying
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Last time I had a New Idea I started writing a thorough design document and found so many things that require thinking through & making nontrivial decisions that my hype burned in just a day!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Oooohhh nice
Nikita Lisitsa (@lisyarus.bsky.social)
FYI nine quid for bloody ice cream is the best video on the internet, period
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Wow, that's super cool! Good luck on your path!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
May I ask why are you studying chemistry?
Nikita Lisitsa (@lisyarus.bsky.social)
Finished a -1800 +2100 refactoring, now I can finally proceed to doing some Fun Stuffβ’
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Many reasons - it's more uniform, allows for more interesting shapes, etc, but the main reason is that it's an unexplored area of game design, and I wanted to explore it!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Watch the full episode here: www.youtube.com/watch?v=fymx...
Nikita Lisitsa (@lisyarus.bsky.social)
If you missed my latest devlog, here's a sneak peak #indiedev #indiegames #gamedev #devlog
Nikita Lisitsa (@lisyarus.bsky.social)
Ok I slept on it and it's fine actually, all clear
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Objection: I didn't ask any questions :)
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Because it's a file that initializes a lot of stuff, it includes something like 70% of all include files in the project, with a ton of templates & template instantiations & such π
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
This refactoring is necessary to transition to larger maps & proper world generation, but it is also mandatory to implement game saving/loading (need to clearly separate stuff that is saved in a savefile vs stuff that isn't)
Nikita Lisitsa (@lisyarus.bsky.social)
Been refactoring for two days and now realized half of it needs to be done differently π I'm cleaning up world initialization & generation because rn it's a mess split across random files + 1 giant 2k loc file that takes 20 seconds to compile #indiedev #gamedev #indiegames
Jamie D (@uk-resistant.bsky.social) reposted
Sharing water from my game for no reason
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
It is good water!
Alan Wolfe (@demofox.bsky.social) reposted
Derivatives, Gradients, Jacobians and Hessians β Oh My! New mathy blog post to try and make some scary sounding terms less scary. blog.demofox.org/2025/08/16/d...
Nikita Lisitsa (@lisyarus.bsky.social) reposted
A new devlog about my medieval village building game! About 4 months of progress in this one! #indiedev #gamedev #indiegames #devlog www.youtube.com/watch?v=fymx...
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Don't like them. It should be my, i.e. the user's, decision whether I want it in a new tab or not.
Nikita Lisitsa (@lisyarus.bsky.social)
Friends over 30 be like bro bro BRO I'VE SEEN A MAGPIE!!! WITH A BABY MAGPIE!!!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Call it `render_card` ?
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
This is actually hilarious
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
I love it so much when I stumble upon a year-old "TODO: fix this" comment in a perfectly reasonable code and wonder what exactly am I supposed to fix
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
That's half of my gf's Instagram suggestions as well, yep. (The other half being cats.)
Nikita Lisitsa (@lisyarus.bsky.social)
A new devlog about my medieval village building game! About 4 months of progress in this one! #indiedev #gamedev #indiegames #devlog www.youtube.com/watch?v=fymx...
Nikita Lisitsa (@lisyarus.bsky.social)
Inner dialogue while making the next devlog: - It won't be a giant devlog, right? - What do you mean? - Well, we didn't add that many features since the last one... - *laughs* It will be a good devlog, don't you worry. Narrator: It was a giant devlog.
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Claude was in the list of what I tried, yes
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Everybody keeps telling me that these things are great for things that literally never come up in my life
Nozomu (@nozomugames.com) reposted
Closed playtest for Burn With Me, our occult narrative deckbuilder, starts soon! Join our testing group, try early, wild, broken builds, and share feedback. Get a game key, your name in credits, and maybe even a chainsaw fish pin. Sign up: forms.gle/D8SphSLYjWvL...
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Guys if you're telling me this dumb shit is gonna replace us, I'm afraid your IQ is comparable to that of a cardboard cup holder
Nikita Lisitsa (@lisyarus.bsky.social)
So I tried a few LLMs at work for stuff I'm very unfamiliar with & couldn't find info online. Naturally, it hallucinated imports/types/methods, repeated solutions I already said are wrong, insisted that my project setup is wrong, and gave dead links to docs.
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
π«
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Afaik this person recently lost their house in LA fires or smth like that, might explain their maniacal fear of local-based solutions Doesn't give them the right to speak this way to you of course, that was despicable
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Btw - yes, white-washing, or generally covering walls in paint, is going to be a thing
Nikita Lisitsa (@lisyarus.bsky.social)
This is how I imagine a typical starter house to look like: white-washed (i.e. with lime) adobe (= wattle'n'daub) walls, wattle doors/windows, and hay/thatched roof. Like a traditional Eastern European dwelling, the type I saw at my grandma's village years ago π₯° #indiedev #indiegames #gamedev
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
A secret mushroom maybe :)
Nikita Lisitsa (@lisyarus.bsky.social)
Experimenting with subtle tree color randomization in a mixed birch/oak wood. That's roughly how forests will look in the final game, I guess π³ (yes I'm procrastinating making the devlog π ) #indiegames #indiedev #gamedev
Nikita Lisitsa (@lisyarus.bsky.social)
Gotta love people who have zero idea of what I do / am planning to do telling me what I need and what I don't need
Tzschk (@tzschk.bsky.social) reposted
Been really itching to get back to this lately...
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
I don't know what it is but it looks lovely!
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Sorry to hear that :(
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
*looks at the code* *the code doesn't work*
Nikita Lisitsa (@lisyarus.bsky.social)
Every once in a while I look at the abomination that is my ECS engine and start thinking that I need some much simpler model for the game Then I try to gather all the requirements for said simpler model and well, you wouldn't have guessed it, it is exactly my ECS engine
Nikita Lisitsa (@lisyarus.bsky.social) reposted
Your regular reminder that a triangular/hex grid is just a skewed square grid. #gamedev #indiedev #indiegames #screenshotsaturday
Nikita Lisitsa (@lisyarus.bsky.social)
I'm preparing for scaling my game to much larger worlds & can't decide whether I want to support explicit spatial partitioning in my ECS or just do some stupid ad-hoc tricks outside it π€
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Yep, exactly! And there are multiple choices for this bases, but I use the one you said :)
Nikita Lisitsa (@lisyarus.bsky.social)
Your regular reminder that a triangular/hex grid is just a skewed square grid. #gamedev #indiedev #indiegames #screenshotsaturday
Nikita Lisitsa (@lisyarus.bsky.social)
So, a few evenings of lazy work and I've managed to upgrade to a 1.5-year-newer version of wgpu-native, yay! (the 3k loc file is the bundled webgpu.h header and not my actual changes)
Liza Knipscher (a game developer) (@lize.bsky.social) reposted
Chaotic fun with tractor beam physics #gamedev
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
Tbh idk what I expected from *checks notes* work-in-progress C bindings to a Rust implementation of a JavaScript API that's still in draft state
Nikita Lisitsa (@lisyarus.bsky.social)
Trying to update to a new version of wgpu-native and apart from a ton of API changes they shifted the numeric values of almost all enum members by 1, breaking virtually all my wrapping code π
Nikita Lisitsa (@lisyarus.bsky.social) reply parent
I could also probably be used for extra thermal insulation, when I finally implement that thing
Nikita Lisitsa (@lisyarus.bsky.social)
Been watching Rust (the game, not the language) playthroughs lately and realized I can do the same triangular-honeycomb-style bases in my game! Completely useless for now, but maybe could be used for defence later on? Looks pretty cool anyway π€© #gamedev #indiedev #indiegames