Jakub Tomšů Profile Banner
Jakub Tomšů Profile
Jakub Tomšů

@jakubtomsu_

Followers
1,505
Following
1,196
Media
271
Statuses
1,903

20. Solo indie gamedev, Custom game engines, Odin. Working on a retro FPS game with space warping

Prague, Czech Republic
Joined September 2018
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@jakubtomsu_
Jakub Tomšů
3 months
This is a small boomer shooter prototype I've been working on lately. The world is 16x16x16 blocks and it infinitely repeats itself. #gamedev
42
55
840
@jakubtomsu_
Jakub Tomšů
4 months
This could have been a single line of code in the vertex shader instead of a skeletal animation...
@AuroraPLZ
Aurora
4 months
fire animation
56
151
2K
42
99
4K
@jakubtomsu_
Jakub Tomšů
19 days
Reminder perceptual color models like Oklab exist and they are much better at interpolating colors than regular sRGB. Notice the lower saturation and value in the center of the first gradient:
Tweet media one
28
241
3K
@jakubtomsu_
Jakub Tomšů
28 days
Tweet media one
15
240
2K
@jakubtomsu_
Jakub Tomšů
3 months
Tweet media one
@busty_af
Juicy Ella
3 months
What's the weirdest thing society accepts as normal?
1K
303
2K
17
153
2K
@jakubtomsu_
Jakub Tomšů
3 months
what the actual fuck microsoft
Tweet media one
128
52
1K
@jakubtomsu_
Jakub Tomšů
6 months
Ceiling is being raised. Cursor's Copilot helped us write "superhuman code" for a critical feature. We can read this code, but VERY few engineers out there could write it from scratch.
Tweet media one
@ataiiam
Atai Barkai
6 months
@yoheinakajima ceiling is being raised. cursor's copilot helped us write "superhuman code" for a critical feature. We can read this code, but VERY few engineers out there could write it from scratch. Took lots of convincing too. "come on, this must be possible, try harder". and obviously- done
Tweet media one
451
54
585
5
100
1K
@jakubtomsu_
Jakub Tomšů
1 month
I saw this meme on instagram. My generation is so cooked lmao Do people really think learning a framework makes you better at programming than learning assembly? The framework will be outdated in a few years, computer fundamentals will not
Tweet media one
89
42
795
@jakubtomsu_
Jakub Tomšů
4 months
The line of code I'm talking about is something like: vert_pos.xz += vec2(cos(local_pos.y*squish+freq*t), sin(local_pos.y*squish+freq*t)) * strength;
16
10
697
@jakubtomsu_
Jakub Tomšů
26 days
Simulating a game at 10 ticks per second, No Interpolation vs. Basic Linear Interpolation I'm writing a blog post about about using fixed timestep update loops for all gameplay code, not just the physics sim...
21
37
679
@jakubtomsu_
Jakub Tomšů
4 months
To clarify, I don't think using skeletal animation for this is that bad. Just use whatever works for you. I'm also not particularly concerned with performance, something like this shouldn't have much of an impact. A simple vertex shader is just something I personally would prefer
2
3
558
@jakubtomsu_
Jakub Tomšů
18 days
Here is a neat little way to do "smooth clamp": smoothstep(min, max, x) * (max - min) + min
Tweet media one
Tweet media two
3
24
538
@jakubtomsu_
Jakub Tomšů
18 days
finally got some combat going. There is still a ton of work left to do, but I feel pretty good about this oh and I'm also considering setting up a steam page soon btw
10
31
407
@jakubtomsu_
Jakub Tomšů
4 months
@CookedDickhead You also don't need several years of rigging and animation experience to use a simple high-school math and basic shader knowledge 🤷‍♂️ But yeah I get your point, ofc some people have different skill sets so just use whatever works for you :)
5
0
338
@jakubtomsu_
Jakub Tomšů
10 months
Visualization of octahedral mapping #raylib #odinlang #gamedev
1
47
321
@jakubtomsu_
Jakub Tomšů
4 months
@AuroraPLZ WE NEED MORE BONES!!!
1
0
305
@jakubtomsu_
Jakub Tomšů
16 days
I feel like the term "spaghetti code" is misused almost as often as "premature optimization is the root of all evil"
Tweet media one
@ryanjfleury
Ryan Fleury
17 days
There is a lesson in that these are all long-beloved and successful games
8
14
272
8
11
286
@jakubtomsu_
Jakub Tomšů
3 months
what am I supposed to do, learn math???
Tweet media one
18
9
234
@jakubtomsu_
Jakub Tomšů
3 months
@mohamedmansour This is actually a new api, and it's way worse than the old one (it does have a few more features tho)
3
0
230
@jakubtomsu_
Jakub Tomšů
19 days
unfortunately we're approaching 15FPS 480p graphics considering how much everyone relies on upscaling and frame generation
@bmcnett
bmcnett
19 days
as we approach 120FPS 8K graphics, at some point we must rasterize each triangle to N frames in parallel, into a render target that is lossy-tile-compressed across 3 dimensions: X, Y, and N
19
5
68
4
14
220
@jakubtomsu_
Jakub Tomšů
7 days
I just turned 20 today, does the "I'm an adult now" feeling ever kick in?
216
2
198
@jakubtomsu_
Jakub Tomšů
2 months
this is genuinely one of the best things about #odinlang . The language is so simple and it's basically done. I don't have to worry about learning new shit every week like in C++/Rust/javascript
Tweet media one
12
7
200
@jakubtomsu_
Jakub Tomšů
20 days
this goober doesn't understand what a memory leak is
@matteocollina
Matteo Collina
21 days
Dev: I have a memory leak Me: Does your process crash for an OutOfMemory error? Dev: no Me: Then you don’t have a memory leak (There might be still a memory management issue, but that’s not a leak).
134
25
727
8
3
195
@jakubtomsu_
Jakub Tomšů
8 months
The RAD Debugger by @ryanjfleury is absolutely fantastic. Here I'm stepping through code that converts the procedurally generated SDF and color textures before they are uploaded to the GPU. This an insanely powerful feature. Apparently it can also show 3d mesh data!
4
29
182
@jakubtomsu_
Jakub Tomšů
3 months
@theActualFix I guess the 10x engineers at Microsoft didn't think of that
6
0
170
@jakubtomsu_
Jakub Tomšů
2 months
What's stopping you from coding like this?
Tweet media one
22
17
164
@jakubtomsu_
Jakub Tomšů
19 days
@CryZe107 Oops, you're right, I made a slight mistake. The top one interpolates sRGB colors directly, instead of interpolating linear color and applying gamma. Thanks for noticing😅 The difference is still very noticable in certain other combinations like yellow and blue (oklab is left)
Tweet media one
2
4
160
@jakubtomsu_
Jakub Tomšů
3 months
@1600frogs I think that's one of the reasons why older games with precomputed lightmaps still hold up so well...
0
0
136
@jakubtomsu_
Jakub Tomšů
16 days
I finally made a first short Devlog about my game. Here is a combat clip with multiple enemies from the video I'm pretty happy with how it turned out, it's very casual but I that's fine imo. Check it out:
8
9
132
@jakubtomsu_
Jakub Tomšů
6 months
I implemented hot reloading in my engine some time ago, and now I couldn't live without it. It opens up a whole new set of possibilities, because iterating on subtle gameplay behavior or shaders becomes _much_ less painful. The instant feedback loop is insanely powerful.
@EsotericCofe
Nucleus☕️
6 months
When I was doing game dev in C++ I set up my engine to load my game code via an DLL. Meanwhile the game state memory is kept on the engine heap. This means you can change the game behavior, compile the DLL and reload it in a split second, instead of having to relaunch the entire
19
16
390
5
9
126
@jakubtomsu_
Jakub Tomšů
8 days
It's pretty wild how different the company culture at valve is compared to everywhere else. And they manage to do insanely cool things with just a few hundred people...
Tweet media one
@zachpogrob
Zach 🏴
9 days
Valve employee handbook goes incredibly hard
Tweet media one
Tweet media two
Tweet media three
Tweet media four
55
527
7K
2
5
127
@jakubtomsu_
Jakub Tomšů
19 days
Here are a few links: The implementation I currently use by Inigo Quilez: Full article by Björn Ottosson, the author of Oklab: Xor's mini blog post about Oklab:
2
13
123
@jakubtomsu_
Jakub Tomšů
21 days
working on a rect packing system
Tweet media one
9
4
117
@jakubtomsu_
Jakub Tomšů
19 days
WIP first person combat animations, it's blending poses procedurally based on the player state machine #odinlang
7
10
117
@jakubtomsu_
Jakub Tomšů
5 months
something is telling the there might be a bug with my skeletal animation code...🤔
26
5
115
@jakubtomsu_
Jakub Tomšů
15 days
This is a great talk about the tech behind Java's Hotspot JIT compiler. It uses Sea of Nodes instead of basic blocks like LLVM, which is a really cool technique. Something similar is also used in Tilde, the new WIP backend for #odinlang
Tweet media one
2
11
114
@jakubtomsu_
Jakub Tomšů
18 days
funny bug, the enemy doesn't doesn't despawn correctly when it dies so the blood particles spawn every tick
6
7
94
@jakubtomsu_
Jakub Tomšů
6 days
@sonofdadkiller Because your computer doesn't have infinite amount of memory. That said, I'm sure there is a lot that could be done to make it feel "almost infinite". Compressing undo steps in memory, discarding every n-th old step, and saving very old steps to disk should help a lot
3
0
94
@jakubtomsu_
Jakub Tomšů
1 month
@8ucket chatgpt aah response
1
0
88
@jakubtomsu_
Jakub Tomšů
7 months
I added support for hot reloading to my engine, which means I can also trivially reload all shaders. Now the iteration loop is super fast, and not as annoying as relaunching the game after every small change :) #glsl
4
8
86
@jakubtomsu_
Jakub Tomšů
8 months
Solar Storm is made in my custom engine written in Odin. The Renderer uses sokol_gfx by @FlohOfWoe . A short thread about how the redering works behind the scenes... #indiedev #programming
Tweet media one
@jakubtomsu_
Jakub Tomšů
8 months
Solar Storm is a turn-based artillery shooter set in the far future. Engage in battles with your friends using unique weapons in a fully destructible terrain, in Local-Multiplayer or Co-Op modes! Wishlist on Steam!⬇️
7
12
39
3
13
83
@jakubtomsu_
Jakub Tomšů
14 days
Bill on yesterday's stream with Primeagen was like
Tweet media one
3
2
78
@jakubtomsu_
Jakub Tomšů
27 days
@tsoding but I can't use emoji??? literally 1984
Tweet media one
4
1
64
@jakubtomsu_
Jakub Tomšů
5 months
Ah yes, more UB is exactly what C++ needs. What a fantastic language
@_Felipe
Felipe O. Carvalho
5 months
C++23 has "first-class UB": you, the language user, can make promises and let the program enter UB if you break them. int f(int x, int y) { [[assume(x == 27)]]; [[assume(x == y)]]; return y + 1; // May be optimised to `return 28`. }
20
59
812
9
4
61
@jakubtomsu_
Jakub Tomšů
11 months
Here is a clip from AstroGlide, a game I'm making for GameBoy Jam 11. All of the pixelart is by @jammigans ! #GBJam11 #GBJAM #pixelart #gamedev
3
11
60
@jakubtomsu_
Jakub Tomšů
1 month
#odinlang has inline structs and I'm not sure if this is cursed or not lol
Tweet media one
8
0
60
@jakubtomsu_
Jakub Tomšů
3 months
Today I implemented a simple tile editor for my FPS game with infinitely repeating world So far it supports adding and removing blocks, undo/redo, and copy&pasting sections. #gamedev
5
5
58
@jakubtomsu_
Jakub Tomšů
6 months
working on a youtube video about custom engines and Odin...
Tweet media one
5
5
59
@jakubtomsu_
Jakub Tomšů
11 months
Astro Drift is a GameBoy-style roguelike shooter where you move by drifting your spaceship. Out now on Itch io: #GBJam11 #gbjam #gamedev #pixelart
5
11
58
@jakubtomsu_
Jakub Tomšů
20 days
@htmx_org "Noo you cannot include comments in a standard JSON!!!" "How dare you add a trailing comma to an object!!"
Tweet media one
0
1
58
@jakubtomsu_
Jakub Tomšů
15 days
Turns out me and @karl_zylinski started using odinlang at pretty much the same time, and also released our first solo commercial games at the same time. coincidence? I think not!!
Tweet media one
3
4
56
@jakubtomsu_
Jakub Tomšů
6 months
New blog post about Solar Storm renderer is on my website. It goes in-depth on instanced rendering, shaders and post processing. The entire game is rendered in ~0.5 ms thanks to sokol_gfx by @FlohOfWoe and the Odin programming language by @TheGingerBill
2
14
55
@jakubtomsu_
Jakub Tomšů
16 days
somehow I gained like 500 followers only in the last week or so, I really appreciate all the support! more gamedev stuff is coming soon💯
Tweet media one
4
0
55
@jakubtomsu_
Jakub Tomšů
26 days
Here is the article, it's still a bit WIP so any feedback is appreciated! It covers update loops, interpolation, game state double-buffering, and correct input handling with fixed timestep
4
1
54
@jakubtomsu_
Jakub Tomšů
3 months
I started preparing the Solar Storm release for , which is going to include the full source code
Tweet media one
3
7
54
@jakubtomsu_
Jakub Tomšů
3 months
Solar Storm is out now on ! It includes the full source code, so now you can check out the custom engine implemented in Odin, and the sokol_gfx renderer
1
11
53
@jakubtomsu_
Jakub Tomšů
19 days
ok the image above has a mistake, the difference isn't _as_ noticable. But Oklab is still really useful!
@jakubtomsu_
Jakub Tomšů
19 days
@CryZe107 Oops, you're right, I made a slight mistake. The top one interpolates sRGB colors directly, instead of interpolating linear color and applying gamma. Thanks for noticing😅 The difference is still very noticable in certain other combinations like yellow and blue (oklab is left)
Tweet media one
2
4
160
0
2
52
@jakubtomsu_
Jakub Tomšů
2 months
@ShitpostRock Great video quality I love twitter compression 👍👍👍
Tweet media one
0
0
50
@jakubtomsu_
Jakub Tomšů
4 months
@vadersb Yeah for sure, good point
0
0
49
@jakubtomsu_
Jakub Tomšů
6 months
🚨 Solar Storm Demo is OUT NOW!!🚨 Check it out on Steam and Wishlist the game :)
3
16
47
@jakubtomsu_
Jakub Tomšů
2 months
Are you even a real gamer if you play with FOV lower than 170 degrees?
7
0
47
@jakubtomsu_
Jakub Tomšů
5 months
My game is coming out in one week! This is probably the coolest trickshot I ever got, and it's with one of the most powerful weapons in the game
0
4
44
@jakubtomsu_
Jakub Tomšů
5 months
multithreaded black hole particle simulation. Takes about 20ms to update 5 million particles. #odinlang
2
3
45
@jakubtomsu_
Jakub Tomšů
8 months
Solar Storm is a turn-based artillery shooter set in the far future. Engage in battles with your friends using unique weapons in a fully destructible terrain, in Local-Multiplayer or Co-Op modes! Wishlist on Steam!⬇️
7
12
39
@jakubtomsu_
Jakub Tomšů
16 days
@MKVRiscy Don't let rustcels see this
1
0
43
@jakubtomsu_
Jakub Tomšů
1 month
To clarify, I'm not saying learning frameworks isn't valuable. You probably need it to get a job and you can learn a lot as well. I just don't understand why people reject the idea of learning assembly (or other low level concepts) so strongly. Expanding your knowledge of the
2
0
40
@jakubtomsu_
Jakub Tomšů
6 months
Love to see studios using non-mainstream engines!
@andytouch
Andy Touch
6 months
Hold up, Helldivers 2 was made with Autodesk's Stingray engine?!
Tweet media one
30
18
252
3
1
41
@jakubtomsu_
Jakub Tomšů
1 year
Super early footage from a game I've been working on for the past few weeks. It's a tiny fast-paced roguelite, with combat focused on your sword and a grappling hook. #gamedev #screenshotsaturday
5
5
39
@jakubtomsu_
Jakub Tomšů
1 month
@thejorgg I'm not really talking about _writing_ assembly. Being able to read generated code, understanding what the compiler does, other bytecode formats, cpu microarch, binary and hardware exploits, etc etc are all things you need to know at least a bit of assembly to understand
7
0
40
@jakubtomsu_
Jakub Tomšů
16 days
CHAT IS THIS REAL?!??
@teej_dv
teej dv 🔭
16 days
breaking news
Tweet media one
9
4
195
4
0
38
@jakubtomsu_
Jakub Tomšů
14 days
Tweet media one
0
3
39
@jakubtomsu_
Jakub Tomšů
4 months
@regalstreak You can imagine the cos/sin as going in a spiral, so the local Y position defines the starting offset on it. So squish essentially controls the spiral turn rate... I'm not sure if there is a better way to explain this without visualizing it😅
1
1
38
@jakubtomsu_
Jakub Tomšů
7 months
just one button click away...😳
Tweet media one
7
0
37
@jakubtomsu_
Jakub Tomšů
1 month
This should be the norm everywhere
@kennethreitz42
Kenneth Reitz
1 month
Switzerland now requires all government software to be open source
293
3K
15K
2
4
37
@jakubtomsu_
Jakub Tomšů
4 months
I made a little utility for generating GLSL code from basic Odin code, to interop with shaders. It supports only constants atm, but it's easy to extend. This was trivial because there is an Odin parser in the core library
Tweet media one
4
3
38
@jakubtomsu_
Jakub Tomšů
16 days
I'm making this game in a fully custom game engine written in #odinlang , objectively the best language for gamedev
@jakubtomsu_
Jakub Tomšů
16 days
I finally made a first short Devlog about my game. Here is a combat clip with multiple enemies from the video I'm pretty happy with how it turned out, it's very casual but I that's fine imo. Check it out:
8
9
132
0
1
39
@jakubtomsu_
Jakub Tomšů
4 months
Awesome-odin just surpassed 100 stars on github:)
Tweet media one
0
2
38
@jakubtomsu_
Jakub Tomšů
1 month
_entire_ tech stack down to the hardware level makes you a much better programmer.
3
0
36
@jakubtomsu_
Jakub Tomšů
3 months
@rsms I don't think maintaining an implementation of both 'do' and 'undo' sounds fun. Maybe I could write into some temporary state and only "commit" once when I know all operations passed? If that's possible depends on the specifics... Also, defer is a great alternative to gotos:)
4
0
36
@jakubtomsu_
Jakub Tomšů
26 days
Thank you Ass Eater 3000 for liking my post, it's an honor🙏
Tweet media one
2
0
34
@jakubtomsu_
Jakub Tomšů
6 months
My article about Solar Storm renderer architecture has been featured in Graphics Programming weekly!
@jendrikillner
jendrik illner
6 months
Graphics Programming weekly - Issue 330 - March 10th, 2024
Tweet media one
2
56
204
0
6
34
@jakubtomsu_
Jakub Tomšů
2 months
this is what I call clean code
Tweet media one
5
0
34
@jakubtomsu_
Jakub Tomšů
26 days
Where did y'all come from haha😄 Thanks for following my gamedev journey anyway!
Tweet media one
3
0
34
@jakubtomsu_
Jakub Tomšů
5 days
Fidelity is not the same as quality, and at some point it becomes a tradeoff. This is the reason I like to use a retro artstyle in my games
@Beetlenaut
ʟᴜɪs ʜᴇʀɴᴀɴᴅᴇᴢ ⚡
6 days
Honestly would've been fine if we stayed within the PS2 generation for another 20 years. Normal maps are ugly. If you have strong art direction the poly/texture limits are fine, and I don't feel as though gameplay evolved much beyond this era. sometimes less is more.
Tweet media one
Tweet media two
Tweet media three
Tweet media four
103
295
3K
3
2
34
@jakubtomsu_
Jakub Tomšů
26 days
@Jakob_Wahlberg By rimlight you mean essentially fresnel right?
Tweet media one
1
1
34
@jakubtomsu_
Jakub Tomšů
16 days
@teej_dv I don't want to even know what c++ looks like
3
0
33
@jakubtomsu_
Jakub Tomšů
15 days
A added some new debugging tools to my game, one of them lets me view everything in third person. It's surprisingly difficult to control the player like this, but it also looks kinda funny
2
1
33
@jakubtomsu_
Jakub Tomšů
5 months
yay, the #odinlang website now has a dark theme!
Tweet media one
2
2
32
@jakubtomsu_
Jakub Tomšů
5 months
@Jakob_Wahlberg Didn't even bother to lerp it smh🙄🙄
1
1
32
@jakubtomsu_
Jakub Tomšů
16 days
Experiments with dynamic lighting in my engine from like two months ago I tried out AO raytracing, caching light into voxels, simple GI probes and regular voxel AO + vertical shadows based on bitmasks I don't use any of it atm but I might come back to one of these eventually...
Tweet media one
Tweet media two
Tweet media three
Tweet media four
1
0
32
@jakubtomsu_
Jakub Tomšů
1 month
looks like twitter fired all the UI designers because wtf is this rounding and padding
Tweet media one
3
1
30
@jakubtomsu_
Jakub Tomšů
6 months
My game is now featured on the #odinlang showcase page :D
Tweet media one
3
2
29
@jakubtomsu_
Jakub Tomšů
3 months
WIP blood volume rendering
Tweet media one
1
1
29
@jakubtomsu_
Jakub Tomšů
1 month
@transmutrix It would drive me insane if the "write code -> test in game" iteration loop took more than a few seconds hahah
2
0
29
@jakubtomsu_
Jakub Tomšů
5 months
I recently created a repository for tracking all interesting #odinlang libraries, bindings, resources and other projects✨ We're still adding new stuff, there are so many cool odin projects out there but not many people know about them.
Tweet media one
2
1
28
@jakubtomsu_
Jakub Tomšů
10 months
@FreyaHolmer I'm more impressed by this beautiful animation than the actual algorithm lol
1
0
26
@jakubtomsu_
Jakub Tomšů
20 days
@rflaherty71 yeah sure it's not a high priority issue... but I wouldn't go as far as calling it "not a memory leak" haha
0
0
28