Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Nikita Lisitsa

@lisyarus@mastodon.gamedev.place
mastodon 4.7.3
  • Open on mastodon.gamedev.place

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 traffic simulator: https://store.steampowered.com/app/2403100/Costa_Verde_Transport_Department/

2803 Followers
169 Following
50 Posts
Joined November 08, 2022
Itch.io:
https://lisyarus.itch.io/
Blog:
https://lisyarus.github.io/blog/
YouTube:
https://www.youtube.com/@lisyarus
Twitter:
https://twitter.com/lisyarus
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 2mo ago
Boosted by @joe@f.duriansoftware.com
TIL there's no unsigned 64-bit -> floating-point 64-bit conversion in x86_64, so you have to build it up from other instructions. Here's the codegen by gcc-15.2 with -O3, it uses different code paths based on the highest bit of the input:
22
4
7
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

By popular demand, figured how to properly put the sandy river banks (aka point bars) on the correct (inward) side of the river! Now the meandering looks even more realistic with no actual simulation 😎

#indiedev #gamedev #indiegames

mastodon.gamedev.place

Gamedev Mastodon

91
0
13
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
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! #programming #pldev #compiler #arm64 https://lisyarus.github.io/blog/posts/making-your-own-programming-language.html
Making your own programming language is easier than you think (but also harder)
lisyarus blog

Making your own programming language is easier than you think (but also harder)

76
10
34
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

Fun world generation: a river almost made a full circle, enclosing a hex-shaped forest patch 🤯

#indiedev #gamedev #indiegames #screenshotsaturday

mastodon.gamedev.place

Gamedev Mastodon

44
4
4
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

Just for fun, recorded a video travelling along one of the rivers from source to delta. Had to speed it up quite a lot, otherwise it was too long 😅

#indiedev #gamedev #indiegames

mastodon.gamedev.place

Gamedev Mastodon

46
3
6
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

Just a random screenshot, standing on a hill and looking at the shore and distant forests

#indiedev #gamedev #indiegames

mastodon.gamedev.place

Gamedev Mastodon

43
0
3
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

Oooph, fixed a bug in my wind field generation code, tweaked cloud density & spawning, and now they look and move soooo much better! 🤩

(this is sped up 256x, and I removed the day-night cycle for clarity; the video actually spans 14 in-game days)

#indiedev #gamedev #indiegames

mastodon.gamedev.place

Gamedev Mastodon

40
8
9
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@jmorahan @kamstrup Yep, that's why they call it mansplaining
35
1
3
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

River generation progress: fixed the "aqueducts" and weird mountain cutoffs, added occasional sand river banks. Still got a ton of issues to solve, though 😅

#indiedev #gamedev #indiegames

mastodon.gamedev.place

Gamedev Mastodon

33
0
5
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

Having a flexible ECS engine underneath means I can debug clouds producing rain just by spawning rain "particles" (actually scaled & recolored boulders, lol)

#indiedev #gamedev #indiegames

mastodon.gamedev.place

Gamedev Mastodon

29
6
6
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 4mo ago
Boosted by @joe@f.duriansoftware.com
New blog post! Kinda math-heavy this time, but I wanted to share about this weirdly fascinating things called quiver representations that generalize stuff from basic linear algebra to wild unsolvable problems 🤩 https://lisyarus.github.io/blog/posts/quivers-a-year-of-linear-algebra-by-drawing-arrows.html
Quivers: a year of linear algebra by drawing arrows
lisyarus blog

Quivers: a year of linear algebra by drawing arrows

15
0
6
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

Experimenting with particle-based clouds driven by the wind velocity field. Particles use scaled boulder meshes for test. The plan is to splat these into a texture which will be used to generate the final mesh as before.

#indiedev #gamedev #indiegames

mastodon.gamedev.place

Gamedev Mastodon

23
2
1
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

This algorithm seems to be able to create insane meandering patterns with rivers stretching across the whole island, that's so cool

#indiedev #gamedev #indiegames #screenshotsaturday

mastodon.gamedev.place

Gamedev Mastodon

23
0
4
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago

Improved river height interpolation using cubic splines, fixed some weirdness on river banks & deltas. Still hunting a few remaining discontinuities...

#indiedev #gamedev #indiegames

mastodon.gamedev.place

Gamedev Mastodon

19
8
4
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 2mo ago
Currently the parser doesn't allow newlines before the opening curly brace {, which forces a certain formatting style. Not sure if I want to keep that or allow a different style, though... The first one looks nicer but the second one can be easier to read in more complex scenarios
4
13
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 2mo ago
Replying to
@witchgirls@woof.tech Ah, yes. In my example above "-1" would be an expression statement. I can't not have that because they can contain function calls with side effects
1
1
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 2mo ago
Replying to

@witchgirls@woof.tech Yep! I'm still not entirely sure about that, since now

let x = 10

  • 1

and

