@forrestthewoods@mastodon.gamedev.place avatar

forrestthewoods

@forrestthewoods@mastodon.gamedev.place

I used to make video games. Currently working in XR Research.

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

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

I am excited to finally share our recent paper "Filtering After Shading With Stochastic Texture Filtering" (with Matt Pharr, @marcosalvi, and Marcos Fajardo), published at ACM I3D'24 / PACM CGIT, where we won the best paper award! 1/N

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@aras @BartWronski ironically a blog post will have 100x to 1000x the reach of a GDC/Siggraph talk!

I kinda think blog posts are the ideal format for knowledge sharing. Everyone should write more!

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@aras come to Seattle for breadsticks! :)

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

I'm in the process of packing up for my big move to NZ so you're likely to see lots of nostalgia posts over the next few weeks.

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@grumpygamer whoa that’s awesome! I thought moving to NZ was pretty complicated? Don’t they have pretty restrictive immigration laws?

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

Threw together a quick blog post: WinDbg Time Travelling Debugger is Amazing Magic.

I didn’t know this was a thing at all! It’s shockingly easy to use. Feels like something more people should know about.

https://www.forrestthewoods.com/blog/windbg-time-travelling-debugger-is-amazing-magic/

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

This is valuable to get a general sense of the relative scale of things. That’s what it is good at, generally disprove the “IMGUIs are going to be magnitude more consuming”.

There wouldn’t be added value imho to precisely compare nearby results (“x is 20% cheaper”) as they are too many differences in the mix.
https://mastodon.gamedev.place/@forrestthewoods/112364120042188727

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@ocornut I’m so annoyed that the default belief seems to be “IMGUI slow” with no actual evidence. But people utterly dismiss partial/imperfect evidence to the contrary. They demand perfect evidence to change an opinion that was former on poor or zero evidence!

This type of thinking is probably super common. I bet there’s even a term for it. But dang is it annoying!

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

Proving that Immediate Mode GUIs aren’t significant battery hogs. Computers are really fast!

MacBook M1 Idle: 3.5 watts

Dear ImGui: 7.5
ImPlot: 8.9
EGUI: 8.2
Rerun: 11.1

Spotify: 5.8
VSCode: 7.0
YouTube: 11.5
Facebook: 8.7

Compiling: 50.0

Full blog post: https://www.forrestthewoods.com/blog/proving-immediate-mode-guis-are-performant/

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@pervognsen would love to hear more specifics about this. I’m a sucker for war stories.

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@Doomed_Daniel @TomF if I did that people would just complain “test app isn’t reflective of real app”.

There genuinely is no pleasing people. And yet we live in a world of imperfect information where people have to make binary choices all the time!

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

One of the arguments against immediate mode UI is that it will drain your battery. I think that's bollocks!

Here is my "proof of life" test to measure power draw. Preliminary result is that Dear ImGui consumes less power than YouTube. That feels like a fairbar to compare against

I'll of course take some much more rigorous measurements and tests over longer periods of time. This is just the first time I have actual data.

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

Here’s an unpopular opinions, curious what other people think.

Imposter Syndrome is a toxic idea. I think the popularity of the term has actually induced stress. Especially among groups more prone to suggestibility.

I think the hoards of people who claim to “suffer imposter syndrome” are using the term to mean totally different things. It’s weird that seemingly everyone at all levels claims this phenomenon.

Think the world would be better off if “imposter syndrome” was never invented.

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@aras maybe! I can’t comment on other potentially similar cases. But imposter syndrome articles appear in my feeds all the dang time.

I saw soooo many tweets during GDC to the effect of “GDC is great but really triggers my imposter syndrome!”. Urggghhhh

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@aras and sometimes I can’t help but feel its actually humble bragging or fishing for compliments.

It’s almost like culturally you’re supposed to say you suffer imposter syndrome. So wacky.

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

This indentation should be illegal.

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@zeux omg yes. It infuriations me that for some reason #if is put on column 0. Makes no bloody sense

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@andrewwillmott @reedbeta @TomF @zeux C89? Better wait until 2029 just to be safe!

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

Two related questions for computer graphics people:

  1. is it true that ray/line/whatever intersection tests are common in interviews?

  2. how common are questions of this nature, where you have equations memorized?🤔

