Voxel pig edition/gedg/ Wiki: https://igwiki.lyci.de/wiki//gedg/_-_Game_and_Engine_Dev_GeneralIRC: irc.rizon.net #/g/gedgProgress Day: https://rentry.org/gedg-jams/gedg/ Compendium: https://rentry.org/gedg/agdg/: >>>/vg/agdgGraphics Debugger: https://renderdoc.org/Requesting Help-Problem Description: Clearly explain your issue, providing context and relevant background information.-Relevant Code or Content: If applicable, include relevant code, configuration, or content related to your question. Use code tags.Previous: 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.
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.
>>108310398You 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.
>>108310169does 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.
>>108310233So 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.
>>108311847You 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.
>>108312067geometry 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).
>>108312067nothing, the geometry shader stage was a mistake
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
>>108312343man you are such a loser
>>108310176Speaking 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?
>>108312408Unless it's used for blocks it would only be bad for large entity count which you really have to try to spawn in minecraft.
>>108310176Why the name change?
>>108310945first 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 representationspractically, 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 matrixthen you work out a perspective projection matrix (also a little tough)you use scaling, translation, and rotation to pose your geometryyou use one of the projection matrices, particularly the perspective matrix along with a divide, to do what you are askingi'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 slopname a better antialiasing technique
>>108313186DLAA
>>108313175how well does it handle updating the meshes when adding or removing blocks?
>>108313175Furthermore 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
>>108313222Adding/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.
>>108313370tldr
>>108313387Updating 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.
>>108313446who cares
>>108313529The anon who asked
I'm back. Will be posting updates more regularly than once every three years.
>>108313545I asked but it was in jest
>>108313806get the fuck out
I set up a cron schedule to create nightly builds of my game :^)
>>108312360disregard this, you're cool anon :)
>>108314480do you make nightly commits to your version control?
>>108312509To distance themselves from minecraft further.
>>108314778I commit every time I do anything >git commit -m “it kinda works now”
>>108314480>>108315139why not CI that builds and publishes an artifact on push then?
>>108315149I don’t know
>>108312570i 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
>>108310398He 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.
>>108312343Good job man ignore the guy who called you a loser he is in fact a loser.
>>108316318He can't do anythingAll he can do is complain about things, he doesn't know what it takes to fix them (otherwise he wouldn't be complaining)
>>108310398I 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 areThere's this big sentiment among game consumers that game developers are generally incompetent, bad and worthy of scorn and hatredThese 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
>>108313370i 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?
>>108316318just donate and his personal unreal engine fork dreams will come true one day, trust him
>>108316517are you retarded?
>>108316517Stupid nigger! IS THIS YOU!???!! https://www.youtube.com/shorts/Lc8700J-BFk
>>108314480>>108315149How do I get into CI/CD as a windows user that insists on everything being done on my own machine?
>>108316556You don't need to do that if you're making games
>>108316536>>108316541are 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
>>108316584oh i thought you were being serious
>>108316129it pays to go step by step, there really aren't that many concepts involvedyou figure matrix stuff out by observing what happens to the coordinates under different transformationsi know my notes are very terse, but pic related introduces matrix-vector multiplication
>>108317128for instance, working out a scaling matrix is braindead simplethe goal is to multiply each coordinate by a (potentially different) scaling factorjust look at what the matrix does to the coordinates
>>108317157translations 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 usefulit'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.
>>108317201and like i said, rotation takes a little effort to represent welleuler 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 anglepic related is for 3d, but can be easily adapted to 2d.
>>108317227you pretty much always want to specify a pose by first scaling, then rotating, then translatingthe 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 vectorwhen expressed in
>>108316556I use an Ubuntu VM for CI/CD (created with VMware). it runs Jenkins, and makes builds for all the platforms I support.
>>108317329now on to the projection matricesfirst, it helps to define a windowing transformation that maps an axis-aligned box to another axis aligned boxit 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
>>108312343Yes 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.
>>108317366Are there any good guides on how to get all that set up?
>>108317371an orthographic projection matrix results in something that looks like architectural blueprints, where things DON'T get smaller with distanceit'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
>>108317400
>>108317398I can't recommend anything. I learned it from a course on LinkedIn Learning (my company pays for access).
>>108317366I applaud you on your effort to do anything except make a game
>>108317406now, to answer your question: how to make things get smaller with distance?a perspective projection is based on a pinhole camera modelin 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 samethe 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' / zthis means you need to divide by the distancelinear transforms can only multiply things and add them together, so it seems like it can't be done with matriceshowever this is where the equivalence of projective coordinates in >>108312570 comes to the rescue
>>108317594it's easiest to derive the result first in 2done 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
>>108317624the 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
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 >>108312570the 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 independing on your use case, the full pipeline look something like pic related
>>108317674the "world space computation step" is things like lighting, which your application doesn't seem to needthe "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.
>>108317524thanks, I don't really like making games.
>>108317227Do 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?
>>108317442Thats unfortunate, I have no clue where to begin. Most I normally find is "best practices," but never how to implement them
>>108318090if by rotors, you mean rotations using quaternions, you first define a bunch of quat stuff in pic related
why are you dumping math tutorials
>>108318201oops, conjugation got cut off by an overlay
>>108318201No, these thingshttps://marctenbosch.com/quaternions/Rotors can be explained without the need of the spooky imaginary vectors, even an idiot like me got it.
and then relate it to the rodriguez rotation formula again, because it's really a dressed up axis-angle rotation
>>108318234ah, 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
>>108318234rotors are just as complicated as quaternions
>>108318299Flops wise? Sure. Comprehensibility? It's straight up a pair of reflections, much simpler.>>108318266It's okay, I'll try to look at the source of a clifford Python module.
>>108310425kinda 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.
>>108318561Really 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 thingthey have plugin API, both C++ and Python>I thought you would have had to put your feature into the krita source and compile krita yourselfthat'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.
I am slowly approaching the moment where I can release the engine as alpha version. That stutter worries me though.
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
>>108318754based black lodge enjoyer. this looks really good.
>>108318777ty
>>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
>>108313675Oh shid, I remember you anon
>>108319727cheers- 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.htmlcode:https://github.com/savant117/avbd-demo3dnow, 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
>>108320899Tell us about your dogshit architecture
>>108320902It’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.
>>108320909Oh 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 projectilesThis is how games have been doing things for the past 30 years, you've been psyopped into thinking it's slow
>>108320944Using a memory pool is more optimal, no?
>>108320969For some specialized cases like a particle system using an an array of particles that you pool is worth itFor general purpose not really, malloc already uses memory pools
>>108320922Using 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?).
>>108320922https://www.youtube.com/watch?v=-m7lhJ_Mzdgthis 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 dumbgood enough for every game developer in the last 30 years but not good enough for your indie game right
>>108321952you think every game developer is individually calling malloc for every single game object?
>>108321965Depends what you mean by "every single game object" but pretty much yeahYou can make your own allocator, but it won't be much faster
>>108321971ok malloc schizo
>>108321952sure, so why do major game companies roll out their own standard libraries with their own memory management solutions?
>>108321975https://www.forrestthewoods.com/blog/benchmarking-malloc-with-doom3/Doom 3 does itIs 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?
>>108321979To 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
>>108321979do not engage with the malloc schizo
>>108321996>challenge dogma with facts>you're a schizo!cargo cult retard
>>108321996yea, i just wanted to see his response to that one, but it seems malloc and memory management arent related
>>108322014After dynamic memory managment became fast enough and before consoles / multi-platform every game was pretty much just using plain malloc and free for memory managementNow 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 gamePeople 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 ayAre there any where performance target is above 30 fps?
>>108322129Reread the post
>>108322133I 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.
>>108322196You probably should reread the post so you aren't arguing against the opposite of what I said
>>108322023you dont know what im making, and just because its not AAA doesnt mean that its wrong
>>108322226are you making something where regular memory management isn't sufficient?
>>108322230its not that that scale yet, but theres nothing wrong with preempting it. we all reinvent a lot of wheels as engine programmers
>>108322259and what scale is that?
>>108322263what scale is what?
>>108322273whats the scale where malloc isnt good enough?
>>108322279when 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 againIt 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.
>>108322298nah bro we have to have arenas or my 2D roguelite wont run at 60 FPS
>>108321952Aren't most devs using object pooling as a band aid fix for that?>>108320909Is this a message bus thing? To what extent are you using that?>>108321168Rendering isn't a problem, any non-trivial update logic would hurt more at 10k with cache misses and no option for vectorization.
>>108310169enginebros... just use https://bevy.org/
>>108313675
>>108318561>>108310425Dude, please expand upon this. How did you come to with it?
>>108313675this gold material alone, you can make titles for allah teh streamers, every platform including yt-like, twitch, etc.
>>108321996>>108321975That'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.
>>108323136It's like a local comedy performance that makes the general less boring.>that one PoE2 talkLink?
>>108323374I 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.12949this is an exciting paper imo, seems like lots of room for optimizing decode speed and environment size
>>108323385Maybe it was from another developer? Anyway that talk is a good rewatch.
>>108323071>r*ust
>>108323071Bevy 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 painFuck 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>JaiSo 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.
>>108323572>0.1 released 2020>5+ years later still doesn't have a stable release"Safety" sans stability
>>108324210Yes, 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.
>>108323098I 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?
>>1083247781 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.
>>108324810after I got my Vulkan triangle on screen, I decided I've seen enough, and went back to OpenGL, lol
>>108323096>>108323114thank you, here's some more materials to inspect
>>108325219i cant stop fingers my asshole to this
>>108323071I stopped working on my own engine to just use bevy and contribute to it
>>108310398threat interactive is a retarded larper who is too stupid for graphics programming (he admitted this himself)
>Let me tell you about graphics programming>O-OpenGL... n-no that's too hard :(
>>108325486opengl 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 assIt's not, look at the fucking benchmark, it's barely any different to optimized memory allocators libs you fucking cargo cultist
>>108325621Where's regdumper (aka the actual malloc schizo) when you need him? He'd knock some sense into you.
>>108325636I posted a benchmark done by a third party on a commercial video gameYou posted a gigantic rant and I don't see any benchmarks
>>108325439dont 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
>>108325892I tried it earlier today and couldn't connect.
>>108325906Hmm, 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.
>>108325925Well 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.
>>108325925Yes, 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.
>>108325945Ok, turns out it was due to a username format.
>>108325968I just casted a spell and you disconnected. Something must have been up. Just restarted the server
>>108325995I disconnected once I bound a spell to a slot. Then some funky desync started with the rock spell.
>>108325968You may need to restart your client when disconnected. I fear an issue there still exists.
>>108326002Yeah, I can tell by to rock spell persisting on the connection screen ui.
>>108326013Well I appreciate your service. I'll have to sort that out.
>>108326066Ok, so in short:Spells disconnectsOpening barrels disconnects (but it's actually opened after reconnect)Opening mailboxes worksOpening doors disconnects
>>108326092Thanks, checking it out now why thats the case
>>108323458https://sdiolatz.info/ndg-fitting/and now ive found thisim 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 editorwtf. also, love2d exists.
>>108328903i wrote the text editor it's my main project
>>108330114
>>108325219Hi, 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>>108323023Okay 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 whatnotfor example>directx6 game engine
>>108331692I 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:
>>108331757how 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
>>108331692a 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.
>>108331692i /cuttingedgeenginedeving/
>>108331785it's easy as fuck to useshaders just make you reconstruct the fixed pipeline 90% of the timeit's a pretty great exercise to go through the fixed pipeline and derive all the formulas and understand the design decisions made
>>108323572it's fine, plugins solve everything and I just lock the version. i moved it to it after years of c++ and opengl.>>108323923have you even used rust? its not hard, youre a smart boy>a fucking borrow checker that is 100x worseit's pretty simple and makes your code 100x more maintainable, dont let the indians get to you
>>108332071why not make an amiga-style game for PC, that people might actually play?
>>108332604well it doesn't matter either way when you're never going to finish anything
>>108331785it 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.
>>108331785Depends, 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.
>>108332725yeah, 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+ LoCNo 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?
>>108332795your 3k loc ecs sucks
>>108332816I guarantee you it performs better for my game than flecs or Bevy would.
>>108332803I 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
>>108332803No 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.
>>108332803of course not, I am not a fag.
>>108331692I've made many 2D frameworks in OpenGL 1
>>108333216If you need AI to fix bugs you might geniunely be retarded
>>108333668Damn, 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 workI literally cannot imagine how you workOnce 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 thatA normal bug is just "I made a typo"
>>108333725That'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 contextuaIt'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
>>108312343This 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?
>>108334736if 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?
>>108334736First thing to keep in mind is that your internal representation of inventory should not be seperate as the visual / UI representationItems 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 ItemContainerI 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 representationI meant it SHOULD be seperate, sorry
>>108334736you 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=ShSGHb65f3Mhttps://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 gainThis 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.>>108334872This 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 unusedAnd 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 treesjust 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
>>108335012That's just a shittier form of inheritanceIf 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
>>108334964king zigger gave a nice speech about reducing struct size if you really want to rat hole on it but honestly fat structs are finehttps://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 structSo a fat struct unless you mean attaching it not as a member but ECS.
>>108335024it 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
>>108335058a "fat struct" is where you just put all possible options in the same structmemory 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
>>108335065It is inheritance, just implemented yourself instead of using the language feature
>>108335075>easier to worth iteasier to work with, wtf is wrong with me
>>108335080call 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.
>>108335075Oh 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.
>>108335108You're going completely off-topic
>>108310169do i switch from godot to raylib for a game that has no physics
>>108335930why?
>>108334736>inheritit's so over
>>108325636Is the point of this transgender wall of text "just use VirtualAlloc instead of malloc to avoid relocations bro"? lmao
>>108335042I 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 tightlywoke: my integers have sizes that vary at runtime depending on precision needed, their sizes and offsets are what's stored in a struct
>>108334736Things 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.
>>108336701YesGod knows why malloc causes so much autism
What can vulkan layers do? Can they be used for video capture/screenshots?
>>108337358Have 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
I vibe coded this in a couple hourshttps://www.sebastianaaltonen.com/blog/no-graphics-apiover 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 frameThis: 0.03 per frame
>>108335953
>>108339286>I vibe codedstopped reading after that
>>108339286Post code
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..
>>108339286About to start a similar project myself but I want to use bleeding edge Vulkan stuff. Unified image layouts, descriptor heap, etc.
>>108340944Will 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.>>108341550I 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 hurtwhat is the goal with this?
>>108341587Which extensions specifically? Also which AI did you use?
>>108341723idk.
>>108341734>Which extensions specifically?VK_KHR_SWAPCHAINVK_KHR_DYNAMIC_RENDERINGVK_EXT_DESCRIPTOR_BUFFERVK_EXT_SHADER_OBJECTVK_KHR_BUFFER_DEVICE_ADDRESSVK_EXT_MESH_SHADERVK_KHR_SYNCHRONIZATION_2VK_KHR_UNIFIED_IMAGE_LAYOUTSAdded 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.
>>108341805I 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.
>>108341835Are you using VMA or doing manual memory management?
>>108341933memory 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_ptrenjoy your cycling dependency and never decreasing the ref count and having memory leaks despite using smart pointers
>>108341839Oh, 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=GhlTMsPoaJwPixelart render in 3d
>>108342538not pixel art
>>108342538I say its not pixel art. I like the video template though, no fluff.
>>108342538just render at a lower res and scale up the final result
>>108342777it will look like shit. even trips can't change it.
>>108343003It will look like exactly like an old game running at a low res
>>108342061the 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.
https://www.youtube.com/watch?v=E4n-D_ImhKoI'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.
>>108344000That'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
>>108344082Yes 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
>Hey I should dust off my toy "3D game from scratch" project>Remember I'm blocked on needing artOh well, maybe I'll have the motivation to learn basic 3D modelling in 6 months when I think about this again.
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?
>muh ecs>muh cache locality
>>108344521wow this sucks
>>108344533you are mom sucks
>>108344533how 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
>>108344574you're not going to be bottlenecked by your CPU data cache drawing 60k rectangles
>>10834457460k at 26fps is abysmal though
>>108344579>>108344582>t. coping retards with shitty cache localitygo back to your gc languages, kiddos
>>108344594youre """engines""" performance is awful and no amount of shit flinging will fix that
>>108344602yet youre too embarrassed to post yours. curious.
>>108344606go download an actual game engine and stop wasting your timeactually you'll still be wasting your time if you download an actual game engine so i guess it doesn't really matter
>>108344574>>108344594I 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.
>>108344594I can draw 60k rectangles at 60 FPS with no cache locality at all
>>108344000YOU DO NOT FUCKING DELETE THAT ENGINE you make it multiplayer
>>108333649that's actually cool
>>108342236dreamlabs
>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 itWhy does the brain work like this?
>>108345358your subconcious mind has b3en analysing it in the background
>>108344521>>108344574>26.26 fpsAre you not using instancing for the rectangles?
What is thread's opinion on C#?
>>108345534hate microsoft
>>108344594>>108344574javascript can simulate 200k particles at 60fps on integrated graphics in a fucking browserhttps://tsherif.github.io/webgl2examples/particles.htmlyour performance is embarrassing
>>108345534I like to call it "C flat" because it falls flat or "C minus" because that's how I'd grade it.
>>108321979>>108321965>>108344574Even shitty js engines draw over 100khttps://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 melol, pathetic crabs
>>108346174>instancingI could do one draw call per rectangle and still get better performance. I don't know wtf you are doing.
Improved energy conservation on higher roughnesses.>>108346174>without using instancingWhat do you mean by this? Are you saying we can do more rectangles but only using instancing?
>>108324696Thanks! Recreating art work that came about due to hardware limitations is a rabbit hole and a half.
>>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?
>>108346568I 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.
>>108346574Yeah 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
>>108346568I 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>>108317227So you guys know math and linear algebra? I suck at math. lol.
>>108346568im 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
>>108344784I'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.
>>108347055You'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.
>>108346568I 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 architectureI 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>>108347055Retro 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.>>108347084This. UE might look good, but the smell carries over for a long time.
>>108346568Design 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
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 fucknah he's right, players dont care