[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] [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]


File: minetest.jpg (107 KB, 533x318)
107 KB
107 KB JPG
Voxel pig edition

/gedg/ Wiki: https://igwiki.lyci.de/wiki//gedg/_-_Game_and_Engine_Dev_General
IRC: irc.rizon.net #/g/gedg
Progress Day: https://rentry.org/gedg-jams
/gedg/ Compendium: https://rentry.org/gedg
/agdg/: >>>/vg/agdg
Graphics 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: https://desuarchive.org/g/thread/108232795/#108232795
>>
Heard Minecraft source code leaked kek. OP image is from https://www.luanti.org/en/, an open source Minecraft engine.
>>
Not requesting help (yet) but cool general, I am trying to reverse engineer the engine behind MTG:Arena to fuel a card game (lmao), wish me luck
>>
I'm in the process of consolidating code from past engines I made. Currently in renderer boiler plate hell.
>>
It's crazy how Threat Interactive has been saying what I've been seeing for years with the DLSS slop and UE slop and people still don't listen. Is everyone who posts bad shit about him some shill jeet paid by industry kikes? I mean he had that one copyright thing which I guess is kind of lame, but seeing how graphics have got worse in favor of bandaiding software solutions or even hardware solutions (like with RE9 needing pathtracing which only Nvidia can provide to have lighting on the equivalent level of a baked in lighting game from 2015) and seeing normies lap it up has made me hate game developers so fucking much and it's also why Nvidia can price their shit so insanely as if they were Apple. So to finally hear someone with some sort of online presence and actually a developer makes me happy. I want developers who are passionate to make games again, and yes I know I have indie stuff, but wouldn't it be cool if all big budget games had the same passion and work put in?

Nanite, Lumen, and the reliance on Nvidia hardware features has turned me off so many new games. STALKER 2 lighting was so disgustingly horrid it turned me off playing the game entirely.
>>
File: dither.png (21 KB, 1148x851)
21 KB
21 KB PNG
not really engine work, but sort of graphics/gamedev related.
I will be trying to add ordered dithering tool to Krita over the weekend. haven't decided yet if it will be an external Python plugin or modification of their existing gradient tool. I think Python plugin because I don't feel like building Krita, and dealing with project maintainers.
>>
>>108310398
You are definitely that guy and you're definitely wrong because at the consumer level nobody gives a shit about the tech that went into graphics, they care about the game. Getting the tech industry to homogenize is impossible so the work exists at the dev level to pick a rendering stack that isn't ass. Fortnite and Roblox stay dragging their sweaty meat across the faces of AAA games every year, clearly nobody cares about the fidelity of graphics. Make the shit run good, that's it.
>>
File: curve.png (163 KB, 1166x686)
163 KB
163 KB PNG
>>108310169
does anybody know how to make a 3d matrix, or more specifically what formula to make points in 3d space correctly move slower from afar and faster from up close?
i'd also like to know how to do matrices in general, as of right now my method is simply telling the objects to do some math before they draw, matrices seem a lot more efficient, however ive only ever seen them visualized, not written in code, and most resources *on* that can be really needlessly overbearing with specific context that assumes youve read the entire rest of their sort of ebook, which i do not want to do, as i want most of everything to be things that come as a conclusion on my own excluding very literal descriptions of how to use something.

i've done it before, and it works relatively okay, but it makes debugging hard because it "curves" when really far away. for a while i payed no mind to it and wanted to run with it because i found the mild incorrectness of it to be charming, but when i tried drawing straight lines to define the "chunks" of the area, it was immediately apparent that it had a lot less visual clarity than i ever thought.

the current formula is:
(x position, y position, and sprite size) * (FOV ^ ((z position - camera z position) * -.005)

(for context, picrel is a bunch of objects bouncing off eachother on a flat plain, so flat that its not even real geometry, just <-100, the camera is facing down to let you more clearly see the effect, though it isnt as obvious when its not moving.)
>>
Implemented an HTTP web server in the game engine so you can query/modify game state through a rest API.
Who knows, maybe it’ll come in handy.
>>
>>108310233
So far I'm at the device stage in Vulkan boilerplate.

No swapchain/resizing so engine window is glitchy and changes when I move it or change worstations in my window manager.

This image shows live coding. Something I've shown in this general before. The REPL is networked so the game can be modified as it runs.
>>
>>108311847
You can see in that image how the logger can be accessed by comparing the bottom of the left window pane to the right window pane.

And this image shows that you can close the game with lisp. The console is free to use again on the left window pane.
>>
What do you find useful about a Geometry shader?

I'm still learning OpenGL, and using what I currently know to try and make a full release-ready game. I don't know if I should spend the time needed to implement a geometry shader step into it though.

I won't go into detail of exactly what I'll need for my game, but it's not exactly going to be a graphical powerhouse. I can get away with some inefficient practices and be fine with it.
>>
>>108312067
geometry shaders are mostly for converting points into quads for particles and for shadow volume rendering (but shadow volumes are still not efficient for modern GPU's, arguably raytracing is about just as expensive).
>>
>>108312067
nothing, the geometry shader stage was a mistake
>>
File: output.mp4 (3.14 MB, 1930x1084)
3.14 MB
3.14 MB MP4
beeg progress the past few days, finally added multiple light support to the engine, also rewrote my shader processor to allow for use of #include so I can reuse code properly across shaders, apparently GLSL already has this feature but AMD doesn't fully support it
>>
>>108312343
man you are such a loser
>>
>>108310176
Speaking of the minecraft leak, have you guys seen the code? It's literally just Java translated to C++ almost 1:1 using shared_ptrs and gigantic inheritance trees with virtual calls everywhere.
How does the game even run like that on a ps3? Did the DOD fags lie to me?
>>
>>108312408
Unless it's used for blocks it would only be bad for large entity count which you really have to try to spawn in minecraft.
>>
>>108310176
Why the name change?
>>
File: poop.png (241 KB, 1641x1225)
241 KB
241 KB PNG
>>108310945
first you need to learn about projective coordinates (pic related)
you don't need to know all the details of projective coordinates, just understand the equivalence between representations of projective coordinates and the difference between postion and normal representations
practically, they allow one to encode translations using matrices and implement perspective divide through the equivalence relation (don't sweat the details right now)

then you need to work out a 1) scaling matrix 2) translation matrix and 3) rotation matrix (a little tough)
then you work out basic a windowing matrix (mapping one axis aligned 3d volume to another)
then you work out an orthographic projection matrix
then you work out a perspective projection matrix (also a little tough)

