[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip / qa] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


Share your progress edition

/gedg/ Wiki: https://wiki.installgentoo.com/wiki/Gedg
IRC: irc.rizon.net #/g/gedg
Progress Day: https://rentry.org/gedg-jams
/gedg/ Compendium: https://rentry.org/gedg
/agdg/: >>>/vg/agdg
previous: https://desuarchive.org/g/thread/100102255

Requesting Help
-Problem Description: Clearly explain the issue you're facing, 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.
>>
i have no progress, only regress
>>
>>100161373
I spent 2 days implementing a simple binary tree
I need some niche features so I can't use a basic library, and I don't want to get a super bloated library with all the features I want in addition to 200 features I don't need
I feel smarter now but man, I did not expect to have to think so much to implement a basic collection
>>
>>100161485
What kind of niche features are you looking to implement? And why don't standardized basic solutions work for you?
>>
>>100160570
flat rectangle made of two triangles
used generally whenever you want to write to a texture then reuse it, including shit postprocessing a game's render output
he's saying you should put a line in a rectangle then turn on a texture feature that causes it to loop if you go outside the bounds of the texture

i do not know how you would accomplish this in monogame
>>
I'm such a fucking fraud. all the math in my game that is not basic bitch is copied from tutorials and other shit
>>
>>100161508
Mainly the ability to have duplicate keys, and optimized layout/function for sequential access. I'm using a binary tree as a fast-insertion queue
>>
>>100161550
Software development in a nutshell. Nothing wrong with not reinventing the wheel anon.
>>
Would i need to make an engine myself if sounds were especially important in my game? If i had to give an example something like Darkengine.
>>
>>100161883
Not really, now that off the shelf engines have 3D sound.
>>
>>100162376
Not that anon but is their sound quality anywhere near Dark Engine?
>>
>>100161883
most engines have basic 3d spatialization and materials based room reverb but if you need proper full spatialization, reflection, and materials, occlusion, etc. support you'd have to go with one steamaudio (its open source now) supports or write your own support for it
apparently sound card companies nearly killed off 3d audio a long time ago so it's only within recent times where companies are trying to make VR work that research started up again

>>100162433
darkengine was probably extremely hacky solutions paired with really good sound design
there's a distinct possibility especially these days you could get dynamic runtime versions of its effects
>>
>>100161373
I'm trying to make a Minecraft clone with Java and LWJGL and dont know where to start

ive watched a bunch of youtube tutorials and read bout implementing VBOs and shit but im
having trouble starting writing code since learning binary trees and making fucking calculators all the time bores me

what is the most efficent way to start making a quick minecraft clone, where should i start?
>>
>>100162750
>having trouble starting writing code since learning binary trees and making fucking calculators all the time bores me
you're in for a rough time my dude.
>>
>>100162750
Make a controllable player
Make a static world
Break the world into chunks, add some world gen features
Make the player able to place blocks
Make the player able to break blocks

Set incremental goals, tackle the next obvious thing to add whenever you finish something, don't stress about making it perfect on your first try, writing 100 LoC and then rewriting 50 of them later is better than staring at a blinking cursor thinking what's the best way to do something
>>
File: ree.gif (47 KB, 640x640)
47 KB
47 KB GIF
>>100161373
please somebody, i want to argue with people on the internet

God Tier List:
C99
Vulkan
OpenGL
GLSL
X11
Ubuntu
All games I make

Shit Tier List:
CPP
Java
Rust
DirectX
Metal
Wayland
Windows/Mac
HLSL
All other Linux distros
Super Tux Kart
Super Mario 64 Port

Thanks in advance
>>
who
>>
asked
>>
(You)
>>
>>100163588
>>100163598
>>100163608
samefag ^>^
>>
>>100163564
glsl is actually fucking abandoned and instead of adding actual features to the language they just add additional parameters to things
they've pretty much given up and told people to use HLSL or slang
>>
>>100163564
This list is 100% accurate
>>
is it possible to write graphics api shaders in C/C++?
>>
File: file.png (7 KB, 390x116)
7 KB
7 KB PNG
>>100163626
sorry bro
>>
>>100163691
yes, you put them in hardcoded strings
>>
>>100163687
chad tier opinion :)

>>100163678
hmmm is this true or is it the same bs that cpp shills spread? nearly all of the "features" cpp psychopaths have added to the language are actively fighting against how a computer really works, and the performance and learning curve of the language as a result are needlessly gimped

what does hlsl have that glsl does not?
>>
>>100163691
no and if you try you will make nerve gas.
>>
>>100163719
No, I mean like compiling C as shaders
>>
>>100163742
glsl is quite syntactically similar to c. you could write some functions that translate your custom graphics c api code and convert it to glsl, which can then be compiled for opengl or spirv for vulkan.

there are already spirv compilation bugs out there in the official tools, so one extra layer couldn't possibly hurt
>>
>>100163777
Okay, so you mean I could write shaders as C code, and with an API, a compiler (probably), and a brain, I could compile them to spirv?
If so, here's a cursed question: Can I also build these kinds of shaders using Lua? I.e define a shader as a lua script, and each function or w/e the lua script calls builds part of the glsl shader
>>
>>100163691
DirectX 12 and Vulkan only care about the output binary being DXIL or SPIR-V, and DXIL and SPIR-V compilation is being integrated into clang
and i mean technically HIP, CUDA, and SYCL, OpenCL C++, are C++ supersets
HLSL is technically a subset of C++, GLSL and OpenCL C is like that with C


>>100163733
oh no i don't care about feature parity with HLSL, there's a bunch of dumb shit there too
let me put it this way, they added pointers to vulkan GLSL declaring them looks like this
        layout(buffer_reference, std430, buffer_reference_align = 16) buffer blockType {
int x;
blockType next;
};


>>100163810
yes, you could even just transpile raw lua bytecode to SPIR-V
>>
>>100163810
Yup I don't see why it wouldn't be possible. As long as your code eventually generates legal glsl (or hlsl for that matter if eventually compiling to spirv), then it's all good. Graphics languages don't even have concepts of memory management, threading, and so on. So it probably maps really well to scripted languages.

For some inspiration, you can actually check out TempleOS. Terry's got his own custom scripting language in there for working with matrices in a succinct way.
>>
Has any dev made an anti-cheat where if it detects you’re cheating, it bricks the console? I don’t want to hear “no because they’re afraid of legal consequences,” I just want to know if it’s been done before.

