← Home ← Back to /g/

Thread 106332806

314 posts 124 images /g/
t. pogeet !!b2oSUmilA2N No.106332806 >>106332840 >>106338910 >>106343752 >>106344369 >>106349401 >>106369626 >>106370397 >>106372721 >>106372735 >>106384446 >>106390149
"U Can't Touch This!" 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.

Previsous: >>106292911
t. pogeet !!b2oSUmilA2N No.106332840 >>106344571
>>106332806 (OP)
ah, forgor the subject
**/gedg/ - Game and Engine Development General #298**
Anonymous No.106333132 >>106351847
What is this? a 2d version fractal block world?
Looks very cool and the bunny is cute
Anonymous No.106334394 >>106334574 >>106336931
>>106328935
for example, i rely on gpu features such as "TypedUAVLoadAdditionalFormats" which arent available on all cards that support d3d12, operating system features such as wic 2.0, and cpu features like avx2
Anonymous No.106334503 >>106337016 >>106343708 >>106398127 >>106402439
Fuck it, I'm just gonna learn Vulkan.

How hard can it be?
Anonymous No.106334574
>>106334394
Guess you will have to list them all then or stop using that shit.
Anonymous No.106335073 >>106335193
Should I let the server apply user commands to its simulation and then propagate the changes to clients or should I just relay the user commands itself to the clients so their local simulations apply those commands.
t. pogeet !!b2oSUmilA2N No.106335193 >>106335262 >>106335284 >>106340211
>>106335073
if you do not want to encourage your clients cheating, its better to let the server take care of everything.
Anonymous No.106335262 >>106335328
>>106335193
Well the server will still be authoritative, just that the clients will have to calculate the changes themselves. One cheating aspect would be wall-hacking though, as the client gets all the user-input commands from the others.
Anonymous No.106335284 >>106335328
>>106335193
>let the server take care of everything.
That will make the game utterly unplayable in all but the absolute best conditions (e.g. < 20ms latency).
t. pogeet !!b2oSUmilA2N No.106335328 >>106335400
>>106335262
>the client gets all the user-input commands from the others
why have a server then?
The point of the server is to have a centralized architecture where you will have the ability to control the chaos.
>>106335284
>That will make the game utterly unplayable
that's what all the games do though.
I am suggesting it after going though Unreal Tournamet's source code. That is what they did.
In case you are imagining that the animations of the 3D model will also be updated by the server, your assumption is gravely mistaken. Only entity's data will be passed, like position, velocity and a few other parameters. The server will update that data, the size of which won't even be as much as a blank html web page, validate with the game's state and return the final state of the client in the game world back to the client.
Anonymous No.106335400 >>106335415
>>106335328
If you say "everything" some retard will interpret it as no clientside prediction.
t. pogeet !!b2oSUmilA2N No.106335415
>>106335400
yeah, it took me a while to figure out how retarded some /gedg/ can be.
Which is why I gave a brief explanation about a possible retardation. Hopefully, that hits the mark.
t. pogeet !!b2oSUmilA2N No.106336475 >>106344722
>>106331320
the game looks really nice.
Each floor having a different layout and not generated precedurally is a lot of work. No wonder it took so long.
I got filtered by GPU requirements, as expected of unreal engine but its a W when it comes to storage space usage. Gotta see.
Anonymous No.106336931 >>106337111
>>106334394
You make a std::vector<> of every extension you require and ask the API if it's supported at game launch. For CPU features you can use compiler functions like __builtin_cpu_supports("avx2") and have different paths you take if the CPU does or does not support it. My advice is just decide what makes sense for your userbase and only support that or better. Too hard to support every possible configuration of hardware.
Anonymous No.106337016 >>106337165 >>106338447
>>106334503
it's not enought to just "learn" vulkan. you also need to implement opengl-like framework on top of it. this is fool's errand.
Anonymous No.106337106
save yourself time yourself time and learn d3d11. it's the best, most accessible graphics API. and there is dxvk native library you can use for linux build.
Anonymous No.106337111 >>106337165
>>106336931
the cpu checks are easy enough, same with a good few of the gpu checks. im more cautious of features that i have forgotten about but still using. like just assuming i have access to conservative rasterization and sampler feedback. i guess i just have to work my way backwards to find it all
Anonymous No.106337165 >>106337277
>>106337111
Why do you need conservative rasterization? I thought I needed it for doing Voxel Cone Tracing, but I ended up just doing it in a compute shader manually and the performance was better and it didn't require that explicit feature. I don't know about D3D but Vulkan has the concept of a profile, so you support the profile and all gpus that support that vulkan profile will work. Just pick something conservative and don't worry about it.

>>106337016
You don't need the entirety of OpenGL reimplemented, just the specific parts for your engine.
Anonymous No.106337277
>>106337165
i havent gotten around to using conservative rasterization yet, but i had the idea i could use it for faster occlusion culling
profiles sound like a nice solution. at the moment the fastest thing i can think of is just slowly walking up the inheritance tree of my api objects until something breaks. checking os features might be a lot slower if i have to spin up vms with updates uninstalled one by one, or i can just tell people to update their damn computers, like microsoft already pesters people about
Anonymous No.106338447 >>106338891 >>106343667
>>106337016
That's like saying that to make your own engine you have to implement a Unity-like framework. Not true at all, you only implement what you need, OpenGL is massive.

Plenty of people have made Vulkan renderers, so it's not impossible at all.
Anonymous No.106338891
>>106338447
>OpenGL is massive.
It really isn't. Massive is something like C++ standard library. OpenGL, if you ignore the stuff that only exists for backwards compatibility is actually tiny.
Anonymous No.106338910
>>106332806 (OP)
>s to shrink
>does it
>hmm neat
>obviously you need to shrink down again inside the little area
>bonks head against ceiling cluelessly
dropped like a stone. get fucking good.
Anonymous No.106340211 >>106342174
>>106335193
Kick out the cheaters?
Anonymous No.106341681
Have to fix an old feature that I really liked, but it's so difficult. This sucks.
Anonymous No.106341870 >>106341977
As a shitty dev, who doesn't do dev as their day job, its been a dream of mine to make a number munchers clone/framework, so that it could be used to teach various concepts through the munchers-style gameplay. Unfortunately I have no experience in gamedev.

If this game is the only game I care about making, what would people recommend I do/use?
Anonymous No.106341977 >>106342284
>>106341870
Gamemaker.
t. pogeet !!b2oSUmilA2N No.106342174
>>106340211
maybe. Or you can force them to only spectate a round or two. Whatever you feel like.
Anonymous No.106342284
>>106341977
>Gamemaker
Sweet, thanks
t. pogeet !!b2oSUmilA2N No.106342293 >>106342677
https://demo.dynamicslab.ai/chaos
Right now, its shit.
But if we consider the possibility that AI is gonna git gud and this is gonna become less shittier, it might really make it.
However, imagine the amount of GPU needed to pull this off on a larger scale, the scale that a video game in production deal with. Using AI for running games is several times more expensive than just making a AAA games. I don't think games with an AI generated world priced at 50$ can afford a playtime of over an hour or two without taking a loss.
Its something but shit regardless. If adding more GPUs is the solution to the make these AI generated world games playable, they will have no choice but to cope harder with expensive bills just from their consumers using their product.
Anonymous No.106342677
>>106342293
>unresponsive
>constantly morphing
This shit isn't going anywhere, complete waste of time. I could only see this being used in VR for a couple of hours before being tossed in the bin even if they fixed object persistence and responsiveness.
Anonymous No.106343667
>>106338447
>That's like saying that to make your own engine you have to implement a Unity-like framework
Yes? You need to implement some gameplay framework, like GameObject/Component, ECS, scene system etc.
Anonymous No.106343708
>>106334503
if your goal is misery you have made the right choice
Anonymous No.106343741
What's up with slang weird inconsistent syntax? Why can't they just stick to one convention. It looks like they mix conventions from all existing programming languages. They even have 2 different ways to declare a function.
Anonymous No.106343752
>>106332806 (OP)
Is that silksong?
Anonymous No.106344369 >>106345142
>>106332806 (OP)
are you south indian pyaare anon?
Anonymous No.106344571 >>106345142
>>106332840
The absolute state..
Anonymous No.106344722 >>106345142
>>106336475
Thanks anon, you might be able to run it in low settings and low res, but the GI lighting might filter you
Anonymous No.106344732 >>106344763 >>106344910 >>106345311 >>106345494 >>106357524 >>106358732 >>106358853 >>106359141
Do you guys follow Clean Codeβ„’?
Anonymous No.106344763 >>106344910
>>106344732
>Clojure
>I could keep the frame rates up in the high 20s
lol. lmfao even.
Anonymous No.106344910 >>106344927
>>106344732
>>106344763
If you're wondering what sort of technical and visual marvel can't go beyond 30fps.
This is the true power of clojure.
Anonymous No.106344927 >>106344935 >>106344940
>>106344910
Where's the original article? I need to read about this technical marvel now.
Anonymous No.106344935 >>106344954 >>106345405 >>106348407
>>106344927
https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html
Anonymous No.106344940 >>106345142
>>106344927
>https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html
Here you go, my favorite part is
>ClojureScript compiles right down to Javascript and runs in the browser just fine
But if you give it a try it takes half a minute to load after nearly 200 requests because absolutely nothing is packaged.
Anonymous No.106344954 >>106345142
>>106344935
Oh shit. I didn't realize this was an Unc Bob original, lol. Amazing.
t. pogeet !!b2oSUmilA2N No.106345142 >>106345317 >>106345401 >>106349807
>>106344369
>are you south indian
yes. I live in Hyderabad.
>>106344571
happens.
Its fine as long as I fix it on the next thread.
>>106344722
I will have to upgrade then
>>106344940
>after nearly 200 requests
in that case, ClojureScript is an absolute trash that barely works.
>>106344954
what's ironic is that he went head over heels about Closure after reading SICP and yet somehow, he still has it in him to shill his retarded clean code idealogy. Bizarre.
Anonymous No.106345311
>>106344732
Clean Code is the best way to minimize bugs because it will make your program frustratingly slow and unusable and so no one will bother using it long enough to encounter bugs
Anonymous No.106345317
>>106345142
> what's ironic is that he went head over heels about Closure after reading SICP and yet somehow, he still has it in him to shill his retarded clean code idealogy. Bizarre.