you use scaling, translation, and rotation to pose your geometry
you use one of the projection matrices, particularly the perspective matrix along with a divide, to do what you are asking
i'll fill in the details more if you are interested.
>>
I’m now utilizing the full power of mesh shaders by simply upending the entire vertex assembly process. I no longer use vertex and index buffers. Chunks now store a face buffer and meshlets index that. Four 12 byte vertices become a single 8 byte face. Vertices and indices are generated on the fly inside the mesh shader. This led to massive memory improvements. At a 32 chunk render distance total ram usage goes from 1.4gb to just above 500mb, no greedy meshing.
>>
>>108310398
>DLSS slop
name a better antialiasing technique
>>
>>108313186
DLAA
>>
>>108313175
how well does it handle updating the meshes when adding or removing blocks?
>>
>>108313175
Furthermore I fixed my cross chunk feature problem. Basic terrain generation happens on a separate and when finished the main thread generates features (trees, ores, grass) where neighbors can be safely accessed and modified. Chunk generation isn’t wholly multi threaded anymore but it works.
>>
im feeling stronger
>>
>>108313222
Adding/removing blocks is irrelevant. On the cpu side this only changes how much data the cpu has to create during the mesh generation process. Technically the cpu puts in even less work now, no longer having to generate individual verts and indices. Though I never properly measured, I can only say there’s no fps difference. Vertex throughout was never an issue either even before I compressed my verts and a 32 chunk render distance was approaching 3gb. Which makes sense as I’m on a 5080, it’ll take way more to push this card. The only real time I got performance improvement was from frustum/meshlet culling. The actual overhead from the new system comes in the form of gpu utilization since the mesh shader has to put in real work vs reading from a buffer. I think gpu usage shot up from 15/20% to 35/40%. I expect an fps jump when I implement Hi-Z occlusion culling.
>>
>>108313370
tldr
>>
>>108313387
Updating meshes is nothing but easier. The gpu has to work a little more since it’s the one generating vertices now but the workload is moot.
>>
>>108313446
who cares
>>
>>108313529
The anon who asked
>>
File: reflections8.mp4 (3.61 MB, 1258x698)
3.61 MB
3.61 MB MP4
I'm back. Will be posting updates more regularly than once every three years.
>>
>>108313545
I asked but it was in jest
>>
>>108313806
get the fuck out
>>
I set up a cron schedule to create nightly builds of my game :^)
>>
>>108312360
disregard this, you're cool anon :)
>>
>>108314480
do you make nightly commits to your version control?
>>
>>108312509
To distance themselves from minecraft further.
>>
>>108314778
I commit every time I do anything
>git commit -m “it kinda works now”
>>
>>108314480
>>108315139
why not CI that builds and publishes an artifact on push then?
>>
>>108315149
I don’t know
>>
>>108312570
i already have a rotation matrix settled out (at least, i assume its a matrix? again, the details are kinda vague, even in this image are things that are not possible to really be written in code or math regularly.


this part isnt that important it just describes how i do the "matrix" {
it essentially rotates each axis respectfully in a sin-cosin kind of circle. though im thinking of simplifying it as making every object move in the x y and z axis, angled to the angle of the camera to reduce the amount of sin wave computations, but other than the mild code inefficiency it functions exactly as intended and has no problems, it is only the "depth" i am struggling with (how objects spread farther out when close and pack up when far), which i assume is the scaling and translation matrix, which i technically consider the same thing as they (currently) share the same formula.
}

the image in your post doesnt particularly make sense to me, i do know a matrix something along the lines of a list of equations that gets applied respectfully to a list of numbers, but beyond that im not sure. especially when relating to the formula that accurately portrays 3d space "shrinking" and "growing" from distance.
>>
>>108312570
>does anybody know how to make a 3d matrix, or more specifically what formula to make points in 3d space correctly move slower from afar and faster from up close?

its called a view frustum which is what you get once you apply the projection matrix to object positions in camera space
>>
>>108310398
He makes some good points but he is too much of an obnoxious turbo autist. What has he ever done? It's easy to talk a lot of shit, but its hard to actually do things. He just talks shit, he's really insufferable and should actually do something. He can do his own build of Unreal however he wants, should be easy for such a genius as he.
>>
>>108312343
Good job man ignore the guy who called you a loser he is in fact a loser.
>>
>>108316318
He can't do anything
All he can do is complain about things, he doesn't know what it takes to fix them (otherwise he wouldn't be complaining)
>>
>>108310398
I don't really get who the audience for his videos are like the videos get into the really technical details of graphics and I refuse to believe theres such a big audience for that on yt, much less one that can understand what he's saying. If you go on the comments my assumptions get validated because 90% of the comments are just people talking about his epic aurafarming thumbnail or how pissed he sounded
>>
>>108316385
>I don't really get who the audience for his videos are
There's this big sentiment among game consumers that game developers are generally incompetent, bad and worthy of scorn and hatred
These videos appeal to that audience because they confirm this view for them, even if they don't understand what the guy is saying at all
>>
>>108313370
i mean how does it handle updating the data used by the mesh shaders, if you need to add a block somewhere, surely something in the buffer must change, so do you need to copy everything to the gpu every time theres a change, or can you get away with only updating a subsection of it?
>>
>>108316318
just donate and his personal unreal engine fork dreams will come true one day, trust him
>>
>>108316517
are you retarded?
>>
>>108316517
Stupid nigger! IS THIS YOU!???!! https://www.youtube.com/shorts/Lc8700J-BFk
>>
>>108314480
>>108315149
How do I get into CI/CD as a windows user that insists on everything being done on my own machine?
>>
>>108316556
You don't need to do that if you're making games
>>
>>108316536
>>108316541
are you? obviously i made fun of him and his "we are gonna fix unreal engine and make a game with the help of your donations" begging he has been doing for years. he will never actually do the work he says hes going to do
>>
>>108316584
oh i thought you were being serious
>>
File: poop.png (140 KB, 1683x866)
140 KB
140 KB PNG
>>108316129
it pays to go step by step, there really aren't that many concepts involved
you figure matrix stuff out by observing what happens to the coordinates under different transformations

i know my notes are very terse, but pic related introduces matrix-vector multiplication
>>
File: poop.png (104 KB, 1667x587)
104 KB
104 KB PNG
>>108317128
for instance, working out a scaling matrix is braindead simple
the goal is to multiply each coordinate by a (potentially different) scaling factor
just look at what the matrix does to the coordinates
>>
File: poop.png (89 KB, 1664x574)
89 KB
89 KB PNG
>>108317157
translations are also easy, but it should be noted you can only encode a translation as a matrix/linear transformation if you use projective coordinates. this is one of the reasons doing things in 4d with these weird projective coordinates is useful

it's a hard to visualize mathematically what's going on with 3d projective coordinates in 3d, but if you drop down to 1d and apply the same math, you can draw out what's going on.
i personally think just looking at the algebraic effect on the coordinates is the easiest way to immediately understand what is going on.
>>
File: poop.png (462 KB, 1647x2424)
462 KB
462 KB PNG
>>108317201
and like i said, rotation takes a little effort to represent well
euler angles are easy to understand but suffer gimbal lock, which is sucks if you are tracing out paths through rotation space.
the best way to define rotation is in terms of an axis and angle
pic related is for 3d, but can be easily adapted to 2d.
>>
File: poop.png (37 KB, 1637x149)
37 KB
37 KB PNG
>>108317227
you pretty much always want to specify a pose by first scaling, then rotating, then translating
the matrices can be composed into a single matrix using matrix multiplication.
when expressed in matrix multiplication, the order of the transformations may at first seem backwards, but keep in mind the right most matrix is applied first to the vector
when expressed in
>>
>>108316556
I use an Ubuntu VM for CI/CD (created with VMware). it runs Jenkins, and makes builds for all the platforms I support.
>>
File: poop.png (274 KB, 1637x1541)
274 KB
274 KB PNG
>>108317329
now on to the projection matrices
first, it helps to define a windowing transformation that maps an axis-aligned box to another axis aligned box
it transform can be deduced by a composition of the posing transformation, specifically a translation, followed by a scaling, followed by a translation. you can compose the transformations to derive the windowing matrix
>>
>>108312343
Yes yes hide all the info about the os. don't show your taskbar. don't let us know if it's a windows or linux or mac system.
>>
>>108317366
Are there any good guides on how to get all that set up?
>>
>>108317371
an orthographic projection matrix results in something that looks like architectural blueprints, where things DON'T get smaller with distance
it's simply a special case of a windowing transformation that maps some chunk of the scene into a box that has [-1,1] extent along each axis
>>
File: poop.png (84 KB, 1644x507)
84 KB
84 KB PNG
>>108317400
>>
>>108317398
I can't recommend anything. I learned it from a course on LinkedIn Learning (my company pays for access).
>>
>>108317366
I applaud you on your effort to do anything except make a game
>>
File: poop.png (4 KB, 582x389)
4 KB
4 KB PNG
>>108317406
now, to answer your question: how to make things get smaller with distance?
a perspective projection is based on a pinhole camera model
in computer graphics, the pinhole camera is a little weird because the image is formed in front of the pinhole, but the geometry works out more or less the same
the question is how big is an image given something in a scene?
that is, if a point is at (x', z'), what is its image x'' at z = n (the near plane)?
well, x' / z' = x'' / n, so x'' = n x' / z
this means you need to divide by the distance
linear transforms can only multiply things and add them together, so it seems like it can't be done with matrices
however this is where the equivalence of projective coordinates in >>108312570 comes to the rescue
>>
File: poop.png (249 KB, 1649x1842)
249 KB
249 KB PNG
>>108317594
it's easiest to derive the result first in 2d
one can set up the most general system of equations that can be represented using linear transformations on projective coordinates and deduce what the unknowns in the matrix must be given a near and far plane (which define the viewing frustum) and the constraints the near and far plane must satisfy under the derived transform
>>
>>108317624
the result of this transform essentially maps the viewing frustum onto the [-1,1] axis aligned box, that's why the orthographic perspective matrix appears in the formulation
>>
File: poop.png (27 KB, 404x277)
27 KB
27 KB PNG
after transforming with the perspective matrix, you need to do the "perspective divide", which means dividing the transformed vectors by the 4th coordinate, which is the practical realization of the equivalence of projective coordinates mentioned in >>108312570

