Sebastian Aaltonen Profile Banner
Sebastian Aaltonen Profile
Sebastian Aaltonen

@SebAaltonen

37,091
Followers
258
Following
2,621
Media
39,673
Statuses

Building a new renderer at HypeHype. Former principal engineer at Unity and Ubisoft. Opinions are my own.

Helsinki, Finland
Joined August 2015
Don't wanna be here? Send us removal request.
Pinned Tweet
@SebAaltonen
Sebastian Aaltonen
6 years
My Digital Dragons 2018 Claybook ray-tracing & GPU physics presentation video was released during my summer vacation: . This presentation has some more info about the coarse RT too (versus my #GDC18 presentation).
10
70
414
@SebAaltonen
Sebastian Aaltonen
5 months
When our son was 3 years old he casually asked us "why is sky blue" in public place. My wife redirected that question immediately to me. People around us watching at us to see how badly we fail in the answer. Thankfully I have written some sky shaders so I knew this one :)
@adremily
Emily Adrian
4 years
4 year old: is money real or pretend? Me: *clears throat* *takes sip of water* *arranges notes on podium*
524
16K
171K
66
714
26K
@SebAaltonen
Sebastian Aaltonen
6 months
Optimization thought: Why do we even store/compute the red channel?
@Peter_shirley
Peter Shirley 🔮🛡
6 months
Seen on FB
Tweet media one
21
86
1K
111
496
18K
@SebAaltonen
Sebastian Aaltonen
5 months
To answer the other question: No money is not real. It's just an agreement between people. And nowadays governments just print as much money as they want and loan money and pay loaned money with another loan, etc, etc. Money is super messy.
25
77
6K
@SebAaltonen
Sebastian Aaltonen
4 months
Have been waiting 3 years for no-compromises monitor. Finally it's here! 4K resolution 240Hz refresh rate 1000nit peak HDR Pixel perfect dimming (OLED) 0.03ms response time HDMI 2.1 ports + 90W USB-C port for laptops
Tweet media one
Tweet media two
250
112
4K
@SebAaltonen
Sebastian Aaltonen
5 months
@panna_pudi Yeah, it's the opposite. Ocean looks blue due to reflecting the sky.
11
13
4K
@SebAaltonen
Sebastian Aaltonen
5 months
CS is not about computers. It's about computing. The name is wrong. The physical device doesn't matter. It's all about algorithms, data structures, complexity, information theory, computation theory, cryptography, etc. CS is P = NP instead of study of a physical device.
@lcamtuf
lcamtuf
5 months
Why is "computer science" even a thing? Imagine we had that for other appliances. "Oh, I have a doctorate in using toasters." See how dumb that sounds
121
434
5K
44
262
3K
@SebAaltonen
Sebastian Aaltonen
6 years
Now that people have already said highly controversial stuff like ”debugger is useless for C++ development”, I think I can share my own controversial thoughts about unit testing, DRY, copy-paste coding and function length, etc... with 20 years of C++ programming experience.
45
986
3K
@SebAaltonen
Sebastian Aaltonen
1 year
Apple invented a new technique called normal mapping in the iOS 17 weather app. It's awesome!
@frederikRiedel
Frederik Riedel 🐻‍❄️
1 year
The weather app on iOS 17 has the most accurate rendering of the moon I have ever seen in software 🤯 Look at how the lighting of the craters changes depending on which side the sunlight is shining from! #ios17
147
49
664
60
97
3K
@SebAaltonen
Sebastian Aaltonen
7 years
Shape morphing in Claybook. Simple linear interpolation between two SDF volumes (64x64x64). Real time, no baking, was simple to implement :)
33
558
3K
@SebAaltonen
Sebastian Aaltonen
4 months
Recently a book was released about Nokia's N-Gage handheld game console. Back then Nokia was one of the most valuable companies in EU. They spent lots of money to conquer the gaming market. I was the lead programmer in their flagship game. Thread...
59
389
2K
@SebAaltonen
Sebastian Aaltonen
5 months
Why should one be able to code without autocomplete and without a good IDE? I want to click on a symbol to find where it's defined and click on include file to go there, etc. And notepad doesn't have a debugger. I just don't get it. Why would anybody want to do that?
@RyanEls4
Ryan Els
5 months
You should be able to code in Notepad 🤔
Tweet media one
125
52
509
131
71
2K
@SebAaltonen
Sebastian Aaltonen
5 months
The new passive cooled iPad CPU (M4) has around 15% higher single core performance than Intel's latest 6GHz turbo 125W TDP 14900K desktop CPU. I remember just a few years ago people said that ARM based mobile CPU can never beat X64 in single core perf. It has happened now.
87
115
2K
@SebAaltonen
Sebastian Aaltonen
6 years
@seldo @repi In Nordic countries (Scandinavia) it’s even more towards left. Right wing here roughly equals left wing in in American politics. Nobody here would ever talk about cutting free heath care or free education (including free top class universities). That would be a political suicide.
40
108
2K
@SebAaltonen
Sebastian Aaltonen
5 months
@FaFlo90 Because almost nobody knows why sky is blue. Kids ask these seemingly simple questions, but most parents don't know the answer. Requires knowledge of light wave lengths interacting with the atmosphere.
17
12
2K
@SebAaltonen
Sebastian Aaltonen
8 days
Finally started writing my blog post: "No Graphics API" I have wanted to write this for almost 10 years now. I firmly believe that cutting most of the gfx API bloat would make GPUs easier to program and run faster. Lower level doesn't have to be harder.
68
84
1K
@SebAaltonen
Sebastian Aaltonen
1 year
Unpopular opinion: The gamers can blame themselves. In the past many gamers vocally boycotted games that were not available in Steam. They wanted to be able to buy everything with their Steam account instead of logging to alternative systems. This created the PC games monopoly.
@SquaredApe
Robert William Cummings
1 year
If gamedevs want to be mad at 5% from Epic or 2.5% from Unity, they need to first be mad at Steam. Steam eating 30% is unacceptable. If all developers used epic game store, they'd have minimal or no fees in some cases. Steam would be forced to the table. Will it ever happen?
267
130
2K
265
117
1K
@SebAaltonen
Sebastian Aaltonen
2 months
Assassin's Creed: Unity was a tech masterpiece. GPU-driven rendering, GPU-driven animation/cloth systems, big crowds, etc. I was honored to present our GPU-driven rendering tech with their team at SIGGRAPH 2015. But PC port was bad. GPU-driven rendering on DX11 was a joke :)
@GenePark
Gene Park Pro
2 months
i wanted to like that assassins creed shadows movement clip but then i remembered it’s still not this
283
414
7K
29
91
1K
@SebAaltonen
Sebastian Aaltonen
5 months
This seems like a pretty good sin approximation. -x * abs(x) + x where x in [-1,1] abs is likely free (instruction modifier). So we get one multiply-add? Is this actually usable? Anything better?
Tweet media one
58
136
1K
@SebAaltonen
Sebastian Aaltonen
2 years
C++ is such a fine language. I colleague was debugging a bug. A class had two constructors. One taking bool and one a const String&. They passed a string literal (const char*) to contructor. Obviously C++ calls the bool constructor because of built-in pointer->bool conversion :)
41
60
1K
@SebAaltonen
Sebastian Aaltonen
2 years
At Ubisoft/RedLynx (2015) we developed a new ECS system for our new engine. It had super nice query API. The implementation was a massively complex variadic template monster. Only a few people in the studio could maintain it. Debugging it was hard. Compile time slow. Thread...
12
184
394
@SebAaltonen
Sebastian Aaltonen
1 year
A thread about rollback network code. Last weekend was Tekken 8 beta and many gamers were talking about rollback netcode (Tekken finally has it). I used to write network code in the past, including rollback netcode, so I will explain how it works in fighting games now...
17
175
1K
@SebAaltonen
Sebastian Aaltonen
3 years
Hot topic: Memory allocations Let's talk about good practices and bad practices. Thread...
15
181
1K
@SebAaltonen
Sebastian Aaltonen
6 months
Careful when buying these. NaNs propagate. Your bank account balance is going to be NaN too if you buy this since subtracting NaN from any number will result in NaN.
@RyanEls4
Ryan Els
6 months
My local store uses JavaScript 😂👇🏻
Tweet media one
67
62
855
30
148
995
@SebAaltonen
Sebastian Aaltonen
3 years
Finished watching all the Nanite presentations and the RenderDoc analysis blog posts by people. It's time to do a thread comparing Nanite to our (Ubisoft/RedLynx) 2015 GPU-driven rendering tech. The base pieces are the same, but Nanite adds some awesome new/old innovations.
9
242
953
@SebAaltonen
Sebastian Aaltonen
3 years
If cars in the future look like this, we can render denser traffic in our games :)
Tweet media one
27
69
918
@SebAaltonen
Sebastian Aaltonen
25 days
I said this so many times: It's not x64 vs ARM. It's Intel's fab vs TSMC. In this graph we see TSMC 3nm on both latest Intel and latest Apple. This is Intel's first CPU using TSMC. Also Intel has in-package memory for the first time for x64 SoC. Apple has in-package RAM too.
@beyond_fps
Beyond FPS
25 days
Looks like Lunar Lake is no joke
Tweet media one
33
62
491
47
108
912
@SebAaltonen
Sebastian Aaltonen
2 months
Sad state of game dev today: First devs started using temporal upscaling to hit their perf goals and now some games ship with frame gen as default and still struggle to maintain 30 fps. The problem is that these techniques are used before/instead of optimizing the code :(
@beyond_fps
Beyond FPS
2 months
We live in a world where some game devs are fine shipping a game where your framerate can dip to almost 30 fps even with frame gen enabled
Tweet media one
39
16
229
35
80
890
@SebAaltonen
Sebastian Aaltonen
3 years
A slice is a non-owning reference to N contiguous elements in memory. In Rust, slice is a language feature. Compiler ensures the life time. C++20 finally introduced std::Span. At Ubisoft we used slices already 10+ years ago. Let's talk why this is a super important abstraction.
Tweet media one
17
114
866
@SebAaltonen
Sebastian Aaltonen
2 years
As expected, that senior person who corrected their boss publicly already got a new job and got 2x salary too. If you are a senior in a toxic work environment, don’t get stuck. Check your market value and go to a company that respects you.
7
74
840
@SebAaltonen
Sebastian Aaltonen
9 months
Optimizing 5 milliseconds in one hour? Maybe if you are a 100x programmer. That's 1/3 of your whole budget for a 60 fps frame. And if you develop eSports game (240Hz gaming monitors) you only have 4.16ms for simulating and rendering your whole world. 5ms is massive!
@PR0GRAMMERHUM0R
Programmer Humor
9 months
ThisIsACertifiedPersonalProjectMoment
Tweet media one
39
43
543
39
60
846
@SebAaltonen
Sebastian Aaltonen
1 year
Shipping binaries on Linux is so hard that even virus writers can't manage to do it properly :)
@kinjalkishor
kinjal kishor
1 year
Why Linux is safer than other oses ?
Tweet media one
4
57
304
9
82
816
@SebAaltonen
Sebastian Aaltonen
3 years
This was my last day at Unity. 3 years and lots of fond memories :) I will join a small Finnish company called HypeHype. They are developing a mobile game creation platform. I will be building a brand new high performance Vulkan/Metal renderer for them.
62
23
811
@SebAaltonen
Sebastian Aaltonen
6 years
Had to be done: One million SPH fluid particles (on AMD Vega 64). Simulation: Forces + integrate + collisions = 3.47ms Pressure = 1.81ms Render: 512x512x256 SDF generation = 9.93ms Primary+AO ray-trace = 0.88ms Soft shadow ray-trace = 0.51ms
10
139
779
@SebAaltonen
Sebastian Aaltonen
4 years
Let's talk about rendering a massive set of cubes efficiently...
Tweet media one
11
130
784
@SebAaltonen
Sebastian Aaltonen
11 months
2000$ M3 laptops exist with 8GB of memory :( It's a TRAP! 8GB is shared between CPU + GPU. 14 year old 32 bit Windows 7 computers had 4GB RAM + 4GB GPU. Tests show that even web browser has perf issues with 8GB RAM Macs. And SSD will swap like cracy. Dies sooner.
32
71
752
@SebAaltonen
Sebastian Aaltonen
5 months
Modern gaming PC: 50GB/s bandwidth for 32 thread CPU 240Hz display 32GB RAM You can only read 208MB memory per frame at 240Hz or you run out of bandwidth. That's <1% of your 32GB RAM. The remaining 99%+ just store data you might need later.
@simplex_fx
Balázs “Simplex” Óvári
5 months
~1024x increase in storage size in the last 10 years be like
3
5
79
27
48
759
@SebAaltonen
Sebastian Aaltonen
8 months
We had internal PBR pipeline demo this morning. This is running 60 fps on iPhone 6s (medium GPU clock rate) and the device stays cool. Still missing all ambient occlusion tech (large scale and SSAO). All demo content was made in one week by @DanielPalmiArt .
29
37
764
@SebAaltonen
Sebastian Aaltonen
3 years
Many programmers have asked me how to learn writing fast modern low level graphics code and build a mental model of the GPU execution. Found this excellent blog post by @zeuxcg when I was searching random Vulkan stuff. It's a very good starting point.
9
146
740
@SebAaltonen
Sebastian Aaltonen
2 years
This is the best explanation of UV mapping I have seen so far. One picture > 1000 words.
@Vontadeh
Alex
2 years
@Megcurdy I love using this one for kids and non-3d people :D
Tweet media one
7
58
873
4
104
736
@SebAaltonen
Sebastian Aaltonen
7 years
This is the game I have been working on for the last 1.5 years. SDF based geometry, GPU based physics simulation and ray traced visuals.
@2ndordergames
Second Order
7 years
We are excited to announce our game Claybook! Coming soon to #pc , #xboxone and #ps4 . Check out to find out more!
Tweet media one
31
116
405
56
189
707
@SebAaltonen
Sebastian Aaltonen
1 year
This is a cheap sky occlusion approximation from AC4: Black Flag (2014). Top down shadow map blurred. Sample from x,y to get approximate nearby occluder height. Improved and more expensive Far Cry 4 (2015) version:
Tweet media one
8
100
728
@SebAaltonen
Sebastian Aaltonen
1 year
Tomorrow I am going to start writing a presentation about the low level gfx tech I have been doing in the past 1 year. I have noticed that finding all my tweets is difficult. A 50 minute presentation makes the discovery easier and brings all the ideas together.
32
22
708
@SebAaltonen
Sebastian Aaltonen
2 years
Let's talk about storing vertices in optimal memory footprint. I have seen people using full fat 32 bit floats in their vertex streams, but that's a big waste, especially on mobiles. All our 60 fps Xbox 360 used a 24 byte layout with a mixture of 16 bit and 10 bit data.
Tweet media one
19
88
702
@SebAaltonen
Sebastian Aaltonen
1 year
My SIGGRAPH presentation slides about HypeHype low level rendering abstraction and performance (10k+ draw calls at 60 fps on 99$ mobile phone) are now available. Slides have full speaker notes (everything I said during the presentation). Questions are welcome!
@mirror2mask
Natalya Tatarchuk 🇺🇦
1 year
#rtradvances from #SIGGRAPH2023 - sharing the presentations from the talks - @SebAaltonen 's talk is posted - enjoy!
Tweet media one
1
49
217
11
102
665
@SebAaltonen
Sebastian Aaltonen
3 years
This Xcode GPU debugger feature is truely next gen: It visualizes you a variable accross neighbor threads in screen space. You can click to move to any thread. You also see an execution mask. Here I selected loop iteration 5. Some lanes have finished the loop (gray exec mask).
Tweet media one
7
73
661
@SebAaltonen
Sebastian Aaltonen
3 years
Nanite is yet another GPU-driven renderer using the two-pass culling approach we presented at SIGGRAPH 2015. Media Molecule Dreams is also using that same approach (independent research). I really like this approach, since it's simple and elegant and efficient and 100% correct.
Tweet media one
Tweet media two
19
98
651
@SebAaltonen
Sebastian Aaltonen
1 year
Let’s talk about DoD, or data-oriented design. There’s a lot of misconceptions what DoD is and how to apply it to your architecture design. DoD is not a data structure or algorithm. And it is certainly not equivalent to ECS with batched inner join queries. Thread…
9
117
640
@SebAaltonen
Sebastian Aaltonen
4 years
This is how you generate a cube in vertex shader. Works with any amount of cubes. Also includes the backface culling trick (only include the positive cube faces to index buffer). Backface culling trick relies on the fact that only 3 faces of a cube can be visible at once.
Tweet media one
6
85
621
@SebAaltonen
Sebastian Aaltonen
2 years
It's disturbing that all of the metaverse hype seems to be about money and investors. There's no talk about why consumers would want to use these metaverses? How they are better than the existing social experiences we have? I don't care about NFTs and artificial scarcity.
21
70
622
@SebAaltonen
Sebastian Aaltonen
2 years
Why is HypeHype building their own engine instead of using Unreal/Unity? We got this question at Supercell TIMEOUT event yesterday. This is a super relevant question. And there are a lot of wrong answers to it. Let's discuss in a thread...
13
110
622
@SebAaltonen
Sebastian Aaltonen
1 month
Four star programmer spotted!⭐️⭐️⭐️⭐️ I am just a lowly two star programmer. Never wrote code with *** or ****.
@pikuma
pikuma.com
1 month
Trying to hide that 'adult' video you have stored in memory.
Tweet media one
40
90
3K
31
30
607
@SebAaltonen
Sebastian Aaltonen
4 years
I got tired developing on my 15W Ultrabook. Proper WFH setup: 128 logical processors, 128 GB memory, PCIe4 SSD, RTX 2080 Ti + RX 5700 XT.
Tweet media one
46
43
585
@SebAaltonen
Sebastian Aaltonen
7 months
This is hilarious. Somebody just realized that scripting languages exist.
@waq_r
waqar ahmed
7 months
Python isn't real, people wake up.
Tweet media one
108
27
283
24
35
597
@SebAaltonen
Sebastian Aaltonen
2 years
Content creation tools should be fun to use. We all have a lot to learn from Tiny Glade. Tools engineers are often neglected in game dev projects and workflows are cumbersome for artists and level designers. Tools like this should be the goal for big engines too (and HypeHype).
@pcgamer
PC Gamer
2 years
That enchanting castle-building sandbox you probably saw on TikTok now has a trailer, a Steam page, and a name: Tiny Glade.
3
140
911
6
88
591
@SebAaltonen
Sebastian Aaltonen
2 years
RTX 4080 12GB is around 30% slower than RTX 4080 16GB. Never before the amount of memory has caused such big performance difference... Except the 12GB model also has a cut down 192 bit bus and has 2048 less CUDA cores. That explains it :) Why not call this RTX 4070 instead?
32
55
582
@SebAaltonen
Sebastian Aaltonen
1 month
OpenGL is so much fun. Error code 1282. That's OpenGL equivalent for "something went wrong, I don't tell you what". 99% of all OpenGL errors use the same error code. But that's consistent with OpenGL API design: If you can make developer experience worse, then let's do that.
31
37
598
@SebAaltonen
Sebastian Aaltonen
1 year
Isn't this just basic UGC physics driven content? AFAIK Zelda uses standard Havok physics as their solver. People were already doing more complex physics stuff in the Trials Evolution UGC editor 10 years ago on Xbox 360. Why is everybody hyping this now?
@RinHara5aki
Max Blumenthal
1 year
This machine accomplishes absolutely nothing. I just marvel at how the game engine is able to figure out these complex mechanisms, I'm sure so many devs are punching the air right now 🤣
27
194
3K
120
35
585
@SebAaltonen
Sebastian Aaltonen
1 year
People ask me why I am not doing AAA high end graphics anymore. I find mobile graphics more motivating today. I have to write very well optimized code to reach our goals and my choices have high impact on visual output and frame rate.
21
22
583
@SebAaltonen
Sebastian Aaltonen
1 year
Switch handheld mode GPU is ~200GFLOP/s. This is equal to low end mobile phones (and ~10x slower than high end phones). Why mobile games today don't look this good?
@digitalfoundry
Digital Foundry
1 year
A different class of hardware brings a different level of expectation. Red Dead Redemption on Switch is a credible port - improved over Xbox 360, comparable with PS4:
28
90
740
126
46
579
@SebAaltonen
Sebastian Aaltonen
2 years
Let's design a fast O(1) memory allocator with minimal fragmentation. Need to sub-allocate GPU resources (Metal placement heaps and Vulkan memories), so we need a good allocator. Thread...
8
59
574
@SebAaltonen
Sebastian Aaltonen
7 years
My #GDC18 slides: GPU-Based Clay Simulation and Ray-Tracing Tech in 'Claybook'.
19
213
551
@SebAaltonen
Sebastian Aaltonen
6 years
This is how I managed to port Claybook from consoles to ~4x slower handheld. Start state: frame rate = 60 fps locked, resolution = temporally upscaled 1080p on Xbox One base model (4K on pro consoles)...
17
145
554
@SebAaltonen
Sebastian Aaltonen
2 years
GPU-driven renderer + GPU-driven animation system = big crowds already 8 years ago on 1.3 Tflop Xbox One base model / 1.8 Tflop PS4 base model. Hopefully people will soon use Nanite to do similar dynamic scenes too instead of just doing massive static environments.
Tweet media one
Tweet media two
20
37
556
@SebAaltonen
Sebastian Aaltonen
2 years
Thread: CPU->GPU data transfer. What is the best way to provide GPU the data inputs for each draw call on every API: Vulkan, Metal and WebGL 2.0 (GLES 3.0). With some DX12 tidbits in the mix...
11
63
555
@SebAaltonen
Sebastian Aaltonen
10 months
Optimizing your vertex data matters for performance. This has many other optimizations too you need for fast terrain rendering. I would personally go with indexed geometry instead of strips (indexed = 0.5 vx/tri, strip = 1.0, non-index = 3.0).
Tweet media one
10
60
553
@SebAaltonen
Sebastian Aaltonen
2 years
This is how 3-channel distance field fonts atlases look like. This trick allows having sharp corners in distance fields. And this is the shader code: float d = median(tex.r, tex.g, tex.b);
Tweet media one
15
54
547
@SebAaltonen
Sebastian Aaltonen
1 year
I just bumped into the term "Quiet Quitting". WTF is this? Nowadays working standard 8 hours a day is called "quitting". In Finland this is just called "work". You can be highly valuable asset to the company without crunching like crazy and killing your family life.
27
35
537
@SebAaltonen
Sebastian Aaltonen
1 year
Somebody asked why you can't return arrays (dynamic sized data) in C. There's a interesting technical limitation in stack based programming languages that prevents this. It's not possible to return dynamic amount of data using the stack. Thread...
17
45
529
@SebAaltonen
Sebastian Aaltonen
6 months
Garbage collection stalls are the bane of C#. Try making real time apps/games that hit stable 240Hz (4.16ms frame budget) without stutter with big C# code base. eSports requires it. There's many nice constructs in C# but if you use them you generate massive amount of garbage.
@Phantom_TheGame
Fear the Phantom (game in bio)
6 months
What is this universal hate for C#?
Tweet media one
225
136
4K
48
25
534
@SebAaltonen
Sebastian Aaltonen
9 days
Final Fantasy XVI must be the worst PC port ever. 46 fps On RTX 4090 and 35 fps on RTX 4080 Super at 4K native. And this is without any ray-tracing. And 1080p medium settings doesn't even hit 120Hz on RTX 4090. Must be a new record :)
Tweet media one
105
56
542
@SebAaltonen
Sebastian Aaltonen
27 days
I use cursor all the time. It's the blinking think that makes characters appear in my text editor. It's a great thing to have. Otherwise you wouldn't see where you are writing your text.
@danielcranney
Daniel Cranney 🇬🇧
28 days
Am I the only developer on earth that hasn't used Cursor? 🤔
Tweet media one
226
38
719
13
16
538
@SebAaltonen
Sebastian Aaltonen
3 months
PR: "GPT5 will be as intelligent as PHD student" LMMs are not intelligent. They contain massive amount of detailed information, soon even more than human beings. But information and intelligence are two completely different things. Please don't confuse between these two.
35
49
535
@SebAaltonen
Sebastian Aaltonen
1 year
There’s so much prior art for this patent. Should never be granted…
@eigenbom
Ben Porter
1 year
Oh good, Nintendo patented.. *checks notes* ... regular game programming you do when making games
Tweet media one
460
3K
35K
17
36
528
@SebAaltonen
Sebastian Aaltonen
6 years
”Primature optimization is root of all evil” is the most misunderstood sentence in CS. Planning your data structures is part of the architecture design, not an optimization. Good data layout both improves performance dramatically, and also improves code maintainability.
5
94
530
@SebAaltonen
Sebastian Aaltonen
2 years
Never wait for GPU idle between the frames. CPU and GPU are supposed to overlap. They are parallel processors. Waiting for idle doesn't make latency any better. If you want minimal latency, instead allow one frame of CPU + GPU overlap. Throughput is up to 2x better this way.
Tweet media one
9
55
525
@SebAaltonen
Sebastian Aaltonen
4 years
Made my Rust + Vulkan test project public in github! 1 million SDF cubes :)
Tweet media one
14
93
520
@SebAaltonen
Sebastian Aaltonen
2 months
Is math important for a programmer? Depends on what kind of programmer you are. Web programmer doesn't need much math. Game/engine programmer needs basic linear algebra and some quaternions. Rendering programmers today need good understanding of those + statistics and calculus.
@davidfowl
David Fowler
2 months
I was thinking about the connection between coding and math: “do you need to be good at math to be good at coding?”. There are lots of concepts that transfer from math to coding but I don’t think it’s a hard requirement to be “good at math”. I reflected on this as I was coding
94
30
323
25
49
520
@SebAaltonen
Sebastian Aaltonen
1 year
Finland is now part of the NATO. Joining NATO has been a multi-decade discussion in Finland. Popularity never reached over 50%. But then Putin started a war in the Ukraine and this is the result.
Tweet media one
16
16
514
@SebAaltonen
Sebastian Aaltonen
1 year
Programmers tend to overdo things. D.R.Y. is like a data compression algorithm for some programmers. They process code base like the LZ algorithm, detecting tiny pieces of repeated code and giving them names in dictionary to compress the code base down. End result is unreadable.
27
33
513
@SebAaltonen
Sebastian Aaltonen
6 months
V U L K A N I N B I O
16
29
510
@SebAaltonen
Sebastian Aaltonen
11 days
Of course a game called "Hydrophobia" is going to have better water simulation than other games. That's their main gameplay element. They spent massive amount of dev time on water simulation. And what's "we" here? Devs don't have a shared technology pool that everybody can use.
@Mangalawyer
LearningTheLaw
13 days
Star Wars outlaws water physics (2024) vs. Hydrophobia: Prophecy (2010) The industry experts claim we don't have the technology. Do we or don't we have skilled programmers?
2K
1K
28K
29
27
511
@SebAaltonen
Sebastian Aaltonen
1 year
This is a good presentation about optimizing performance. Contains only one low level optimization (pack hash key to 64 bit int). Optimizing code isn't about SIMD or multithreading. It's understanding what you are doing.
5
59
499
@SebAaltonen
Sebastian Aaltonen
8 months
It's funny how people get insulted about these green programming language lists. They want a convenient language, but they don't want to think about the energy used by all the servers running their super slow and inefficient code.
@bytebytego
Bytebytego
8 months
𝐖𝐡𝐚𝐭 𝐀𝐫𝐞 𝐭𝐡𝐞 𝐆𝐫𝐞𝐞𝐧𝐞𝐬𝐭 𝐏𝐫𝐨𝐠𝐫𝐚𝐦𝐦𝐢𝐧𝐠 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞𝐬? The study below runs 10 benchmark problems in 28 languages [1]. It measures the runtime, memory usage, and energy consumption of each language. The abstract of the paper is shown below. “This
Tweet media one
187
472
2K
34
52
493
@SebAaltonen
Sebastian Aaltonen
3 years
The Xcode shader debugger is super nice. Don't even need to step. It just shows you every variable value on the right side. For loops, you have a drop down to select the iteration to see the values from that iteration. This is much nicer than any GPU shader debugger I have used.
Tweet media one
15
53
489
@SebAaltonen
Sebastian Aaltonen
5 months
This is why modern software is so slow. Abstractions on top of abstractions juggling things around instead of simply instructing the machine do the actual thing that we want to do.
@Hasen_Judi
Hasen Judi
5 months
You either concieve of programming as data processing, or you concieve of it as the stitching together of black boxes (libraries and services). Programming education should teach you how to make behavior emerge via data processing. BUT, as you begin learn to program, you can't
Tweet media one
30
66
431
19
39
483
@SebAaltonen
Sebastian Aaltonen
2 months
Finally my SIGGRAPH slides are ready! Moving Mobile Graphics, Thursday 2:00 PM:
Tweet media one
8
62
490
@SebAaltonen
Sebastian Aaltonen
1 year
Let's discuss one of the biggest bottleneck on mobile GPUs: The attribute shading to memory. Mobile GPUs defer the pixel work and bin it to tiles (overdraw elimination + on-chip tile locality). Downside is that they pre-shade vertices and write them in memory...
Tweet media one
8
70
476
@SebAaltonen
Sebastian Aaltonen
8 months
Tweet media one
6
57
472
@SebAaltonen
Sebastian Aaltonen
2 years
In my experience the biggest reason for slow performance is allocating a lot of small objects. Allocation is expensive on modern computers (mutexes between 10-32 threads in consumer CPUs). And this practice scatters objects around in the memory, causing a lot of cache misses.
16
52
472
@SebAaltonen
Sebastian Aaltonen
1 month
$9/hour software engineers? Where? Even a junior programmer in an indie game dev startup would get paid more than that in any EU country. And more in US.
@ramzpaul
RAMZPAUL
1 month
Outsourcing has been a disaster. It needs to be banned.
Tweet media one
490
1K
22K
93
22
477
@SebAaltonen
Sebastian Aaltonen
7 years
Implemented fluid color diffusion to #Claybook . It's based on forces between fluid particles. Slow diffusion when water is still, heavy diffusion if you stir the pool.
11
85
458
@SebAaltonen
Sebastian Aaltonen
4 years
C++ advice for seniors: If you need to google how some nitty gritty language detail works, it's probably best to avoid using it in your code. The readers of that code will not know how it works either. Prefer simple code that also juniors understand and are able to modify.
25
66
462
@SebAaltonen
Sebastian Aaltonen
3 years
This "virtual track" is called "road". And a "train" running on a "road" is called a "bus".
@ErikSolheim
Erik Solheim
3 years
This is incredible! China 🇨🇳 is testing it’s new autonomous electric train that does not need traditional tracks. It runs on a virtual track. Can go everywhere.
5K
6K
20K
13
46
466
@SebAaltonen
Sebastian Aaltonen
6 years
Today is my last day at Second Order. I really enjoyed 3 years of non-polygon graphics and GPGPU physics. Sami will continue to support Claybook and bring the game to new platforms (1st handheld device is now ready for cert). I will be joining Unity Technologies in February 2019.
78
23
466
@SebAaltonen
Sebastian Aaltonen
5 months
@ErickZehr @panna_pudi Yeah. The surface of water (small puddles too) looks blue due to sky reflection. But big oceans are actually blue inside too, due to deep water absorbing other colors gradually. So they are blue for two different reasons.
3
4
460
@SebAaltonen
Sebastian Aaltonen
1 year
Made a trivial row vs column mistake while reading math notation. Happens all the time for gfx programmres (OpenGL vs DX notation). As a result random people in Twitter told me that I got fired from Unity because I lack skills. Twitter can be a really hostile place sometimes.
51
8
459
@SebAaltonen
Sebastian Aaltonen
1 year
Let's talk about fast draw calls on bottom 50% mobile devices. And let's ignore the bottom 10% so that we can assume Vulkan 1.0 support = compute shaders. Why are we not doing GPU-driven rendering? Why instancing is not always a win?
5
60
455
@SebAaltonen
Sebastian Aaltonen
7 months
2ms is your whole frame time in a eSports game on a 480Hz gaming monitor. If rumble costs 2ms, then you ship without rumble. Simple as that. Or use a custom engine.
@MattGambell
Matt Gambell
7 months
The @unitygames "New" Input System is about 6 years old at this point...
Tweet media one
16
29
411
18
31
456