he can't exactly throw away his lifes work of shilling the most obnoxious OOP heavy corpo slop even after he's seen the light.
Anonymous No.106345401 >>106345535
>>106345142
>yes. I live in Hyderabad.
Caste?
Anonymous No.106345405
>>106344935
This nigger is such a grifting kike.
Surely he is not actually this retarded.
Anonymous No.106345419
Benis xDDD
Anonymous No.106345474 >>106345535
Hey that game looks pretty neat.
Wish I could make my own engine already. Right now I read documentation for sdl3 and it makes me feel anxious because I don't deeply understand all the syntax.
Oh well. Nothing to do but keep staring at it until stuff clicks/try to write some of it on my own
Anonymous No.106345494
>>106344732
t. pogeet !!b2oSUmilA2N No.106345535 >>106345733
>>106345401
Kshatriya. Not like it actually matters.
The only two places that really looks into that shit are the retarded government for its wage slave hiring and the even more retarded educational institutions.
>>106345474
>I don't deeply understand all the syntax
SDL library is based on event based architecture.
The library gives you events about windowing(resize, move, maximize, minimize), I/O events of peripherals like keyboard, mouse, joystick, monitor and much more but we don't need all of them just for running a game.
You just process those events and design your application(or your game in this scenario). Just figuring out how your games should respond to these events, like what you want your game to do when players presses W,A, S, D keys or moves the mouse, is pretty much all of our game development.
Anonymous No.106345733 >>106345747
>>106345535
>Kshatriya
Just wanted to see if you'd say "i am brahmin saar" which would have guaranteed you were dalit.
t. pogeet !!b2oSUmilA2N No.106345747
>>106345733
>dalit
I wouldn't be here if I were one lmao
I would have been very busy actually shitting on the streets and committing vandalism without a care.
Anonymous No.106346421 >>106346684 >>106346778 >>106348407 >>106351914
newb questions:
I hate shitty shadows and I hate realtime shadows shitting all over my frametimes.
For an outdoor 3D RPG I plan to bake lighting for 5-9 sun positions and then swap them when time progresses and the player is in a state where he doesn't see the shadows, for example when in inventory or in a first person sneeze animation covering the view.
Is that a stupid idea? What total disk size for lightmaps can I expect? My guess is <2GB
t. pogeet !!b2oSUmilA2N No.106346684
>>106346421
>Is that a stupid idea?
maybe or maybe not. Depends on what art style you went with and what hardware you are targeting.
>What total disk size for lightmaps can I expect?
the math seems simple to me
(lightmap_texture_size_x) * (lightmap_texture_size_y) * (number_of_lightmap_textures, as in number of times you wish to swap as time progresses)
since the lightmap texture's size depends on how big your world is, as in total number of 3D objects while all of them are appropriately scaled, its hard to tell how huge they'll become.
Anonymous No.106346778
>>106346421
Having the sun lighting change suddenly after a pause menu will make players think the game bugged out. If you're going to change the lighting, do it in a consistent way, like interpolating the lighting or sending a message to the player about the current time.
Anonymous No.106346944 >>106347028 >>106347466
Where should I start? Raylib? SDL? The idea is to learn C through gamedev to eventually acquire the foundations for enginedev.
t. pogeet !!b2oSUmilA2N No.106347028
>>106346944
>learn C through gamedev
Raylib
Anonymous No.106347466 >>106347532
>>106346944
Use a real engine first
Anonymous No.106347532 >>106349747
>>106347466
I have made several games using Godot and Unity, but my curious nature makes me wanna learn how game engines work under the hood and have full control of everything. I have a basic understanding of """low""" level languages like C and C++ but no real experience aside from book's challenges.
Anonymous No.106348407
>>106344935
>high 20s
this has to be satire

>>106346421
you could cheat like old video games and have a screen to indicate the time of day is transitioning, you can also compress the lightmaps which will help
Anonymous No.106349401
>>106332806 (OP)
Super Mario Land: Minish Cap ahh idea
Anonymous No.106349747
>>106347532
Vulkan
Anonymous No.106349807 >>106352850
>>106345142
>yes. I live in Hyderabad.
cool
i have beeing seeing your posts on /g/ for a long time and i admire how knowledgeable you are about some stuff
that's all i have to say
Anonymous No.106350675 >>106350703 >>106350710 >>106350827 >>106351159 >>106352850 >>106358239
what do you use to write glsl shaders?
vs code extensions ive tried are alright but sometimes just broken in inexplicably particular ways (like not knowing what Gl_position is)
Anonymous No.106350703
>>106350675
Notepad++
Anonymous No.106350710
>>106350675
vscode extensions, clion extensions
Anonymous No.106350827 >>106350858
>>106350675
Nothing. I'm using the leaked Jai compiler with only syntax highlighting since nothing supports much more than that, and even that barely works.

I'm not gonna bother hopping IDEs so I'll probably do GLSL/Slang/whatever the same way.
Anonymous No.106350858 >>106351214
>>106350827
ive considered doing everything in slang but i have zero experience with hlsl
Anonymous No.106351159
>>106350675
I used one or two vs code extensions. I recently switched to slang which has an official extension which I enjoy.
Anonymous No.106351214 >>106354130 >>106354573
>>106350858
Transitioning from GLSL to slang is effortless. Your code doesn’t change outside of minor syntax stuff.
Anonymous No.106351233 >>106352850
How do you guys deal with transitioning rotation quats to eulers and back again for UI purposes?
Anonymous No.106351616 >>106352370
I've been testing a new camera mode that conserves the original resolution but doesn't cut any excess, which means that there's no black borders no matter how you resize the window, it just draws more. It's pretty sweet to be able to play the game at fullscreen and see everything.