the final step in drawing to the screen is to use another windowing tranformation to map the [-1,1] box to the rectangle of pixels on your screen that you want it to appear in

depending on your use case, the full pipeline look something like pic related
>>
>>108317674
the "world space computation step" is things like lighting, which your application doesn't seem to need
the "clip" step throws out geometry not in the viewing frustum. it's a little nuanced since it's best done in 4d space, as the perspective divide "tears" things that cross the viewing plane. but your application may be able to sidestep it, so i won't mention it here.
>>
>>108317524
thanks, I don't really like making games.
>>
>>108317227
Do you have anything on rotors? I went through their explanation and liked it, but can't find log() and exp() implementations, which are needed for interpolating. The functions are named very weirdly too, since apparently they just convert rotor to bivector and vice-versa, and you're allowed to multiply the bivector by scalar for the actual interpolation because ??? Anyway, any help?
>>
>>108317442
Thats unfortunate, I have no clue where to begin. Most I normally find is "best practices," but never how to implement them
>>
File: poop.png (117 KB, 1636x1132)
117 KB
117 KB PNG
>>108318090
if by rotors, you mean rotations using quaternions, you first define a bunch of quat stuff in pic related
>>
why are you dumping math tutorials
>>
File: poop.png (20 KB, 1661x178)
20 KB
20 KB PNG
>>108318201
oops, conjugation got cut off by an overlay
>>
>>108318201
No, these things
https://marctenbosch.com/quaternions/
Rotors can be explained without the need of the spooky imaginary vectors, even an idiot like me got it.
>>
File: poop.png (197 KB, 1657x1193)
197 KB
197 KB PNG
and then relate it to the rodriguez rotation formula again, because it's really a dressed up axis-angle rotation
>>
>>108318234
ah, i don't have a write up on those right now.
wedge products and exterior algebra in general is very interesting and enlightening, especially for geometric modelling, but i'm still piecing together some of the underlying algebra in my head because at some point the algebraic formulation becomes easier to understand than the geometric formulation, but takes a lot of additional development to appreciate
>>
>>108318234
rotors are just as complicated as quaternions
>>
>>108318299
Flops wise? Sure. Comprehensibility? It's straight up a pair of reflections, much simpler.
>>108318266
It's okay, I'll try to look at the source of a clifford Python module.
>>
File: krita.webm (948 KB, 1240x848)
948 KB
948 KB WEBM
>>108310425
kinda made it work, but it's super hacky. I tried modifying their existing gradient tool, but the way it works internally is not really suited for this effect. I will make a separate tool.
>>
>>108318561
Really cool. I didn’t know making plugins for krita was a thing. I thought you would have had to put your feature into the krita source and compile krita yourself.
>>
>>108318588
>I didn’t know making plugins for krita was a thing
they have plugin API, both C++ and Python
>I thought you would have had to put your feature into the krita source and compile krita yourself
that's what I did so far. wasn't too bad. they have good docs on how to build it. but now I think I will try Python API, since I will be making a separate gradient tool anyway. also, their build times are abysmal, so I should be able to iterate faster with Python.
>>
File: rpg.webm (2.75 MB, 1586x1031)
2.75 MB
2.75 MB WEBM
I am slowly approaching the moment where I can release the engine as alpha version. That stutter worries me though.
>>
File: KqbbTCdnXH.jpg (678 KB, 2560x1440)
678 KB
678 KB JPG
Since I last posted here:
- Ported to Android
- Reworked renderer to allow many many more properties in a frame
- Added cubemap reflections as a fallback to ssr
- Added bilateral blur to the ssao implementation
- Added sheen
- Added clearcoat
- Optimized GPU pipeline bandwidth
- Fixed some shadow bugs
>>
>>108318754
based black lodge enjoyer. this looks really good.
>>
>>108318777
ty
>>
>>108318511
>Comprehensibility? It's straight up a pair of reflections, much simpler.
no not really there's just two different ways of doing the exact same thing
>>
File: 1745705080615115.png (1.26 MB, 1324x881)
1.26 MB
1.26 MB PNG
>>108313675
Oh shid, I remember you anon
>>
File: K6nkmcoNqH.jpg (897 KB, 2560x1440)
897 KB
897 KB JPG
>>108319727
cheers

- Added ambient light icon and probe icon with custom preview
>>
4 SVO Raymarched Chunks of voxels.
Being seamlessly fed in from the Headless Sim to Renderer in a dynamic and abstracted arena based path. Not a hardcoded path.
>>
That AVDB web demo thing that was only 2D finally came out with a 3D demo:
web:
https://graphics.cs.utah.edu/research/projects/avbd/avbd_demo3d.html
code:
https://github.com/savant117/avbd-demo3d
now, for someone to actually run a side by side comparison with a physics library like jolt or anything to see if this approach is actually fast or not.
>>
Thinking about dropping my two-year-deep project due to dogshit architecture and anti patterns causing performance issues I don’t even understand so I can study proper engine best practices and design patterns so I can make a better engine
>>
>>108320899
Tell us about your dogshit architecture
>>
>>108320902
It’s just a bunch of if statements in a big loop checking for enums and executing arbitrary functions based on the value of those enums. Sometimes it doesn’t even check enum and compares the string of the game objects name instead.
>>
>>108320909
Oh yeah and I do raw malloc and free every time a game objects is created, even for things that pop up and destroy all the time like projectiles. I don’t know why I started malloc on everything I just thought malloc was supposed to make your variables stronger or something.
>>
>>108320922
>Oh yeah and I do raw malloc and free every time a game objects is created, even for things that pop up and destroy all the time like projectiles
This is how games have been doing things for the past 30 years, you've been psyopped into thinking it's slow
>>
>>108320944
Using a memory pool is more optimal, no?
>>
>>108320969
For some specialized cases like a particle system using an an array of particles that you pool is worth it
For general purpose not really, malloc already uses memory pools
>>
>>108320922
Using malloc for each projectile is fine.
The main limiter when it comes to game engines is rendering. You could malloc 10k projectiles easily, but drawing 10k projectiles on a steamdeck at 144hz is another issue... Instancing helps a lot.
If each projectile left a trail of 100's of particles behind it, that would probably require a storing a list of GL_POINTS that expand to quads in a geometry shader + special care of streaming data (see https://wikis.khronos.org/opengl/Buffer_Object_Streaming).
In a way the GPU rendering code forces you to use a memory pool (it's not really a pool, it's just a gigantic singular block of memory that you upload).
For example, all of your particle data could be stored as the exact same memory that you upload to the gpu, so it's just a memcpy to the GPU after you update.
On the AAA pov, you might find yourself storing all your streaming data (particles, animations, motion updates) into one big persistently allocated buffer and manually synchronizing the memory with the GPU using Barriers (storing multiple frames of updates in one buffer, looping back the the start when the size runs out), but that's not necessary unless you are using almost all the vram on your GPU since it would only help with fragmentation maybe, I don't think it offers any FPS increase, but FPS increases depends very much on what is the real bottle neck, is it pixel fill limited?, CPU limited?, vertex limited? warp/wavelet occupancy limited?).
>>
>>108320922
https://www.youtube.com/watch?v=-m7lhJ_Mzdg