(boosts appreciated pls)

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@aras @im @ruba yeah. DotProduct math is a “core competency”. Also true for gameplay programming.

RaySphere should be trivial. More complex should be derivable in an interview context. Especially with interviewer hints.

aras, to unity
@aras@mastodon.gamedev.place avatar

Oh nice: looks like #unity finally decided to make @tteneder glTFast an actual official Unity package (com.unity.cloud.gltfast). Yay more official #gltf support! https://forum.unity.com/threads/unity-gltfast-package-is-now-available.1527337/

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@aras do have any opinions on GLTF
vs USD?

I think unreal has pretty weak sauce GLTF support and I’m not sure that’s gonna change.

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

An interesting topic came up in the PRs, related to the recent blog posts by @forrestthewoods.

Should it be acceptable for a C++ build process to require network availability to succeed?

To put it in context, the network would be used to download the source code of some of the libraries that need to be compiled and linked into your program.

My stance is that builds should be local only, but maybe I'm just an old man who hasn't noticed that modems are long gone by now?

What are your opinions?

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@pervognsen @wolfpld builds that fail because GitHub or some random server is down make me so sad.

My $DayJob builds run in an isolated environment with minimal access to the outside.

The fact that some tools require external access due to licensing bullshit (cough cough UNITY 😡) is a source of much frustration.

It sucks when a build fails and you have to ask “is this a real error or just some flaky network bullshit”. The more external deps the more flaky bullshit.

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@wolfpld @pervognsen we continuously have issues with the Unity license server. It’s infuriating.

Unreal doesn’t require a license check. But getting the right version of .net installed on machines is surprisingly annoying and difficult. Both build machine images and even normal devs.

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

New Blog Post: Using Zig to Commit Toolchains to VCS

A follow-up to my previous post. May contain some 🌶️ that offends 🐧 fans. I regret nothing. 😬

I mean, I might also just be wrong. But I can live with that. 😅

https://www.forrestthewoods.com/blog/using-zig-to-commit-toolchains-to-vcs/

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@gob my goal is to compile a program on a clean system without installing a single extra package and without depending on any content in the system folder.

This requires headers and a link target. glibc doesn’t provide a single way to specify old versions. In your own words if you want that you have to “get an old version”. Which in also known as “vendoring”.

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@Doomed_Daniel @jorgenpt @dotstdy @aras maybe. but Zig demonstrates they’ve solved this, no?

Note the program USES the system glibc. glibc pretty requires usage of a shared library. What Linux gets extremely wrong, imho, is forcing use of the system glibc when compiling! This is very poor hygiene imho

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@gob “just like have an old one somewhere in your sysroot” is the EXACT type of unreliable garbage I an seeking to avoid.

It’s the opposite of premature. I’ve been dealing with this shit professionally for a very long time. If you read replies you’ll find extremely senior engineers saying “this is exactly what we did at Unity”.

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@gob let’s rewind.

My claim is that all dependencies belong in version control. Builds should use nothing that isn’t part of version control. This means no system glibc.

I had difficulty vendoring glibc for use by clang++. I’m sure it can be done. But I was having significant trouble.

Zig is a drop-in replacement for clang. It fully solved my problem. And took less than an hour to setup.

You aren’t happy with this because… ?

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@gob in that case please refer to my original post: https://www.forrestthewoods.com/blog/dependencies-belong-in-version-control/

If you disagree with the root premise that’s fine. But it does mean this whole exchange was a waste of time for both of us!

forrestthewoods,
@forrestthewoods@mastodon.gamedev.place avatar

@gob I am choosing to vendor dependencies. I had difficulties vendoring glibc for use with clang. Zig fully solved my problem.

If you would like to offer an alternative solution to vendoring glibc for use with clang you’re welcome to state it.

If you would like to argue that vendoring is bad actually then I’m not interested.

As it stands I’ve offered a clear problem and solution. I’m very happy with it.

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

@gob dude.

me: here’s a problem and my solution
you: what’s wrong with X
me: I couldn’t get it to work
you: but what’s wrong with it
me: it doesn’t work easily
you: but what’s wrong
me: IT DOESN’T WORK

Vendoring glibc is hard. If I tried again I think I know enough to get it to work for Ubuntu. But that would only work for some subset of Linux systems.

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