But I've realized that this may lead to inconsistencies like objects spawning earlier or later, not to mention that levels will be more annoying to make because you can't hide cut off tiles anymore. My new solution: the game internally draws an area of 1600x600, but displays as 800x600 (the intended resolution), which means that there's a lot of leeway for people that want to play in widescreen but every game internally is operating at 1600x600, which makes things consistent and easier for me. The downside is that extending the height of the window will make the game unplayable, but no one plays games with a vertical monitor anyway.
Anonymous No.106351847 >>106359721
>>106333132
Thanks. Now that I think about it, there are some things in common between that game and what I'm making. I could probably create a level where you explore a fractal shape.
Anonymous No.106351914
>>106346421
you can smooth blend between lightmaps, many games do this
Anonymous No.106352370 >>106352528
>>106351616
If anything, the 0.2% of players using ultrawides will love this.
Anonymous No.106352528
>>106352370
We must go wider.
t. pogeet !!b2oSUmilA2N No.106352850
>>106349807
>how knowledgeable you are about some stuff
nah, I'm just your typical jack of all trades, master of none.
After believing that programming was a mistake, I started learning biology for a career switch. Gotta see.
>>106350675
>what do you use to write glsl shaders?
Emacs with glsl-mode and glslc for compilation. Not perfect but good enough.
>>106351233
if you need to go back, its better to not apply the transformations and store them as a sequence of operations instead(you don't need to go back at all this way) because the matrix transformation operations are not commutative. The order in which the transformation is applied matters.
Anonymous No.106353307 >>106353422 >>106354578 >>106360119 >>106360252
>barely even crossed 50 units sold first day
it's fucking over, i'm finished
Anonymous No.106353422
>>106353307
Congrats on your first. If you're still willing to try, your next game will be way better.
Anonymous No.106354130 >>106354142 >>106354573
>>106351214
slang is like one of those rust libraries. it oversells itself as the next best thing in the world, but it's actually half-baked, full of bugs project in eternal alpha state.
not recommend.
just stick to hlsl.
Anonymous No.106354142 >>106354575 >>106354578
>>106354130
what is slang?
Anonymous No.106354573
>>106351214
>>106354130
funny, my only experience with slang was transfering some simple example code to it then getting confused when the extension found no mistakes but it would not compile (it did not give an error message)
was only later told uniforms need to be hlsl style, they should have fixed that now
Anonymous No.106354575
>>106354142
https://shader-slang.org
t. pogeet !!b2oSUmilA2N No.106354578
>>106353307
even AAA studios will share the same fate if they don't spend millions on marketing their game so, for a first game in 2025, where the market is extremely saturated, that's a farily decent W
>>106354142
>what is slang?
https://github.com/shader-slang/slang
>Slang is a shading language
>Slang is based on years of collaboration between researchers at NVIDIA, Carnegie Mellon University, Stanford, MIT, UCSD and the University of Washington.
>first commit dates back to june 2017
>Autodesk is using slang for aurora path-tracer
>valve compiles source 2 hlsl code using slang
it'll always be in beta stage with bugs due to the constantly adapting GPU driver implementations so as long as you are not using any of the latest, cutting edge tech features, its a good option to go for.
t. pogeet !!b2oSUmilA2N No.106355729
bomp
Anonymous No.106356177 >>106356291 >>106356731 >>106357386
what the fuck is an allocator
t. pogeet !!b2oSUmilA2N No.106356291
>>106356177
https://www.gingerbill.org/series/memory-allocation-strategies/
Anonymous No.106356731
>>106356177
a thing that allocates
Anonymous No.106356959
>doing Vulkan tutorial
>at 300 LOC and counting, still not drawing a colored window let alone a triangle
Anonymous No.106357033 >>106357042 >>106357090 >>106357247
wtf am I doing wrong?
Anonymous No.106357042 >>106357056 >>106357090 >>106357237 >>106357247
>>106357033
It should look like this
Anonymous No.106357056
>>106357042
Ignore the inverted X/Y. The problem is around the edges.
t. pogeet !!b2oSUmilA2N No.106357090 >>106357130 >>106357247
>>106357033
>>106357042
I think its displaying normals of the second hit position and not the first hit location of the ray and sphere.
Check how you are doing the hit test and for what solution you are calculating the normals of.
t. pogeet !!b2oSUmilA2N No.106357130
>>106357090
>of the ray and sphere
of the ray and sphere intersection
Anonymous No.106357156
> thought that a scene will take 1-2 days to make
> have been tardwrangling this shit for the last 5
wonderful, at least all that's left is finishing touches
Anonymous No.106357237 >>106357247 >>106357258 >>106357774
>>106357042
Result.Z = 1.0 - Result.Z; because camera is looking at +ve Z
Anonymous No.106357247 >>106357258
>>106357033
>>106357042
>>106357237 (me)
meant for >>106357090
t. pogeet !!b2oSUmilA2N No.106357258 >>106357269
>>106357237
>>106357247
ah, makes sense.
Anonymous No.106357269
>>106357258
It's still buggy though.
Anonymous No.106357386 >>106357492 >>106357524 >>106366226
>>106356177
obsolete technology. it's something like using a horse instead of a car. this could be fun to manage your horse and clean the horseshit, but it's not practical anymore.
Anonymous No.106357492
>>106357386
>obsolete technology
Why do you think we still allocate variables on stack? Isn't that obsolete? Why do we clean up function preamble when we return? Why don't we use garbage collection for that?
Anonymous No.106357524
>>106357386
t. Uncle Bob getting 20fps in his Asteroids clone >>106344732
Anonymous No.106357774
>>106357237
> / 2*a
wow that was a retarded mistake
Anonymous No.106358065
>random 2D indie platformer with Youtube devlogs
>final one is a post mortem
>spent the last 25% of development fiending over a few dozen wishlists
>advertised via devlogs, tweets, reddit posts, instagram, the lot
>500-2000 wishlists, sub-100 Steam reviews, less than 500 copies sold
Why do people not understand it's not 2008 anymore?
Anonymous No.106358239 >>106358275 >>106358313
>>106350675
a mix of simple text editor and massive rage/frustration. gpu tooling is a joke it fucking sucks and will never get better unless you buy nvidia hardware and sue cuda.
t. trying to build a simple sdf modeller it fucking sucks
Anonymous No.106358275
>>106358239
>sdf modeller
Nice.
Anonymous No.106358313
>>106358239
By utilizing nature itself and using that information to minimize the amount of shaders and their complexity.
>Realistic Games
Switch to PBR and minimize shader code
>Gamey Looking Sovl Games
Use shaders to get a fixed function pipeline, which again leads to minimization of shader code
Anonymous No.106358732
>>106344732
Anonymous No.106358853
>>106344732
>You also probably don't want Java, or C#.
I like how he thinks this is some gotcha. Yeah no shit you fat boomer retard, though Clojure is considerably slower than either of those.
Anonymous No.106358863
I checked out O3DE and what stuck out to me is literally everything is a component of an entity. The only other engine I have experience with is Unreal where stuff like lights are their own objects.
Anonymous No.106359111 >>106359562 >>106359606 >>106360087 >>106360090 >>106360587
anyone have resources on how to do multithreading effectively in a game engine? i don't know much about concurrency, i'd like to have my engine take advantage of all the available cores on a machine but idk how to do that safely.

any recs for articles or books or whatever for learning how to do multithreading correctly?
Anonymous No.106359141 >>106359189
>>106344732
It is possible to use Clojure + LWJGL to get decent framerates (like saturating a 144hz monitor decent), but you'll have to do most of your work on the GPU, for expensive CPU work you might have to have an accompanying .DLL / .SO where your hotpath stuff goes. If it helps you iterate faster during development by using the JVM I don't think it's the worst idea. If you only care about desktop that is. I'll stick with C++23 personally.
Anonymous No.106359189 >>106359278
>>106359141
That sounds like a huge pain in the ass instead of just using a real language.
Anonymous No.106359278 >>106361449
>>106359189
It's really not. JNI is really easy to use, Java is a real language, it's faster than Python lol. Now if we were talking about making a game using Node.JS I would agree with you. I use Lua (Teal) and have a path in my codebase so I can live reload logic. Language doesn't really matter as long as you're hitting your framerate target without requiring 30GB of ram or a $700 cpu. Fast iteration speed is the goal.
Anonymous No.106359335 >>106359386
there is no convenience features that justify a 1000X drop in performance. just learn the fucking pointers, its not hard
Anonymous No.106359386 >>106359445 >>106361449
>>106359335
But it depends on the game anon. People literally ship games using C# right now. It's not a forgone conclusion that performance will be shit unless you use C/C++/Rust

Java isn't slow, it just has a bad rep thanks to stuff like Minecraft. I don't even use Java for my dev work I just recognize it's not universally a garbage choice for every game.
Anonymous No.106359445
>>106359386
java and c# are fine, but games can't afford a GC stop
Anonymous No.106359562 >>106359704 >>106360090 >>106360476
>>106359111
somebody PLEASE respond
Anonymous No.106359606 >>106359626
>>106359111
i wish, most stuff just covers basic concurrency. the best i can recommend is to look up talks (not pajeet tutorials) on multithreading on youtube and itll at least give you a starting point

thats at least what ive done and i feel i have a pretty good foundation
Anonymous No.106359626
>>106359606
darn that's unfortunate. thanks anon, will do
Anonymous No.106359704
>>106359562
Well there is multithreading and then there is vectorisation, there is no magic formula.
Learn about locks & semaphores, producer and consumer problem
Anonymous No.106359721
>>106351847
Just needs some nice rule34 for the chick character and you are set. Any drawfags here?
Anonymous No.106360087 >>106360338
>>106359111
most people focus on graphics when it comes to engines, which isn't ideal for multi-threadding.
You can multi-thread graphics, but all that you are doing is just reducing the work on the graphics thread (but this can come with latency trade-offs, on the bright side the FPS might be higher if you had a CPU bottleneck on the graphics thread?).
It's also nice to support a single thread mode, for example if your game ran on emscripten (running on the web through OpenGL -> webgl), free website hosting (github pages / itch.io) doesn't support SharedArrayBuffer which is required for emscripten threading (due to security meltdown/spectre cross-orgin thingy, self hosting with special headers can enable it).
You shouldn't fuck with multi-threading if you don't have a good sense of performance benchmarking on a single thread, because you will always be surprised by how disappointing your optimizations are.
Generally the biggest wins for performance are memory-bound layout issues than threading related (cpu bound), you need a lot of compute for threads to matter (and chances are you are already using a library that is going to use all your threads, like for physics "jolt" or whatever). You would thing you NEED threads or else you miss out on 8x performance increases, but memcpy would not benefit from having 8 threads doing a memcpy segmented into 8 parts, because it's a memory bound issue, 1 thread saturates all the memory bandwidth. And also I remember reading a CPU internals talk, and I think it claimed that 90% of the time spent on the CPU is spent waiting for memory.
This isn't helpful but this is a good intro on branch prediction and a bit on performance, since I do look back at this at times.
https://www.youtube.com/watch?v=2EWejmkKlxs
Anonymous No.106360090 >>106360108
>>106359111
>>106359562
I have no links, but you can have this:
- If the task is i/o heavy I might use a thread
- If the task is cpu heavy I might use a process
- Threads share memory, processes do not but in *nix they can fork with the current memory but it will lose sync from there. So you might have a message queue, where workers put messages on.
Anonymous No.106360108
>>106360090
Also check the cost of just doing something immediately, it might be better than spawning a process anyway
Anonymous No.106360119
>>106353307
>50 units sold first day
Come on man, dont behave like an /agdg/ nigger faggot. 50 is a damn good number specially in the absolute state of the market rn when there's a million companies spamming asset flops
Anonymous No.106360252
>>106353307
Link?
Anonymous No.106360338
>>106360087
*well code is also memory, so threads can help speed things up significantly because it can more efficiently get through more code since 90% (or whatever) of the time spent on the CPU is waiting for memory (that includes code), and that waiting reduces the bandwidth (and it's pretty unlikely the memory controller is the bottleneck unless you are running an AI).
It wouldn't be a bad idea to lay out your code in such a way where you could switch to a multi-threaded mode if FPS was a problem, but there are unlimited ways of doing this, simple features could completely change how you approach multi-threadding, such as multiplayer support (probably a bigger and more difficult issue to figure out than threading, good luck).
Anonymous No.106360476 >>106361623
>>106359562
https://guide.handmadehero.org/code/day122/
Now I assume you have the ability apply yourself.
Anonymous No.106360587
>>106359111
I think the "proper" way is to use a job system/thread pool, Doom Eternal notably has almost everything running as concurrent tasks. I don't have any links, though, and it's probably overkill if you aren't a AAA dev
You can also do main thread + render thread, that's good enough for most games
Concurrency isn't that good for optimizing games, so it's not that important
t. pogeet !!b2oSUmilA2N No.106361449 >>106401471
>>106359278
>JNI is really easy to use, Java is a real language
Though shit like safety checks and object marshalling are a pain, JNI by itself is somewhat bearable but what makes it unbearable is the having to use Java for dealing with all that shit. A true horror of dev experience.
Thank you, Googre.
>>106359386
>People literally ship games using C# right now
yes but not using things that are actually written in C#.
If all that C# code calls the underlying C++ code then C# is just a DSL and as a DSL, it at most can be as good as Lua.
Anonymous No.106361623 >>106363688
>>106360476
>day 122
>10 years ago
game has to be finished soon, right?
Anonymous No.106361757 >>106361885 >>106365176
I finally finished upgrading my lighting system, inspired by Spartan engine's implementation. All 3 light types get converted into the SB_Light uber struct which are packed into an array and uploaded to the gpu. This completely fixed my "payload" dilemma. The fragment shader uses a bit flag to discern the light type and which data to use. I simply loop through the lights and accumulate their contribution. The number of lights is sent through a push constant. I upgraded to slang just so I could create member functions. It's a lite version of Spartan engine which loops the lights inside the render loop itself and does one compute dispatch per light given it isn't disabled or distance culled. Next up is adding a cubemap which means refactoring my texture class. I also need to create a proper render target object for stuff like the render image, depth images, etc. images that I actually write to.

In the video you'll notice the back faced lighting is white. I don't remember if my old code had that and I'm not sure if I should bother fixing it. I think I know what's causing it. There's no shadows either and I don't know when I'll address that if at all before ray tracing. I probably will though for learning purposes. Anyway here's the fragment shader for those interested: https://pastebin.com/QSUnn8f5
Anonymous No.106361885
>>106361757
Cool stuff. Good to see you again!
Anonymous No.106362525 >>106362547 >>106362675 >>106365076 >>106390216
What is some cool literature (or other sources) on explaining how to design games as experiences?

Like, what makes a good experience in game, or how to construct playful experience etc.

Can be also on gamification of things in general

I know it's hard to capture the essence but I hope some of you anons get it
Anonymous No.106362547 >>106362647
>>106362525
That’s an /agdg/ question
Anonymous No.106362647
>>106362547
Thanks Anon, will post there
Anonymous No.106362675
>>106362525
The best way to understand what makes games good is by playing them, both good and bad ones, even demos or romhacks. Eventually you'll realize everyone's idea of what makes a game fun is often at odds with each other and the best you can do is find your niche and build on that. People like to see what they know. Also, presentation matters, even if /v/ likes to pretend otherwise.
Anonymous No.106362800 >>106362862
This effect is trippy af in tight spaces.
Anonymous No.106362862 >>106363440
>>106362800
Looks great. What engine is this?
Anonymous No.106362886 >>106362901 >>106366194
So google AI just casually gave me a function for how to do a capsule light. Had to replace the attenuation formula with my point light one though. I thought capsule lights required integration and "advanced math" but this was a solid 8 lines of code.
Anonymous No.106362901
>>106362886
I should say technically this is a line light which is probably why the math is so simple. The fragment just finds the nearest point on the line.
Anonymous No.106363440
>>106362862
It's made from scratch.
Anonymous No.106363688 >>106363713
>>106361623
Anon, even if you include day 600 that is still less than 6 month of single dev lifetime. If you ignore explaination/blackboard session then we are barely reaching 3 months.
Anonymous No.106363713 >>106363748
>>106363688
Can't wait till he finishes the game in another 30 years and I can finally complete the tutorials and make my own game
Anonymous No.106363748 >>106363787
>>106363713
There are people already working at AAA studios only after the first 50 videos. It's your fault if you can't get out of tutorial hell anon.
Anonymous No.106363787
>>106363748
That was sarcasm btw
t. pogeet !!b2oSUmilA2N No.106365076
>>106362525
>explaining how to design games as experiences?
not a well organized source but J-blow streams are amazing.
I picked up most game design stuff form his streams.
Anonymous No.106365176 >>106365253
>>106361757
is this deferred or forward, time to get some shadows and bounce lighting in there anon
Anonymous No.106365253 >>106365296
>>106365176
Forward. Outside of SSGI I don’t think I’m going to bother with any non ray traced GI methods. Likewise I probably won’t ever do deferred shading, although apparently a g-buffer is handy for post processing. There’s still a lot on the todo list before that stuff though.
Anonymous No.106365296
>>106365253
Honestly just 1 bounce will make your graphics pop immediately. Forward is fine, Forward+ in combination with instant radiosity aka virtual point lights works well, since your VPL lights will have a small radius and be amenable to light culling
Anonymous No.106365443 >>106365448 >>106365460 >>106366057 >>106366871 >>106369638
Can I ask which of these fonts you guys prefer? (1/2)
Anonymous No.106365448 >>106365460 >>106366057 >>106366871 >>106369638
>>106365443
(2/2)
Anonymous No.106365460 >>106365473
>>106365443>>106365448
the first one is easier to read. Also the second one piss me off for some reason
Anonymous No.106365473
>>106365460
kek got it thank you.
Anonymous No.106366057 >>106369027
>>106365443
>>106365448
neither. add a few more pixels
Anonymous No.106366194
>>106362886
All lights require integration and "advanced math", it's just that you can derive a simpler formulation for some of them.
Anonymous No.106366226 >>106366498
>>106357386
you're right we should all switch to using files. files are more flexible and have built-in persistency and off-loading to disk. they can be just as fast anyway thanks to the filesystem caches that most operating systems have. files are the future. replace malloc() with open() and memory reads/writes with read()/write().
t. pogeet !!b2oSUmilA2N No.106366498 >>106367044
>>106366226
>replace malloc() with open() and memory reads/writes with read()/write().
Unfortunately that used to work well with HDDs but the modern SSDs made it an obsolete technology.
We should switch to sockets that are more flexible than files that handle only static data. We need to replace the read()/write() with send()/recv().
Anonymous No.106366871
>>106365443
>>106365448
You should try a third one, neither of these are all that appealing to me, but the second is better.
Anonymous No.106366932 >>106367106
Trying to use the inotify bindings in odin for hotreload of shader code Inotify_Event :: struct {
wd: Wd,
mask: bit_set[Inotify_Event_Bits; u32],
cookie: u32,
len: u32,
name: [0]u8,
}

how do you read the name here? Are you supposed ot transmute it to a cstring ptr?
Anonymous No.106367044
>>106366498
i think we should move past that and just use something as generic as pipe, it way more flexible
Anonymous No.106367106
>>106366932
you needed some weird cast. Here if anyone has the same problem
package main
import "core:fmt"
import "core:sys/linux"
import "core:strings"

main :: proc() {

event: ^linux.Inotify_Event
fd, err := linux.inotify_init()
buffer: [4096]u8
if err != .NONE {
fmt.printf("error inotify_init: %v\n", err)
}
wd: linux.Wd
wd, err = linux.inotify_add_watch(fd, "/home/pex/temp/", {.CREATE , .MODIFY, .DELETE} )
if err != .NONE {
fmt.printf("error inotify_add_watch: %v\n", err)
}

flags, errr := linux.fcntl_getfl(fd, .GETFL)
linux.fcntl_setfl(fd, .SETFL, flags + { .NONBLOCK })
for true {
length, err := linux.read(fd, buffer[:])
if err != .NONE && err != .EAGAIN {
fmt.printf("error read from fd: %v\n", err)
}
i : u32 = 0
for i < cast(u32)length {
event := cast(^linux.Inotify_Event)&buffer[i]

if event^.len > 0 {
n := cast([]u8)event^.name[:]
len := cast(int)event^.len
name := strings.string_from_ptr(raw_data(n), len)
isDir := false
if .ISDIR in event^.mask {
isDir = true
}
if .CREATE in event^.mask {
fmt.printf("created: %v\n", name)

} else if .MODIFY in event^.mask {
fmt.printf("modified: %v\n", name)
} else if .DELETE in event^.mask {
fmt.printf("deleted: %v\n", name)
}

}

i += size_of(linux.Inotify_Event) + event^.len
}
}
linux.inotify_rm_watch(fd, wd)
linux.close(fd)

}
Anonymous No.106368052 >>106368188 >>106368434 >>106369686
progress
stopped playing around with the steam api and added a very simple foliage shader. eventually id like to replace it with a sweet OIT implementation since i hate the fringes i get when alpha testing, you either get pixelated cutouts or get fringes, theres no sweet spot. though maybe its because im suck with shitty nonpremultiplied pngs
Anonymous No.106368188 >>106368539
>>106368052
I like it.
Anonymous No.106368434 >>106368539
>>106368052
Are you not simply discarding? Also which api are you using?
Anonymous No.106368539 >>106368967 >>106369686
>>106368188
thanks anon

>>106368434
>Are you not simply discarding?
in that pic i discard at 0.9, in picrel at 0.5
>Also which api are you using?
dx12
Anonymous No.106368967 >>106369165
>>106368539
Why don't you just multiply RGB by the alpha, then they'll fade out smoothly. Discarding fragments doesn't improve performance anyway.
Anonymous No.106369027
>>106366057
Can't really add a whole lot more, unfortunately. The game's base resolution is 320Γ—180, so each letter can only be a few square pixels in size, otherwise they'd be too big.
I'd like to try and fix up the first one. I think I can make some letters, like the lowercase T and M, look better. I'd really like to improve the lowercase E (it's way too big IMO), but I can't think of any ways to do it at the moment.
Anonymous No.106369165
>>106368967
that sadly wouldnt help since id still need to merge that with what is behind it
Anonymous No.106369626 >>106374023
>>106332806 (OP)
Why is the character avatar a girl but you control a mouse in-game?
Anonymous No.106369638 >>106370336
>>106365443
>>106365448
https://www.youtube.com/watch?v=KIvLywqLCW0
Anonymous No.106369686 >>106369937
>>106368052
>>106368539
What do your pngs have to do with anything? If you want to alpha blend those leaves you need draw them in sorted order
Anonymous No.106369937 >>106370157
>>106369686
i cant sort them because the faces cross each other so two triangles can be both in front and behind each other at the same time
Anonymous No.106370157 >>106370373
>>106369937
You can use order independent transparency. General idea is that for each pixel you store all the fragments that you would render there, sort them, and then render in the correct order, to handle the triangle intersection case. It's vram intensive but you can make it work by limiting the number of potential fragments to store and sort. Unless you have a shitload of foliage or hair strands or other geometry that has heavy transparency don't bother.
Anonymous No.106370336 >>106372268 >>106373798
>>106369638
Here's a (hopefully) improved version. Some of the lowercase letters don't take up as much horizontal space anymore, and instead of rendering a blinking dot at the end of the line, I render a blinking arrow at the bottom-right corner once all the text is shown.
Anonymous No.106370373
>>106370157
yea i know, thats also what i initially said i plan to do, or at a minimum experiment with it
Anonymous No.106370397 >>106374023
>>106332806 (OP)
cute game, name?
Anonymous No.106371231 >>106380843
> you can combine rasterizer and raymarcher in one renderer if you use the depth buffer
why did no one ever tell me that.
Anonymous No.106371946 >>106380843
Ok Im going back at it with my game, I'm GPTing myself out of art at the moment, but I think i will hire a local artist eventually. Im enjoying too much making it and I want it to be pristine even if Im going to be the only one to play it. the best thing is Im not using scenes, only gdscript instantiation and pure shader scripts, , almost no editor stuff. Also i make it so i can create enemies and their behaviour with a simple json file.
Anonymous No.106372231 >>106372297
Who here is using tinygltf?
Anonymous No.106372268
>>106370336
That's better.
Anonymous No.106372297
>>106372231
cgltf has better compile times, but you can use any JSON parser you want the spec is simple to work with.
Anonymous No.106372385 >>106372529 >>106372864 >>106372875 >>106380834
>bro don't learn Vulkan right off the bat it's too hard
>you gotta learn OpenGL first bro trust me
Why do people parrot this? OpenGL is a shit API, with Vulkan you actually learn what you are doing instead of a bunch of black-box function calls, and learning OpenGL then learning Vulkan will ALWAYS be slower than just learning Vulkan from the start.
Anonymous No.106372407 >>106378691
I'm returning to my engine after more than a month and man wtf was I doing. I put the same function in a util file and in the Entity class WHICH ONE IS THE RIGHT ONE
Anonymous No.106372529
>>106372385
I think learning graphics programming is moot if you aren’t already familiar with the goings of a 3D game engine and the asset pipeline. You should already know what a vertex is, uv unwrapping, materials, etc. Overall be familiar with traveling in between Blender and Unreal. After that it’s irrelevant whether you start with OpenGL or Vulkan because you’re doing to be doing a grueling amount of work anyway. I dabbled in OpenGL but moved to Vulkan before I knew even how to conceive a light just bc I wanted to go all in like a man.
Anonymous No.106372721
>>106332806 (OP)
What's the game? Looks cool.
Anonymous No.106372735 >>106374023
>>106332806 (OP)
Ah I guess it's your own game. Can you shring into the smallest box? Why no camera zoom the other time the rabbit shrinks?
Anonymous No.106372864
>>106372385
I saw a job listing for someone that needed to know OpenGL 1.2 a couple weeks ago. Made me wish I'd got off my ass and just like made game.
Anonymous No.106372875
>>106372385
>with Vulkan you actually learn what you are doing instead of a bunch of black-box function calls
saying this reveals you know neither API
t. pogeet !!b2oSUmilA2N No.106373798
>>106370336
much better than the previous two.
Anonymous No.106374023 >>106374092 >>106374114 >>106374134
>>106369626
You can switch, one is fast and the other is slow. I also want them to be able to talk with each other like in Zwei.

>>106370397
I'll figure out a name when I release a demo, probably.

>>106372735
Yes. You can resize to jump to a different scale and resize inside the layers themselves.
Anonymous No.106374092 >>106374198
>>106374023
i will literally buy your game if you release it just because i love the art style so much
t. pogeet !!b2oSUmilA2N No.106374114 >>106374198
>>106374023
Your game can benefit a lot from relying on SVGs instead of plain old textures. Just saying.
I know that SVGs requires a different kind of approach for drawing, a different kind of renderer and implementing such renderer is a lot of work, especially with proper gradient and triangulation support but it will help with avoiding the pixelated look that the current rasterized textures are giving when performing zoom-in (background is getting more and more pixelated as the bunny progresses into a smaller level) and the shrink-gigantification of the bunny character.
Its about time we had fast, opensource SVG rendering libraries at our disposal for games baka
Anonymous No.106374134 >>106374198
>>106374023
Do they... you know what... ?
Anonymous No.106374198 >>106374210
>>106374092
Thanks. It was a long journey to get to the artstyle the game has now.

>>106374114
Yeah, at least the fonts are SDF. I wish I had the time to implement something like that.

>>106374134
lol, they are frens, for now
t. pogeet !!b2oSUmilA2N No.106374210
>>106374198
>I wish I had the time to implement something like that
I'm already on it but it'll take a while(around 5 months), so lets see for the next game.
Anonymous No.106374405 >>106374416 >>106374989
Question: Im thinking of moving from Win10 to Arch. Can I still gamedev on ArchLinux? Unity/Unreal/Godot?
Anonymous No.106374416 >>106374427
>>106374405
Godot, yes. Im not sure about unreal or unity
Anonymous No.106374427 >>106374741
>>106374416
Update: ChatGPT says Unity and Unreal have linux versions that work on ArchLinux. Sorry for shitting up your board.

Another question: Will there ever be a top-tier Rust game engine? And if not, should I not bother with learning Rust?
Anonymous No.106374741
>>106374427
>Will there ever be a top-tier Rust game engine?
no
Hi all, Anonymous here... No.106374926 >>106374959
anyone know an ECS that's compatible with beeflang?
Anonymous No.106374959
>>106374926
no, one of the downsides of using uncommon languages is that you spend all your time wrapping C bindings, you can code your own or use the C api flecs offers. (or some other C based one)
Anonymous No.106374989
>>106374405
Nope
Anonymous No.106375086 >>106375089
I’m having to make major changes all over my code just to get a cubemap working in Vulkan. Had to rewrite my texture class to support cubemaps, had to rewrite my importer to support loading a single mesh from a gltf instead of the entire scene, now I have to make an entirely new descriptor array dedicated to cubemaps so I can use cubeSampler in the shader. Alternatively I could just use a push descriptor but I’ll have to do that stuff eventually anyway. And render doc doesn’t work with push descriptors for whatever reason so I’ve been avoiding them.

The biggest realization though is how fucked my resource management is and how flimsy communication is between textures, materials, nodes, meshes which are all in their respective vectors and refer to each other by index which is made on import and not able to change. I’m not using maps or unordered maps or anything, just regular old vectors. My renderer is made to support loading one gltf on start up and that’s it. I’ll have to research how engines juggle bindless resources and also the need to implement some kind of entity component system for proper scene management is creeping up on me.
Anonymous No.106375089 >>106375119
>>106375086
Now you understand why nobody writes their own 3D engine
Anonymous No.106375119 >>106375217
>>106375089
I honestly respect the shit out of anyone here making his own engine. Im making a relatively simple game on Godot which is supposedly piss easy to manage. And even then your code can quickly become a mess and rewrites are needed once you start to add sightly complex stuff. Now imagine that with a whole engine on C/C++
Hi all, Anonymous here... No.106375217 >>106375272
>>106375119
godot shit the bed instantly when they decided to make inconvenient architectural decisions
you can't even assign multiple scripts to one node
if you want to design a system to jiggle text, another to tint it and another to move it in a rainbow wave you have to totally invert the design, writing some kind of mongrel system that loads and calls into other scripts like a manager/container class instead of each system being responsible for itself.
gdscript is a fucking ballache in general, at least Rider makes it more palatable (see: multiple tabs), even then you're constantly juggling magic strings especially for preloads/poor man's include/import/using and trying to implement a Singleton is just ugly as hell
the language is shit and building that as your first-class, shipping implementation is offensive.
trying to do anything in the game view at runtime is a little awkward but manageable, Unity excels here.
I feel like a Beef binding against Godot would make it so much better, if they went ahead and made it Entity-Component instead of whatever the fuck it is now that'd make it a top-shelf engine IMO.
Anonymous No.106375272 >>106375317
>>106375217
ECS is a shit architecture
Anonymous No.106375317 >>106375338 >>106375378 >>106376259
>>106375272
most people here making a 3d game engine are just going to end up with ECS because without ECS, you can't have dynamic lego blocks for designers / map maker to work with.
and you don't need dynamic lego blocks to have ECS, you can still have ECS thats done during compile time (and there would be zero performance benefits for that).
A real anit-ECS system would be something that is either 2D (tetris for example) or not reusable for a large variety of genres (like Doom), aka the code is mostly worthless for your next game (but lets be honest even if you implemented ECS, you are probably going to rewrite it in scratch for the next project if you had the time since there is always room for improvement and first attempts are always messy).
t. pogeet !!b2oSUmilA2N No.106375338
>>106375317
>are just going to end up with ECS
true.
It'll always end up at Data Oriented Design one way or another, as Mike Acton highlighted.
Anonymous No.106375378 >>106375657
>>106375317
>without ECS, you can't have dynamic lego blocks for designers / map maker to work with.
Where the fuck do you people learn this misinformation?
Anonymous No.106375657 >>106376259
>>106375378
I'm just saying, unity / unreal / godot and whatever have already figured out how to separate the engine away from the game in the most flexible way possible.
When you end up making a completely new game, you are probably gonna get rid of the game code (RTS games are not the same as FPS games, you won't share much code), but you won't get rid of the engine.
It's easy to write an engine and make it for one game, but it's hard to make another completely different game with that same engine, unless you just copied what all the other engines do, or you just write more code (your engine is not that flexible / you can't switch from a RTS to a FPS game without writing a shit ton of code, while unity / whatever, you can make a non-functional mock up in 3 days if you have placeholders/art/ideas + don't have brain damage).
Anonymous No.106376208 >>106376227
Alright, after playing the new MGS Delta, I am convinced that realistic graphics can look great.
t. pogeet !!b2oSUmilA2N No.106376227 >>106376283
>>106376208
you bet
Anonymous No.106376259 >>106376263
>>106375317
>>106375657
Don't bother, he's one of those tards that think ECS means some 100k+ LoC monstrosity like flecs or EnTT.

Everyone making a game that is more complex than a retro 2D platformer eventually ends up with an ECS or something very close to one. Those that don't usually can't deal with the exploding complexity and never get to release.
Anonymous No.106376263
>>106376259
ECS is one particular architecture that isn't commonly used in games
Anonymous No.106376283 >>106376462
>>106376227
I was the one who originally posted that image, arguing against realism. But after seeing some more gameplay it really does looks great.
t. pogeet !!b2oSUmilA2N No.106376462
>>106376283
who would've thunked!!!
t. pogeet !!b2oSUmilA2N No.106378504 >>106378631
https://www.timeextension.com/news/2025/08/dev-reveals-secrets-behind-stunning-new-3d-platformer-for-the-zx-spectrum
>"The idea behind implementing this (and similar) engines on the ZX Spectrum lies in one simple idea. Don't do what you don't have to do in order to save Z80 clock cycles. Therefore, I assumed that everything that could be calculated in advance would be better calculated in advance."
>Therefore, in addition to writing efficient code, it was also necessary for me to store the data in memory so that it was literally all 'accessible' during the rendering process. As a result, at the moment of creating an image on the screen, almost all of the processor's address space is occupied by screen output procedures (~16 KB), various optimization tables (~24 KB), and all the graphics (~8 KB).
Daymn
Anonymous No.106378631
>>106378504
Fez for the ZX Spectrum? I've heard that the spectrum is actually very good at calculating stuff, which is why there were several primitive 3D games on it. Very cool.
Anonymous No.106378691 >>106379771
>>106372407
Whenever I return to a project, I just start it from scratch again, then usually give up around the same point where I did last time. It's an endless loop.
Anonymous No.106379268 >>106379320 >>106384307
anyone have good resource on splat rendering? The learning from failure talk about their sdf based splat rendering is too complicated to me and reading up on gaussian splatting doesn't help much as well.
Anonymous No.106379320
>>106379268
>anyone have good resource
this thread is not google
Anonymous No.106379771
>>106378691
in my experience you need to push past that if you want to evolve.
Anonymous No.106380834
>>106372385
>OpenGL is a shit API
not really. go with opengl 4.6 and follow good azdo practices and its basically the same as vulkan. just nicer. way less footguns. vulkan is a massive meme. you dont even know "what you are doing" with vulkan either, you still are abstracting over the hardware. and many of the vulkan abstractions are just irrelevant like render passes, they dont even map to the hardware at all.
Anonymous No.106380843
>>106371231
>>106371946
Nice progress, even though it's really out of my area of expertise
Anonymous No.106380982 >>106381031 >>106382059 >>106382487 >>106391040
>"hmm today i will work on the game"
>open blender
>realize i cant model, animate, texture or do anything other than program
>cry
its ogre, why did i enginedev...
Anonymous No.106381031 >>106381940 >>106382487 >>106384149
>>106380982
What a stupid post. What else were you going to do? Learn art? Learn animation? So you could spend years learning each of them and then be mediocre at both in your 40s-50s?

Become proficient at one thing and get actually good at it, in your case it seems to be enginedev. Hire people who have been doing art for decades and will output TODAY results 10x better than you could output in 20 years.
Anonymous No.106381940 >>106382487 >>106382497 >>106382657
>>106381031
> what a stupid post
the irony

>So you could spend years learning each of them
>will output TODAY results 10x better than you could output in 20 years
if in your eyes it takes years to make passable art and 20 years to get to mid-lvl then you're cris lvl stupid
Anonymous No.106382059
>>106380982
Blender.
They even put it in the name.
Hidden in plain sight.
Anonymous No.106382487
>>106381940
>>106381031
He's right if you are this guy >>106380982. If you actually enjoy to learn new things and are disciplined and have enough time, opening blender or procreate or whatever art related software or course should not be a daunting task. if you dont wll local artists should not be that expensive anyway if you already have the sketches and a general idea of the design you want. The end result is the most important thing, and by end result I mean having a full functional game, regarding of how it looks
Anonymous No.106382497 >>106384149
>>106381940
It takes 20 years to create my engine already, no time for that.
Anonymous No.106382657 >>106384149
>>106381940
Sorry faggot, your indie retro 8bit pixel"art" is not even passable, it's mediocre at best. You people always have an inflated opinion of your own work, then you get 20 reviews on Steam and whine about how "indies just can't make it these days".

Every single time some faggot indie whines about not getting over 100 reviews it turns out they have shitty art they either made themselves after picking up a pencil a few years ago or had made by some friend who did the same instead of a proper artist.
t. pogeet !!b2oSUmilA2N No.106384149 >>106384227
>>106381031
>>106382497
>>106382657
It really doesn't take that long to learn art.
Game engine development will take long if you don't do the learning in an efficient manner like learning C/C++ vulkan for a year and PBR renderer + ECS for another year. Two years is more than enough to make a decent game engine. If you want to have your own DSL and more QOL features, that'll add some more time but even that won't be anywhere close to a fourth of 20 years unless you are highly incompetent or doing things very wrong.
The same goes for art as well.
For 2D, you need to git gud at line art and colouring. If you mindlessly keep on drawing sketches for years without understanding and applying techniques like point(one or two) perspective, even 20 years won't be enough but when you do, a year of practice might be more than enough. Its also very hard to get lighting right and that requires a lot of practicing but with modern digital art softwares that are well capable of dealing with fancy blending effect for you, its just a matter of understanding the technique of adding base colors, light sources, highlights, edges, shadows, ambient light etc., all of which won't really take long unless you are slacking off and not practicing regularly or absolutely don't have a thing for art.
For 3D, its much easier because the tools do most of the stuff for you. You don't even have to worry much about
polygon count these days. And modeling tools have gotten so much better that retopologizing can be totally skipped with a single click using tools like quad-remesher. Though not as much as Z-brush, blender can handle good enough poly count for sculpting. Rigging, posing and even editing those poses in blender is so straight forward and easy to the point that the hardest thing becomes your artistic skills(on modelling, hard-surface or organic and animation pose blending) but not the ability to implement them. Again, if you do mindlessly learn them, it'll take way more time than necessary
Anonymous No.106384227 >>106384265 >>106387258
>>106384149
>Two years is more than enough to make a decent game engine
To make a game engine you need about 5 years prior programming experience
At that point you're good enough that you can make a 2D engine in a reasonable time frame (less than a year)
If you want to make a 3D engine add another 5 - 10 years
t. pogeet !!b2oSUmilA2N No.106384265 >>106384271
>>106384227
no.
That's by your retarded standards but not really.
A year with computer systems, a programmer's perspective was more than enough for me and I was on-off at that too.
A year with C, that is. If I did spend 4 years with python then I'd definitely need around a year more of C to be able to make a 2D game engine.
Anonymous No.106384271 >>106384344
>>106384265
>That's by your retarded standards
No that's by me who has actually done all of those things instead of you who has not
Anonymous No.106384292 >>106389140
That was kind of a nuisance but I got it done. I settled on using a push descriptor for the cubemap texture but I'll have to extend my bindless texture system sooner than later.
Anonymous No.106384307 >>106390073
>>106379268
https://www.sctheblog.com/blog/gaussian-splatting/

I implemented this recently. A Gaussian splat is basically just an ellipsoid that you are squishing / rotating. Basic steps are.

1) Load a splat file (VladKobranov/splats on hugging face has a shitload of test splats you can use SuperSplat can import these files so you can test your renderer vs theirs.)
2) For each frame sort each splat by the view position relative to the camera
3) Render the splats in the sorted order. I used instancing and vertex pulling in my version.

They're cool but they have visual artifacts, use a lot of memory. You need to do weird shit with spherical harmonics to get good lighting out of them.
t. pogeet !!b2oSUmilA2N No.106384344 >>106384370
>>106384271
>instead of you who has not
posting my work would only dox me so I won't. Keep seeting about that shit.
then your journey wasn't an efficient one.
You might have even spent more time on one thing before progressing onto the next thing. That doesn't mean it actually takes that long.
Also, the primary reason why it takes most of us a very long time to progress is because we have day jobs and don't spend much time to work on this shit. This shit doesn't actually take that long if we were to full time it. Saying it takes 5 years when you spend an hour or two or none every day is just way off.
Anonymous No.106384370 >>106384411
>>106384344
>posting my work would only dox me so I won't.
haha yes of course
I'm sure you've made a game engine, you just don't want to show anyone!
Nobody is making a game engine without prior programming experience
You can make a game sure, not a game engine
t. pogeet !!b2oSUmilA2N No.106384411 >>106384422
>>106384370
>Nobody is making a game engine without prior programming experience
I never said to make a game engine without prior programming experience.
I said you don't need to have half a decade worth of programming experience. Half a year or full of C programming experience is more than enough to start making a game engine because it already teaches you all the low level memory management stuff that you won't get to experience even with 5 years of programming experience with python.
Anonymous No.106384422 >>106384459
>>106384411
>Half a year or full of C programming experience is more than enough to start making a game engine
This is true, but you won't actually know how to make one and you'll spend 5 years figuring out because you lack the experience
Anonymous No.106384446
>>106332806 (OP)
pic looks fun
t. pogeet !!b2oSUmilA2N No.106384459 >>106384484
>>106384422
>you'll spend 5 years figuring out because you lack the experience
no. Unless you are doing things very inefficiently and mindlessly.
Feel free to justify yourself on what exactly takes up these 5 years.
The only time taking things are the graphics API followed by a game object system, both of which don't actually don't take anywhere that long even with R&D unless you are doing something very wrong.
Anonymous No.106384484
>>106384459
You just need to know and understand programming
Programming is a skill, you need to take time to develop it, to go from beginner skill to intermediate skill
Anonymous No.106385599
Fixed a pesky bug that I had for a while. Now I can sleep in peace.
Anonymous No.106387258 >>106387285
>>106384227
>To make a game engine you need about 5 years prior programming experience
again, for your 50iq ass maybe, for normal people - no, perhaps agdg is more up your valley
Anonymous No.106387285
>>106387258
No, for anyone, nobody is making a game engine right out the gate
Anonymous No.106388626
Bump.
Anonymous No.106389140
>>106384292
Nice
Anonymous No.106390050 >>106392966
Writing a BVH implementation

picunrel
Anonymous No.106390073
>>106384307
thanks thats helpful kinda surprised how this works at all. I was more hoping for someone to reproduce the rendering techniques from https://advances.realtimerendering.com/s2015/AlexEvans_SIGGRAPH-2015-sml.pdf
its a they didn't port the engine I like the art.
Anonymous No.106390149
>>106332806 (OP)
nice idea
gonna steal it
Anonymous No.106390216
>>106362525
'a book of lenses' has good insights
Anonymous No.106391040 >>106391259 >>106392855 >>106393087
>>106380982
just begin and keep trying. i gave up on art years ago because i cant make anything good, but i did open up blender today and so far things are going well
t. pogeet !!b2oSUmilA2N No.106391259 >>106391280
>>106391040
the topology looks good.
noice work, anon saar.
Anonymous No.106391280
>>106391259
many thanks, i hope it will keep being good in the harder areas
Anonymous No.106392855 >>106392967
>>106391040
Not big enough.
Anonymous No.106392966
>>106390050
Sounds difficult, good luck.
Anonymous No.106392967
>>106392855
they are the perfect cute size
Anonymous No.106393087 >>106393206
>>106391040
let's get some tessellation going on those bad boys
Anonymous No.106393206
>>106393087
displacement mapped nipples are technology
Anonymous No.106394655
Working on creating a simple dialogue/cutscene system. It's going well, but not much to show yet.
Anonymous No.106395915
>Can't use VK_EXT_descriptor_buffer and shader printf at the same time
GAAAAAAAAAAAAAAAAAAY
Anonymous No.106396707 >>106396851
RELEASE ME
Anonymous No.106396720
RELEEAASSE MEEE
Anonymous No.106396851
>>106396707
>cl4 vo1 0 0
What does it mean?
Anonymous No.106398005 >>106398108 >>106400685
How do i create projection relying on trigger events only? im now allergic to even anything like / or if else
t. pogeet !!b2oSUmilA2N No.106398108 >>106398160
>>106398005
are you sure you do not want something like this?
https://desuarchive.org/g/thread/106065067
If not, the simplest way is to rely on callbacks for keyboard and mouse events when using glfw or when using SDL, update only when the event is within keyboard and mouse input range.
Anonymous No.106398127
>>106334503
Most people think just writing your graphics layer in Vulkan will give you performance for free. You need to understand that if you don't know what you're doing then Vulkan isn't going to make your flappy minecraft roblox clone any faster.
Anonymous No.106398132
>pogeet namefag taking the projection spammer bait like a newfag
Anonymous No.106398160 >>106398176 >>106403348
>>106398108
>https://desuarchive.org/g/thread/106065067
huh? what do you mean? i do not see what i need in there. except some 3d box.
>glfw,sdl
no i use tululoo.com
>keyboard update
...apparently i am also trying to not use vkkey() or mouseclick() and such
t. pogeet !!b2oSUmilA2N No.106398176 >>106398200
>>106398160
>i am also trying to not use vkkey() or mouseclick()
why?
if they are an event listener to the document body, you just have to call update when they are triggered.
Anonymous No.106398200 >>106398279
>>106398176
nvm that, that;s like later business. now i am concerned is how to do projetion with only trigger functions or simple +-/. it's, quite anuisance.
t. pogeet !!b2oSUmilA2N No.106398279 >>106398355
>>106398200
I don't know how you are simulating a projectile but since a projectile's position is defined w.r.t time .i.e. not simply setting the position linearly based on the forward vector's direction, you just need to update your t(time) when the trigger functions are called and (re)calculate the position of your projectile for that particular t. That's one way I'd do it.
Anonymous No.106398355 >>106398368
>>106398279
no,no not projectile, projection, like camera projection...like as gif shown, the objects rotate around, and has position in space...
t. pogeet !!b2oSUmilA2N No.106398368 >>106398441
>>106398355
>not projectile, projection
ah, I'm totally blind.
can you explain how a projection relying on trigger events would behave?
Do you just want your simulation to halt for a while or something else?
Anonymous No.106398441 >>106398482
>>106398368
....i, missaid it. i mean, trigger objects. and then, these are the events it has.
basically i dislike even the projection math itself. and even angles. my bone screeches trying to type em. and i have at least, seen it everyday, i even technically "typed" the *, and now i just cant add anymore. i mean, it feels like it's gonna be "cooler" if i flexibly do not use em. but at the same time, it is annoying if i have to. get it?
t. pogeet !!b2oSUmilA2N No.106398482 >>106398523
>>106398441
>if i flexibly do not use em. but at the same time, it is annoying if i have to
you gotta keep up with it.
The amount of math a projection martix simplifies is very significant. It handles not just translation but rotation, scaling, skewing, mirroring not just around the origin but around an arbitrary point as well. Replicating all that functionality without using any matrix would really be several folds more annoying to both implement and to use.
You can always write your own translation and rotation operations. Those operations are basically the same for 3D and 2D. 3D takes a slight variation and a little more work then 2D but its much simpler to just rely on a matrix.
Anonymous No.106398523 >>106398544
>>106398482
As you can see,i do not use matrix. i actually like it. after that, it's just "not doable", like, it does not exist. Other than that, it felt amazing without matrices. it's just not there, though.
t. pogeet !!b2oSUmilA2N No.106398544 >>106398573
>>106398523
I see.
Are you unsure when to trigger objects or change from perspective to ortographic projection upon an even trigger?
I'm failing to understand what exactly you are struggling with.
Anonymous No.106398573 >>106398591
>>106398544
Well, theres the catch that though it works, it scales to 0, because it needs to be divided by abs(x) + abs(y) and i, also do not wanna use fancy math like that. thus, the last option is through only triggers.
Anonymous No.106398576
stop replying to the retard
t. pogeet !!b2oSUmilA2N No.106398591 >>106398693
>>106398573
>and i, also do not wanna use fancy math like that
you are not leaving much of an option for yourself other than to pointlessly struggle here.
Anonymous No.106398693 >>106398730
>>106398591
>pointless
It's pretty, though
I guess it is my stop then, in everyone's favorite maxim of "just do it". It's even outside basketball too.
t. pogeet !!b2oSUmilA2N No.106398730 >>106398760
>>106398693
>It's pretty, though
ayy, that webm sure is pretty.
Anonymous No.106398760 >>106398815
>>106398730
its a gif.
t. pogeet !!b2oSUmilA2N No.106398815 >>106399043
>>106398760
yeah, that.
I'm literally blind.
Anonymous No.106399043 >>106399056
>>106398815
blind what? like zatoichi?
t. pogeet !!b2oSUmilA2N No.106399056 >>106399333
>>106399043
no. Figuratively.
Failing to notice and read properly multiple times, I'm a blind man at this point.
Anonymous No.106399333
>>106399056
ok, thats, hyperbole. or, ...well thats new
Anonymous No.106400685 >>106400712
>>106398005
Cool pic
t. pogeet !!b2oSUmilA2N No.106400712 >>106400959
>>106400685
anon saar's got a cooler version at >>106399599
Anonymous No.106400959
>>106400712
That stutter hurts my eyes.
Anonymous No.106401295 >>106401394
Does Unity really simplify the development or rather dumbs it down to the absolute level of handholding where you don't have to think about anything?

I'm using cocos2dx with sepples and sometimes struggle with correct vector positions and getting the math right for a particular action, I manually set up sprites at correct positions and move them manually where they need to go and I guess unity does it automatically through some editor where you don't manually touch anything?

I'm actually demotivated by the fact that there are so many games on steam probably developed in unity, are the developers actually good at programming or is the unity is dumbed down so much that a brained dead drug addict can whip up a hit in a matter of weeks?
Anonymous No.106401358
Any gamemaking projrct i can collab into? im mostly artist, but i also want to know programming, game programming especially. with triggers and suches
Anonymous No.106401394
>>106401295
There are a lot of tutorials and pre-made assets on the popular engines. They rarely need to come up with a solution to their problems themselves, especially if they're making something that's been cloned to death.
Anonymous No.106401471
>>106361449
>yes but not using things that are actually written in C#.
>If all that C# code calls the underlying C++ code then C# is just a DSL and as a DSL, it at most can be as good as Lua.
Stride engine is a thing but isn't well known so less docs and general knowledge.
Anonymous No.106402439 >>106402904
>>106334503
It's my long term goal to learn Vulkan as well. I watched a video the other day that said (paraphrasing) "dont bother learning Vulkan until you need something that OpenGL can't give you"
Anonymous No.106402904 >>106403005
>>106402439
>I watched a video the other day that said (paraphrasing) "dont bother learning Vulkan until you need something that OpenGL can't give you"
This is stupid advice. OpenGL is shit (it's a genuinely bad API) and dead with no future, why learn it?
>I'll learn OpenGL first the Vulkan it's easier that way
No, it is not. Learning OpenGL and then learning Vulkan will always be a lot more effort than just learning Vulkan directly.
>b-but OpenGL will teach me rendering basics
You can learn those before, outside of, or with any API.
>b-but I get a triangle faster
Sure, fair enough, but if you can't write the few hundred lines of code required for a triangle in Vulkan how the fuck did you figure you'd have the drive to implement later, much more complex rendering features? Also you can just use VkBootstrapper if setup is such a big issue.
Anonymous No.106403005 >>106403297
>>106402904
>OpenGL is shit (it's a genuinely bad API) and dead with no future
opengl will always work and its easier than vulkan
Anonymous No.106403297
>>106403005
>opengl will always work
Maybe so.
>its easier than vulkan
Sure.

So what? It's still a mess that was niche at best compared to DirectX for a reason, despite pre-12 DirectX being ass, and it's dead as the dodo. No reason for someone in 2025 to learn it, just go with D12 or Vulkan.
Anonymous No.106403348
>>106398160
>i use tululoo.com
damn, you guys find such obscure stuffs
Anonymous No.106403858 >>106403929 >>106405261
Cubemap reflections. Not sure how flipped its supposed to be but it looks good.
Anonymous No.106403929 >>106403990
>>106403858
Fixed it. Had to put the - in front of the view direction vector like with lighting.
Anonymous No.106403990 >>106405065
>>106403929
Why is the reflection so bright? It looks brighter than the thing it's reflecting, is it the color of the surface?
Anonymous No.106405065
>>106403990
The intensity of the light is turned up 10x so the diffuse color is also 10x. It’s just a quick and dirty implementation.
Anonymous No.106405261
>>106403858
Nice.