this is a really nice cookie cutter setup with good cache coherency. things get way easier when you just set hard limits instead of always trying to dynamically grow. im not a huge fan of fat structs, but you can easily change it while maintaining the original idea. calling malloc on everything everywhere is dumb
>>
>>108321945
>calling malloc on everything everywhere is dumb
good enough for every game developer in the last 30 years but not good enough for your indie game right
>>
>>108321952
you think every game developer is individually calling malloc for every single game object?
>>
>>108321965
Depends what you mean by "every single game object" but pretty much yeah
You can make your own allocator, but it won't be much faster
>>
>>108321971
ok malloc schizo
>>
>>108321952
sure, so why do major game companies roll out their own standard libraries with their own memory management solutions?
>>
>>108321975
https://www.forrestthewoods.com/blog/benchmarking-malloc-with-doom3/
Doom 3 does it
Is your game more demanding than Doom 3? Are you a better programmer than John Carmack? Are any of your beliefs based on evidence instead of dogma?
>>
>>108321979
To be more precise custom memory management is also very common but they do it for reasons that have nothing to do with what you're doing
>>
>>108321979
do not engage with the malloc schizo
>>
>>108321996
>challenge dogma with facts
>you're a schizo!
cargo cult retard
>>
>>108321996
yea, i just wanted to see his response to that one, but it seems malloc and memory management arent related
>>
>>108322014
After dynamic memory managment became fast enough and before consoles / multi-platform every game was pretty much just using plain malloc and free for memory management
Now there's far more things to be concerned with like multiplatform, threading, simd, cache, etc but they aren't a concern to YOU because you aren't making an AAA game
People literally think the way we managed memory for most of game development history isn't good enough for their game, they're completely wrong
>>
>>108322023
>muh dripple ay
Are there any where performance target is above 30 fps?
>>
>>108322129
Reread the post
>>
>>108322133
I shan't. That assassin creed game where faces would go missing had C++ core with C# attachments just so that Ubishit could hire more jeets in place of actual programmers. If you hold that as a beacon of good engineering go fuck yourself.
>>
>>108322196
You probably should reread the post so you aren't arguing against the opposite of what I said
>>
>>108322023
you dont know what im making, and just because its not AAA doesnt mean that its wrong
>>
>>108322226
are you making something where regular memory management isn't sufficient?
>>
>>108322230
its not that that scale yet, but theres nothing wrong with preempting it. we all reinvent a lot of wheels as engine programmers
>>
>>108322259
and what scale is that?
>>
>>108322263
what scale is what?
>>
>>108322273
whats the scale where malloc isnt good enough?
>>
>>108322279
when it shows up on a performance tool as something that takes more time than youd like, or when its the cause of stutters on the timeline
>>
>this shit again
It takes 5 minutes to permanently replace the default malloc() implementation with something like mimalloc, which will cover 99.999% of the 10% of cases where standard malloc would be an issue.
>>
>>108322298
nah bro we have to have arenas or my 2D roguelite wont run at 60 FPS
>>
>>108321952
Aren't most devs using object pooling as a band aid fix for that?
>>108320909
Is this a message bus thing? To what extent are you using that?
>>108321168
Rendering isn't a problem, any non-trivial update logic would hurt more at 10k with cache misses and no option for vectorization.
>>
>>108310169
enginebros... just use https://bevy.org/
>>
File: 1666300064002075.png (33 KB, 1600x1200)
33 KB
33 KB PNG
>>108313675
>>
>>108318561
>>108310425
Dude, please expand upon this. How did you come to with it?
>>
>>108313675
this gold material alone, you can make titles for allah teh streamers, every platform including yt-like, twitch, etc.
>>
>>108321996
>>108321975
That's not the real malloc schizo
>>
>>108323116
>malloc schizo that pretends default malloc isn't ass
>arenafags who saw that one PoE2 talk and now claim you MUST use arenas for your 2D platformer because reasons
>that one guy always going "just use mimalloc"
Every single time memory comes up we have the exact same patterns repeating over and over.
>>
>>108323136
It's like a local comedy performance that makes the general less boring.
>that one PoE2 talk
Link?
>>
>>108323374
I could have sworn they had a talk about it but I can only find this which isn't about memory: https://youtu.be/TrHHTQqmAaM
The results are also completely flooded with slop videos for the niggercattle talking about stupid shit with a basedface in the thumbnail, so maybe I'm just not finding it.
>>
https://arxiv.org/pdf/2602.12949
this is an exciting paper imo, seems like lots of room for optimizing decode speed and environment size
>>
>>108323385
Maybe it was from another developer? Anyway that talk is a good rewatch.
>>
File: 1766854951043628.png (122 KB, 1000x1000)
122 KB
122 KB PNG
>>108323071
>r*ust
>>
File: 1766712504918073.png (84 KB, 971x334)
84 KB
84 KB PNG
>>108323071
Bevy itself tells me not to use it though
>>
Anyone have some thoughts about OpenTK vs Silk.net?
Trying to decide which one to go with for my game that I will most definitely finish. Both seem good for opengl and seem very active, but idk which one is considered the "best".

