Installing DirectX7 SDK Edition/gedg/ Wiki: https://igwiki.lyci.de/wiki//gedg/_-_Game_and_Engine_Dev_GeneralIRC: irc.rizon.net #/g/gedgProgress Day: https://rentry.org/gedg-jams/gedg/ Compendium: https://rentry.org/gedg/agdg/: >>>/vg/agdgGraphics Debugger: https://renderdoc.org/Requesting Help-Problem Description: Clearly explain your issue, providing context and relevant background information.-Relevant Code or Content: If applicable, include relevant code, configuration, or content related to your question. Use code tags.previous: >>109716990
>>109779824>tfw ywn see this kind of quality jump ever again
why arent you making a retro game engine that will run only on Win95/98 ?
HMMMMMMESH
>>109779858>>>/g/sqt/
seems like this general is pretty much dead. What would revive it? Where did the passion go?
>>109781031I'm working on some big stuff that's not ready to show so I just lurk here sometimes but you're not wrong. I suspect I'm not the only one.
>>109781031AI.
>>109781031I have been spending the last weeks trying to make a game similar to pic but fuck art is hard. I think there is a similar game already but it has bigger scope not city levl autism.
>>109781031Don't know if it's the kind of answer you were searching for, but as someone new to game programming, the reason I started lurking a month-ish or so ago was to learn new stuff. And the reason I never post is that I still don't know enough about the subject for my opinion to be worth shit.Knowledge is hard to come by, there are almost no decent books on the subject of game architecture and the only other source of information for newbies nowadays seem to be one of those 500+ hours youtube series.Maybe expanding the compendium and the wiki could be useful? At the very least it could spark some discussion about what to put in it and what newbs should avoid.
>>109781031The sister /agdg/ seems very busy.
>>109781836is it because you can just slop together anything without making any effort now but to do actual engineering and game engine stuff takes effort and nobody wants to put in the time to do it properly?
>>109781031nah its okay
I just grabbed a library for a bunch of common geometry operations (such as intersections of polygons) and suddenly remembered how blessed we are in this modern world of open source. Not only did math devs figure out and implement all the logic, but they also created a library around it and just gave it to everyone else to use. Without this little piece of code, I would be fucked trying to implement any of these calculations myself. Thank you, open-source anons, for supporting my retarded ass with the real programming that I am unable to do.
>>109779842Why did hos face get censored in dx9, what'd he do
>>109782444checked
>>109782207Based
>>109782444Thats motion blur also checked
>>109782207Damn, i wrote my own
>>109781031burnout is pretty common in gamedev, and now even more so with all the AI noise. people just unplug, even those who were truly passionate about this trade, and programming in general. the game industry being in the shitter certainly doesn't help either.
>>109782207It depends on what you want to do but most things can be done via rectangles in 2d and spheres in 3d and ray casting.
>>109781031i don't post progress anymore cause AI just makes it feel kinda pointless. i'm still happily trudging along but the urge to share with others is basically gone for me at this point.
it fuckin works
>>109784611Has anyone played an ai game that's been fun for more than 10m? Even if people use ai they still have to put the effort into making it good, that's the bottleneck.
>>109781031This general was never alive
>>109779858I miss this game, wasted too many hours in the map editor
>>109784655QRD?
>>109779858Thought I was the only one who ever played this.
>>109788361I'm working on a first person dungeon crawler. This is the dungeon generator, inspired by DungeonMaker's design, but ultimately heavily modified.It's got a builder system that can semi-randomly create features.Each feature creates a series of 'sockets' which then inherit the builder's traits. One of those sockets then continues the builder's lifecycle, and the builder decides what they should build. For example, a hallway, a junction, a ramp, a loop, or a join. These features are then also changed based on the build size of the builder. When a builder reaches its maximum age, it dies, and the sockets it created are queried to see if they are now 'child' builders that inherit their parent's traits.For meshing I am using hierarchical instanced static meshes with nanite static mesh displacement for lots of detail.I've also created a main path, as well as bottlenecks.
>>109781031The world ran out of suckers for an idea as moronic and doomed as a 4chan gamedev community, a place where you have nothing to gain but plenty to lose.
After the C vs C++ discussion in the last thread, I started reading about both languages to be sure I understand the implications of choosing one over the other.Speaking of pure C, why do I hear people say to avoid dependencies on the C runtime library? Do you do that?
>>109789636libc is everywhere and basically unavoidable. most compilers are lazy and force it as a dependency to allow your program to even initialize things like argv/argc from main, for examplethe reason to avoid it is just because it's dated and barebones. you really need to build up your own dependencies when you use C. this is both a strength and a weakness. macros are dated dogshit though, unironically consider a modern C memelang like odin instead
>>109789783>the reason to avoid it is just because it's dated and barebones.I get the reason why people, for example, ditch the null terminated strings and make their own string libraries. What I don't understand is why they refuse to use stuff like stddef.h or stdint.h if, like you've said, you still need the C runtime library for crt0.o.>unironically consider a modern C memelang like odin insteadShould I really?
>>109790845The only reason to avoid stdint.h is if you are stuck on C89 for some reason. I know some people deliberately use C89 because they think it makes them more hardcore or something, maybe that's what you're referring to.I can't think of any reason why you would avoid stddef.h.
>>109789636nothing wrong with the C standard library.the only problem with the C standard library is bloat autism, so maybe wasting a few megabytes if you statically link the C runtime on windows (note that every single C/C++ program pre-installed on windows uses something called a hybrid UCRT which only statically links the VC++ runtime but keeps certain C functions like malloc/printf dynamic, that's why the VC++ runtime is not preinstalled on windows even though most programs are written in C/C++, and static linking the UCRT usually increases the binary size by a couple mb depending on the functions used, total size is 15mb, but the entire VC++ library is like ~300kb in total).You should just look at the DLL's that you exe depends on, which many tools can help with, but if you have a non-home edition version of windows 10/11, you can enable windows sandbox which is a lightweight VM of a fresh windows install, so you will know exactly how a program will behave on another PC with nothing installed.
>>109790845>stddef/stdintthey do use those things. you would only avoid stdint if you’re trying to make your software maximally portable to all compilers and target platforms. something that is extremely niche in 2026 when everything is 64-bit and no one is using esoteric 30 year old compilers for forgotten hardware. no one sane is strictly adhering to c89 anymore, at a minimum they’re using c99 headers and features>Should I really?probably. some people have this weird desire to seek out “purity” and so they stick with C but the problem is C has a lot of foundational issues to begin with and they were never allowed to be solved because once you have standardized things, changes to the correct way of doing something will break existing code. so either you have something like C++ which is a franken monster of bandaids layered over bandaids or you have memelangs that never reach 1.0 because they don’t want to commit to writing implementation in stone and it being the wrong choice they’re now stuck with. you should probably learn C just because there is so much of it out in the wild, but at some point it really is worth moving to something more modern that has all the hindsight that C didn’todin, jai, zig and c3 are all worth at least playing around with
Really is the blind leading the blind in here with people pretending C++ isn't the most practical choiceIf you don't want all the bullshit of C++ try OdinDon't use C
>>109794029Use Jai
>>109794036That's another option but it's closed beta
>>109794036 >>109794049>using blowjob's memelangNGMI, just use a real language like Odin, Zig, C++, or even Rust
>>109794058if jai is a memelang, why are you recommending another memelang that isn’t as feature rich and literally stole all of its ideas from jai in the first place
>>109794058>OdinOk but doesn't over much over C.>Zigmemelang>C++shitlang>Rusttroonlang
>>109794058Zig is a memelang made by a dumb web dev full of dumb design decisionsRust is a masochistic language, there's very few practical use cases for the borrow checker bullshit
>>109794081Beef.
>>109794082 >>109794081I agree. Still beats Jai tho.sidenote, wtf is the point of making your own language/engine if your shitty sokoban clone you've been making for 10 years runs like ass. sub-30 FPS on a steam deck is unacceptable for a game that looks like that.
>>109794107He STILL hasn't come up with an excuse for this btw lmaoHe said something about "yeah we're working on getting it performing better on low end graphics cards"My PC can run Doom Eternal at 60 FPS and it can't run your Sokoban game that looks like it was made in 2010, and you spent your entire life bitching about performanceDude is insane
>>109794107OtSS was GPU bound, not CPU bound.
>>109794081>Ok but doesn't over much over C.good. C with a few flaws fixed like macro hacks, integer promotion and stronger primitive typing is practically perfection. my main problem with odin is that for that specific usecase, the compiler is getting bloated with tons of external libraries being included with maintained bindings and that just seems to violate the philosophy of “modern C replacement”
>>109794125They don't know what that means. If they had that kind of knowledge they'd already be using Jai.
>>109794123 >>109794125crazy for it to look like that and be GPU-bound. anyways the guy is clearly full of shit so I wouldn't touch anything he makes with a 10-foot pole
>>109794125how is that an excuse>>109794129you're bikeshedding
>>109794144>you're bikesheddingcompiler technical debt is real. if all the compilers in the world vanished overnight, the guy who wrote everything in C and maintained his own dependencies would be up and running again in a matter of months if he had to write his own compiler. as an extreme example, imagine if he had written it in C++23. there would be no hope
>>109794171>if all the compilers in the world vanished overnightstop being a fucking retard
>>109794171your hypothetical is retarded but even beyond that what you're describing is more of the standard library not the compiler itself
>>109794178what happens if jangafx goes defunt and gingerbill jumps out of a building? what happens if jonathan blow gets hit by a bus? these compilers would have to be maintained by other people or rot and diea c compiler is always going to be there, for every environment imaginable and you can set your own constraints to be as portable as you want. C is just the best way of immortalizing software, objectively>>109794183the hypothetical isn’t supposed to be serious. it’s just a thought exercise to recognize the scope of the machinery your software actually depends on and weigh how much QoL you’re getting in return for it and if that is actually worth it or not when scrutinized
>>109794265>a c compiler is always going to be there, for every environment imaginable and you can set your own constraints to be as portable as you want. C is just the best way of immortalizing software, objectivelythis is just retarded. as long as it can be compiled it's "immortalized". you can still run software written in the 70s from languages that no one uses anymore. all you need is the source code or binary to run the compiler.
>>109794265code doesn't rot
>>109794081Odin and C have very interesting tradeoffs imo. C is more mature, reliable, proven, has compilers for every platform under the sun. But also stuck with some poor, archaic decisions. Programming in Odin is much more comfortable, with lots of little refinements and details based on years of observations about how smart people actually write programs and reason about types and memory. But it uses LLVM, doesn't have broad platform support, and even though it's relatively stable for a young language, it's still a young language and niche compared to C.
>>109794318>But it uses LLVM, doesn't have broad platform supportwho cares?so many fucking bikeshedding nodevs in here
>>109794331>who cares?Some do, some don't. Are you too stupid to understand the concept of a tradoff? Or do you just spend all your time online shitposting about languages?
>>109794548There is no tradeoffAny platform not supported by LLVM is irrelevant to you
>>109794657Odin's platform targets are constrained by more than LLVM.
>>109795251I'm sure that doesn't affect you in any way
>>109794029See the light use beef
I'm making a game with tiled graphics but decided to do my own little tilemap editor because I was doing them by hand and it sucked a lot. Still needs a lot of features but the core works.
Three.js Chads won.Web Dev Chads won.Vibe Chads won.You trannies lost.
ok, but who asked
What editor do you guys use? I'm currently using neovim. Every once in a while I like to test other editors instead of working on my engine.
>>109789636>>109790845The (ISO) C standard library is actually pretty small when you really look at it.A good chunk of headers are just definitions, some memes related to keywords, some floating point crap you won't use except maybe pow(), and a bunch of decently niche stuff that you won't use most of the time.- Anything touching locales in a trash fire- Part of that, anything touching text-encoding is a trash fire. FINALLY they're adding non-locale affecting encoding functions in an upcoming standard.- The I/O functions are generally pretty good (except that parts that overlap locales).- The allocation functions are fine, despite what some autistic schizo might claim.- rand() is shit, but if you appreciate that it's shit, then it's fine.- atomics are good- threads are whatever, fine for a lot of basic cases- Say what you want about C strings (skill issue) but a lot of the string functions don't work in a particularly helpful way.- Some functions have implicit global state (e.g. strtok) and should be avoided.
>>109797201neovim or zed because its easy to setup keybindings lite-xl when I just want to jump around and read the code from a third party. vs code is fine if you setup seperate profiles for different languages.
>>109797201emacs -nw
>>109797201I use VS Code and windows 10-desu.
Three.js con was fun.
dead general dont die before I post progress.
Prog
>>109798423what does -nw get you over the gui emacs?
>>109784655noice
>>109794171And the guy that wrote FORTH would be up and running in days at worst.
>got a new job>no progress in 5 weeksFinally getting back into it bit by bit now I guess.
>>109802117color palette from your terminal emulator
>>109788964Make the gameplay like Arx Fatalis.
basically if I see a dev trying to make a big deal about not using ai I just assume that1) he's transexualand2) he's trying to use the lack of ai as an excuse for the quality being shit
>>109804415AI is neat for deepdive googling shit (with a lot of mistakes), but I think the product is the AI, not the games that it could theoretically code.I don't think that the future of generative AI/AI coding assistance in games is going to be in the shape or form that you want it to be.I think everyone is going to get a personalized experience through the help of AI, and it's just going to be a feedback loop where the AI has cracked the code to our dopamine receptors because it can scan your brain or something.https://en.wikipedia.org/wiki/Experience_machineOf course, people will reject the machine, everything that gives you dopamine is a drug and it can quicky switch from you being in control of your destiny, to you being controlled by a source of dopamine.I think we are probably going to have a ideas guy's wet dream machine, where you have a game that's already pretty fun and replay-able, and then the AI can just add or remove or change anything that you desire about the game, then people can just share and vote.
>>109779842Indeed. Everything after picrel has been a downgrade.
>>109779858>only on Win95/98If it runs on 98, chances are it will run on XP... How would one even go about ensuring that a Win98 game wouldn't run on anything newer?
>>109800323The writing is on the wall. There's no point in making a new niche indie engine when vibers can just do our years of work in a day with three.js. It's legitimately over for indie engine devs. If only we listened a few years ago.
>>109806623>welarping jeet
>>109806707You can tell by the fact he mentions three.js.
>>109806726>>109806707Three Chads won, little pussy faggot BITCH!!!
>>109807487you cant be a chad if you program in js
>>109807502Sorry little nigger boy, I can't program at all. I just type what I want and the robot does it for me.
>>109806707>jeetIt's probably the bosnian retard.
>>109807523same thing
>>109807487I don't even want to play actual GTA6, why would I want to play le vibecoded GTA6?
>>109807748You lost, tranny.
>>109807752I hardly see what me being transexual has to do with anything
>>109807777he doesnt understand how insults work, he's a jeet
>>109807511>>109807487You've had about 2 years of being 10x (or more) due to AI. Could you show the 20 years worth of projects you or anyone else has completed with that boost?Thanks.
Does anyone here have good resources/tips on how to cleanly separate the platform layer from the rest of the game?I'm using SDL3 and things went haywire when I started trying to implement hot reloadable code. I've tried moving away from a game that constantly calls the platform towards a platform that controls the game loop, but it didn't work out as well as I had hoped.As for why I want the separation: autism, I think. I don't see myself using a different framework anytime soon but I'd sleep better knowing I could if I wanted to.
>>109809419depends on your lang
>>109809429It's [spoiler]pure C[/spoiler].
>>109809419whats a platform layer?
>>109809592that's what you put in your platform directory
>>109809419wouldnt it make more sense to work on this backwards? I.e. look up how a rendering backend for microui/imgui is written? Afterall those are both platform agnostic.
>>109809410>could you dox yourself by showing your work that I could look up on github because you hurt my ego by calling us outDigits and a nigger on crack saws this guy's legs off.
>>109809713rolling
i want to get myself into 3d rendering programming, is the learnopengl book the best place to start?
Cross-cross-post from the other dev threads, because I'm just that much of a thirsty loser.Progress, but nothing terribly exciting.Modeled a new treasure chest for one of the zones.Finally got around to adding the ability to choose items within dialogues, went a little easier than I though it would once I got my head around it. Dialogue system was one of the first systems I wrote, so it's got a few bad / confusing code flows in it. Also wrote up the relevant behavior tree tasks to go along with it, mostly to check if player has items of type and remove selected items once used.Also added a new system that automatically sets up traps on chests using a generic chest actor, so I don't have to make 6x of them for each zone. Added a new item that lets the player auto-succeed at disarming traps.Additionally added some extra code to the weather management system that sends some flavor update text when the weather changes, both to set the mood and give players a warning of what the new weather is without having to check manually.Next up is a few rounds of playtesting to catch bugs in all the new stuff I added, and get the wrinkles ironed out.
in my video game homosexuality is normal and straight cis people are the weird creepy ones
>>109810126brave
Before I render an object, I check to see if it's above the top of the screen by doing this:>if (renderY < -height && renderY < -width * sin(rotation * pi / 180.0f))If that evaluates to true, I do NOT render the object.Is this a good method? The second term is bothering me.
>>109810340bro your depth buffer?
>>109810349i'm not nearly as smart as you think i am.
>>109810374my default when talking to someone on 4chan is to assume they're missing half a brainso no worries
>>109809419>hot reloadable code.this is a gimmick, stick to just having a save/load system, and you can just load a save by running the game in the IDE to speed up iteration.the fact that you need to compile your code to update it, makes it not very useful for hot-reloading (also msvc has hot-reloading built-in, but it is incompatible with address sanitizer which is why I never use it, and it has unavoidable issues that could mislead you).At least with lua, you can just replace a global that represents the state of a module that is hot-reloadable, and anything referencing the old state will still work (BUT globals in lua are slower to access, it's good practice to cache globals into local values, which will then break hot-reloading). But lua offers no way to save the data into a file.I guess technically, you can try to save your variables as 32bit offsets, and saving is done by just a memcpy of a big heap, but all your IO like timers, files, audio, GPU data, window data requires to be serialized (probably with indices to a table for each type), and ALSO no more function pointers (use an xmacro enum+switch), no char* strings (unless it's a literal AKA never stored inside the int32 heap), no stackful coroutines/fibers, no static global variables, no thread local variables, everything is now a int32 offset.Plus address sanitizer, valgrind(linux)/dr memory(valgrind for windows), and memory sanitizer(linux) will become useless because it relies on hijacking malloc and knowing global variables (you can try to do explicit poisoning with asan however).Also I don't see why you need to replace SDL3, like we mentioned in the last thread, if you replace SDL3, you end up with another C library that accomplished the same result as SDL3. You can replace SDL3 with another C library if you want, like raylib or glfw + webgpu or whatever is popular.
>>109810340>renderY < -width * sin(rotation * pi / 180.0f)why the fuck do you have this?
>>109809592The part of a program that interfaces with the OS and abstracts it away.Or at the very least, that is what I meant. I'm not sure if my terminology is correct, I'm new to this and learning as I go.>>109809688Not sure about this, a gui library and a game seem quite different to me, but I'll try to take a look around.>>109810498>this is a gimmick, stick to just having a save/load systemI don't know, having to serialize and deserialize stuff for the save system seems daunting too, but you're right on the fact hot reloading is full of limitations. I'll have to think more about this.>Also I don't see why you need to replace SDL3Like I said, it's the 'tism. I want my code to be well organized and as "clean" as possible.
>>109810672>The part of a program that interfaces with the OS and abstracts it away.Why does that control the game loop?
>>109810681The idea is to have the platform layer being the executable that loads the game proper (compiled into a shared object). That way you can modify the game code and hot reload it without having to shut down the main executable.
>>109810716That's not what a platform layer is, you contridicted your own definition
the platform layer is the API and the OS specific code you compile conditionally
>>109810731Thanks for the maieutics example, Socrates.Some platforms, e.g. iOS, want to own the loop so that could be considered platform specific code, too.
>>109810875>Some platforms, e.g. iOS, want to own the loopno they dont, i think you're confused
i need gpt pro to finish my engine. i wish i had a job
>>109807487people keep posting this shit and have nothing to show for it
>>109809419>how to cleanly separate the platform layer>hot reloadable codehandmade hero
>>109810498hot reload is absolutely not a gimmick, it depends on what type of game you're making. if you're making something where iteration without restarting isn't useful then sure. E.g. if you're making something simulation-heavy or an autism game (factorio, ksp, minecraft, etc.) then you can get by without it. but if you have a lot of fine detailed/authored gameplay it's an absolute lifesaver. I can't imagine going back to no hot reloading. Being able to swing a weapon, visualize the collision, make a change, and then just swing it again instead of having to restart with each change is huge. otherwise you end up with a bunch of hacky dev tooling to compensate.
>>109812824>hot reload is absolutely not a gimmickIt isIt imposes a ton of constraints, embed a scripting language or use a data driven architecture
>>109812863>It imposes a ton of constraintsjust a single memory constraint
lukewarm reloads
>>109813132No, you can only really reload function bodiesYou can accomplish the same thing in a much cleaner way with scripts and data
>>109812293three has been retweeting games nonstop for the last month vibecoded in three. Define nothing to show for it. Because if you mean money, 99.99% of this thread has nothing to show for any of their games, everyone here is hobbyists. I'd wager after ad revenue more three.js people probably made at least a little bit of money than anyone here.
>>109813241>you can only really reload function bodiesso 95% of what constitutes a program? I have never found myself shuffling struct fields around constantly. most of the time you are changing functions, not data layout so that's an inconsequential issueyou can also trivially reload state over and over again with this approach too, not just hot reload code
>>109813272>Define nothing to show for itshipping a good game>Because if you mean money, 99.99% of this thread has nothing to show for any of their games, everyone here is hobbyiststhe onus is not on me to prove people are capable of making games the same way they have since the beginning, the onus is on you faggots to back up your wild claims like>"a solo dev can make GTA6 now!"no, the equivalent of a shitty, unfinished mobile game doesn't meet the barometer, sorry
>>109813273It means all you can do is tweak values but tweaking values is better accomplished through data because you can enforce clear boundaries and write tools that manipulate the data for you
>>109813299>It means all you can do is tweak valuesno it doesn't, you can write entirely new functionality too, but even if you wanted a separate way to tweek values that is "more organized" than through code, you can still do that too. that's not a mutually exclusive thinghot reloading just gives you a lot of mileage for not a lot of effort assuming you follow the memory constraint from the start
>>109813289No one here has shipped a good game ever. Or an engine used in a good game ever. At most a few people from /agdg/ has shipped games people played. At most the guy from /wdg/ who shipped Agar.io has has more influence than you ever will and popularized .io games. You've done nothing and never will.>a solo dev can make GTA6 now!You're putting words in our mouth so you can get mad about it. I never claimed that. Your anus of proof or whatever is based on your own strawman.I simply said years ago three.js would explode due to webGPU and AI and you faggots seethed about muh web dev, and claimed it a toy because your goofy Odin or raylib memes only used here or whatever was supposed to be the future. Except I was right and you all were wrong and now I'm here to laugh at you. At the end of August, they had 15m download in a week and people are pumping out content left and right while you do nothing in life. YOU LOST!
>>109813318>you can write entirely new functionality tooyou can't hot reload changed data structures or even new functions in some langs
>>109813320>No one here has shipped a good game everirrelevant, again, the onus isn't on me. can you not follow basic logic?>I never claimed that.the image in the post I was literally replying to did you stupid faggot
>>109813326Wow, it's a good thing the iteration process does not involve changing changing data structures 95% of the time. You have a new idea, you add a new field to some fat struct and you only fully recompile the first time. The rest of the time hot reloading is spent building and iterating on the actual functionality around it.>or even new functions in some langsDon't use a shitlang.
>>109813337I'm here to laugh at people in this general for shipping nothing while three.js Chads stay winning, I don't give a fuck about your anus you homosexual.>the image in the post I was literally replying to did you stupid faggotNo, the three.js poster was talking about a guy who was talking about unreal. Learn to read you blind nigger.
>>109813350You can't implement new functionality without changing data structures or function definitionsWhat you can do is tweak values like the jump height or an animation or whatever, but that's better accomplished using data
>>109813353>im here to shitpost and add no meaningful discussion besides AI demoralizationnoted, I'm ignoring you now
>>109813361>without changing data structures I just explained to you how that doesn't really effect the iterative process in practice with hot reloading.>or function definitionsNow that's just not true.
>>109813375The only programming work that doesn't involve changing data structures is tweaking values, what you call iteratingWhen I'm writing new code designing the data structures is most of the work, writing the code that modfies them is just the boilerplate
>>109813390>When I'm writing new code designing the data structures is most of the workI invite you or literally anyone to look at any codebase in existence and tell me how much of it is struct definitions and how much of it is actual fucking code that has to operate on those structs. What you're saying is so divorced from reality I don't really know what else to say. The process of changing input data into output data is what constitutes the essence of a program. All the work it does for that transformation to take place and all the problem solving to get there is where the vast, vast majority of the labor comes from. The data layout does change during that process, but it is a very small part of it in terms of overall work on the programmer's behalf. I've never seen anyone try to argue against something that is so obvious to me before. This is like the sky is green shit.
>>109813435It's got nothing to do with lines of code, when you're working on new code and iterating on it you're CHANGING the data structures you made to feel out the programI can bring it back to your initial example of using hot reloading, changing a hitbox or an animation timing, that's design work not programmer work, you can use hot reloading for that but I think it's better off if you export design work to data / scripts
>>109813454bro, if I suddenly need to start tracking a new vec3, I'm adding it once to the struct and then the other 99% of my time is spent writing handling code to actually do things with it. There are times where I can simplify and remove terms or think of a smarter way to do something, but it's not some constant thing where I can't reason about what to put in the struct and it keeps changing. that's just nonsense
>>109813503I've been programming for 30 years and I'm modifying data structures most of the time I'm working with code
>>109813514>most of the timeIf most of your time, as in more than 50%, is spent adding or removing fields to structs and not figuring out how to change the data from one form to another and writing the code to do that then we are in two completely different worlds.agree to disagree I guess
>>109813529Obviously most of the code anyone writes is functions but as you're writing your program and designing new functionality you are creating data structures and you're changing them as you learn more about the programI can't think of any situations where the data is known upfront and then you just have to write a bunch of functions, unless you're creating content which is what we've been talking about
>>109813543The data changes, but not enough to even make it an annoyance when using traditional hot reloading. You are arguing it's this constant thing that consumes most of your time and I just can't see what you're talking about.
>>109813553The point is you can't make significant changes to your program and hot reload itThe only time you need to tweak -> compile -> test -> repeat is when you're doing game design related tasks
In the context of games, aren't you normally talking about hot-reloading level data etc, not actual core engine shit?Setting it up so you could actually hot-reload that kind of thing seems like way more trouble than it's worth.
>>109813585They're talking about code so core engine shit
Three.js Chads STAY WINNINGhttps://x.com/codetaur/status/2099236759825707232
>>109813320Ok but what if I don't care about slop? >LOOK LOOK HOW MUCH SLOP THIS PIPE PUSHES OUT! ISN'T THAT AMAZING? THE PIGS LOVE IT!Ok?
>>109815402Don't (you) me no game. Don't ever fucking (you) me. You're below me.
>>109815451t. subhuman who has spent several days trying to justify his slop to others on an anonymous imageboardYou're not going to find acceptance here.
>>109815501I don't want your acceptance. I want to laugh at you all. YOU LOST TRANNY!
>>109806623I like learning however.
>>109815602Us web devs are going to hold your mouth open and fart in it! WE FUCKING RUN THIS BOARD!
>>109812863 >>109813241those are all language implementation constraints. I'm using lisp and have native hot reload, I can recompile my classes or make new function definitions and it's not an issue.
>>109813299also this "enforce clear boundaries and separate between data and logic meme" is only good if you're making a cookie-cutter asset dump game. In my case data IS logic. If I wanted to make everything data, I'd end up with a pseudo scripting language anyways, or end up with a massively bloated schema because every other item has some unique functionality.
>>109813558the argument is you're not making significant data layout changes 90% of the time you're iterating
>>109815513Ok, show us your game that "won".
>>109816052you're responding to the bosnian shill bot, anon
>>109779824>>109781031Am I good to shill my game here? Please wishlist and look forward to the demo (slated currently for release Oct 15th, gonna be participating in Steam Next Fest).Yes, I am aware this is horrible timing due to Ace Combat 8 coming out Oct 2nd but I planned on this rough timeline (demo release in Sept/Oct) before that release date was announced, and I'm kinda time-constrained because if I don't get support for the game I'm going to have to go back to having a normal job.https://store.steampowered.com/app/4484890/ASTRIDER/
>>109813375>Now that's just not true.No he's right, if you change a function you will change the offset of the memory layout of every single function afterwards.But of course, you can use msvc's hot-reloading which is black magic.But if you are talking about lua, it does kind of work fine. But you get zero data (it's technically hot-reloading because you are changing the code without restarting, but in some ways it's not hot-reloading in the same way as msvc's hot-reloading).At least lua doesn't segfault, data and functions act are reference counted, and it's possible to work around the common issues of serialization in a hot-reloadable lua file, BUT you absolutely cannot hot-reload the whole program, just the file that is carefully crafted to be perfectly decoupled from the rest of the code (which might be fine, if your game NEEDS a load/save system, the hot-reloading serialization system will just share the same code as the load/save system, I think?).Similar to lua you can load a DLL but you get no data (msvc's implementation is very complicated, you can't do it without low level changes to everything), so you can attempt to decouple everything and essentially use it like a plugin, like lua (but most DLL plugins I've seen just act like static DLL's but optional, so you still need to restart the whole app to use it), also in windows, you cannot replace a DLL that is currently loaded, so you must unload the DLL first which is a little bit annoying, so you need to add an extra step (but windows has msvc's hot reloading, so doing this on windows is absolutely pointless anyways).
>>109816529I don't think anyone minds you posting here, especially progress, but if you're going to shill it does it use its own engine?>if I don't get support for the game I'm going to have to go back to having a normal job.Start working on those job applications. Maybe 1 in 3000 games make enough money to sustain a full time salary, and you're competing with AC8/PW2. Hope you're not located in the first world.Trying to make it on indie game dev is always a bad idea, it just ends up giving you big CV gaps and it fails for 99.99% of games. Always work on it part-time.
>>109817312Yeah, built my own engine in Zig. I've been applying to a bunch of places for a long time but apparently fifteen years in the industry isn't good enough suddenly. And yeah, first world.
>>109817360>Yeah, built my own engine in ZigWishlisted.>I've been applying to a bunch of places for a long time but apparently fifteen years in the industry isn't good enough suddenly. And yeah, first world.US? Either way yeah the odds of making enough money to fund another (potentially longer) dev cycle is very slim even outside the first world so don't go counting on it.
>>109817360Lmao @ Ur life. Even Bun doesn't use Zig anymore and it was already a dogshit meme ripping off uws.js to fake speed tests. Just take the three pill, ascend past the losers and dorks in this thread. They're gonna be making toy renderers for the rest of their lives instead of adapting to the future.
>>109817417Thanks! Yeah I figure I'll have to go back to something else.>>109817622The whole original point of the project was to learn something new that's closer to the metal, and I chose Zig because I don't like Rust. I don't give a shit about Bun, I'm not a frontend guy, and I actually like Zig, it performs quite well for my purposes. 400+ fps with volumetric clouds and 100km terrain in every direction is quite good.
>>109818103Clearly you don't like having a job either faggot. Enjoy your toys while I enjoy going 120 in the lambo with my favorite latina prostitute. WEB CHADS FUCKING RUN THIS BOARD, PUSSY!
>>109818103Don't reply to the AI retard.
>>109815719>also this "enforce clear boundaries and separate between data and logic meme" is only good if you're making a cookie-cutter asset dump gameno, you want clear boundaries between code and game design, that's the best way to program games
>>109818313it's definitely a *clean* way architecturally to program games but it's not conducive to experimentation and game design, you just end up locking yourself into a schema early on. Which can be fine if you're making an RPG every item can be expressed in a .csv or something but if you're making something more authored it just sucks, you almost always end up invariably needing scripting or recreating it it in some shitty form.It's also only the "best way to program games" if you're using a shitty restrictive programming language. Which is sometimes what you're forced to do in vidyadev but if you're already using e.g. lua there's basically no benefit to trying to schematize all your game mechanics. Keep it free flowing in the places it makes sense to.
>>109818363I'm saying you should have an engine layer and a gameplay layer, the gameplay layer can include scripting languages like lua it doesn't need to just be a big data file
>>109818400>engine layer and a gameplay layerActually a better way to put it is a program layer and a content layerContent is things like art, levels, animations, entity prefabs, cutscenes, dialog. The stuff artists and designers create which is more subjective and iterative
>>109818400This is possibly the dumbest and most incorrect opinion I've seen here this month. Splitting the engine and the gameplay layer is a horrible idea for any indie, it only starts paying off at large scales when you have full fledged teams of artists etc that need it and even then you want visual scripting, not regular scripting, or you'll be maintaining all the shit code written by non-programmers anyway. You absolutely do not want a scripting language as a solo dev or a small team in your custom engine, that's a huge time and effort investment for little to no payoff and probably the dumbest decision one can make in indie enginedev.
>>109818525Embedding a scripting language is not hard and not even strictly neccessary because most things can be done with plain dataYou can embed lua into your program in 30 minutes
>>109818493>>109818525Both of you little pussies are wrong. You should have a renderer and no engine. Three.js. but you're both hobbyist jelly niggers and will both die alone and poor.
>>109818564fuck off webdev
>>109818543>LuaAnd you faggots have the nerve to talk about javascript. How about I embed my dick in your throat?
>>109818566That's web Chad to you, broke nigger.
Reminder everyone in this thread is poor and wishes their toys could make them money like us Web Chads.Reminder you're posting on a WEB site and not a shitty indie game.Reminder Web Chads run this fucking board, broke pussy NIGGERS!
>>109818576Lua is a superior language, though. It is close to perfect.
>>109818812not statically typed1-based indexingIt's a good baby's first language though because it's very simple and small. I would use it if I needed a sandboxed environment for modders to do as they please but I wouldn't actually program anything in it
>>109819663>1-based indexingbaby duck issue
>>109819664It isn't. Lua was my first language almost 20 years ago. 0-based just makes reasoning about offsets trivial and reduces off by 1 errors. Oh yeah, and you can't even use operators like += for some retarded reason. Also, metatables make code more difficult to reason about.
>>109819676>reduces off by 1 errorsWith 0-based indexing you have to do Length-1 to get the last elementWith 1-based indexing you just do LengthSo the opposite is true
>>109819682>inclusive ranges are less error prone>bro has to do (end - being)+1 to compute a substring lengthlol, ok dude
>>109819764Some operations require +/-1 with 0-based indexing, some require it with 1-based indexingThe most common operations like getting the last element are better with 1-based indexing
>>109819801Getting a last element is a trivial operation to understand, and it's not even the common one. The common thing is just iterating, where with 0-based indexing you're just doing i != Length. Regardless, operations that are even just a little bit more complicated, which are the ones we should really be thinking about making as easy as possible to understand, like computing ranges, get more confusing with 1-based indexing and it's just because the range becomes inclusive. Inclusive ranges are just dogshit to work with generally.
>>109819867all these operations are trivial it's just a question if you have to type +/-1 or notmost of the time you're not working with ranges
>>109819663>>109819676It's open source, you can patch it. In fact, there are already zero based index patches out there.
>>109819663>not statically typedGood.>1-based indexingI know. It is perfect.
Post triggers>for (int i =0; i < count; ++i)>++i
>>109821894increment i makes sense over i increment
>>109821894That one is the more logical version though.
>>109821894using i < count instead of i != count
>>109805094Implement protection that works similar to Denuvo, but just to check what OS it is.
Debating between Unreal and UnityI might wanna try the unity toon shader, which is harder to do in unreal?But unreal has better control of animation and rigging and especially within unreal rather than an external pipeline?
>>109821894I have a lot of code/dev icks:>auto or similar functionality that obfuscates the type>C++ std monstrosities that make it look like a different language>template metaprogramming>actually just 90% of modern C++ really> if (x) code; (most commonly it's something like if (x) continue;) instead of proper brackets and newlines >"smart" pointers and general fear of raw pointers, pointer arithmetic, and raw data>anything more than sparing use of libraries and third party code>indies thinking their engine needs to be a generalized engine like Unity/Unreal (somewhat) clearly separate from their game when they're making a 2D platformer
>>109822398it's ok, i thought this in my first few months of programming too
>>109779858i pretended to be sick as a kid so i could return from school skiing trip faster to actually play more of this game
>>109822398>dislike everything that makes C++ goodwhy even use it?
>>109822744Who said I do?
>>109822759I don't see why would you bother to complain otherwise. whatever.
>>109810340Give the entities an AABB and update it when the rotation or position change, check the intersection between the viewport (or frustum) and the AABB; render if it intersects or ignore it if it doesn't.No need to do exotic stuff an AABB is generally all you need; anything outside of the viewport isn't going to be assigned any fragments regardless so it's not a big deal if the AABB hits the viewport but the entity is technically not within it.
>>109822037>Cosmic ray bit flips your integer>Loop runs 2^32 times
>>109822879>cosmic ray driven developmentbased, I like it
>>109822744>that makes C++ good
>>109822865I use it at work, but I don't use it in my own project. >>109822531But anon, I have 14YOE.
>>109822898boomers who never progressed past basic ifs and fors are pretty common in the field. with some few exceptions, they're usually a nightmare to work with.
>>109822879That was debunked btw.
>>109822920Good. Sorry did I say you'd get a raw pointer? lmao my bad you're getting an offset and a count into a byte buffer. Fuck your smart (trans) pointers and borrow checkers broccolihead, go eat a tidepod.
I'm going back to C
>>109824479I'm sorry bjarne I didn't really mean it please forgive me
How's SDL_GPU ladsworth using for a new 3d project?
>>109822203for license autism, use godot (but there is some sort of license for porting to consoles). It could support C++ or C#, but you should just follow the tutorials with the most quality and just port to C++/C# after you find a performance bottleneck (you might even just let an AI port it to rust for you, since I wouldn't trust AI with C++).unity for RE modding (every single popular game released recently that has a huge modding community, is just reverse engineered unity games, it's great because usually mods = viruses, and sandboxing like lua is restrictive because some games enjoy adding features like "lovense vibration mod" which requires system permissions, or turning the single player game into a multiplayer game & etc, but since the community is hosting the files, they are liable for the damages, BUT this also means every update you make will potentially break some mods) and because C# (or whatever dialect of C# unity uses) is better than any other engine's language of choice (you can compile C# to C++ to increase performance and to make it harder for people to mod and reverse engineer the game).unreal... it has replication graphs which might help with multiplayer? (still very low level, and blueprint heavy I believe), but you can't export a game to the web, unlike unity and godot (but obviously, there are lots of limitations with the web export, and generally the web games are always an inferior experience to native).>unreal uses C++, that's why I want to use itlol
>>109781836>sisterDunno what changed here in the years after I stopped being a regular on /g/, but /gedg/ always had different goals from /agdg/, with aggy daggy focused on vidya development and this general focused on vidya engine development, so making a game without using Unity or Godot or something. Looking around at what's being posted in here these days, at first glance it looks like the main difference now is one using AI more than the other.
Haven't posted in here in forever. Is it still worth it to learn Vulkan if I'm intending to eventually find work with it beyond my personal vidya projects, or is it not worth pursuing anymore because everyone just has Claude fart out all their Vulkan code?
>>109827037Just make something that stands out and doesnt have unreadable shit code. That's how I got my job.
>>109827251>unreadable shit codeWhat I'm asking is if most Vulkan jobs now are people just shoveling shit out of Claude into their company's repositories, like how many enterprises are currently doing with their Java and webshit projects.
>>109827324>Vulkan jobswhat Vulkan jobs? there are like 10 jobs coding Vulkan in the world. and half of them are driver development.
>>109827387When I was unemployed last year I came across a few Vulkan jobs, they're either drivers like you said or helping to write simulations
If I dispatch a simple noop compute shader my program(Vulkan/wgpu) just hangs. Debugger says it(CPU) is stuck waiting for a semaphore. If I create compute pass, bind the pipeline but not dispatch, it works fine. There is a clear_buffer command right before it and a graphical render pass after it.Any ideas how can I debug this? Some program that could let me see what GPU is busy doing/waiting for? For linux preferably.
>>109827546Try Renderdoc
>>109827558What do I do with it? Can it even do anything if the frame never gets presented?
>>109827546https://renderdoc.org/docs/how/how_debug_shader.htmlI'm not the other anon, But Uhhh... I don't know if you can actually capture if your code is deadlocked, I don't use vulkan or compute shaders.That doesn't sound like a GPU shader issue, since your shader is a noop.I think if you have an nvidia GPU, nvidia nsight might be better suited for cpu side vulkan issues? but I don't actually know (Nsight Systems or Nsight Graphics?), or if it has full feature parity on linux.
>>109826076I want to use Unreal because of the animation rigging retargeting and built in animation tools and ability to just slap some shit together for nice lighting easily.Unity has C# which I'm familiar with. Unity has the toon shader built in, which I want to rip out some assets from Pokemon SwSh and knock something together as one curiousity I have which may suit a toon shader etc and afaik that's easier to work with in Unity while using those assets in Unreal might look weird? But it's not the only thing I want to do.Ultimately it sounds like Unreal has more of what I want, but I'm not after hyper realism, just really nice lighting, atmospheric effects, and destructible things like a wooden fence or stone wall I can make destructible.
>>109827558>>109827993Ok, I figured it out. I had an override variable in shader that defined size of compute workgroup, and the override value I've chosen went past the workgroup size limit I requested and wgpu/vulkan didn't really detected that and just UB'd or something.I separated diffuse pass from the final draw pass and now I can do reflections.
>>109828120You should stick with unity, but honestly you should ask a different website that has people who are experienced with unreal + unity.But also I would be worried if that website is full of posers (like this thread, including myself who doesn't use either unity or unreal or any experience beyond watching a couple tutorials / browsing documentation to see if I could do something or not but not fully committing to it).Like I wouldn't be surprised if AI is able to tell you exactly how to get the same workflow using the help of some unity plugin or help your blender workflow or maybe it has the feature built into unity you just don't know it.I know that there are AI models for retargeting a animation to fit a different character with different bone proportions to to make it look natural (this is probably not viable for procedural animations, I know that unreal has some fancy stuff for that, but I have only seen the code in blueprints as a VR body rigging project in GPL and it's kind of hellish and blueprints are known to be slow), But it seems like there are algo's that can retarget the animation with different proportions without AI. I believe mixamo is what you would use with unity, but it doesn't have procedural animations it seems. But I feel like procedural animation mostly just depends on which tutorial are you going to steal from, does the unreal walking animation in that tutorial look that much better than the unity walking animation in that tutorial? I dunno. There are probably 1000's of tutorials, and then you got games that just don't do it (or make it look jank) and are very successful.
>>109825447I'm gonna give it a shot, lads
Bumping so the thread doesn't autosage.Slightly related, been trying to scope an image editor (just color correction stuff) but the libvips WASM bindings are making me angery.I might just have to build the image pyramid layer by layer going back and forth between OPFS and vips.A specialized routine for building all of them in one pass would be way faster and make more sense, I suppose I could just have vips give me rows and I could do the gaussian downscaling myself but it's not entirely straightforward.Loathsome modern webdev.
>>109805094>How would one even go about ensuring that a Win98 game wouldn't run on anything newer?Rely on too much DOS stuff.
>There's web devs with more impressive landing page games than your meme engines nowGrim.https://x.com/threejs/status/2100224277064904830
>>109831750I really hate how it looks. artistically, definitely slop tier. still, technically pretty impressive. it would take me a fuckton of time to make manually.
>>109831750>let's make user wait 2 minutes to load the page>let's make them wait 10s just to see next 4 words on page>let's shit all over SEO and accessibility so the page never appears on searches>let's trigger epilepsy to allGood idea
>>109831750the guy literally animated everything manually by hand, the AI just strung the sequences together but if you see what he made in blender it looks the same as the site already
>>109819801>>109819889>The most common operations like getting the last element are better with 1-based indexing>most of the time you're not working with rangesRetard.What's common for you isn't what's common for everyone. It's far more common for me to work with ranges.The only common class of scripting-tier problem where I find myself annoyed by having to subtract from 0-based indexing is spreadsheet columns. If I want to operate on the 2nd column and the 5th column it's 1 and 4 in the code. That's kind of annoying. But most of the time I'm not counting manually at all and so 1-based indexing offers no advantage.
>>109795317It does.
>>109832400He made custom Blender plugins to make it too.
>>109819801>Some operations require +/-1 with 0-based indexingGive an example of that that doesn't involve "converting from 1-based indexing to 0-based indexing". I am yet too encounter any.
>Browsers have Nanite and your shitty engine doesn'tGrim.https://three-meshlets-z23hmxbz1jwlff.needle.run/
>>109831864>>109831918>>109832400Stop replying to the jeet please, if you deny him attention he'll likely end it all soon.
>>109832798Getting the last element. arr[arr.len() - 1]
>>109782444He's an American, you just know
>>109832875>If we ignore the Three Chads maybe they'll go away and stop rubbing their superiority in our face :(T. gamelet enginelet nigger boy
>>109832434>What's common for you isn't what's common for everyoneyes it is
>>109828234amazing shit, is there room there for gamma correction or similar?
>>109834123>>109828234picrel is merely destructive operation on photopea (online photoshop so to speak), so imagine if you did it properly, with 10-32 bits color space and so on>but how?Idk pham, figure it out!>t.>>109744197>>109741108 (before)>>109746300 (after)
>>109834123you're mentally ill
>>109834218>projecting this hard
>>109834197forgot the pic
>>109779824What does /gedg/ think about Rust and Go?
>>109834271don't pick go for game dev its maddening. Rust is fine if you plan stuff out and otherwise you have to refractor a lot. In theory c++ etc. all require the same as well but they don't enforce it at compile time. D is pretty nice.
>>109834320D without GC right?
>>109834249Looks like shit lmao three.js mogs the fuck out of it lmao
>>109834249is this correct, does it make sense? I think it does, I have very basic notions of digital imagerywhat I did was bring the mid tones to the half of the histogram and the brights to the reasonable top, it's called gamma correction>>109834748cool seethe-post
>>109834271Rust is really good for engines, not so much for games per se. But it takes a while to get a good grasp of it to do big project like that.Go is not useful for anything related. Unless you only know Go and need to use it and want to keep it simple like a VN or something. But there is really no reason not to use renpy then.
>>109835020>Rust is really good for enginesNo it's not
>>109835029Works on my machine
>>109835039There are no Rust game engines lol
>>109835042
>>109835067Obviously I meant there are no Rust game engines that anyone actually uses and are worth something, anyone can make a pile of garbage and call it a game engine
>>109834249not anon, but gamma correction has not much to do with banding.it's very likely just an artifact of video compression (not just from exporting to to fit 4mb, it's possible the video source has a very low bitrate).and his color is already gamma-correct, just look at the red and green color's blending into yellow, in a gamma-incorrect format it would blend into dark brown (ZERO yellow at all, not even a little bit).All that you are doing is just changing the gamma curve of the output pixels, which is a "reversable" operation, unlike gamma incorrect blending, and many games implement it as a slider to adjust brightness.IF you added that gamma slider as a post-processing effect, you "need" a higher framebuffer bit depth if you see colors being crunched.But if you leave the gamma untouched (or you don't have any post processing that adjusts the colors, such as a bloom effect), and you use an srgb texture to store the color of the lighting, you will not have massive banding, because the hardware will convert the srgb texture data in/out of linear space for you.RGB10A2/RGB9E5 might be better? I don't actually know if it's perceivable (I think RGB9E5 is only for HDR). But you may need a post-processing step to convert back to srgb, but post processing is what originally caused the issue so it's basically free.I think most OS's support drawing to a linear back buffer? BUT I think this implicitly makes your application HDR, which will make it look ugly if you don't utilize it.(side note srgb is very similar to ~gamma 2.2 and I heard that most monitors don't actually represent color in srgb, so unfortunately, storing your data in a higher resolution depth to use the incorrect gamma conversion is technically more "correct" on those monitors, because the hardware will use srgb instead of gamma 2.2)
>>109835067some of these have been out for a decade at this point and no one makes anything with them other than tech demos
>>109835091*Actually my bad, You should not use the srgb textures. On nvidia it blends the textures in fp8 linear (AKA the alpha transparency), and that's still how it's done.Is this a critical requirement for lightmaps? I haven't bothered to use lightmaps yet.
>>109835081>>109835128https://store.steampowered.com/app/2198150/Tiny_Glade/https://store.steampowered.com/app/2286390/Tunnet/Why move the goalpost?
>>109835161tiny glade only uses the ECS part of bevy. it's also basically a tech demo masquerading as a game. there isn't even gameplay it's really just a 3d editor.never seen/heard of tunnet but it's something I guess.
>>109835161
>>109835091I don't get much of what you just mentioned sorry, to me "gamma correction" is about representing light and shadow in a "correct" way, granted that I have no clue what that'd mean in real time CGI, and I can barely explain what it means in digital video imaging, honestly I'd say it's an issue mostly from CGI, since "wrong" gamma came as default, it has for years, and I don't know what it takes to correct it but it is indeed a thing, I've seen articles and vids about it, but that was 7 trillion years ago
>>109835245You think you'd know something about the topic given you've been trying to bring it up in unrelated conversations for years now
>>109835091>>109835131This is ray traced, there is no hardware blending here. The banding is just video compression. Diffuse lighting is stored as linear 32bit int per channel per voxel(hashmap). Specular is calculated per pixel, combined with diffuse and stored to srgb 8bit int per channel per pixel (framebuffer). This is also not physically based so lighting model and BRDFs are arbitrary, the only brightness correction I do is multiply results by 16.0 (saturating) because otherwise there was just not enough light. I could make some sort of auto exposure setting probably.The calculations are done in linear space and the final write to framebuffer automatically writes gamma correct srgb value which monitors can natively handle.
>>109835252well look at this:>>109834197it works...
>>109835272nta, ... the other guy here, it's not about banding specifically, it's about "correct lighting" which I suspect the boxes example is not handling, which imo, makes sense since it's something that either comes working out of the box or you have to figure out how to set up which might be simple but only if you know how
>>109835296>>109835252the thing is that it is quiet complicated and technical, I can barely work my way around it in after effects and that's it
>>109835320>it is quiet complicated and technicalIt's really notYou're just using a higher numeric precision to represent colors, that's all it is
>>109835272>>109835252this is where I originally read about ithttps://prolost.com/blog/acesseveral posts, not feeling like fishing each one of themhere's an interesting vid that might helphttps://www.youtube.com/watch?v=xuJJ5-Wii6Y
>>109835336if it was that simple CGI wouldn't have come up with the wrong approach for decades, and the one bringing it to the spotlight wouldn't be a cinema colorist
>>109835360>CGI wouldn't have come up with the wrong approachIt's not "the wrong approach", it's an approach used to save memory
>>109835368and it looks like shit
>>109835371All images you see on your screen are in sRGB, you only need to convert to linear RGB to blend colors correctly
>>109835389what's your take on 32 bits then?
>>109835405Colors converted from sRGB to linear RGB shouldn't be stored in 8 bits, you don't need 32 bits though, you could use a 16, 12 or even 10 bitsFloating point is probably best for HDR color, 16 bit or 32 bit
>>109835417when I worked with this stuff, mostly just footage composition and animation, which often involved lighting effects, the images were "normal" aka jpgs even, .movs at best, and what was actually 32 bits was "the project" aka you made the compositing and effects in a 32 bits project. there was another catch, to do it "right" you had to add 32 bits "effects" or the 8 bits ones would apply "destructive" modifications, meaning data loss and poor handling of overbrights and darksthere was an extra catch, there was no such thing as 32 bits vid, or if there was I didn't know about it (almost 2 decades ago), so you had to render those overbrights to an image sequence of special format, then import back as a sequence in 8 bits and then just render, bam"simple" my ass
>>109835437It's simple if you have the mental capacity to understand abstract concepts and not get lost in the weeds of implementation
>>109835452>capacity to understand abstract conceptsyeah, it needs to be explained, which nobody did thoroughly just bits by bits, you've seen all it took, honestly just fuck them for not explaining it thoroughly
>>109835417>you don't need 32 bits thoughI use 32bit because the results get aggregated over voxels. If the camera is close to a wall, there might be hundreds of thousands of samples atomically added together. Originally I wanted to keep it at 16bit and compact it on the fly if needed but it's finicky and I have lower hanging fruits to get first.
>>109835482>it needs to be explained, which nobody did thoroughlylook up linear rgb vs sRGB, there are several blogposts on it and it's simple to understand
>>109835183>there isn't even gameplay it's really just a 3d editor.Didn't they write the first version in Blender? It's literally a Blender plugin that they ported to Rust.
>>109835482That's to be expected when you exclusively work in high level tools instead of implementing yourself in C
>>109835510isn't that what I just did here?>>109834249>Gamma Correction and Response: sRGB applies a non-linear transfer function (roughly a gamma of 2.2 to 2.4) that matches how human eyes perceive brightness, packing more data into darker shades. Linear RGB values are directly proportional to physical light energy, meaning a value of 0.5 emits or represents exactly half the physical intensity of 1.0.>Storage and Bandwidth: sRGB optimizes limited 8-bit integer formats by preventing wasted precision in bright areas and avoiding ugly dark-region banding. Linear RGB requires 16-bit or floating-point precision to avoid severe quantization artifacts and banding in dark gradientsoh wait so linear RGB is OP, more info to go along>Use Cases in Rendering and Shading: sRGB is used for storing final output images, color pickers, and displaying textures like albedo or diffuse maps meant for human viewing. Linear RGB is used for 3D rendering, blending, lighting calculations, and mathematical maps like normals, roughness, and metalness.I see, I think this is the key when it comes to CGIso this >>109834249 was a lossy sRGB to linear, so I assume you've got to tweak your render engine or whatever it is to work by default as linear, and give him like 10-16-32 bits or whatever it is
>>109836088Basically if you can afford the memory bandwidth you can just store everything in linear RGB and just covert it to sRGB for the final render to the screen
>>109836088on a second thought, maybe give textures 10 bits, and special VFX passes like lights maybe shadows, etc. a higher bit density to really work the "magic"t. take it with a grain of salt I'm just theorizing
>>109836101yes, I thought about this step too
>>109834249how performant is this stuff nowadays btw? i was debating doing software ray tracing cause it looks cool but it'll probably make my game run like ass
>>109836137Voxel based ray tracing can be pretty fast. Teardown is fully raytraced. But it's a new frontier of graphics so there is no standard ways of doing things.
>>109836177>it's a new frontier of graphicsraytracing literally existed before rasterization
>>109836312Not real time voxel based ray tracing via GPGPU.
>>109836366all the princples are the same
>>109836376Not really. Voxel based ray tracing is quite different from mesh ray tracing. Both in terms of algorithms used and performance.
>>109836391raycasting against cubes or polygons are topics that have been researched probably before computers could even draw anything
>>109836402Agreed
>>109834042Getting the last element is not more common than accessing a range of elements, if you think it is, you are wrong.Furthermore, many 0-based languages have first() and last() functions or some kind of syntax sugar for that special case.The only other actual practical advantage for 1-based indexing is when you're using arbitrary integer literals to access specific elements by position. It's more natural to think of items that way. But that is definitely rare as the overwhelming majority of accesses in real programs are done with variables.
>>109836704it really dependsa range can be its own data structure in which case you're not specifying the end of the range explicitlyand you could be working with an inclusive range or an exclusive range
>>109836088The entire image is sRGB you can't just say part of it is linear.
>>109836985be more specific
>>109836985what I mean is>look at the two gradients:>>109836088one is linear the other is gamma 2.2... or some bullshit like thatso I take the down one and spread its histogram kind of like the other one, I fucked plenty of information and there's massive data loss, however, the image looks more "real", or so it should.you should do this, as stated before, in a 32 bits float space, where information wouldn't be shattered and lostit's more complicated than that and I sure don't fully get itbut to make an example, it's like one image is "lit as according to physical laws" the other is lit in a "bad way", so take the wrong and make it right, something like that
>>109837280>it's more complicated than thatit's not
>>109837318you just love nay saying, be honest
>>109837903you're being retarded and overcomplicating it
>>109838038cool story breh
>>109838100Maybe you're struggling how to understand basic mathematical concepts like how if you're trying to expand an 8 bit number into a larger range you need more than 8 bits otherwise you lose information
>>109838157I bet u havent applied these concepts once in your whole life while I've applied them countless of times while ALSO getting paid for itl8r retard
>>109838331If you've applied them why do you keep asking questions about it