Ben Sims Profile
Ben Sims

@BenSimsTech

1,818
Followers
928
Following
95
Media
1,831
Statuses

Senior Programmer at Tantalus South. Graphics, C++, C#, Shaders, Unity, Unreal, PC, Console, Mobile, cats.

Adelaide, South Australia
Joined June 2016
Don't wanna be here? Send us removal request.
@BenSimsTech
Ben Sims
7 months
I don't understand where this idea came from that you need to completely replace your engine to change/add a mechanic. Do they think a new engine somehow just enables all these new features for free? The feature needs to be coded regardless, doesn't matter what engine it's in
297
237
5K
@BenSimsTech
Ben Sims
7 months
Cities Skylines 2 is a good example of how unsuitable Unity's HDRP is for regular game development. You pay a very high base cost for all its features, it doesn't scale down to lower end hardware, and can't be scaled back for high framerates. I wouldn't recommend it for any game.
42
152
2K
@BenSimsTech
Ben Sims
22 days
It's interesting how noisy these graphics are, but how they look almost photorealistic at a glance. Perhaps we're doing rendering wrong and we should just be giving players the noisiest inputs possible and letting their brains fill in the blanks, our brains do this all the time😅
@Nothke
IVAN32_LEAN_AND_MEAN 🌲🏎️💨🌲 ✈️ A MAZE, Berlin
23 days
Karibu Kenya! It's finally done and the new build is up! Drive on twisty bushy forest roads and across vast savanna plains. Read about the update here: #ShakedownRally #safarirallykenya
Tweet media one
Tweet media two
Tweet media three
17
125
976
45
210
2K
@BenSimsTech
Ben Sims
6 months
Fresh Unreal 5.3 source code checkout+dependencies, 105.9 gb before even making a project.Forget about actually having games on your PC that you use for Unreal development, lmao. I also have 7 versions of Unity installed, their total size? 33.5gb, or average of 4.8gb per install
Tweet media one
107
68
1K
@BenSimsTech
Ben Sims
10 months
*Adds 1 line of code to Unreal Engine* Build takes a few minutes, cool. Actually nvm, *removes line of code*. Build takes an hour, fails with a bunch of completely unrelated compiler or linker errors. *Adds some code to a completely unrelated file* Build quickly succeeds. HOW
44
29
880
@BenSimsTech
Ben Sims
7 months
The fact that Bethesda was able to use the same engine for Fallout/Skyrim for a space game should be enough proof that an engine can be made to do whatever you want, but nah I guess changing camera mechanics was more complicated than adding an entire space/planet system.
41
12
652
@BenSimsTech
Ben Sims
7 months
Looking at Unity URP's roadmap, I seriously don't understand how it is moving so slowly. I've implemented many of these features in my custom SRP in my spare time, from scratch. There must be serious management issues for them to take years to implement this stuff.
30
37
448
@BenSimsTech
Ben Sims
10 months
Startup Idea: AI that translates C++ linker errors into english.
16
22
329
@BenSimsTech
Ben Sims
7 months
@whaleperson Strange, because it seems like they are constantly telling developers how they should fix technical problems.
3
2
319
@BenSimsTech
Ben Sims
8 days
This is how I construct all the matrices I need for my rendering pipeline. (Reverse Z, view-relative) No need for hundreds of lines of vector/matrix/SIMD code, this is all you need, plus a few combinations (Eg worldToClip, clipToWorld, etc) made by simple matrix multiplications.
Tweet media one
7
16
298
@BenSimsTech
Ben Sims
7 months
Unity needed a modern, scalable pipeline that is made for realtime games running at 30-60+ fps. Not a 30fps pipeline made for games, arch vis, VR, automotive, cinema, etc. They tried to please everyone and ended up neglecting the developers who were most in need of a new pipeline
7
5
244
@BenSimsTech
Ben Sims
11 months
It's a pretty weird feeling going from UE4 back to Unity and... everything just compiles quickly, intellisense actually works, you can just view references, jump around through code, etc. Can't believe how bad UE and C++ is with this, Ctrl+F is the only way I can find anything.
25
6
233
@BenSimsTech
Ben Sims
6 months
Some unfortunate but unsurprising reasons behind CS2's perf issues, many due to Unity's mismanagement of feature rollout over the past several years. Imo the best way forward for CS2 is to replace HDRP with a custom render pipeline and GPU driven rendering
12
28
226
@BenSimsTech
Ben Sims
2 months
Oh yeah I accidentally deleted 3 days of work while trying to submit a Perforce CL today. It's so cool how the AAA industry's version control of choices just allows you to... accidentally delete all your work while also requiring you to delete all your work so you can submit it.
35
16
215
@BenSimsTech
Ben Sims
4 months
"Programmers overcomplicate everything" is a pretty common take but a programmer who overcomplicates code is actually just not a good programmer. They are either inexperienced or don't want to keep learning/improving. Simplicity comes with time, complexity often isn't deliberate.
20
15
194
@BenSimsTech
Ben Sims
7 months
Unity pushed very hard to compete with Unreal, but HDRP is a layer on top of Unity's underlying renderer, which itself has many legacy issues. (You can find many pieces of code in the HDRP base that have to work around unity limitations, such as lights, camers, probes, terrain)
1
3
190
@BenSimsTech
Ben Sims
2 months
Cool idea for approximate, but fast volumetric cloud self-shadowing: Instead of a 2nd raymarch per sample for shadows, just calculate transmittance, then calculate lighting just once at an importance-sampled depth based on the total transmittance. (Left: coarse, right: accurate)
Tweet media one
4
25
191
@BenSimsTech
Ben Sims
8 months
Kind of losing faith in Godot here. I've optimised ~10 commerical Unity projects and the methodology of prioritising easy to use APIs and then only making a performant version if/when enough people complain about it is completely wrong if you want to be a serious competitor.
@runevision
Rune Skovbo Johansen
8 months
An illuminating exchange about the approach to performance in Godot (slightly paraphrased) between Sam Pruden (who wrote the post "Godot is not the new Unity - The anatomy of a Godot API call" and Godot creator and Technical Lead Juan Linietsky. Source:
Tweet media one
Tweet media two
Tweet media three
Tweet media four
81
75
712
40
12
175
@BenSimsTech
Ben Sims
7 months
Its also not built in a modular way. The main HDRP class is thousands of lines long and tightly coupled to every renderer feature. There is a lot of code, setup and processing that is run for many features regardless of whether they are enabled. Many GPU passes can't be disabled.
2
0
175
@BenSimsTech
Ben Sims
7 months
@Pendleton115 Yep it's bizzare, especially considering Epic's recent layoffs. Working with UE at an engine level I can't believe anyone who has made their own engine would even consider it after looking at the source. My guess is some board membersgot impressed by nanite/lumen and that was it
14
5
164
@BenSimsTech
Ben Sims
2 years
A new way to combine AO/BentNormals from GTAO with baked mesh data, thanks to suggestions from the graphics community, especially @MichalDrobot ! It finds the area and angle of the two visibility cones, and generates a new cone. Occlusion is then extracted from the aperture.
Tweet media one
0
27
158
@BenSimsTech
Ben Sims
7 months
The GPU also uses very large data structures, such as for directional lights, probes, camera data, etc. This causes more cache misses on GPUs and is more problematic with lower bandwidth devices/devices with smaller caches. The shader code to process this data can't scale down.
2
0
141
@BenSimsTech
Ben Sims
3 months
Working on Volumetric Clouds never gets old. Added ray differentials to filter the noise texture lookups, runs about 25% faster and gives more stable results. (Especially good for cloud shadow maps) Also figured out a performant way to combine with raymarched atmosphere rendering
Tweet media one
5
9
140
@BenSimsTech
Ben Sims
8 months
Wishing everyone the best of luck migrating from Unity to Unreal over the next few months. Or maybe more studios should start writing their own engines again.
12
4
138
@BenSimsTech
Ben Sims
5 months
Here's some cool graphics stuff I do in Unity. Time of day, vol clouds, gpu ocean simulation, 100% custom pipeline, no HDRP/URP etc. It's cool, kind of complicated but not insane. This is a project I do in my spare time. Will hopefully be part of a released game soon.
14
12
137
@BenSimsTech
Ben Sims
1 month
Cool trick for improving PBR environment mapping on oceans: If the reflected view direction is below the horizon, reflect it against a Y-up plane, use that as your new reflection direction, and attenuate it with your preintegrated FGD using dot(up, -reflectDir). 1/5
Tweet media one
Tweet media two
5
16
135
@BenSimsTech
Ben Sims
10 months
Tweet media one
0
2
128
@BenSimsTech
Ben Sims
7 months
As an alternative, making a custom SRP is not too difficult if you have graphics knowledge, and you can port over/implement the key features you need, and build a pipeline that is as optimised as you need for your game's features. Examples/documentation are lacking though.
3
0
129
@BenSimsTech
Ben Sims
1 month
Handles are such a powerful and straightforward tool for high performance code yet are rarely discussed or taught, you won't find them in tutorials either. Don't be too quick to jump into complex algorithms and low level hacks for performance, arrays and indices are very powerful
@SebAaltonen
Sebastian Aaltonen
1 month
You can put all your game data in arrays. And index them with a handle. Handle can include generation bits for lifetime check. My SIGGRAPH 2023 presentation had some slides about this, titled: "Generational Pools and Handles".
5
46
389
5
10
126
@BenSimsTech
Ben Sims
6 months
Wtf is even in here? Ok 21.3gb is Source/ThirdParty, including several multi-gig binaries, yeah that's not source code. Why not use package management for this kind of thing? There's libraries for many non-windows platforms too. Why not have platform-specific branches/tags?
Tweet media one
5
1
123
@BenSimsTech
Ben Sims
7 months
HDRP took too long to have feature pairty with BIRP and enough stability to start being used for production. At this stage, it was probably too late to go back and rebuild fundamental parts of it to allow for more scalability or control. Recent updates seem targeted at non games.
1
0
122
@BenSimsTech
Ben Sims
2 years
I implemented "Exposure Fusion - local tonemapping" from @BartWronsk 's blog: It tonemaps regions of the screen and blends them together, resulting in a smooth, less overexposed look, note the extra detail in the clouds, and sky/land saturation #graphics
Tweet media one
Tweet media two
1
16
114
@BenSimsTech
Ben Sims
7 months
You're a good engineer when you realise that people who overemphasize the importance of excessive terminology and design patterns are not necessarily good engineers, possibly the opposite. Problem solving is a mindset and using suitable tools, which sometimes means no pattern.
@EcZachly
Zach Wilson
7 months
You’re a great engineer if you know the definition of: - idempotent - monoid - decoupled - dependency injection - unit - functional programming - asynchronous vs parallel programming - thread locking - eventual consistency - exactly-once semantics - lambda vs kappa…
238
463
3K
3
4
106
@BenSimsTech
Ben Sims
6 months
Great way to profile shader optimisations in Unity: Create sampler with CustomSampler.Create(name, true), pass into commandBuffer.Begin/EndSample. Then Debug.Log(sampler.GetRecorder().gpuElapsedNanoseconds) Change/optimize your shader and see new GPU timings instantly!
2
16
107
@BenSimsTech
Ben Sims
22 days
People mentioning art direction are kind of missing the point. There are many stylised games with fantastic direction yet they look obviously stylised. (The Witness, Journey, Subnautica, etc) I think the noise is doing something you don't get with just good color/lighting choices
2
0
99
@BenSimsTech
Ben Sims
6 months
Another 10.2gb of binaries, 8.9gb are third party. What are the chances I'm actually going to use most of them? Finally, 46.7gb of .git. Well, if you're including huge binary libraries in your git repo without LFS, then yeah, you're doing it wrong and your git will get huge.
4
0
97
@BenSimsTech
Ben Sims
8 months
How common is RAII and smart pointers in low level engine and rendering code? The more I try to stick to it, the more unneccessarily complex (and potentially slow) my architecture becomes. Do I just scrap them entirely and actually manually manage my memory properly? (C++)
32
7
93
@BenSimsTech
Ben Sims
6 months
And then there's additional 18.3gb of plugins, which I guess are not "source" for whatever reason, but are included whether you want to use them or not, including 12.6gb of exprimental plugins. At least Unity puts all it's experimental stuff outside it's main engine repo.
1
0
82
@BenSimsTech
Ben Sims
11 months
@CodeRed_dev Nearly 10 years ago, that Brackey's roll-a-ball tutorial got me started with Unity. It was the first step in a long and crazy journey. 🩷
1
3
80
@BenSimsTech
Ben Sims
3 months
It's really unclear when to use pixel shader vs compute. Pixel has cache friendly thread layout, derivatives, stencil support, delta color compression, blending support, but ROP, IA and rasterizer overhead. Compute has groupshared and async but requires UAV textures disabling DCC
8
6
72
@BenSimsTech
Ben Sims
6 months
@dagonmeister That's cool but imagine if an industry leading engine didn't require a bunch of unofficial tutorials just to get the thing to not take up your entire hard drive.
2
0
70
@BenSimsTech
Ben Sims
8 months
Yep. Very little usable engine improvements in the last several years. Almost all features I used existed since Unity 5. I loved SRP for making my own pipeline but it was an absolute nightmare for most developers. Burst and ECS is amazing tech but 95% of games don't need it
@BrianAmadori
Brian Andrés
8 months
ok, let's look at some of the #unity3d "improvements" and features they made along the years... 🧵1/
3
13
51
7
2
71
@BenSimsTech
Ben Sims
1 month
@thomasbrushdev This is not normal because the first thing you do is turn off the warnings and never turn them back on.
3
0
69
@BenSimsTech
Ben Sims
2 months
Figured out a nice way to combine average cloud luminance+transmittance with aerial perspective. I raymarch atmosphere to account for single-scatter atmosphere shadowing, then attenuate the multi scatter term using avg cloud transmittance, and add final avg cloud luminance.
4
4
66
@BenSimsTech
Ben Sims
7 months
@ale_delcele I wonder if that's why it was delayed twice, to give it time for optimisation? Optimising HDRP isn't impossible but it requires decent graphics knowledge and you need to modify the pipeline a lot, which makes it less-achievable for most teams. It should scale without modification
1
0
66
@BenSimsTech
Ben Sims
8 months
Feels like the industry has never needed new engines and studios using them more than it does now. Can't believe how many studios invest their futures in mismanaged companies with neglected engines, built on decades-old foundations which do not scale to today's games and hardware
10
8
66
@BenSimsTech
Ben Sims
7 months
@whaleperson Imo reviewers could provide much more accurate and useful information if they learnt a bit more about the technical sides of game dev. However, posting actual information would be a lot less sensationalist/clickbait and lead to much less views. Making up information sells better
1
0
62
@BenSimsTech
Ben Sims
2 years
Figured out how to project Directional GTAO as Zonal Harmonics onto an optimised SH basis. It provides soft, natural AO and directional ambient light. Next step is a 4D LUT for specular occlusion! Based on Jimenez 2016 GTAO, with tips from @KostasAAA :
Tweet media one
Tweet media two
3
15
64
@BenSimsTech
Ben Sims
7 months
@beast_pixels What exactly is a "design decision" of an engine, and why is it unfixable?
6
0
62
@BenSimsTech
Ben Sims
11 months
This is a terrible take. It's likely parts of the codebase are over a decade old, have many last minute band aid fixes, and features shoehorned in under very tight crunch deadlines. This is not the standard anyone should aim for. Maintainable code will save you thousands of hours
@nice_byte
nicebyte
11 months
early-career people should take the time to download and look at the leaked farcry code. not to learn some new technical lessons, but to disabuse themselves of the notion of “clean code”.
32
214
2K
11
4
60
@BenSimsTech
Ben Sims
22 days
This also somewhat backs up my point that a game with great art direction can still look visually appealing despite having noisy visuals. So if we have great art direction, maybe we don't necessarily need super clean images at all times.
1
0
53
@BenSimsTech
Ben Sims
7 months
@JohnDraisey Not my point, I'm not saying the dialog or cutscenes couldn't be better, but saying this is due to engine technical limitations is misinformed and just looking for somewhere to place the blame with no actual information to back it up. How would switching engines fix anything?
2
0
49
@BenSimsTech
Ben Sims
8 months
It took Unity years to address lots of their poorly designed APIs and it meant having to rewrite a lot of your code each time Unity finally got around to rolling out an optimised version. Many users waited years and there were sometimes dozens of forum posts and feature requests.
3
3
49
@BenSimsTech
Ben Sims
11 months
Single sample sky shader is working well, made a pre-computed invCdf lookup texture that stores optimal sample points for rays, based on height/cosAngle. Here it is combined with other pretty things. Clouds are not single sample sadly, may need to optimise those next! #shaders
Tweet media one
5
4
50
@BenSimsTech
Ben Sims
2 years
It's taken 8 years, 4 studios and 12 projects, but I am now a senior programmer at a AAA PC/Console Game studio. Today was my first day at @tantalusmedia and @keywordsstudios Australia! I'm really looking forward to the awesome projects I'll be working on! #gamedev #AAA
5
0
50
@BenSimsTech
Ben Sims
2 years
One situation I'd often struggle with as a senior/lead #programmer : Trying to talk other developers out of "clever" solutions, when a simple solution is more direct and gets the job done, with a lower chance of bugs and future code debt. It's a real "Just trust me" situation😅
7
3
49
@BenSimsTech
Ben Sims
17 days
I may have spent too much time over the past few weeks replaying Battlefield 1942 and Battlefield 2. I really miss games where you don't worry about seasons, battlepasses, unlocks, leaderboards, customising everything, 100gb weekly patches, etc. You just jump in and have fun.
9
2
47
@BenSimsTech
Ben Sims
6 months
Ran out of space 3 more times trying to build from Visual Studio. Uninstalled 3 more games. I'm done for now, not sure if I want to dedicate my entire 1 TB NVME to this. That's what my 2TB SSD at work is for, which is currently full from multiple copies of a AAA UE project..
4
0
48
@BenSimsTech
Ben Sims
14 days
Today's optimisation: Moved a large amount of per pixel transformations to a vertex shader. Reduced instruction count by 30% on a fill rate heavy shader, saved several VGPRs and removed several interpolators. Anything linear can be done per vertex with identical results.
3
3
47
@BenSimsTech
Ben Sims
7 months
@beast_pixels Any examples/sources/anything concrete to back this up? What decisions were made when the engine was created? (Also they didn't really "create" it, they modified the Gamebryo engine) What data structures are they using? What are better alternatives?
4
0
46
@BenSimsTech
Ben Sims
3 months
1000% this, every other major commercial engine gives you source code. Developers could fix the issues that are affecting them straight away instead of waiting years for the fix to make it into the next tech stream. (And avoid having to upgrade their projects and breaking things)
@sebify
Sebastiano Mandalà
3 months
Dear @unitygames in your rebooting sequence don't forget to consider putting your source code in open source. The community could help to fix a myriad of problems that you obviously don't have the capacity to take care of.
10
7
130
3
9
46
@BenSimsTech
Ben Sims
8 months
Dev time is important for sure, but learning a slightly harder API is a one time cost that gets easier over time. Re-architecting systems because they were built around slow APIs takes a long time and this is often done late in a project when these issues finally surface.
1
3
42
@BenSimsTech
Ben Sims
3 days
Which raytracing effect should I implement first? - Shadows - Ambient Occlusion - Diffuse GI - Specular GI (Reflections) - Refractions (Underwater rendering) Any others? Water caustics would also be cool, but current Unity version does not support RTAS instance data from GPU..
19
0
55
@BenSimsTech
Ben Sims
10 months
I can't see how this kind of tech will ever scale. All of this for an AI powered assistant/emotional support? How is that ever going to provide billions of dollars worth of value? Why are we spending so much on AI to remove human experiences from our lives as much as possible?
@rowancheung
Rowan Cheung
10 months
Inflection AI just created a $880,000,000 AI supercomputer. The supercomputer is equipped with 22,000 NVIDIA H100 AI GPUs (currently worth ~$40,000 each). Details: -Inflection AI has raised $1.5 billion ($4 billion valuation) and anticipates that its new supercomputer will…
Tweet media one
251
438
3K
6
3
42
@BenSimsTech
Ben Sims
7 months
Imo a great programmer doesn't just keep improving their technical skills, they also keep improving their mindset and the way they frame/solve problems, how they work with teams, and how they support other developers. Technical skills are still important though, very important.
2
4
41
@BenSimsTech
Ben Sims
1 year
Why is it often a developers first instinct to make random guesses when it comes to performance and optimization, when a profiler is often only a few clicks away? Stop guessing! Use the tools that are available to you. Build up knowledge of what actually affects performance.
6
7
40
@BenSimsTech
Ben Sims
8 months
At the minimum Godot should include simple and advanced APIs for anything that could be a performance concern. Saying your codebase is too big to optimise when a huge part of the industry is looking at your engine does not inspire confidence. It will only get more difficult later
3
0
40
@BenSimsTech
Ben Sims
8 months
Unreal also has this issue, it is developed and optimised for specific games and rendering styles. Trying to do anything different involves fighting against the engine and the amount of developer time spent on this can be enormous.
1
0
39
@BenSimsTech
Ben Sims
4 months
Today's random optimisation finding: Temporal upscaling pass was writing to a 64 bit (Rgba16) instead of 32 bit (Rgb111110) texture. Changing this sped up the TAA and subsequent bloom pass by 0.3ms with no visual differences. (As alpha channel is unused) A nice quick win!
2
1
39
@BenSimsTech
Ben Sims
8 months
"Your opinions on game engine architecture and performance are invalid because you didn't use enough statistics words in your response and therefore proved that programmers don't understand statistics" is a strange take. Probably part of a strategy trying to sell his course/books
@lzsthw
Zed A. Shaw, Writer
8 months
@BenSimsTech Given that you didn't mention a single thing from statistics I guess my assumptions are correct. But, feel free to prove me wrong by doing just one analysis with a power test and t.test proving your changes are statistically significant. Should be easy and beneficial to do.
5
0
0
9
0
38
@BenSimsTech
Ben Sims
2 years
Today's #gamedev tip: Don't be clever. Keep things simple. If you're about to do something complicated, come up with a simple way, compare them, and see if the extra time, complexity and risk of bugs is worth it. Don't overcomplicate just to feel like a skilled developer.
1
4
39
@BenSimsTech
Ben Sims
7 months
@JohnDraisey There's a difference between saying "I don't like this mechanic" and "This mechanic is bad because the developers are using an old and outdated engine and I clearly know about game development and game engines enough to have an informed view on the subject".
2
1
38
@BenSimsTech
Ben Sims
7 months
LOD crossfade took them years. This requires adding a single #multi_compile to a shader, and calling a SINGLE FUNCTION at the start of your frag shader that dithers/discards fragments with a noise function. This is literally an hour of work or less.
2
0
38
@BenSimsTech
Ben Sims
10 months
Unity peaked with Unity 5. They could have improved the built in render pipeline, added shader graph support, and added more post processing options. (And not change the multiplayer API three times) Instead we have an engine that is nearly as good as it was almost a decade ago.
3
0
36
@BenSimsTech
Ben Sims
1 year
@MentalUnleash Whether a source is good or bad is a matter of opinion and circumstance. By proclaiming that some sources are good and others are bad no matter what, you're just wrong. Excessive sunshine gives you cancer and skin damage for example.
2
0
35
@BenSimsTech
Ben Sims
7 months
And yes I understand how slow things can happen at large companies, having worked at a couple myself, but this is beyond a joke. This is why I made my own SRP years ago, I didn't have faith in either of their pipelines being able to provide performant results in the near future.
2
0
37
@BenSimsTech
Ben Sims
11 months
@shaun_vids That's not the right message. Deep sea exploration is possible to do safely, and has been done in the past. (Eg the Deepsea Challenger) The message is to not entrust your lives to entrepreneur startups who cut costs and ignore critical safety measures to save some money.
2
3
35
@BenSimsTech
Ben Sims
11 months
@XY01 Nowhere near as bad as rebuilding the entire engine whenever you make a change, or waiting for 30-50,000 shaders to compile. But also, I'd suggest meticulously splitting assemblies. It's annoying but makes you think about your code setup carefully and avoid circular dependencies
6
1
34
@BenSimsTech
Ben Sims
7 months
Still missing: TAA. Here's how you do it, you jitter your camera projection matrix at the start of a frame, you render dynamic object velocity into a texture (Can be done during base pass), use a fullscreen pass to generate velocity for statics, then resolve in a fullscreen pass.
3
0
35
@BenSimsTech
Ben Sims
8 months
This will limit the kinds of games that Godot is good for, and the kinds of teams that will want to work with it. Many ex Unity users will be highly skilled programmers looking for advanced APIs to meet their needs. Not accounting for them means missing out on a lot of users.
1
0
33
@BenSimsTech
Ben Sims
2 years
I've had an amazing time working at @MightyKingdom over the past 1.5 years, and next week I'm moving onto another exciting adventure! MK was the best place I've ever worked at by far! Such an amazing culture and extremely talented people doing amazing things, I will miss it!
2
1
34
@BenSimsTech
Ben Sims
2 months
Submit shelf? Sure, but you must delete it first. Wait, why do I have to delete it? It's shelved, can't I just submit it? Yes but you have to delete it. Okay, I'll delete it. Cool, it's deleted. But it's submitted, right? Oh you wanted to submit it? Uhh..
3
1
34
@BenSimsTech
Ben Sims
8 months
You can't just rely on user reports or best guess about which code will be used in hotpaths. Game Dev is very random and every game is different. Your guesses will be biased and you'll end up only optimising for specific types of games and specific features.
1
1
32
@BenSimsTech
Ben Sims
7 months
@MehowLipa Yes, very true. Technical debt is a large part of any complex software, but how will a new engine fix this, and how is it any better than just improving/changing the parts that aren't good enough anymore? Also, Unity and Unreal also have this problem, like on a MASSIVE scale.
2
0
32
@BenSimsTech
Ben Sims
22 days
@simplex_fx Haha, I still love my photorealistic graphics, but it's interesting how noise can play an important part in what we perceive as realistic/natural, and maybe the current focus on providing unnaturally clean/crisp images isn't the only thing we should be focusing on.
2
0
33
@BenSimsTech
Ben Sims
8 months
We need engines that cater to experienced developers as well as beginners and are not risky from a performance viewpoint. The industry is full of terribly optimised games and putting ease of use over scalability will mean players continue to get frustrated over unplayable results
7
0
31
@BenSimsTech
Ben Sims
2 years
I'm occasionally making things more pretty. I added a flipped ambient term for foliage, making self- shadows a lot less hash, even with SSAO. It requires two SH evaluations though, I feel like there should be a zonal harmonic transform to combine the terms. #gamedev #shaders
Tweet media one
2
2
32
@BenSimsTech
Ben Sims
6 months
Started playing Cyberpunk but raytracing+4k+DLSS on GTX 3070 hovers around 40 fps and can't hit 60. Far Cry 6 is also the same. Feels like a $700 (AUD) GPU should be able to raytrace on avg settings on most games. Is this a lack of optimisation or is RTX just really that slow?
32
1
32
@BenSimsTech
Ben Sims
1 year
Do any #gamedev progammers use spherical coordinates in any way? I always see euler angles being used for mouse-look/character controllers etc, but working directly with radians and sin/cos etc seems much cleaner, and it's easy to extract a quaternion out of it too.
Tweet media one
3
3
32
@BenSimsTech
Ben Sims
7 months
If I was on a URP project I could implement all of the above within a couple of weeks or so. Not trying to brag, these are very common and well-known techniques that many graphics programmers known. Unity also hides a lot of the boilerplate, making it even faster to implement.
4
0
32
@BenSimsTech
Ben Sims
2 years
One thing I've learnt about programming: Speaking up and raising concerns is hard, you have to do it early and often. It takes time and energy away from writing code. You also have to pick your battles, there isn't enough time to solve every problem on every project. 🧵 #gamedev
1
2
31
@BenSimsTech
Ben Sims
7 months
My preferred pattern is deleting unnecessarily complicated systems, and rewriting them with only the parts I need. What's the name for this pattern?
@BenSimsTech
Ben Sims
7 months
You're a good engineer when you realise that people who overemphasize the importance of excessive terminology and design patterns are not necessarily good engineers, possibly the opposite. Problem solving is a mindset and using suitable tools, which sometimes means no pattern.
3
4
106
14
0
29
@BenSimsTech
Ben Sims
8 days
Screen Space Global Illumination go brrr. Simple cosine importance sampling, HiZ depth trace, 1 SPP + temporal integration, no light sources. It's probably a good idea to bias samples towards view direction? The floor is water because I don't have a way to disable my ocean yet.😅
Tweet media one
Tweet media two
2
0
31
@BenSimsTech
Ben Sims
7 months
All software has bugs, they either haven't been discovered, or are not enough of an impact on the average user experience to fix them. Perfect software is a myth, all projects have budget, time and quality constraints. The only failure is not learning how to balance these factors
@unclebobmartin
Uncle Bob Martin
7 months
Dijkstra, 1972: "If you want more effective programmers you will discover that they should not waste their time debugging, they should not introduce bugs to start with"
41
82
565
6
2
30
@BenSimsTech
Ben Sims
8 months
Googling stuff about Unreal cooking: "When it comes to packaging a game, Unreal is very smart and they thinks about how to make the best of your time as a developer." Also Unreal: "Ini change detected, clearing all cooked content" My developer time has never felt more valued.
4
2
29
@BenSimsTech
Ben Sims
11 months
Anyone have good reading recommendations for current Depth of Field state of the art in games? I'm guessing stochastic gather in compute shaders + SLM or similar would be the best way to handle large bokeh sizes. (Also looking at motion blur/vignette/chromatic abberation, bloom)
4
4
27
@BenSimsTech
Ben Sims
4 months
2023: Got my name in credits on 2 AAA titles (AoE2 DE Xbox and Return to Rome), lots of optimisation on another AAA port which will be finished this year, finished building my house and moved in, went an entire year without changing studios, and made some spicy game engine tweets
1
1
27
@BenSimsTech
Ben Sims
10 months
Disclaimer: I don't actually dislike Unreal Engine, there are just certain aspects of the developer experience which are... unpleasant. Coming from many years of Unity where I've learnt how to work around many of its issues, I'm still going through a bit of an adjustment period.
3
2
25
@BenSimsTech
Ben Sims
6 months
@josh_caratelli It's also games with huge amounts of content, level design practices where many assets are unique/don't re-use models, and texturing techniques that end up with every model having multiple unique textures. It's a workflow and level/env design problem as much as an engineering one
1
0
28
@BenSimsTech
Ben Sims
2 months
The whole point of version control is that your work is backed up/versioned so you can revert to it if something goes wrong, so you're safe. So since you shelved your work on a remote server, it's totally secure, as long as you submitted it and didn't shelf and then delete it.
1
0
28