Closest thing I’ve heard is those hackers making exactly that to prevent people from pirating their pirating software lmao
>>
>>100164148
Apple could do this if they wanted to and have done it before in the case of stolen phones. I'm sure they don't care about cheating/app developers' requests though.
>>
>>100164148
I want an anti cheat system where if it detects you're cheating, they send a guy to your house and he smashes your console with a brick
>>
There was a publisher that made renting impossible because of a code that checked if someone downloaded the game. Does anyone know their name? I remember that was funny
>>
>>100161550
You are the first person in the history of evar to do such a thing.
>>
>>100163564
I thought OpenGL required C++?
>>
>>100164810
Nope, it's actually the opposite. OpenGL expects C first, and all other languages bind to it. C++ is a bit of a weird situation in that you can write C inside of C++ of course.

A good rule of thumb is that everything interfaces with C, though some languages will bypass it and go to LLVM or assembly or etc.
>>
>>100164810
OpenGL is for C heathen.
>>
File: 1472574107977.jpg (67 KB, 1106x1012)
67 KB
67 KB JPG
OpenC++
>>
>>100165435
I don't fuckin care.
>>
File: 1595961001477.jpg (27 KB, 401x401)
27 KB
27 KB JPG
>>100165605
Is this some kind of obscene joke you are telling? Cause I don't get it.
>>
File: brick_tamlan_laughing.jpg (68 KB, 1400x700)
68 KB
68 KB JPG
>>100165613
Does it look like a motherfuckin game to you? Do you see me laughing?
>>
fuck assimp
>>
File: FunnyFrijole.jpg (35 KB, 600x600)
35 KB
35 KB JPG
>>100165861
but simps don't fuck.
>>
>>100163564
theres nothing to argue about, you are a nodev
>>
I'm opening the AI can of worms and I'm not excited
>>
>>100166025
Meanwhile my dumb ass just wasted $20 on chat gpt plus that I'm not gonna use
Funny thing is this isn't the first time I've done so, I've lost count
>>
Writing tooling code is going to make me stop enginedeving holy crap this is so tedious. I feel like I've spent so much time adding ui stuff and gotten nowhere.
>>
>>100165861
Gltf or bust, assimp is a bloated mess
>>
>>100166053
lel I was very close to signing up a few months ago but glad I didn't
but anyway I wasn't talking about that AI, more of game entity AI. managing state machines gonna be fun
>>
>>100165988
da fuq is a negev
>>
>>100166119
Somebody who doesn't actually make anything
>>
>>100166119
my favorite gun in cs
>>
>>100166134
past me would have felt very attacked because past me in fact didn't make anything

but present me knows that, despite not proving it to you here so as to not doxx myself, since i've made lots of games and renderers and gotten great feedback from players and programmers alike, i don't need to prove anything to you by posting my work

now, would you like to actual talk/argue about something technical so that i can anonymously demonstrate my knowledge to you, such that either of us might learn something?
>>
>>100166153
i love how much bloom they put in cs source for no reason lmao
>>
>>100166171
nobody who has made lots of games argues about Linux distros or C over C++
>>
>>100166209
that's because 99.9999% of people who make games (artists, designers, managers, and even programmers) are too focused on making a run of the mill game *right now* as opposed to something groundbreaking

everyone is happy to accept the steam, microsoft, nintendo, epic, oop cpp monopoly because they're looking for money in the short term.

they're no longer interested in maximizing the performance and openness that could be achieved on one specific platform-- instead they want to run on as many systems as possible, so they accept tens of millions of lines of code as a black box that they'd prefer to not know anything about.

and that is why almost no games are open source, and the ones that are are quite messy.
>>
>>100166246
Yeah I'm sure the people making groundbreaking games are using C99 instead of C++
>>
>>100166253
go find out what language vulkan and opengl drivers are written in lmao.
>>
>>100166316
Are Vulkan and OpenGL drivers games? Think hard before you answer
>>
>>100166335
No, they're not.

Can you make a game without a Vulkan and OpenGL driver?
>>
>>100166316
I prefer C over C++ right now and even I think you're retarded.
>>
>>100166354
That question's a non-sequitur
Anyone writing groundbreaking programs is going to be using C++, C is just too limited, and I say this as someone who doesn't use C++
>>
>>100166377
(am >>100166356, not the "I want to argue with someone!" retard)
>C is too limited
I disagree. In fact, as someone who has spent years being a C++ user, I've been recently thinking C is just what I need as C++'s abundance of features makes me overthink how I should code.
If I just code in C, it's more simple, and limitations breed creativity after all.
>>
>>100166506
Limitations also constrain creativity when you're trying to make something big and complex like a video game
>>
>>100166533
Fair enough.
>>
>>100166377
>c is just too limited

and here is the point where you revealed you are a retard. YOU are the one who is limited, by needing C++ to implement something.
>>
>>100166764
Me and every single other game developer apparently
>>
File: 1671088918481840.png (179 KB, 340x346)
179 KB
179 KB PNG
>>100166377
>>100166506
>c
>limited

You mean a bunch of shit is preprogrammed for you already?
>>
>>100166940
C's biggest limitation for large projects is its lack of generic programming tools
Macros don't cut it
>>
File: output.webm (2.51 MB, 1920x1080)
2.51 MB
2.51 MB WEBM
The wall tool is coming along nicely. The only things missing is a brush to place a rectangle of walls, and most importantly the ability to remove walls.
Also it's currently only working on the ground floor.
>>
>>100167144
looking good anon
>>
https://youtube.com/watch?v=pb8edcvgjX0

Starting from 15:00 onwards talks about how much of a clusterfuck Anthem’s development was. My question is, how the fuck do you avoid this as a indie or as an established game company? Apparently they didn’t know what the fuck they wanted to do so maybe not having a design document was the problem? Am I right here?
>>
>>100168703
Literally everything in that video is unsourced conjecture
Please watch GDC videos or something not some retard talking over reaction videos
>>
File: miomio.png (312 KB, 482x518)
312 KB
312 KB PNG
Does anyone know offhand if UE5's default binary serialization format is considered robust against untrusted input?
>>
>>100166316
Nvidia's drivers are written in C++, niglet. The Vulkan API is in C (as makes sense because C is a good API language, one of the few places where you'd want C actually), but the drivers it invokes that do the actual work are in C++. Pretty much anywhere actual work is being done, you use C++. GCC is written in C++. Clang is written in C++. Clang's LLVM that every hip "better-than-C++" language uses is written in C++.
>>
File: based_bjarne_2.png (222 KB, 900x879)
222 KB
222 KB PNG
>>100168887
This. Anti-C++ is the biggest cope.
>>
>>100162750
Look up “Minecraft clone GitHub”
>>
>>100168887
>>100168923
given that 99.99999% of humans and programmers are retarded, imagine me caring that you think C++ is better than C because other retards chose it.