let x = (10

would be entirely different pieces of code...

1
5
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 2mo ago
Replying to
@witchgirls@woof.tech What do you mean by "get away with removing them"?
1
3
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 2mo ago
Replying to
@witchgirls@woof.tech Currently not allowed, yes. I'm still thinking about options for multiline statements, the best-looking one is to make unmatched opening ( or [ to span several lines until a match is found (which would fix your function_call case, btw)
1
7
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 2mo ago
Replying to
@witchgirls@woof.tech I simply don't allow multiline statements :D
1
11
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 3mo ago
Replying to
@catsalad@infosec.exchange Something something potassium-40
2
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@thomastc@mastodon.gamedev.place I think JVM is smaller than LLVM, bit still quite large. Arrays of primitives aren't enough for me, I need at least arrays of arbitrary C structs, but often even more than that. Also I can't allow GC to unpredictably step in and wreck performance :/
3
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@johncarlosbaez@mathstodon.xyz The problem is that I'm not making a planetary simulation, I'm making a game :) I need variation and unexpected things much more than I need physical correctness, and things looking just believable enough are fine. I've played a lot with various options of simulating/generating wind, and the best one is to simply generate a random div-free vector field.
3
5
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@mirabilos@toot.mirbsd.org Well, you're entirely free not to read it, then!
3
6
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@vitaut@mastodon.social I can relate
2
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@whitequark@social.treehouse.systems @artemist@social.mildlyfunctional.gay Would be funny if they were involutions
2
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@BrunoLevy01@fosstodon.org Is this some kind of viscous liquid simulation?
2
2
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@MouseByTheSea@mastodon.gamedev.place Yep, that's a custom engine
2
1
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@thomastc@mastodon.gamedev.place That's actually the first thing I've tried! Advection is ok, but then the density tends to stick in certain attractor zones and never goes anywhere. I tried to push it away towards lower density areas, but this was extremely unstable. With particles it's way easier, and also respawning them is much simpler than trying to balance sources & drains of a density field.
2
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@mirabilos@toot.mirbsd.org It's just that the tone of your reply looked rather...ill-intentioned to me? You could say "Tip: in some clients you don't see a link preview, so the users don't know what the post is about", but you said (with intentional emotional paraphrasing to make it clear what I'm trying to convey) "I don't like it, you made a bad thing, I'm not gonna read it, it's bad".
2
2
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@julesh@mathstodon.xyz The powerset is a complete lattice wrt subset relation, and the largest element is the original set that the powerset was computed from. I'm not sure about the details but it sounds like that should be enough?
1
3
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@julesh@mathstodon.xyz Hmmm, the maximal element is already the set of elements, isn't it?
1
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@demofox@mastodon.gamedev.place I had specifically the case of having values & slopes at endpoints, so cubic are perfect here :)
1
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@daseinslaborant@berlin.social Yeah, that's a bit different from what I'm planning 😅 Here's some write-up on the project, if you're interested: https://lisyarus.github.io/blog/projects/village-builder.html
Village Builder Game
lisyarus blog

Village Builder Game

1
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@oblomov@sociale.network 4. I don't agree. I've shown enough examples where epsilons are not needed in the first place, and a few examples where they are okay. I didn't pick them just to sort my claim - my overall programming experience confirms that epsilons are almost always the bad option. I don't see how the user input example invalidates that.
1
4
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to

@oblomov@sociale.network I wanted to show a case where comparing to zero is the correct thing to do.

  1. That's news to me. Do you have any references to support this claim? Sure, of your matrix is sparse/symmetric/tridiagonal/whatever, you can do much better, but for a general system my impression was that there are basically just GJ and QR. QR is more precise but slower.

Again, note that absolutely maximum precision wasn't the goal.

1
5
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to

@oblomov@sociale.network 1. I don't see how this contradicts what I'm saying, except layer I show a case (slerp) where even FLT_EPSILON is not the correct thing, for a couple of reasons.

  1. Absolutely agreed. Though note that the goal was not to have maximum precision, but to have reasonable results & nice invariants.

2bis. I've seen a lot of people who would immediately replace this code with epsilon, simply because of the "FP COMPARE BAD" mantra.

1
6
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@mirabilos@toot.mirbsd.org No problem, neither am I 😅
1
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@mirabilos@toot.mirbsd.org Thanks for the tip (really), I'm not using a dedicated client and just using a web browser, which shows the link preview, which has a post title. And, to be honest, it's the first time I see someone complain about this.
1
4
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@artificialmind@fosstodon.org Yep, that's pretty much what my own experience was as well!
1
2
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@artificialmind@fosstodon.org That's nightmare fuel
1
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@amonakov@mastodon.gamedev.place I was writing more with the idea that the code stays relevant regardless of the specific FP format. Of course, doubles will solve this specific case! I have this old habit of avoiding doubles, but afaik for most arithmetic ops they're as fast on modern CPUs.
0
1
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 2mo ago
Replying to
@witchgirls@woof.tech This is not allowed: let x = 10 + 11 * 12 Only let x = 10 + 11 * 12 So a newline effectively acts as a semicolon
0
9
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@mmby@mastodon.social Yep, they're all over the place Yes, I precompute the slopes to that all river segments meeting at a point have the same slopes
0
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@whitequark@social.treehouse.systems ...am I having a stroke or did you post exactly that some time ago?..
0
5
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@BrunoLevy01@fosstodon.org Lovely!
0
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@TomL@mathstodon.xyz @johncarlosbaez@mathstodon.xyz Ohh, that's nice, thank you!
0
2
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@TomL@mathstodon.xyz @johncarlosbaez@mathstodon.xyz Contour tangents are exactly what I'm using here, didn't know you can animate them to produce solutions to Euler equations. Need to think about that
0
1
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@whitequark@social.treehouse.systems Must be it
0
0
0
0
Open post
Nikita Lisitsa @lisyarus@mastodon.gamedev.place
· 5mo ago
Replying to
@oblomov@sociale.network Sure!
0
12
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 08:53:35 UTC