@lisyarus@mastodon.gamedev.place
@lisyarus@mastodon.gamedev.place avatar

lisyarus

@lisyarus@mastodon.gamedev.place

He/him

I live in a totalitarian state, teach computer graphics, and make videogames

Check out my cozy traffic simulator: https://store.steampowered.com/app/2403100/Costa_Verde_Transport_Department/

This profile is from a federated server and may be incomplete. Browse more on the original instance.

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

What a better way to spend a Friday evening than to watch my new devlog 🤩

A recap of how my village building game 🏠 project was doing in the past month:

https://youtu.be/LUZSpIadGQk

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@thomastc Thank you so much! Usually it took me around 3 days, but lately I seem to be getting faster, and this one took me just one (full-time) day, which is my new record :D

My process is like this: I examine what I've done since the last devlog (by checking commit messages & the project's kanban board), then write a script of the devlog, record all the narration with Audacity, record some footage with OBS, optionally make some images with GIMP, and put it together in Blender Video sequencer.

lisyarus, (edited )
@lisyarus@mastodon.gamedev.place avatar

@thomastc Narration is typically the most stressful part for me, since I'm not a native speaker and I'm a little ashamed of my accent. When I just started, it took a good half an hour to just fight a mental block that stopped me from saying anything, now I'm doing it much faster, and the whole recording session takes about an hour. Another couple of hours to write the script, and several more hours to record footage and compose the final video.

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@thomastc Thank you! Yep, I'm hoping for that, too :)

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Had an itch to experiment a bit with wooden floor designs. This one uses a single tileable triangular floor tile which can be manually rotated 120 degrees to create all sorts of funny patterns.

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

In reality the base model looks like this: the red & green colors specify where to put material-specific colors (different for each wood type), which then boils down to simply multiplying vertex colors by a per-instance matrix in the vertex shader

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Ah, that looks much more like firewood ^_^

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

This should've been a pile of firewood, but somehow I made a pile of cheesecake slices

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Now that I've fixed most bugs & memory leaks, I can get back to actual content. Continuing with trees, I want chopping them to feel pretty involved, so here the guys remove the trees' leaves & branches and saw them into individual logs:

video/mp4

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@andrybak Both! And also for crafting, and the branches that will later come out of trimming the trees will also be used.

Pretty nice actually, technical issues aside, I'm more or less following it!

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Say I'm manually profiling my code, e.g. recording how much time a function takes. Right now I'm storing all samples to build statistics (e.g. percentiles) on exit, but that means O(n) memory usage for samples. Are there (necessarily approximate) O(1) memory alternatives?

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

One idea I had is to record the sum of samples, sum of squares, min & max, then assume the maximal entropy distribution on [min, max] given mean & variance (truncated normal), but that's just a shot in the dark.

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@demofox Yeah, that's what I'm doing right now, but I was interested of there are smarter ways of doing this :)

Someone on twitter suggested log-scale bucketing (with some granularity), which in practice should use very little storage

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@demofox Oh, interesting!

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@pkhuong Very nice, thank you!

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@rojun Interesting idea!

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@AlexSneezeKing @demofox Thanks for the reference! I've settled on a simple log-scale histogram with fixed relative error bounds.

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Finally finished rewriting the AI using behavior trees, fixed all the outstanding & newly emerged bugs, and I can now move on to more exciting stuff! ^_^

Footage of a village building game prototype where a bunch of villagers pick up axes and proceed to cutting down a bunch of trees.

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

God this one was hard to debug. A tiny very specific error in the ECS messed up entity metadata, which led to duplicate entity IDs, which led to different AI instances operating on the same erroneously shared data, which led to single-threaded code behaving like multi-threaded code without locks.

Ooph.

curved_ruler, to random
@curved_ruler@mastodon.gamedev.place avatar

Peak

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@curved_ruler What's Delaunay noise?

lisyarus,
@lisyarus@mastodon.gamedev.place avatar
lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

The downside of using my own ECS implementation is that every week or so I need to fix an increasingly notorious low-level object lifetime / caching / etc bug

Though, I knew exactly what I'm signing up to

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@slembcke I'm hoping to get to that state soon as well :)
Just not there yet...

jbikker, to random
@jbikker@mastodon.gamedev.place avatar

https://carette.xyz/posts/state_of_vulkan_2024/

TL;DR: Too hard to learn; many people stick with OpenGL. In the meantime, a colleague at my university asked if it would be safe to basically switch to path tracing altogether for year 2 courses next year, using the APIs to render 2 tris essentially...

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@BartWronski @dotstdy @jbikker @gob I've been teaching a real-time graphics course for 3 years by now using OpenGL. In one semester we manage to get to things like deferred shading & volumetric shadows, while with Vulkan we could probably get to rendering a textured quad by this time.

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@gob @nical I agree with what you've said, but for me, a hobbyist gamedev, WebGPU actually strikes the perfect middle ground: I'm sick of OpenGL, and I want to use a modern API if just for a cleaner API, while Vulkan is simply too much for me.

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@BartWronski @dotstdy @jbikker @gob Yep, exactly! I wouldn't blame your attention span here. While learning, it's immensely important to know the reason behind stuff, to keep track of context, and to absorb things slowly, one at a time. Vulkan just doesn't allow that.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • cisconetworking
  • khanakhh
  • mdbf
  • magazineikmin
  • modclub
  • InstantRegret
  • rosin
  • Youngstown
  • slotface
  • Durango
  • tacticalgear
  • megavids
  • ngwrru68w68
  • everett
  • tester
  • cubers
  • normalnudes
  • thenastyranch
  • osvaldo12
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • lostlight
  • All magazines