Nvidia and AMD are successful in spite of themselves and their choices to use CPP, not because of it.
>>
>>100169312
You know that every game that isn't written in a higher level engine like Unity is written in C++ right?
>>
>>100169428
That's strictly not true, lots of games are written in meme languages like Java, C#, even Lua
>>
>>100169495
No games are written in Java
C# is the language of Unity
Lua is a language embedded in C++
>>
>>100169312
>>100169428
Both of you are retarded
t. guy who codes in both C and C++
>>
File: IMG_4460.jpg (732 KB, 1284x668)
732 KB
732 KB JPG
What exactly is the Ocarina of Time(3D) lighting model? I’ve been looking at different shots. Appears to be mostly ambient light. No shadows on any objects except that one faking technique at the characters feet.
>>
>>100169739
phong vertex lighting
>>
Anybody read the gpu zen books?
>>
>>100162750
>with java
oh no non o
>>
why would you make a game in c++ when you can compile c# to native
>>
>>100172063
in C++ you have control over memory
>>
>>100162750
You should probably learn how to program first.
>>
>>100169526
Unity is the slop of videogame engines and way slower than java. Btw, Slay the Spire was made in java.
>>
>>100172145
you have control over memory in c# too but most people don't use it because every computer has 128gb of ram now
>>
>>100173359
No you don't, C# is a GCed language
>>
File: Untitled.png (330 KB, 1355x305)
330 KB
330 KB PNG
why dose my sdf look so shitty
>>100173381
>C# is a GCed language
bro your marshal?
>>
>>100173359
>but most people don't use it because every computer has 128gb of ram now
Most people probably don't care if their games don't have stable 60fps so it doesn't matter what they do. Besides, memory control is not just a matter of space, also of performance. Working over a slice of memory will always be faster than randomly hopping here and there.
>>
>Besides, memory control is not just a matter of space, also of performance. Working over a slice of memory will always be faster than randomly hopping here and there.
that has nothing to do with the gc though all your C# code should be structured like that anyway
>>
>>100173520
>nu minecraft devs use classes for vectors
GOOD MORNING SARS!
>>
>>100173520
Notch was unironically a good programmer, early Minecraft always ran well despite its complexity
Jeb and the other trannies have no skill and no vision
>>
>>100173433
Any reason the quads are so much bigger than the glyphs? Seems kind of wasteful.
>>
I finally have some sense of direction and concrete things I want to implement
I'm lowkey excited
>>
>>100174084
godspeed anon. this is a good feeling
>>
What do you guys use to make assets on Linux? GIMP or Aesprite for for 2D and Blender for 3D? Any if you use any AI gen for sprites? Looking for programming art/ prototype level.
>>
>>100174916
I use photoshop on windows
>>
holy shit blender is so fucking dumb
>>
>>100174916
GIMP and Blender just like God intended
>>
>>100174916
Blender for 3D
mtpaint for pixel art
GIMP or Krita for "proper" art, by a 3yo standard
>>
>>100173631
The original programmer was actually swede.
>>
File: dungeon.png (6 KB, 384x224)
6 KB
6 KB PNG
>>100174916
https://opengameart.org/
>>
>>100174992
skill issue btw
>>
File: 1409941633681.webm (2.95 MB, 624x352)
2.95 MB
2.95 MB WEBM
Enginedev moment
>>
Should I use Lua or AngelScript for my C++ game?
I tried Lua (without sol because I didn't feel like it), but I realized the way I'd have to manage variables via the C API (accessing via stack) would be very cumbersome, despite the fact that lua would otherwise be a great language, particularly for defining data as well as script code.
>>
>>100176551
I think most scripting languages work like that,but at least lua is well known and you can use the jit.
>>
>>100176050
>load project
>experiment a bit, end up not liking the changes
>ctrl-z untill I hit undo limit
>some changes still left, so fix shit manually
>looks good, export
>wtf why does it look wrong
>realize it undid stuff I made before loading the project
how does that make any sense?
>>
>>100176258
kek
>>
I don't understand gpu parallelism:
Every modern renderer utilizes light culling to avoid shading computation for pixels not affected by certain lights.
That means that in the fragment shader, the fragment will loop over an array that contains only the lights affecting it.
But then what's the point anyway since every fragment is run in parallel, which means they take the biggest array of the for loop.
What is the point of pixel number2 to only have an array of 2 lights thanks to light culling, if pixel number 3 has an array of 342 lights?
Aren't fragment supposed to execute the same code which mean looping over the biggest array?
Obviously I'm missing something since that technique is proven.
https://takahiroharada.wordpress.com/wp-content/uploads/2015/04/forward_plus.pdf
>>
>>100177277
what I can see in the pdf is that the culling is done per tile and not per pixel itself.
I'm curious how this variability of the number of lights in the fragment shader.
>>
>>100177474
Indeed the culling is done per tile so that when it comes to fragment shader, the fragment looks at the array of lights corresponding the tile it belongs to.
This is what a fragment shader in this context looks like:

 // Get the index of the current pixel in the light grid.
uint2 tileIndex = uint2( floor(IN.position.xy / BLOCK_SIZE) );

// Get the start position and offset of the light in the light index list.
uint startOffset = LightGrid[tileIndex].x;
uint lightCount = LightGrid[tileIndex].y;

LightingResult lit = (LightingResult)0; // DoLighting( Lights, mat, eyePos, P, N );

for ( uint i = 0; i < lightCount; i++ )
{
uint lightIndex = LightIndexList[startOffset + i];
Light light = Lights[lightIndex];

LightingResult result = (LightingResult)0;
...
}


(taken from https://www.3dgep.com/forward-plus/)
>>
>>100177277
If pixel 3 has 342 then all threads in the same thread block will have to wait for the thread with that pixel to finish.
Realistically, you probably won't have single pixel (opposed to an entire scene) that is affected by hundreds of lights at once. Even if so, you can put a limit on the number of lights per tile, say 16, and it probably won't make a significant visual difference beyond a certain number of lights since it'll turn into a bright (white) spot anyway.
PDF mentions using a limit of 50 lights in Figure 2, though it's not clear to me if that's just the visualization or an actual limit in the shader.
>>
>>100177662
>(taken from https://www.3dgep.com/forward-plus/)
damn there's alot of info in there.
>>
>>100177711
maybe I'm retarded but why do you need any of this if you're already doing frustum culling?
>>
File: xd.png (202 KB, 996x861)
202 KB
202 KB PNG
>>100173433
Valve's whitepaper recommends using smoothstep with antialiasing but it results in blurry edges when scaling the glyphs. A better solution is to apply the smoothstep "over a single pixel" (for a lack of a better explanation).
float val = 0.5 - texture2D(s_sdf, v_texcoord0).r;
vec2 val_gradient = vec2(dFdx(val), dFdy(val));
float normalized_val_over_1px = val / length(val_gradient);
gl_FragColor = vec4(textColor.rgb, 0.5 - normalized_val_over_1px);

Found here: https://drewcassidy.me/2020/06/26/sdf-antialiasing/
>>
>>100177690
> all threads in the same thread block will have to wait for the thread with that pixel to finish.
I get that. My question is that in the fragment shader, how does it work? Are there thread blocks as well? Also, if a block finishes early, can it help the other block to finish faster?

>>100178220
Because here the goal is to avoid shading computation during the lighting pass. General frustum culling (or CPU frustum culling) will cull objects/light source that aren't visible at all.
But then once you render the scene, you will still need to shade every single pixel according to every light source, even if this light source doesn't affect the pixel: The fragment shader has no idea of that.
>>
https://www.youtube.com/watch?v=N8wVR0M8ssY
>>
>>100178458
>you will still need to shade every single pixel according to every light source, even if this light source doesn't affect the pixel
realistically how often would that happen for it to be a performance issue worth optimizing?
I mean, if optimizing it makes a such a big difference in performance how can you even render fully lighted scenes in the first place
>>
>>100176551
>Should I use Lua or AngelScript for my C++ game?
QuakeC
>>
>>100178589
>DUDE NEVER MAKE YOUR OWN ENGINE IT'S NOT WORTH IT
>...unless you're a notch :) wow look at those colors...
>>
>>100178675
>realistically how often would that happen for it to be a performance issue worth optimizing?
It would kill your gpu. Old opengl had a limitation of 7 light sources.
Also keep in mind that multiple fragment doing those expensive computation for every light source might not even end up in the final framebuffer. Hence why deferred rendering happen (so you make sure every single lighting computation is done for a pixel that appears on the screen).
However there was still the issue of looping over an array with hundreds if not thousands of lights.
That's why light culling in a compute pass happened as early as battlefield 3. It became more refined with clusters (doom 2016, etc).
But then I'm reading that presentation:
https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2016/Presentations/Zhdan_Sjoholm_Light_culling_MGPU.pdf

According to nvidia, light culling on compute shader is heavy and can be avoided by doing light culling directly in the fragment shader.
https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2016/Presentations/Zhdan_Sjoholm_Light_culling_MGPU.pdf

However I have no idea how this work.
I think that's what this guy is doing:

https://forum.unity.com/threads/raster-based-light-culling-in-tiled-forward-renderer.1363728/
>>
>>100178789
You heard the guy. You must be swedish and self-loathing to enginedev /s
(And if that were actually the case I'd be breaking da rulez because I'm not swedish)
>>
>>100178589
I hate this faggot so much it's unreal
>>
https://www.youtube.com/watch?v=XGYEk9rbGjU
>>
>>100178991
Whoops, linked the wrong video. Oh well.
>>
>>100178965
He seems to be disingenuous with a barely concealed penchant for emotional/psychological abuse.
>>
>>100178675
https://www.3dgep.com/forward-plus/
Here is some actual performance benchmarks
Under 32 lights its pretty much the same and okay perf (with an old gtx 680). Then it gets a lot worse for forward with small lights.

Also you can do light culling per object on the CPU. If your game is outdoors then it doesnt matter, the sun is the only light that really matters.
>>
>>100179009
>He seems to be disingenuous with a barely concealed penchant for emotional/psychological abuse.
this and I label him in the "I suck at making games so I'll be a course peddler on youtube" camp. Or the "Motivational Guru Feels good bs" camp.
I don't like him simple as
>>
>>100178675
Games do unrealistic things with lights, like not actually following inverse square law or not all lights casting shadows, or no/very crude GI approximations. Physically it makes very little sense but it's obvious why they do this for performance reasons.
>>
https://www.youtube.com/watch?v=meARMOmTLgE&list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT&index=5
Why does this guy "um" and "uh" and "ok" so much
>>
>>100179242
you should watch some of his recent videos, there he goes "yeah?" in every second sentence
>>
>>100179093
Those who can't do, teach. Those who can't do either, go into marketing.
>>
>>100178589
> ___ was unheard of

No, it wasn't.
>>
so I just checked my gpu (1060) performance on my most intense scene that has 13 lights and dozens to hundreds of objects (instanced) and it can shoot up to 40% work at some points
fun to watch it go to near 0% when maximal frustum culling kicks in tho. my rendering is primitive as fuck
>>
>>100178458
yes, they're not exposed but in fragment shaders, they're organized into quads and share some values for texture coordinate derivatives
thread blocks kinda are software mappings of a set of invocations of hardware warps (subgroups in vulkan, hardware vector threads) which are what exist in hardware
a grid is a set of blocks
>Also, if a block finishes early, can it help the other block to finish faster?
the scheduler on the GPU can do a lot of funny things to make sure everything's still working and not blocking, but i think thread blocks have affinity and have to stay where they are
GPU work queues do have work stealing so generally the amount of tasks should still be balanced out but i don't think so, not at that level
inside a fragment shader you can discard a fragment which i think nulls out that vector lane and with newer versions demote an individual invocation which means it can't output but still do math
>>
V buffer superiority
>>
>>100179859
>but i think thread blocks have affinity and have to stay where they are
*have affinity once scheduled
>>
>>100173433
>>100178234
Use multichannel signed distance fields instead
https://github.com/Chlumsky/msdfgen
>>
umm why did nobody tell me about UBOs
>>
File: 1685158810059793.jpg (98 KB, 409x409)
98 KB
98 KB JPG
>gave up on my engine and switched to Unreal
>didn't tell /gedg/
>>
File: 1646760121318.gif (2.03 MB, 480x270)
2.03 MB
2.03 MB GIF
>gave up on Unreal and made my own engine
>didn't tell /agdg/
>>
>>100180650
frfr
>>
>>100180449
you're not a real programmer if people need to spoon feed you shit like that
>>
What is a UBO or VBO?

Explain to me as if I were a girl.
>>
>>100180449
because we all use SSBOs
>>
>>100180449
buffer device addresses and SSBOs are better
>>
>>100180859
>SSBO access, all things being equal, will likely be slower than UBO access
so their advantage is just the larger size?
>>
>>100180957
thats a pretty huge advantage given how big 3D data is these days
>>
>>100177277
GPU doesn't have an unlimited number of threads, it doesn't draw several million pixels at the exact same time
>>
should I upgrade from opengl 3.3 to 4.3 so I can use ssbo's?
>>
>>100181049
Do you actually need them for anything?
>>
>>100180957
Have huge storage buffers is really nice if you're going for gpu-driven/indirect draws
>>
>>100181096
I'm curious about potential performance boost
scenes with lots of lights do tons of uniform setup each frame
>>
Anyone want to work together on a 3d game written in cpp?

I've got an engine in mind and some ideas, if anyone wants to know more

cpp.gamedev.3q8y2@8shield.net
>>
>>100181440
>cpp

absolute cringe
>>
>>100181440
sent :)
>>
>>100181161
Lights don't use a lot of uniform data
in terms of performance regular uniforms > UBOs > SSBOs
>>
>>100180147
The blurry edges are gonna happen with or without msdf. The issue here is not the resolution of the rendered sdf but the method with which "in glyph" and "outside glyph" are rendered by the fragment shader.
>>
>>100181842
lights are second to bones for the amount of uniform data I send
>in terms of performance regular uniforms > UBOs > SSBOs
wtf is this true?
>>
>>100181957
bones don't use a lot of uniform data either
I don't know what your lighting setup is but you can send all of these with regular uniform data
I have benchmarked regular uniforms vs UBOs and regular uniforms are significantly faster, I only use UBOs for data that is the same across whole scenes like camera data / ambient light
>>
>>100181957
ehh
i tend to take a lot of older gamedev advice (especially from the OpenGL era) with a grain of salt, most gamedevs have no fucking clue about anything close to the hardware
i think properly annotated the shader compiler might be able to handle it, if i actually cared i'd probably compare them in something like radeon gpu analyzer (does NVIDIA even have something like?) and compare the register usage since i think that might be what's mostly affected
>>
>>100182038
I benchmarked it you idiot
>>
what are you using for allocator(s) /gedg/
>>
>>100182175
I made my own custom pool allocator for allocations smaller than a certain size otherwise it defers to malloc
>>
>>100182162
yea and i have no way of knowing if you did it right because small changes in things can drastically change the outputted ASM especially with shader compilers
comparing the assembly output, register usage, occupancy, etc. is the only way to actually do it
but i'm not sure if there's any generic cross vendor solution for that, especially one for opengl
the vkd3d-proton devs have been able to jury rig fossilize for it in vulkan, i think
>>
>>100182242
Are you a fucking narcissist or something?
"I haven't tested this but don't believe the guy who has because I am the one source of trustworthy information here"
>>
File: output.webm (1.92 MB, 1920x1080)
1.92 MB
1.92 MB WEBM
quick bit of polish procrastination.
>>
>>100182300
i thought i was very clear you should believe radeon gpu analyzer (AMD drivers have a feature called null devices on both linux and windows where they can build shaders for fake GPUs for static analysis) or nvidia's equivalent as the only source of truth for this kind of thing because gamedevs can't into low level GPU optimization
it might be that you're right but only for opengl and certain driver versions
it might be you can easily finnegal it into generating the same ASM for both
whenever there's doubt go to the actual source of truth
>>
>>100182384
It's not even about ASM you idiot, it's about uploading data to the GPU, this is something you can test even with a shader that doesn't do anything
>>
Would anyone be interested in seeing if 4chan can make a web metaverse better than Facebook for shits and giggles?

I've been testing some stuff and Babylon.js seems production ready to quickly shit out our own VR verse. I'm also skilled in writing auth systems and tying it into websockets or webrtc, and I can write UIs. I could write the infrastructure if anyone wants to dick around and make the game itself.

If anyone is interested I can show some of the tests I've collected to show Babylon.js is production ready.
>>
File: masz.png (445 KB, 1757x1042)
445 KB
445 KB PNG
>>100161373
And that completes the manual vectorization of the sea tiles.
Now the real question is if I should add rivers and make them impassable or follow CK3's ford approach.
>>
Should I use GLFW3 or SDL2 for my 3D C++ game?
>>
I come to you hat in hand, guys. How should I go about hiring a programmer for an indie game? Gentlemen's agreement, they work from home as much as they want, all assets, licenses, etc is covered.
>they work for free, they get 50% of each sale
>they work for $400/mo, they get 15% of each sale
Be honest, am I lowballing?
>>
>>100182856
I started with GLFW and then switched over to SDL2. I would have stuck with it but SDL just gives you a lot out of the box like audio, and support for most platforms outside PC.
>>
>>100182800
is it going to be realtime?
>>
>>100182922
Why'd you switch?
>>
>>100182972
primarily the out-of-box audio support
there are some good libs you can pair with GLFW though like miniaudio
>>
>>100182906
Nobody worth anything is going to work for free with royalties outside of exceptional circumstances ie. they're you're friends, you have a really amazing game idea, you have a cult of personality around yourself, or you just find someone on the same wavelength as you

Doing a mix where you pay them barely anything with the promise of royalties later doesn't sound like a good idea either. I used to work like this but I ended up just getting pissed that I was still making peanuts. Maybe it could work
>>
>>100182906
if it was me I'd give no % and pay them by feature
also I'd go to a local uni/college and find some slav autist and lowball as much as I can
>>
>>100182856
I use glfw and for sound I use openal-soft
>>
>>100182856
GLFW3 is literally just graphics context management and input, it's also really terribly made
SDL is an actual library with enterprise support including valve
if possible go with SDL3 since it includes basic 3D game support
>>
>>100183069
>it's also really terribly made
why
>>
>>100183069
>it's also really terribly made
how so?
>>
>>100182964
I haven't completely decided on it, but I'm not fond of real-time or turn-based.
But some of the type of simultaneous turn.
>>
>>100183021
>>100183030
Understood, thanks. Didn't know both options are almost equally as bad from the perspective of a programmer. Programmer is the only person you can't really contract like artists and everyone else so I had no clear understanding on how one should be paid considering limited finances. Paying by feature is likely the closest thing to contracting which seems like the middle ground.
>>
>>100183124
>Programmer is the only person you can't really contract like artists
Why do you say this? Programmers can be contracted just like artists can
>>
>>100183157
Maybe I just can't imagine that. Paying monthly or paying by feature is something I could get behind, probably it's just me.
>>
>>100183241
How's that any different to paying an artist?
The issue with hiring programmers is you can't just hire somebody to pick up where the previous one left off. You need one person in charge of programming who is there for the entire project. Which is not very realistic if you can't afford to pay them
>>
>>100183107
>>100183109
actually it seems they've put in some effort fixing the main issue i remember having with it, literally just checked the docs and they've massively decreased the pollution of thread affinity
beyond that i guess polling a queue > callbacks
>>
>>100183322
more retarded takes from the guy who doesn't actually make anything
>>
>>100183343
i had several coroutines based GUI applications i had to move over to SDL because of GLFW's lack of guarantees
>>
>>100183296
Oh. I see. Then it's either that or paying by feature, I guess.
>>
>>100183358
>because of GLFW's lack of guarantees
Not because of anything that actually happened in practice of course
>>
>>100183373
Hring a programmer to continue the work of a previous programmer has a big acclimatisation cost. If you have one lead programmer then he can hire programmers to work on certain subfeatures, for example he can hire one guy to work on networking. You can't just play pass-the-parcel with an entire codebase. Realistically if you can't code you need one person who can to be there throughout the entire project, it's going to fall apart otherwise
>>
>>100183456
sure, whatever
i was a lot worse at programming and debugging back then (they were GUI utilities for fucking with skyrim related havok data) so it was probably my fault anyway
they went away when i switched to SDL and made the thread unsafe parts thread safe using coroutine based thread switching

still find SDL more comfy than GLFW, and the fact that some of the main devs are valve people also working on mesa and vulkan is reassuring
>>
>>100183519
*the problems i was having
i think it was random freezes and crashes
>>
>>100183519
If you say something that people actually use is shit and when asked why you bring up something completely theoretical you are giving people shit advice
Stop larping as an industry professional
>>
>>100183485
Yeah. I imagine it's hell to dig through months of someone's code.
>>
>>100183627
It's something people do at work all the time, but these are people being paid to do it and it comes at a huge productivity loss
>>
So from what I understand people use imgui for debug stuff and Qt for the actual product?
>>
>>100183767
imgui is good for quick GUIs and is commonly used for game tools like editors and debug stuff
Most games use handmade GUIs or they use some framework that allows them to use web tools, I don't think Qt is a popular choice
>>
>>100183824
>or they use some framework that allows them to use web tools
Could you name some of these frameworks?
>>
>>100183963
The only one I know is Scaleform but that's long dead at this point. It's hard to find info by Googling, maybe look in the credits for games
>>
Does SDL3 actually have basic 3d ability now or is it just a Vulkan backend for the 2d renderer?
>>
>>100184002
I found a few. Neosis, Rive, Coherent Gameface, Ultralight. Unfortunately they’re all subscription services but a few of them seem to have generous free plans.
>>
>>100183767
the rustling around qt's licensing issues still spook a lot of people

>>100184037
SDL3 is still in development, so i don't know if it's done yet but i thought i saw reference to vertex shaders being introduced and another anon mentioned it at one point
>>
>>100184389
I recommend just making your own
>>
>>100184421
It seems too time consuming
>>
>>100184571
at least use imgui then and don't try to wrangle some bloated framework designed for AAA
>>
>>100180449
Because most tutorial content on graphics/enginedev is surface level
>>
>>100184037
Isn't SDL only meant as a layer to help unify/simplify platform code and input code? It's not raylib and it's not trying to be raylib afaik
>>
>>100182175
Malloc/new for most things
I made a pool and arena/bump allocator that I use for special cases where it makes sense
>>
>>100169526
>C# is the language of Unity
Unity itself is written in C++ anyway.
>>
>>100176551
>I tried Lua (without sol because I didn't feel like it), but I realized the way I'd have to manage variables via the C API (accessing via stack) would be very cumbersome
What exactly would be cumbersome? I think sol solves whatever problem you're creating here by not using it.
>>
>>100185332
not him but it is very cumbersome but thankfully sol is absolutely wonderful and does abstract over everything
>>
>>100185194
Its core purpose is as a platform abstraction library (actually, its core core purpose is to be Valve's platform abstraction for porting shit to Linux), but it does include a renderer anyways, because there are cases where you might be making a game that's so lightweight in terms of graphics that you really don't need a purpose-built high-performance renderer.
>>
>messing with void*'s and offsets in my reflection system
>forgot to add the offset to the void* when reading arrays so my std::vector prop was being cast from an std::string prop at the 0 offset
>somehow the code perfectly worked with resize, indexing, etc. until it didnt
reeee
>>
How do the concepts of pbr apply to rasterization? There’s no rays
>>
>>100186518
PBR has nothing to do with rasterization / raycasting
>>
>>100186539
But how are those concepts applied in rasterization when they are taught using raytracing?
>>
>>100186650
PBR tells you how you should shade a pixel once you know the direction the pixel is facing and what light is falling on it
You can get that data either through raytracing or rasterization
>>
>>100186693
So just using the dot product works?
>>
>>100186717
for what?
>>
>>100186723
physically based rendering techniques
>>
>>100186734
your question makes no sense
use the dot product for what, you use dot products for things all over the place
>>
>>100186752
That’s what I’m asking
>>
>>100186805
A dot product is a common mathematical operation
>>
>>100186817
What method(s) do you use to achieve pbr in rasterization if not shooting a ray from a hemisphere?
>>
>>100161373
do you guys make your own assets or use some free stuff ?
>>
>>100186830
PBR is system used to determine how to shade a material based on the material parameters and the incoming light sources
rasterization / raytracing is what gets you that incoming light, but the PBR techinque itself doesnt care how those values are obtained
>>
>>100186854
But how does rasterization obtain that data if it’s not using rays?
>>
>>100186876
By rasterizing triangles and projecting lights and drawing shadow maps
>>
File: Untitled.png (28 KB, 360x930)
28 KB
28 KB PNG
>>100180147
looks cool unfortunately it doesn't explain what I'm supposed to do with the information generated or what the numbers are in relation to
>>
>>100187262
unicode: the unicode character it is
advance: the X advance of the character
plane bounds: the rectangle on the texture atlas that the character is
advance and plane bounds are expressed as a ratio of the size of the texture atlas from 0 to 1
I haven't even used this format
>>
>>100187334
>advance and plane bounds are expressed as a ratio of the size of the texture atlas from 0 to 1
well the character isn't 256 pixels tall so I was assuming it meant in relation to each other, so I just multiply them all by 32 or something.
>>
what engine should I pick up based on my skills?
> 10y+ Web Back-end development with Python
> 2y+ Experience with Android
> Experience with Python + GTK
> Knows pretty well Rust
> Knows little bit of Go
>>
>>100187483
your own, everything that's not your own is bloat
>>
>>100186518
The same way almost every physics formula is used: it's an approximation of the real thing.
In the case of typical PBR shaders we have the direction vector from camera to surface, the surface normal and the direction vector from surface to light source. That is enough to approximate what fraction of light will reach the camera.

https://learnopengl.com/PBR/Theory
>>
File: Untitled.png (129 KB, 466x200)
129 KB
129 KB PNG
>>100187334
thanks :)
>>
>>100188378
you're welcome
>>
>>100188378
>nordic runes
kek
>>
>>100188798
/gedg/ BELONGS TO THE NORDS
>>
>>100188378
looks good
>>
File: hebreo2-768x385.jpg (67 KB, 768x385)
67 KB
67 KB JPG
>>100188798
>nordic
>>
i know C++, but have zero ideas about game development. Should I start with godot?

I'm thinking about a isometric view tower defense game.
>>
>>100189214
Any game engine is fine for a TD game.
>>
>>100189228
im thinking wc3 days tower defense maps (e.g. gem TD, tree tag etc), how difficult is it if i'm going in blind?
>>
>>100189214
start by writing your own engine
>>
Made a simple ECS next is improving it by implementing a sparse set for the component pool.
>>
>>100181032
Thanks for that answer which makes a lot of sense. Indeed in my mind, there was a thread for every pixel running in parallel with the exact same code. I really need to know more about GPU and how they schedule the whole thing, just for a fragment shader for instance. Later I will see about compute.
Is there any resource online to introduce a newbie like me about it?
>>
>>100161373
anons, should the map data in my game be in a fuckhuge array representing each tile, or should i use a hashmap + linkedlist?
>>
>>100189414
if it's tile based 2d array makes more sense to me
>>
>>100189414
array
>>
>>100182175
vma.
>>100186876
You just plug inputs in your fragment shader. Like different vec3 ray direction for the incoming lights, and a vec3 view direction for the pov of the camera.
Your fragment shader then does the PBR math according to the material you want to emulate.
Of course your lighting model sucks, since you only take into account light coming from defined light sources of your scene.
However the BRDF is agnostic to that. It just take as input two vector: one for the incoming light, another for the view direction (hence the R in BRDF).
But technical it's PBR: Your material (represented by a fragment) react realistically according to the incoming light.
But the light equation which is about an integral of all incoming lights isn't respected at all. Indeed IRL light comes from everywhere. So in practice we do IBL (image base lighting) where the fragment will sample a cube map from all direction which is supposed to represent the general lighting of a scene, so that the object feels like it belongs to its environment.

Ray tracing has nothing to do with that. Most 3d games implement pbr with rasterization since the 2010's.
What ray tracing does is give a better estimation of the incoming light thanks to light bounces instead of relying on these fixed cube maps.
>>
>>100189414
1d array, never go to more dimensions and always access the elements with [y][x] instead [x][y]
>>
>>100189550
oopsie, i meant [y * row_len + x]
>>
>>100187491
pretty much
>>
>>100189451
>>100189458
>>100189550
ill still probably have to use linked lists in the array cause most buildings are larger than one tile but thanks anons
>>
>>100189405
I would look for presentation PDFs from AMD or NVidia, maybe from universities too.
I don't have anything at hand, but https://www.cs.cmu.edu/afs/cs/academic/class/15462-f11/www/lec_slides/lec19.pdf seems like a decent introduction if you're already familiar with CPUs.
The key is that modern GPUs have many compute units with very wide SIMD/vector units. Some of the terminology is used differently but essentially:
- A SIMD lane on a CPU is a "thread" on a GPU (or "warp" in NVidia terms)
- A (hardware) thread on a CPU is a "threadblock" on a GPU
- A core on a CPU is a compute unit on a GPU

>>100189414
If the data is dense, array
If the data is sparse with no little/no clustering, hashmap
If the data is sparse but with clear clusters: tree
Linked lists are trash and you should never use them. There might be cases where a "chunked array" is suitable but that's about it.
Might be worth looking into compression techniques, e.g. 16x16 tile with all the same tile can be stored very compactly.

>>100189550
>1d array
except if the array has a static size or you're using C# which has native multi-dimensional arrays and allows indexing like grid[z,y,x].
And if a language supports overloading index operators you can make use of that too.
>>
>>100189637
how would the tree work? divide the map into smaller and smaller subsections containing the tiles? it needs fast traversal since i will need to iterate over it all to render all the models unless I implement somekinda fancy frustum culling.
>>
>>100189776
Trees are fast if you keep the depth limited.
For example, you can make root node 4096x4096 and child nodes 16x16, which gives you a 64kx64k map.
With 64 bit pointers, root node is 128MiB, which is still a lot but a whole lot less than however much you need for 4 billion tiles.
>>
>>100189837
>With 64 bit pointers, root node is 128MiB
In hindsight, you can reduce to 64MiB or less if you use a separate array with base pointer + offset, which will have 0 performance penalty on x86 (and ARM) since it has native instructions for ptr+offset
>>
i still put my tree nodes into an array
>>
>>100189637
Thank you very much.
>if you're already familiar with CPUs.
I'm not...
I'm very "high lvl" (maths, image processing) and unfortunately I never really cared that much about hw. What a mistake.
>>
>>100189637
>Linked lists are trash and you should never use them
rookie /g/ mistake
>>
>>100189414
If it's a grid it should always be an array
If grid cells can contain multiple items then it should be an array of lists or whatever substructure you use to store the multiple items
>>
>>100189928
It might be worth looking into CPU SIMD first then, which should be more approachable than GPUs with their constantly changing ISAs.
x86 SIMD is handicapped though (thanks Intel).
>>
>>100189991
Okay.
Also do you have any resource on how parallelism work with hardware accelerated ray tracing (rt cores for nvidia)?
>>
>>100189414
Chunks of arrays in z order.
>>
>>100186876
It fakes or precomputes the "raytracing". Baked cubemaps, baked lighting probes, screen space reflections, screen space ambient occlusion, and more. Thats how it looks good in real time games.
If youre asking about how rasterization works, then you should read up on that. The fragment shader runs for every pixel and, because of math and extra data like normals, it knows the position and orientation of every pixel on screen. Then its a matter of sampling the precomputed data.
>>
>>100189414
I say big array, but if theres going to be a lot of wasted space, think an L shaped level, then you should use chunks to make it sparse. So like a big 2d tilemap that indexes into the actual 2d tilemap.
>>
>>100189414
How are you planning to store each tile? What kind of data format/structure? Enum value/index? Class instance? If so, which fields? Do you plan on storing things on the tiles like items, monsters, objects etc?

Kinda hard to answer properly without knowing all this imo.
>>
File: 1697321711139523.jpg (5 KB, 100x131)
5 KB
5 KB JPG
https://loglog.games/blog/leaving-rust-gamedev/
>>
File: 1659976923499600.jpg (87 KB, 970x970)
87 KB
87 KB JPG
>>100192114
HAHAHA rustfags btfo once again
never gonna beat the memelang allegations
>>
>>100192114
oh no no no
>>
>>100192114
Damn, came just for that.
>>
>>100192114
oh no no no rust-bros it's over...
>>
>>100192114
>The community as a whole is overwhelmingly focused on tech, to the point where the "game" part of game development is secondary. As an example of this, I remember one time a discussion around the Rust Gamedev Meetup, that while was probably done jokingly was still imo illustrative of the issue, with something like "someone wants to present a game at the meetup, is that even allowed?" ... I'm not trying to say that people should have the same goals as we do, but I think maybe the way some things are communicated could be clearer, and that people should be more honest about what it is they're doing.
There people definitely visit this general.
>>
File: input.png (1.12 MB, 3704x2295)
1.12 MB
1.12 MB PNG
>>100182800
Fuck, there are more path issues than I imagined.
>>
>>100192114
300 comments on hacker news already lmao
>>
>>100194000
QRD?
>>
>>100194027
https://news.ycombinator.com/item?id=40172033
>>
>>100194266
Thanks
>>
>>100192114
c++chads, we can't stop winning
>>
We all know Rust is a hot mess with a cult for a userbase, but what about other "alternative languages"? I.e D, Zig, Nim, etc.
>>
Accidentally memed myself into going through The Cherno's "Hazel Engine" series when looking for something on game engine development. So far I'm actually enjoying it and it's helping me a lot in making my own C++ game engine, but I think my engine is too similar architecturally to Hazel at the moment, just with a different namespace and some different ways of doing things. Also, although I think the whole "Application with layers" concept is good, I feel like there's probably a downside in that somewhere.
I'm currently on the "Rendering and Maintenance" video btw.
>>
>>100196078
C++ is the only valid language.
>>
>>100192114
klabnik been real quiet since this dropped, that numale cunt usually comments on every rust thread on hn but this is the hottest thread and not a single post in sight
>>
>>100196078
There's really no reason to use anything other than C++ for video games, despite its warts, it's the most productive low level language for video games that does just exactly what you need for this type of development.
>>
>>100161373
if you are not making you're own engine then you're not gonna make it
>>
>>100161373
if you are making you're own engine then you're not gonna make it
>>
>>100196202
>I think my engine is too similar architecturally to Hazel at the moment
An engine is a tool, you don't win points for originality
>>
>>100196078
Zig is a bit like Rust in that it's a language that likes pointless ceremony and doesn't over anything over existing languages
Nim also doesn't offer anything over existing languages and has things that make you go "wtf was the author thinking"
>>
Dumb idea: (de)serialize game assets (models, levels, etc) as lua scripts. But not just as like tables containing the data, you could like have the lua script procedurally "build" the data through a set of functions that are executed by the asset loader.
>>
>>100196371
Scripts for assets is ok and I don't think it's uncommon.
Scripts for save data is a bad idea unless you're certain it is properly sandboxed.
>>
File: 1607739344985.jpg (28 KB, 389x410)
28 KB
28 KB JPG
>>100196078
I wanted to reimplement benchmark game to get a rough idea of how nim compares to C in terms of speed, but I can't tell how the bitshifting is supposed to work or if there's things like |= in the language, and I'm not smart enough to divine that on my own. Also I was stepping through the makefile to try and see how it's bootstrapped and legitimately cannot figure out how you get a nim compiler to compile your nim compiler.
>>
>>100196371
that'd make low times very slow
>>
>>100196078
i like Odin specifically for game dev. it's unapologetically just C with improvements, tho its creator specifically tailors it for high performance graphics dev
its design scope is relatively modest and agreeable so it tides me over until the the actual "C killer" comes along.
it also proves itself thru EmberGen which pretty much all the big studios use now
-- gingerbill himself signing out
>>
>>100196547
*load times
>>
I have discovered the factory pattern and its not growing in my codebase...
>>
>>100196591
*now
>>
>>100192114
It's kind of telling that half of this article is basically apologizing to the type of people who visit this thread who like just to fuck around and are hostile to actually making games
>>
>>100196548
I've looked at Odin and it looks fairly nice except for the lack of member functions.
>>
Odin is the only memelang that looks like it's any good
>>
>>100192114
the idea of a generational arena is neat, hadn't heard of that
and yeah I can't imagine investing that much time in Rust, its a pain to iterate with
>>
>Rust on the other hand often feels like when you talk to a teenager about their preference about anything. What comes out are often very strong opinions and not a lot of nuance. Programming is a very nuanced activity, where one has to often make suboptimal choices to arrive at a result in a timely manner. The prevalence of perfectionism and obsession with "the correct way" in the Rust ecosystem often makes me feel that the language attracts people who are newer to programming, and are easily impressionable. Again, I understand this doesn't apply to everyone, but I think the overall obsession with ECS is in some sense a product of this.

kek this is so on point



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.