Would be nice to have some input. And yes hur hur c# gay, but it's the most comfy language.
>>
>>108323071
>moved away from engines like Unreal and Unity because I was fed up with having to follow their patterns and fixed paths
>move to a language with a fucking borrow checker that is 100x worse and makes development a pain
Fuck no, if I wasn't using Jai I'd be using C or maybe Odin, I just want to write code not wrangle abstractions and layers of bullshit.
>>
>>108323923
>Jai
So Jai is good then? Will it be worth the wait?
And ya I know its leaked already, but I rather wait for the proper release.
>>
File: 1757276968593398.png (33 KB, 480x480)
33 KB
33 KB PNG
>>108323572
>0.1 released 2020
>5+ years later still doesn't have a stable release
"Safety" sans stability
>>
>>108324210
Yes, though it's a bit rough in some parts being a beta. I went ahead and used it because I figured I may as well get ahead while I wait for the proper open beta.
>>
lil bro replied to the 3d rotation without 3d math schizo
>>
>>108323023
>Rendering isn't a problem, any non-trivial update logic would hurt more at 10k with cache misses and no option for vectorization.
the lower the specs of your hardware, the larger the issue of rendering becomes. CPU's are VERY strong at budget levels, for example the iphone 16e ($600) has the same CPU power as the m4 (and phones get much weaker than that if you wanted to target them). This is true for the steamdeck as well. The CPU's are usually overkill for the APU's they contain.
And when dealing with CPU bottlenecks, you just need to ask how much time is being spent per entity. So if each entity spent more than 1 microsecond per frame, that's about 1:1 with what I expect with rendering 10k entities without instancing on a steamdeck (maybe WITH instancing if you have enough geometry / dealing with skinning).
But it all depends on a game-per-game basis, obviously if your game is mostly a physics simulator with lots of objects, it's not going to be malloc OR rending that matters, almost all the work and stutter is going to be caused by the physics most likely. Or if you are making a networked game, unless you are using lockstep networking, pretty much everything you do is going to revolve around the limitations of networking, since you can't serialize as many entities over the network as you could render or do "non-trivial update logic" or physics on the main PC.
Rendering could be cheap, especially for a 2D game, you could probably hit 500fps on a steamdeck drawing 10k sprites without instancing, just uploading 6 vertices per sprite. But with 3D games, you immediately get hit with large scale problems, for example naive minecraft voxels quickly shows the limitations of even the strongest GPU's with just a few hundred tiles of view distance.
>>
>>108323098
I just wanted to experiment with ordered dithering, and thought I might as well make something useful with it. I will try to get it into Krita eventually. Here is a very high effort article on the topic, if you're interested: https://blog.maximeheckel.com/posts/the-art-of-dithering-and-retro-shading-web/
>>
How do you guys name your data types?
>>
>>108324778
1 noun + 0 .. N adjectives
>>
Vulkan triangle test in new render engine. Lots of boiler plate in the code not related to this but it is a good idea to do this kind of test.
>>
>>108324810
after I got my Vulkan triangle on screen, I decided I've seen enough, and went back to OpenGL, lol
>>
File: ideal_man_100.mp4 (3.06 MB, 1536x864)
3.06 MB
3.06 MB MP4
>>108323096
>>108323114
thank you, here's some more materials to inspect
>>
>>108325219
i cant stop fingers my asshole to this
>>
>>108323071
I stopped working on my own engine to just use bevy and contribute to it
>>
>>108310398
threat interactive is a retarded larper who is too stupid for graphics programming (he admitted this himself)
>>
File: 1755824559980357.png (48 KB, 913x227)
48 KB
48 KB PNG
>Let me tell you about graphics programming
>O-OpenGL... n-no that's too hard :(
>>
>>108325486
opengl is just as hard as vulkan or DX11 / DX12.
boilerplate code is different, but when you just copy and paste the working boilerplate of a vulkan / etc project, it's not very different than copying the boilerplate of opengl.
a GL developer is still going to spend years wrangling with GL to make anything, just like a Vulkan / whatever Developer might spend years wrangling with whatever.
the sooner you learn a graphics API, the more time you waste.
>>
>>108323023
>Aren't most devs using object pooling as a band aid fix for that?
Object pooling is a thing in high level OOP languages you can do to avoid initialization costs, not neccessary in C++
>>
>>108323136
>>malloc schizo that pretends default malloc isn't ass
It's not, look at the fucking benchmark, it's barely any different to optimized memory allocators libs you fucking cargo cultist
>>
File: malloc_primer.png (480 KB, 1920x8100)
480 KB
480 KB PNG
>>108325621
Where's regdumper (aka the actual malloc schizo) when you need him? He'd knock some sense into you.
>>
>>108325636
I posted a benchmark done by a third party on a commercial video game
You posted a gigantic rant and I don't see any benchmarks
>>
>>108325439
dont worry his team (that has never been proved to exist) will surely cover his inability to do anything other than grift
>>
How many times should I be able to open my game on a single host? 50? 100?
https://meganerd-studio.itch.io/ygg-engine
>>
>>108325892
I tried it earlier today and couldn't connect.
>>
>>108325906
Hmm, I may have been messing with stuff then? Did you update to the v0.0.3 client? I also wiped accounts so if you had an old password its not valid since its got a different db salt value.
>>
>>108325925
Well the account pw wouldn't matter actually, you would just spawn in as a new account. The only other thought is my multiboxing here. If you have trouble, I'll restart the server.
>>
>>108325925
Yes, it was with 0.0.3. Also the input fields were all sorts of fucked on windows version due to caret behavior and effectively not being to correct text mistakes.
>>
File: ygg.png (42 KB, 1368x795)
42 KB
42 KB PNG
>>108325945
Ok, turns out it was due to a username format.
>>
>>108325968
I just casted a spell and you disconnected. Something must have been up. Just restarted the server
>>
>>108325995
I disconnected once I bound a spell to a slot. Then some funky desync started with the rock spell.
>>
>>108325968
You may need to restart your client when disconnected. I fear an issue there still exists.
>>
>>108326002
Yeah, I can tell by to rock spell persisting on the connection screen ui.
>>
>>108326013
Well I appreciate your service. I'll have to sort that out.
>>
>>108326066
Ok, so in short:
Spells disconnects
Opening barrels disconnects (but it's actually opened after reconnect)
Opening mailboxes works
Opening doors disconnects
>>
>>108326092
Thanks, checking it out now why thats the case
>>
>>108323458
https://sdiolatz.info/ndg-fitting/
and now ive found this
im going to get lost down a rabbit hole trying to hack these into a realtime GI system on a 3060 and it feels good man
>>
i'm done with agdg i'm making a 2d engine for lua to test my text editor
>>
>>108328093
>make game engine
>to test text editor
wtf. also, love2d exists.
>>
>>108328903
i wrote the text editor it's my main project
>>
File: 4f9-3848313728.jpg (46 KB, 442x442)
46 KB
46 KB JPG
>>108330114
>>
>>108325219
Hi, I’m Gabe Newell.

I work at Valve. Mostly that means helping really smart people build things and trying not to get in their way.

If you like making stuff, keep doing it. The world could always use more people who ship things instead of just talking about them.

Anyway, thanks for playing our games.

– Gabe
>>
>>108320899
>>108323023
Okay I figured it out. I was returning in the main loop after self destructing a projectile, but then other objects which needed to be removed would have to be removed the next frame, and those ones also return after removing, so they just stack up... fixed it by not returning. Lol
>>
Who
/retroenginedeving/
here?

basically you do shit with like old api's sdks and whatnot
for example
>directx6 game engine
>>
>>108331692
I am making a game that targets the early 2000s graphical style but I avoid old APIs like the plague.

Older really isn't better when it comes to APIs, just look at OpenGL:
>>
>>108331757
how much harder was openGL back in the day? especially in the 2000s?
>>
I would do something, but when I think about it I don't want to do it anymore
>>
>>108331692
a while back, in a flash of nostalgic retardation, I decided to make a game for Amiga. fortunately, after setting up GCC toolchain and building a hello world, I realized I was just wasting time, and abandoned this dumb idea.
>>
>>108331692
i /cuttingedgeenginedeving/
>>
>>108331785
it's easy as fuck to use
shaders just make you reconstruct the fixed pipeline 90% of the time
it's a pretty great exercise to go through the fixed pipeline and derive all the formulas and understand the design decisions made
>>
File: 1772968364806877.png (151 KB, 1095x671)
151 KB
151 KB PNG
>>108323572
it's fine, plugins solve everything and I just lock the version. i moved it to it after years of c++ and opengl.

>>108323923
have you even used rust? its not hard, youre a smart boy
>a fucking borrow checker that is 100x worse
it's pretty simple and makes your code 100x more maintainable, dont let the indians get to you
>>
>>108332071
why not make an amiga-style game for PC, that people might actually play?
>>
>>108332604
well it doesn't matter either way when you're never going to finish anything
>>
>>108331785
it just sucks that you don't have the debug callbacks.
so all your opengl Errors boil down to GL_INVALID_VALUE GL_INVALID_OPERATION GL_INVALID_ENUM and etc.
When you read the documentation, it gets pretty grizzly about all the different reasons why a certain error is returned.
Also you need to check for the error after every function if you want to know exactly which function had an error, and doing this would dramatically affect performance because you are forcing the API to finish executing every operation one by one.
But this is where GL debug callbacks backfire, because if you tried to get a stacktrace (or break into your debugger), it will point you at the wrong location, because you would think "synchronous" debug callbacks would sync to the function (maybe one driver does, but on my nvidia gpu it wont), "ASYNC" callbacks just means the callback will happen in another thread, so you still need to use glGetError after every function, if you want stacktraces to point to the function.
I use a macro. One macro for initialization errors that are always on when I have debug callbacks on, and one macro for runtime functions that need performance, but I could enable checking for runtime functions if I need to.
technically you can use debug groups and markers so that you don't need to use glGetError if you don't mind losing granularity.
And debug callbacks should give you enough info to get a good guess to what kind of function caused the error.
vulkan has validation layers which I believe behaves exactly how it should, which acts like a glGetError after every function (but not surprisingly giving huge slowdowns in many situations), and the reason why it's called "layers" is because any company can write their own validation layer, so there are multiple layers and maybe you can combine them, instead of OpenGL being locked to just the driver's debug callbacks.
>>
>>108331785
Depends, do you want a somewhat modern renderer in terms of implementations, features, and structure? You'll be writing a bunch of boilerplate, reinventing the wheel, and fighting the API every step of the way.

Actually that's all OpenGL, which is why I think people who claim Vulkan is so hard never did more than a very basic 2D renderer. You basically end up building the same structures and systems Vulkan exposes to you on top of OpenGL for any serious project. Except it's harder because it's a system built on top of the OGL API which then interfaces with the underlying, very similar, system.
>>
>>108332725
yeah, meanwhile you can just use bevy's render pipeline https://github.com/bevyengine/bevy/discussions/9897
>>
>>108332736
>bevyschizo
>>
flecs > bevy
>>
>>108332736
>300k LoC
>>108332766
>150k+ LoC
No thanks. An ECS does not need to be more than 3k LoC MAX.
>>
you're not using an llm to write your engine right anon?
>>
>>108332795
your 3k loc ecs sucks
>>
>>108332816
I guarantee you it performs better for my game than flecs or Bevy would.
>>
>>108332803
I use it to help me understand concepts and sometimes do lazy debugging like if I have some graphical glitch I paste my code and give the llm a description of my issue and it'll usually spot it or point me in a general direction but I should probably learn how to actually debug things properly
>>
>>108332803
No but I absolutely use Claude Code to debug. You're dumb if you don't, you don't have to use the solution it provides you if you don't want, you can just ask it to find what's causing something then fix it yourself.
>>
>>108332803
of course not, I am not a fag.
>>
>>108331692
I've made many 2D frameworks in OpenGL 1
>>
>>108333216
If you need AI to fix bugs you might geniunely be retarded
>>
>>108333668
Damn, it has to be great to be some omniscient gigabrain like you who instantly knows where and how something went wrong in a project with several tens of thousands of LoC.

Why don't you show off your game? Games, actually, considering 50% of my time is spent figuring out why, how, and where something I made doesn't work, you who doesn't need to do that must be extremely productive.
>>
>>108333712
>considering 50% of my time is spent figuring out why, how, and where something I made doesn't work
I literally cannot imagine how you work
Once in a blue moon I have a bug that's hard to hunt down but that's because it's highly contextual so AI can't fix that
A normal bug is just "I made a typo"
>>
>>108333725
That's literally how everyone works, the ones who don't have never worked on anything more than a Pong clone. People like Blow and GingerBill, as well as just about anyone making a modern language, spend thousands of man hours making sure error messages are as descriptive as possible because developers lose hour, days or even weeks on bugs in their code that they cannot find the source of. Ghastly error messages are one of the biggest pain points of C++.

Somehow there's always some retard claiming that it doesn't happen to him though, probably also claims he knows how to use anything just by reading the documentation too. These people never show what they've made however, despite their claims meaning they should easily be 10x if not 100x developers compared to people who do release things.
>>
>>108333779
>developers lose hour, days or even weeks on bugs in their code that they cannot find the source of.
That happens but they're the type of bugs AI can't find because they're highly contextua
It's not something that's going to happen often to the programmers you mentioned because they're solo devs in charge of their own project
>>
>>108332829
>I guarantee you
@openai HIRE THIS MAN
>>
hep me
>>
>>108312343
This is very good, I am not seeing evidence of collision handling though which is the last aspect before I determine that this is a complete renderer engine.
>>
>Reposting this here since this place is more programming oriented?
What's the best way to structure an inventory system code design wise?
It is a good idea to have a base item class that all things inherit from (like potions, gear, etc) or make them separate structs/classes but with contracts?
>>
>>108334736
if it's multiplayer, you wrap it around how you would handle networking and ideally client side prediction (there is no one size fits all solution).
but other than that, for a single player game, you could implement the inventory in the worst possible way possible with linked lists and etc and it wouldn't matter. Generally the main issue people have with inventories is the GUI. Your game supports controllers right?
>>
>>108334736
First thing to keep in mind is that your internal representation of inventory should not be seperate as the visual / UI representation
Items should have a pointer to their ItemDefinition which contains all the properties of the item which are loaded at the start of the game. Item stores individual properties like stack size and position within the ItemContainer
I think fat structs are best for the ItemDefinition, you can go the OOP route and have an inheritance tree for every possible kind of item but I find that just ends up with you having to write way more code for little gain
>>
>>108334823
>First thing to keep in mind is that your internal representation of inventory should not be seperate as the visual / UI representation
I meant it SHOULD be seperate, sorry
>>
>>108334736
you could make them regular entities like everything else and do intrusive linked lists mixed into your general entity pool. i mostly like this setup with a few nitpicks:

https://www.youtube.com/watch?v=ShSGHb65f3M
https://www.youtube.com/watch?v=-m7lhJ_Mzdg
>>
>>108334790
>Generally the main issue people have with inventories is the GUI.
Yeah frontend UI isn't really my thing and I'm not sure how to make it look nice.
>Your game supports controllers right?
It's an orblike, so I'm not sure how to translate the controls from KB+M.
>>108334823
>>108334827
>you can go the OOP route and have an inheritance tree for every possible kind of item but I find that just ends up with you having to write way more code for little gain
This is the thing that's bothering me. I keep on designing things out in my head, situations like a pile of gold and a weapon both being of the same fat struct would mean that a lot of the members would go unused. The other way around would just be lots of inheritance trees.
>>108334872
This is nifty, not exactly what I need now but I swear I'll come back to this when I make my own engine in the future.
>>
>>108334964
>situations like a pile of gold and a weapon both being of the same fat struct would mean that a lot of the members would go unused
And what do you lose from that? A few bytes of memory? It doesn't matter
>>
>>108334964
>The other way around would just be lots of inheritance trees
just wrap all the type specific data in a union and keep a type member at the top of the struct and switch on it when you need to access the specialized stuff
>>
>>108335012
That's just a shittier form of inheritance
If your items are complicated enough that you dont want to put them all in one struct, you can do composition like have a Consumable component, Equippable component, Weapon component etc. that you can attach to the base struct
>>
>>108334964
king zigger gave a nice speech about reducing struct size if you really want to rat hole on it but honestly fat structs are fine

https://www.youtube.com/watch?v=IroPQ150F6c
>>
>>108335024
>If your items are complicated enough that you dont want to put them all in one struct, you can do composition like have a Consumable component, Equippable component, Weapon component etc. that you can attach to the base struct
So a fat struct unless you mean attaching it not as a member but ECS.
>>
>>108335024
it has virtually none of the pitfalls of inheritance and is the most simple first step in reducing struct size in a fat struct setup. you can use composition and SoA if you want, that’s also fine
>>
>>108335058
a "fat struct" is where you just put all possible options in the same struct
memory usage isnt really a concern but if your items have tons of functionality you might want to split them up into different components just to make it easier to worth it. Inheritance poses an artifical restriction than your item can only be one thing (a consumable, an equippable, but not both) so composition is better
>>
>>108335065
It is inheritance, just implemented yourself instead of using the language feature
>>
>>108335075
>easier to worth it
easier to work with, wtf is wrong with me
>>
>>108335080
call it whatever you want. if it’s OOP, then it’s the not shit way of doing it because it doesn’t hide away the logic and control flow in a million little files and functions. it’s just a big switch statement interpreting the data.
>>
>>108335075
Oh ok, I read up some more and it strictly prioritizes inline data instead of allowing for pointers. In that case it makes sense to not call it a fat struct.
>>
>>108335108
You're going completely off-topic
>>
>>108310169
do i switch from godot to raylib for a game that has no physics
>>
>>108335930
why?
>>
>>108334736
>inherit
it's so over
>>
>>108325636
Is the point of this transgender wall of text "just use VirtualAlloc instead of malloc to avoid relocations bro"? lmao
>>
>>108335042
I reduce """struct sizes""" by using bit streams lmao.

broke: I must only use standard integer formats and arrange them in a struct so they're packed tightly
woke: my integers have sizes that vary at runtime depending on precision needed, their sizes and offsets are what's stored in a struct
>>
>>108334736
Things in the inventory are just IDs to some static struct in a database that defines all your items. Items that can be in an inventory would also have their own "inventory data" struct in the definition to determine what icon to use, how much space they occupy, etc. If you need a tetris-like inventory, you'll want an inventory entry struct with some extra data (occupied cells etc).

The inventory should just be an array, no need to complicate things.
>>
>>108336701
Yes
God knows why malloc causes so much autism
>>
What can vulkan layers do? Can they be used for video capture/screenshots?
>>
>>108337358
Have you by any chance tried reading, my nigger?
https://vulkan.gpuinfo.org/listinstancelayers.php
>>
i'm tempted to take the godot source and vibe code a better HTML5 export template...
>>
I'm banned on aggy but I don't even dev right now but there's no activist general
>>
File: out.mp4 (197 KB, 1788x840)
197 KB
197 KB MP4
I vibe coded this in a couple hours
https://www.sebastianaaltonen.com/blog/no-graphics-api
over vulkan 1.3 with a bunch of bindless/stateless extensions, did some changes to the api to support presentation, but the main difference is the shaders are still glsl compiled to spir-v offline, it's good enough.
direct access to VRAM, TSLF constant time allocator, no binding or descriptor layout set templates, or texture layout transition, or maintaining X pipelines, just to enable the stencil/depth, minimal and modern synchronization primitives, don't need to care about managing X queue families, enumerating the device capabilities, 1 graphics, 1 compute, 1 transfer, the rest can eat shit.

then to compare, ported the tutorial of the open.gl site to this as a demo, it just has 30% more lines of code than opengl but is as easy to read as opengl. Actually maybe even more since you don't use api calls to set uniforms/textures, you just directly write to damn memory.
OpenGL: 0.2ms per frame
This: 0.03 per frame
>>
File: its-over.jpg (105 KB, 700x662)
105 KB
105 KB JPG
>>108335953
>>
>>108339286
>I vibe coded
stopped reading after that
>>
>>108339286
Post code
>>
File: maskedPostProcessNew.webm (3.88 MB, 854x480)
3.88 MB
3.88 MB WEBM
Working on masking post processes in Unity, really liking the chalky style I'm working on.
Really need to improve how distance is calculated in these shaders..
>>
>>108339286
About to start a similar project myself but I want to use bleeding edge Vulkan stuff. Unified image layouts, descriptor heap, etc.
>>
>>108340944
Will maybe post when I'm done cleaning up some icky stuff and checking if every part of the API does address every aspect the blog post was touching on. Currently verifying barriers/fence.

>>108341550
I told the AI to use the latest vulkan features and all extensions it wanted (It chose 7 + swapchain), so up to 1.4 (the blog post claimed 1.4 was required for all of that) but it settled on 1.3 for some reason, I'm still trying to figure out which stuff from 1.4 would have helped. It does use unified image layouts and a single massive descriptor heap.
>>
>>108341235
>put it in fullscreen
>my head immediately starts to hurt
what is the goal with this?
>>
>>108341587
Which extensions specifically? Also which AI did you use?
>>
File: painterlyRenderr.webm (3.12 MB, 854x480)
3.12 MB
3.12 MB WEBM
>>108341723
idk.
>>
>>108341734
>Which extensions specifically?
VK_KHR_SWAPCHAIN
VK_KHR_DYNAMIC_RENDERING
VK_EXT_DESCRIPTOR_BUFFER
VK_EXT_SHADER_OBJECT
VK_KHR_BUFFER_DEVICE_ADDRESS
VK_EXT_MESH_SHADER
VK_KHR_SYNCHRONIZATION_2
VK_KHR_UNIFIED_IMAGE_LAYOUTS

Added VK_EXT_LOAD_STORE_OP_NONE and VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS following recommendations.


>Also which AI did you use?
Antigravity to access Gemini 3.1 Pro Low Thinking for things I deemed complex or needed a lot of code, used claude Opus 4.6 when running out of quota.
Used flash for simple refactors.
Always used validation layers to verify it behaved cleanly even upon exit.
>>
>>108341805
I mean, don't get me wrong, it's pretty cool from technical standpoint. but I just can't imagine playing a game like that. maybe it could be a nice touch for a card game where card art could be rendered with this filter.
>>
>>108341835
Are you using VMA or doing manual memory management?
>>
>>108341933
memory allocation is done using TLSF (constant time alloc/free)
>>
>>108339286
>1 graphics, 1 compute, 1 transfer, the rest can eat shit.
This goes hard
>>
>>108334872
>children and parent are both shared_ptr instead of making parent a weak_ptr
enjoy your cycling dependency and never decreasing the ref count and having memory leaks despite using smart pointers
>>
File: portalMaskingEnter.webm (3.8 MB, 854x480)
3.8 MB
3.8 MB WEBM
>>108341839
Oh, nah it's probably not going to end up in my game, and if it does it won't be a main/primary rendering style. The oil painty rendering is a little bit too expensive on the GPU and takes too long to set up since surface shaders for objects and the post process stack are related to each other.
It might sound retarded, but any time I can make a 1% improvement to the oil painty shader, I'm able to do something like 10-50% improvements on any other shader.

my games just a schizo art project at the end of the day, generally speaking I'm trying to get masking post-processing shaders and also entering into "portals" to change levels/rendering styles as a sort of gameplay mechanic.
>>
https://www.youtube.com/watch?v=GhlTMsPoaJw

Pixelart render in 3d
>>
>>108342538
not pixel art
>>
File: ygg-spritestack-013025.webm (2.51 MB, 1600x900)
2.51 MB
2.51 MB WEBM
>>108342538
I say its not pixel art. I like the video template though, no fluff.
>>
>>108342538
just render at a lower res and scale up the final result
>>
>>108342777
it will look like shit. even trips can't change it.
>>
>>108343003
It will look like exactly like an old game running at a low res
>>
>>108342061
the point of those videos is not using smart pointers in the first place
>>
unique pointers are good actually
>>
Apparently command buffers are designed to be created and destroyed every frame per vendor recommendation, at least the one that handles drawing.
>>
File: tachyo.png (3.22 MB, 1920x1080)
3.22 MB
3.22 MB PNG
https://www.youtube.com/watch?v=E4n-D_ImhKo

I'm able to do much larger levels now. Before I was baking my SH gi by rendering each individual cubemap face by invoking the entire render pipeline per-face, which would take like 20 minutes for 1 million probes. Now I render many in batches, to avoid the overhead associated with switching render targets. I make a giant 8k by 8k atlas and render each view position (for each probe) into the atlas, then do deferred shading in a similar manner. 1 million probes takes about 150 seconds to do with the new method.

How do I promote this shit better? Reddit and discord feel like a minefield, they don't care what you made they just don't want to see it. I guess I'll just keep shilling it till it picks up traction.
>>
>>108344000
That's cool especially if you made your own engine but it doesn't look good enough to stand out in the sea of other indie games
>>
>>108344082
Yes its a custom engine, ray-traced reflections too. We'll see how it goes. Mechanics wise, the collision detection/surfing mechanic is pretty unique. I think there is more room for tribes-style movement in the market.
>>
>>108344159
>I think there is more room for tribes-style movement in the market.
maybe but you'd have to make it more visually appealing
>>
File: 1727084678306416.png (74 KB, 240x240)
74 KB
74 KB PNG
>Hey I should dust off my toy "3D game from scratch" project
>Remember I'm blocked on needing art
Oh well, maybe I'll have the motivation to learn basic 3D modelling in 6 months when I think about this again.
>>
File: 1772907597285320.jpg (920 KB, 2368x2160)
920 KB
920 KB JPG
Gonna get into coding for games now. Is it true cl@ude (?) can help me a bit with code? I can only do art and 3D.

Regardless, I have to start coding. At most I am interested to tactics and 3D/2D shooters (I imagine both are too complex) but html tier games, puzzle, VN (experience with this in renpy) or rpgmaker tier is not bad for me to settle into.

What to do?
>>
File: muh cache locality.webm (2.91 MB, 785x583)
2.91 MB
2.91 MB WEBM
>muh ecs
>muh cache locality
>>
>>108344521
wow this sucks
>>
>>108344533
you are mom sucks
>>
File: yea.png (43 KB, 790x600)
43 KB
43 KB PNG
>>108344533
how many moving colored rectangles can YOUR engine render on your T480 at 26.26 FPS? yeah, i figured you can't get close to 60k because your cache locality SUCKS
>>
>>108344574
you're not going to be bottlenecked by your CPU data cache drawing 60k rectangles
>>
>>108344574
60k at 26fps is abysmal though
>>
>>108344579
>>108344582
>t. coping retards with shitty cache locality
go back to your gc languages, kiddos
>>
>>108344594
youre """engines""" performance is awful and no amount of shit flinging will fix that
>>
>>108344602
yet youre too embarrassed to post yours. curious.
>>
>>108344606
go download an actual game engine and stop wasting your time
actually you'll still be wasting your time if you download an actual game engine so i guess it doesn't really matter
>>
>>108344574
>>108344594
I was thinking about writing a toy program that uses a compute shader to generate a list of verticies that'll get drawn (via indirect) that uses a geometry shader to generate the squares, and to try shit all over it, but then I remembered that's multiple hours of work and I really don't care.
>>
>>108344594
I can draw 60k rectangles at 60 FPS with no cache locality at all
>>
>>108344000
YOU DO NOT FUCKING DELETE THAT ENGINE
you make it multiplayer
>>
>>108333649
that's actually cool
>>
>>108342236
dreamlabs
>>
File: 1751579225910294.jpg (8 KB, 229x250)
8 KB
8 KB JPG
>make system
>it kinda works somehow
>don't really understand what the fuck I am doing
>use AI as a crutch to get it working
>3 months pass
>I now remember and understand exactly what it's doing despite not having looked at the code for 3 months
>turns out it wasn't as much of a mess as I thought when I go back and read it
Why does the brain work like this?
>>
>>108345358
your subconcious mind has b3en analysing it in the background
>>
>>108344521
>>108344574
>26.26 fps
Are you not using instancing for the rectangles?
>>
What is thread's opinion on C#?
>>
>>108345534
hate microsoft
>>
>>108344594
>>108344574
javascript can simulate 200k particles at 60fps on integrated graphics in a fucking browser

https://tsherif.github.io/webgl2examples/particles.html

your performance is embarrassing
>>
>>108345534
I like to call it "C flat" because it falls flat or "C minus" because that's how I'd grade it.
>>
>>108321979
>>108321965
>>108344574
Even shitty js engines draw over 100k
https://www.goodboydigital.com/pixijs/bunnymark/
>>
>not a single person here has built an engine that can render more moving rectangles than me without using instancing
>everyone just seething and attacking me
lol, pathetic crabs
>>
>>108346174
>instancing
I could do one draw call per rectangle and still get better performance. I don't know wtf you are doing.
>>
File: energy.mp4 (2.56 MB, 1258x1410)
2.56 MB
2.56 MB MP4
Improved energy conservation on higher roughnesses.


>>108346174
>without using instancing
What do you mean by this? Are you saying we can do more rectangles but only using instancing?
>>
>>108324696
Thanks! Recreating art work that came about due to hardware limitations is a rabbit hole and a half.
>>
File: lol_wut.jpg (56 KB, 386x512)
56 KB
56 KB JPG
>>108328093
>making a 2d engine for lua to test my text editor
>>
How did you guys learn to make engines? Did you just jump in and start making spaghetti architecture, or do you have a background of having studied design patterns and things related to game engines, or something else?
>>
>>108346568
I learned to program using Unreal, then after a few years I had enough and started making my own engine in C.

I just jumped in, expect to hit your head against the wall constantly but that's just how everything works.
>>
>>108346574
Yeah I also just jumped in and made a spaghetti monstrosity using C and Raylib. I learned a lot but next project I’m going to study design patterns and best practices before making an engine
>>
>>108346568
I watched all of bennybox's engine related videos and it inspired me. I wish I had had more experience working on actual large projects before jumping into it, but I'm glad I did.

I ended up with an architecture that is ok and very flexible, but I could have had way more progress if I hadn't done so much premature optimization.

Besides how rendering works, all problems in engine dev are software development problems. You should approach them as such. If you can get away with iterating over all of your shit every frame and don't notice a difference (and believe me, this is the case even if you have thousands of objects), then you should not try to optimize it. Just approach it as the most basic way possible.
>>
>>108317128
>>108317201
>>108317227
So you guys know math and linear algebra? I suck at math. lol.
>>
>>108346568
im going through this book:
>https://paroj.github.io/gltut/

at around chapter III I started making my own engine and now instead of using his exercise files im implementing them in my own engine. Also added stuff he doesnt brush on like .glb file loading and dearIMGUI usage
>>
File: lightningshot.png (2.19 MB, 1920x1080)
2.19 MB
2.19 MB PNG
>>108344784
I'm thinking of scrapping it. I should have just worked in an actual engine from the start, so I could put my energy into experimenting with 3D design. People don't care about custom engines, they want something that looks good.

Multiplayer would be a huge gamble, I don't think people would have any interest in playing a multiplayer indie game with mediocre netcode. And the research effort to get good multiplayer would take another year at least.

There isnt much interest in what I have now, the other guy was right. It doesn't matter if you are solo, your visual quality needs to match at least what a dedicated graphics person could do.
>>
>>108347055
You're wrong. Anything that has enough custom code looks soulful as fuck. Difference has a quality of its own. People can tell when they're just running a low quality game built on top of an already standard engine.
>>
>>108346568
I started programming when I was young, depending on the context you have before hand it you may need some front loading of information.
>Did you just jump in and start making spaghetti architecture
I did just jump in and start making spaghetti architecture. Trust in general your ability to learn by doing. I don't think studying is worth anything unless that means briefly reading and then spending hundredfold times that doing it myself.
>>
>>108344000
>>108347055
Retro looking shooters are popular as fuck. Simple renderer can carry you but you need consistent and stylized assets instead of slapping graphical effects. Meanwhile too much effects start to hinder visual clarity.
As for the rest, pure action games are difficult to promote so you are better off making the game a ripoff of a classic fps game.
As for multiplayer, arena shooter is a gamedev suicide at this point.
>>108347084
This. UE might look good, but the smell carries over for a long time.
>>
>>108346568
Design patterns don’t matter. If you need a pattern you will figure it out on the fly when it’s actually relevant to you.

I learned to program in Lua, then C and assembly a long time ago and then I watched dozens of episodes of handmade hero and read lots of resources like learnopengl and blogs and the rest was just practice in order to actually make software larger and larger in scope, doesn’t have to be games, can be anything as long as your LoC count is exponentially increasing with each new project (I recommend writing a few toy compilers), then the rest was basically just experience and literally trial and error figuring out what ideas are good or bad and training intuition. There aren’t any shortcuts, you just have to put the hours in like with any other skill.
>>
NEW THREAD
>>108348900
>>108348900
>>108348900
>>
File: cubular.png (698 KB, 1922x1080)
698 KB
698 KB PNG
trying to get tergain to work. Just had to screen shot this visual.

SVO Raymarched Voxels.
>>
>>108347084
>You're wrong. Anything that has enough custom code looks soulful as fuck
nah he's right, players dont care



[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.