Sign in

sleitnick

@sleitnick.com
409 followers 63 following 125 posts

Game dev @ easy.gg

PostsRepliesMedia
sleitnick @sleitnick.com · 11/04/2025
Finally made a low-poly airliner that I'm proud of! I'm not an artist, so even this level of fidelity is super challenging for myself. Excited to rig it up and get it flying in-game soon!
050
sleitnick @sleitnick.com · 31/03/2025
Wife: "I'm going to bed" Me: *starts installing linux*
191
sleitnick @sleitnick.com · 13/03/2025
Testing out the dialog system! #RobloxDev
060
sleitnick @sleitnick.com · 06/03/2025
The Lines of Code plugin has FINALLY received a facelift! This has been scheduled for release for a few months, but was awaiting actors to be usable from plugins.
2140
sleitnick @sleitnick.com · 03/03/2025
Here's an example. Imagine you want to make a mobile slider UI component. You first detect when the user started the drag on the UI component itself. Then you use UserInputService to detect changes and ending, using the InputObject as the way to detect if it's the same finger.
041
sleitnick @sleitnick.com · 22/02/2025
Time to suffer
000
sleitnick @sleitnick.com · 21/02/2025
Require Autocomplete update! - Require-by-string when prefixing with :: - Escapes strings & works with weird instance names - Various adjustments and performance improvements #RobloxDev
170
sleitnick @sleitnick.com · 19/02/2025
My mental health can be measured inversely proportional to how often and how late I listen to math rock. The Midwest winter weather is killing me.
230
sleitnick @sleitnick.com · 14/02/2025
Midwest moonlit drives have an eerie but pleasant vibe. Just driving into nothingness.
020
sleitnick @sleitnick.com · 13/02/2025
I've been working on a Postgres driver written in Luau for my Koa runtime. It's coming along nicely! Here's an example of inserting rows to a table, and then listing out all the rows.
270
sleitnick @sleitnick.com · 06/02/2025
Example of a socket client in Koa. Here I am getting the current time from an NTP server and parsing out the timestamp. The NTP_TIMESTMAP_DELTA converts from the NTP timestamp (Jan 1900) to Unix (Jan 1970)
241
sleitnick @sleitnick.com · 25/01/2025
RIP, at least I tried. I've heard it's hard to get accepted into Nintendo's dev program.
070
sleitnick @sleitnick.com · 23/01/2025
Luau running physical infrastructure! (Just my coach lights) Using a Shelly 1PM smart relay to toggle my lights on/off thru its API, and using my Luau runtime to spool up a simple HTTP server to shuttle around requests & also to run the background thread for updating the light state.
180
sleitnick @sleitnick.com · 14/01/2025
Yet another Luau runtime? Oh yeah. This time, written in Zig.
490
sleitnick @sleitnick.com · 03/01/2025
I don't believe GitHub contributions says anything about someone's productivity. It does, however, highlight life events in funny ways. You can see when said life event happened for me!
2111
sleitnick @sleitnick.com · 19/12/2024
My new build! I'm really happy how this turned out. It'll be fully enclosed, so nothing to look at, but I'm hoping for some good performance!
1150
sleitnick @sleitnick.com · 17/12/2024
Galaxy Warriors was such a fun project. We abandoned it because it didn't fit the "Roblox" mold. Tempted to port it to Godot or Unity eventually!
1110
sleitnick @sleitnick.com · 12/12/2024
Bringing Luau to the Raspberry Pi
0150
sleitnick @sleitnick.com · 10/12/2024
Pro-tip: If you're using VS Code and editing index/init files often, you can make them show up as their parent directory name using this VS Code setting.
3181
sleitnick @sleitnick.com · 04/12/2024
Parts are starting to come in! Got the fans and PSU somewhat installed for placement last night. Still waiting for motherboard, water cooler, and GPU.
040
sleitnick @sleitnick.com · 03/12/2024
For the sake of completion, here's decompression. This code is just to test that the process is working. It runs immediately after the compression step against the written file. 1. Create file buffer 2. Create mem buffer 3. Decompress file buf into mem buf 4. Read data & load bytecode to verify
110
sleitnick @sleitnick.com · 03/12/2024
Here's what the bundled code writer looks like. I write the raw binary data to a dynamic buffer, and then I run the zlib "deflate" compressor against a file buffer, which is the final file write. Decoding is basically the same in reverse.
110
sleitnick @sleitnick.com · 01/12/2024
Here's an example. 1k samples of 100k iterations, running square root of the iteration index. Native Luau is much faster in this instance. You can see the outer percentile ranges are closer to the median as well, compared to the normal Luau version.
050
sleitnick @sleitnick.com · 01/12/2024
The only other code that's necessary is to call the "supported" and "create" functions. I can't believe it's this easy.
120
sleitnick @sleitnick.com · 01/12/2024
Kudos to the Luau team. This is super easy. Just target the desired function at the given stack index and it'll do the native codegen.
140
sleitnick @sleitnick.com · 27/11/2024
This also means that my funny 8k windmill demo renders with only 10 drawcalls now (1 for the windmills, 1 for the background grid, and 8 for the UI)
000
sleitnick @sleitnick.com · 27/11/2024
Big milestone in text rendering in my game engine! Before, I rendered each character individually (1 drawcall per character). Now, fonts create a texture atlas & each text label renders in one drawcall. So...I think some actual gameplay programming is next!
170
sleitnick @sleitnick.com · 26/11/2024
Here's all the code for generating all of those windmills. Just individual GameObjects. The engine matches objects and textures to drive instancing. Note the RotationIndex and AnimationInterval. RotationIndex sets the proper texture rotation & AnimationInterval is the texture animation speed.
110
sleitnick @sleitnick.com · 26/11/2024
Over 8000 windmill sprites, all individually driven. 2700 FPS. The windmills take just 1 draw call. The power of GPU instancing! #GameDev
2151
sleitnick @sleitnick.com · 23/11/2024
A good start! Going from 70 FPS to 1700 FPS is insane.
050
sleitnick @sleitnick.com · 20/11/2024
Here's a fun one. I wanted to make it so I could use a generic Luau iterator to iterate a file directory. Surprisingly quite simple with Luau's '__iter' metamethod.
0160
sleitnick @sleitnick.com · 19/11/2024
Tonight was more engine optimizations. I can create 100k game objects in 35ms, which I'm happy about! It used to be around 2 seconds. I also added 'printf' as a global function. Wish Luau would have that by default.
2160
sleitnick @sleitnick.com · 19/11/2024
The lights outside my garage!
020
sleitnick @sleitnick.com · 18/11/2024
Progress on my game over the weekend was slow. Mostly hunting down some memory leaks. But I also got Imgui plugged in, so now I can build out some better debugging tools on screen!
050
sleitnick @sleitnick.com · 18/11/2024
My automated coach lights service is no longer dependent on some random web API! The sunrise/sunset times are calculated locally (shout-out NOAA for the math).
2130
sleitnick @sleitnick.com · 17/11/2024
I ported a ton of NASA solar calculations into a Go library. I don't know what 90% of these are, but it lets me get the sunrise and sunset time without having to ping some random web API anymore! I just give it: Year, month, day, longitude, latitude, and tz offset. And it spits back this struct.
2150
sleitnick @sleitnick.com · 15/11/2024
Here's the code for the three buttons. The "spriteTest" is the windmill. These sprites have a RotationIndex, which is baked into the actual texture pack file. The animation interval can also be changed to adjust the animation speed.
150
sleitnick @sleitnick.com · 15/11/2024
More game progress! Animated sprites are now easy to create and manipulate from Luau game code. See below for the code controlling those three buttons at the bottom. #GameDev
2131
sleitnick @sleitnick.com · 10/11/2024
And here is the relevant shader code that calculates the layer (which is basically the image index within the spritesheet)
130
sleitnick @sleitnick.com · 10/11/2024
Here's how it works. I give the shader the "Start" layer, and the "Count" (number of animation frames), as well as an interval to increment the count. At the bottom, I'm simulating the rotation of the whole windmill too, which would usually be done from game code.
110
sleitnick @sleitnick.com · 10/11/2024
Game engine progress: animated sprites! I can now render out my models at various angles with animations and load them in. It essentially creates a sprite sheet. The animation is done at the shader level too, so very little info has to be given in order for it to start animating. #GameDev
2150
sleitnick @sleitnick.com · 09/11/2024
More game progress! - Camera movement & scaling - Testing out an fBm heightmap gen for the tilemap - Showing off the greedy meshing in wireframe mode #GameDev
1190
sleitnick @sleitnick.com · 08/11/2024
Made a Blender plugin to generate dimetric renders from various angles. This will help me generate the various objects for my game.
3111
sleitnick @sleitnick.com · 08/11/2024
Tilemaps! Last night, I finished up creating a tilemap object. I'm really happy about this one. Details: - Greedy meshing to generate the vertices - Texture arrays for the actual texturing - Only ONE drawcall for the whole tilemap (the texture array "layer" is baked into the vertex data) #GameDev
0141
sleitnick @sleitnick.com · 07/11/2024
Testing out my 2D engine with Pong! Game code is written in Luau. I'm just using the UI objects in the engine to build out Pong. It has a similar feel to Roblox UI, using the 'UDim2' approach for relative sizing and positioning. End-goal is a custom 2D game about making an airport! #GameDev
4211
sleitnick @sleitnick.com · 28/10/2024
Procedural mesh gen for train tracks. This was a pain to do.
0171
sleitnick @sleitnick.com · 28/10/2024
UV is my passion
050
sleitnick @sleitnick.com · 26/10/2024
The Luau code
100
sleitnick @sleitnick.com · 26/10/2024
Running GPIO code on the Raspberry Pi with Luau
180
sleitnick @sleitnick.com · 25/10/2024
Future railway builder? 👀 I started this a long time ago. Thinking about finishing it up this weekend.
0161