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


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


File: file.png (218 KB, 629x497)
218 KB
218 KB PNG
/gedg/ Wiki: wiki.installgentoo.com/wiki/Gedg
IRC: irc.rizon.net #/g/gedg
Progress Day: rentry.org/gedg-jams
/gedg/ Compendium: rentry.org/gedg
/agdg/: >>>/vg/agdg
Render bugs: renderdoc

Requesting Help
-Problem Description: Clearly explain the issue you're facing, providing context and relevant background information.
-Relevant Code or Content: If applicable, include relevant code, configuration, or content related to your question. Use code tags

Previous: >>101874382
>>
>>101946689
First for supporting people making actual games.
>>
>>101946689
I want to build awesome level design.
Idgaf about engines.
And neither should you.
>>
I am gradually moving from opengl to vulkan even though I am the most familiar with opengl.
So far the only advantages I find with using vulkan are validation layers.
>>
>>101946689
LOL my friend made his bsc about a rendering pipeline helper toolkit for vulkan
>>
File: file.png (432 KB, 2026x956)
432 KB
432 KB PNG
>wasting time switching graphic api when you can use all of them at once
>https://github.com/floooh/sokol/blob/master/sokol_gfx.h
>https://wickedengine.net/2021/05/graphics-api-abstraction/
you won't use graphics API as an excuse if you implement all of them. in general most if not all games used an abstraction even if it's over 2 APIs, imagine getting vender locked through sheer skill issue.
>>
File: 1353619.jpg (738 KB, 2503x1189)
738 KB
738 KB JPG
>>101946689
Day 4 of writing a Vulkan engine and I've yet to render a triangle. It's over, bros...
>>
>>101947359
Why not use Unity, godot or unreal engine?
>>
>>101947375
He needs to trannymaxx his engine and those aren't pozzed enough
>>
>>101947446
>He needs to trannymaxx his engine and those aren't pozzed enough
Is he writing his engine in Rust?
>>
>>101947446
Godot is made by spics, how could it not be gigapozzed?
>>
>>101949037
Spics are catholic
>>
4 seamless chunks with a nicer density function which squishes the surface's Perlin chaos and lets it go crazier as we go deeper into the chunk ( to simulate winding caverns ).

Building 3D Dwarf Fortress with Vulkan and C.
Next on the agenda is to make a dynamic multi-chunking solution where I can stream chunks in and out as I fly over the terrain.

Then maybe I'll treat myself to implementing textures and lighting. Things are moving along.

Praise to the King Jesus Christ.
>>
>>101950827
is that on a grid?
>>
this is a fucking redundant general when aggydaggy has existed for a decade now
GO THERE AND QUIT SPAMMING /g/
>>
>>101950989
The Chunks are not on a grid, but each chunk is a grid of density values.

For the dynamic streaming system I'm thinking I'll do a hash table where key is chunk coord, value is chunk. and have a small 'window array' which streams in chunks.

At each chunk I could have the structure be a grid of voxels or an SVO of voxels. I think I'll end up doing an SVO per chunk.
>>
>>101951020
>QUIT SPAMMING /g/
Meanwhile there are 50 text gen and 120 image gen threads
>>
>>101951024
How are you gonna make Dwarf Fortress without a grid?
>>
>>101951707
It won't have grid based movement.
>>
>>101951745
That's gonna be real tough if you want to have diggable terrain
>>
>>101951020
go back to /agdg/ crab retard grifter
>>
>>101951758
the scalar field values are still on a grid.
I just meant no grid based movement as per traditional. Gameplay wise.
>>
>>101951707
Should be asking how he's going to make dwarf fortress without gay and transexual dwarves
>>
>>101951900
>>>/lgbt/
>>
>>101951900
I'm not going to include pronouns.
Just male and female.
>>
do you use one vertex buffer or multiple buffer for your vertex arrays?
>>
>>101953043
I use one big vertex buffer and index buffer. Offset into them as needed is what I do.
>>
>>101953052
do you think doing that makes you clever
>>
>>101953455
I'm still learning and I didn't want to focus too much on optimizing that.

Seemed like the lazy way to do it. So I did it. So far it is working.
>>
>>101953520
The lazy way to do it is to allocate one buffer for each mesh, which is also usually the best way
>>
>>101950827
can you talk about your code structure?
>>
>>101947359
>vulkan
>just 4 days
It hasn't even started
>>
>>101953529
>which is also usually the best way
wouldn't having multiple buffers one for each attribute be better because it's more flexible?
>>
File: 1654984866721.png (545 KB, 588x499)
545 KB
545 KB PNG
>>101947359
Anon, it took me like 6 months to just get through the vulkan tutorial, and another 6+ months to refactor the trash it provides you into something that vaguely resembles a general purpose game engine framework, which I was happy with. Sure, most of that time was spent procrastinating, some 16y/o autistic femboy brimming with enthusiasm and determination might get through it faster, but don't count on it. I also had a ton of experience writing engines from scratch before undertaking vulkan, had a general idea how to get the architecture right the first time. Someone new WILL get stuck rewriting their vulkan renderer for years to come.
>>
>>101946767
ye engine overrated.
learn fundamentals and move on
>>
Still debating on whether to make my top down mount and blade game real time or turn based. I like running around the battlefield, but turn based would give the player more control.
>>
>>101957361
Combine both.
Each turn = 30 s
of running around.
>>
>>101957361
>>101957373
this but make it like Age of Empire 2, just add a pause button then it literally switch from realtime to turn based. Then you can micromanage as little or as much as you want.
>>
>>101956015
>6 months to get through the Vulkan tutorial
Are you mentally disabled?
>>
another wage cuck making an entire game engine instead of just reading a graphics programming book
>>
File: heatening.png (71 KB, 148x200)
71 KB
71 KB PNG
>>101946689
>Update OpenTK (Opengl wrapper)
>Black screen
>Haven't touched the graphics code in a year.
>>
>>101957921
time to start over
>>
So apparently even Doom Eternal uses 4 weights per vertex for skinning, and it uses a compute shader instead of the vertex shader. I thought it was neat. Most basic frameworks only support 2 weights at most.
>>
>>101958022
Did they use their own, built from the ground up gaymen engine?
>>
>>101958078
Yes. Without them Vulkan game dev would be dead.
>>
ded general for ded engines
>>
>>101958022
I've always used 4 weights
>>
>odin uses c style strings
I forgot how annoying c strings are. I want to be lazy and dumb with it like in C++
>>
>>101961477
Odin has a seperate c string data type
>>
>>101961509
Ya, I think I was misunderstanding how they work. and converting them to cstrings when needed for raylib is easy enough
>>
nginx
>>
File: doredozomg.png (315 KB, 1138x1178)
315 KB
315 KB PNG
Undo: works
Redo: Works
Copy / Cut: Works
>>
>>101962471
how?
>>
>>101962471
based
>>
File: command.png (80 KB, 809x1139)
80 KB
80 KB PNG
>>101962585
Command objects pushed/popped to/from a buffer. Loosely following the 'Command' pattern, but much simpler.
>>
engine devs, any resources for uniform buffers objects / shader storage?
>>
File: 1715945303769845.webm (3.02 MB, 1024x798)
3.02 MB
3.02 MB WEBM
Small progress. You can click on different ships and tell them where to go
>>
>>101963747
Just read the opengl/vulkan spec. Everything is in there.
>>
>>101959984
the retarded op didn't put a title so you can't find the thread by typing either game or engine
>>
>>101963888
Nice.
>>
>>101963888
that sucks
>>
>>101965909
This.
It was hard to find.
>>
>>101965909
>not typing "gedg" when you're searching
ngmi
there was no thread for more than 20 hours, previous thread died before hitting bump limit. you didn't save her anon, it was your fault. why didn't you post progress?
>>
The compendium is still a bit too barebones.
Make suggestions! Give me things to read, open-source tools, etc., and I'll add them once I check them out!

>>101946689
What did you do to the thread ... ?

>>101966724
Is this what happens when I leave? I'm sorry for posting so little nowadays. But I assure you all I'm becoming a much better dev in the process. I've legitimately become less shit with GPUs and graphics programming than I was before.
>>
>>101968460
Did you get the job?
>>
File: 1720916133456270.jpg (27 KB, 629x480)
27 KB
27 KB JPG
>>101968487
The specific one I wanted closed its posting before I could finish one of my projects. I wanted to have some stuff done before I applied. I have some other postings in mind though. I'm going to keep studying and improving.
>>
unreal
>>
>ask ai to write boilerplate win32 C code
>works perfectly
>>
>>101970496
Win32 is the most well documented API in the world
>>
Sup /gedg/. Since /wdg/ is dead atm, are games on web stack (PBBGs) welcome in here?

Picrel new project I'm working on.
>>
>>101971436
I don’t see why not
>>
>>101946689
>op's image
>showing all these useless stats
>not just showing the time of the frame spent before pushing to flush
>>
Graphics programming is so comfy...
>>
File: file.png (666 KB, 673x832)
666 KB
666 KB PNG
is this any good?
>>
>>101951020
>wants to get rid of one of the few threads /prog/ actually happens
Go away
>>
>>101971873
I'm a brainlet but I'm reading it now and yeah it's helpful. It's written by the guy who made the engine for the Uncharted and Last of Us games so I figure he knows what he's talking about
>>
>>101971436
sure
>>
>>101971873
It's good, I just wish it had more details.
>>
>>101973314
>1240 fucking pages
>still not enough detail
what the fuck
>>
>>101973419
Yeah, it just goes over concepts most of the time
>>
>>101957361
real time is superior. but pause + give orders + unpause is fine too if the player find the real time too fast. or you can slow down time when giving orders to not break the flow too much.
>>
File: file.png (45 KB, 767x400)
45 KB
45 KB PNG
>>101973681
so it is useless for me, if it doesn't go over the actual implementation details of this it's useless.
>>
>>101971436
at worse you will be called a webdev (pejorative). Just don't talk about WebGPU.
>>
>>101968813
>Froggy procrastinating his job search
based ngl

>>101963888
sweet progress
whatcha making?

>>101962471
How close to done is your editor? it looks almost feature complete.
>>
>>101973933
>Ask if a book called Game Engine ARCHITECTURE is good
>Yeah it's good at explaining Game Engine ARCHITECTURE
>WTF I DONT WANT THAT
>>
>>101949097
I'm not 100% sure but I think Juan is ashkenazim

t. fellow argie
>>
>>101973948
Nah it's gonna be text based.

(captcha: VGA4)
>>
>>101949097
>catholic
>not pozzed
Typical shabbos goy
>>
>>101950827
>Building 3D Dwarf Fortress with Vulkan and C.
the fact you call it df instead of its actual title tells me what you make is going to miss the entire appeal and be dogshit
>>
>>101951928
Dumb choice if you're planning to sell your game, all gamers are troons and by denying them what they want, you're missing out on troon money.
>>
>>101975184
My game won't even have people in it.
>>
File: file.png (89 KB, 620x789)
89 KB
89 KB PNG
nice "book" there bro
>>
>>101975193
Based. Fuck people.
>>
File: file.png (255 KB, 720x720)
255 KB
255 KB PNG
>>101975392
>t.
>>
Odin + Raylib or love2d? I just want to make some games, I know I should know opengl first but I am not really a graphics nerd, so where should I go?
>>
>>101975555
Start with Odin + Raylib
and then switch to Odin + OpenGL for your next project.
>>
>>101975579
okay
>>
>>101975343
what's the problem?
>>
>>101973419
Game engines are very complicated, there's literally decades of learning required to do something even mid sized
>>
>>101976986
Blackpillers get the rope.
>>
>>101946689
Repurposed my Ada game UI code to make graphical programs, using C and Raylib... Have to reimplement few more things for music player.
>>
>>101977033
You want to be lied to?
You can still do something in a matter of months if it's small, eg. only 2D
>>
>>101977114
nta but for a lot of projects you probably need a fraction of the functionality a full 3d engine is expected to provide
not saying it's easy
>>
>>101977280
Even a mid sized 3D engine is a huge task
If you want to go very small, like maybe you want to make something like the original Quake engine, that's still going to take you years
>>
>>101977083
cool
>>
>>101977310
I better get back to it then.
>>
File: output_video5.webm (2.92 MB, 822x656)
2.92 MB
2.92 MB WEBM
why all of the sudden when I start rendering text, my triangles start to giggle around when I rotate the camera? there are gaps where the triangles join to make the mesh and it happen if I don't render the text. this is opengl btw
>>
ok, I've narrowed it down to gl_use_program, that alone causes this effect for some reason
>>
>>101977712
What are your near and far planes? How are you rendering text?
>>
>>101977712
What the fuck are you doing? Are you modifying the geometry buffer every time the camera moves instead of having it be static while calculating the new position in the vertex shader?
>>
>>101977712
Looks to me that you're modifying vertex and index (element) buffers every frame. You should modify them only when you add/remove a mesh / "text" / plane etc.
Compute "view projection" in your vertex shader, that way it won't fuck up indices (elements) in your case. Done same mistake in Vulkan and OpenGL myself...
>>
>>101973975
>How close to done is your editor? it looks almost feature complete.

I need to add pasting - which what I am working on ATM.
Once done - I need more navigation and placement options. Then an ability to scale, rotate and move each brick is going to be implemented.

At that point I'll implement a compile of the model to a usable mesh. At that point - I'm going to start porting my old code from Ogre to my engine.
>>
>>101977712
good job pretending to be retarded and farming those (You)'s proud of you
>>
>>101977712
have you tried not using a mac?
>>
>>101975579
Raylib seems even lower level than love2d. And love2d also seems to have more libraries for better integration like physics, camera. I think I'm going with love2d for now.
>>
>>101978759
>The game framework is lower level than the game engine
wow fascinating discovery!
>>
>>101979060
what was the point in this post?
>>
>>101979069
mocking your use of a game engine
>>
>>101979089
Neither of those are game engines
>>
>>101979149
>LÖVE - Free 2D Game Engine
I got baited by the love2D website title meanwhile it labels itself as a framework.
>Hi there! LÖVE is an *awesome* framework you can use to make 2D games in Lua.
Make up your mind Love2D!
>>
you guys are autistic
>>
and I love it <3
>>
let this thread die in peace, next time i won't fuck up the title
>>
>>101980834
why?
>/gedg/ - Dead Game and Engine Development General
is my favorite tripfag
>>
File: file.png (120 KB, 972x742)
120 KB
120 KB PNG
>>101980911
such a shameful display..., I thought nobody saw it because of forcing anonymous on the extension.

anyway, I take back what I said about Game engine architecture book, it seems that it does go over some vague implementations of an animation system and syncing multiple animations. it's weird that animations has a fixed framerate because apparently the AAA way is to sample animations at fixed rates.
But I think the new spiderman game used a different framerate independent system.
However, I don't know why the industry was stuck with unique animations per unique skeleton for the longest time. In general, humanoids can basically reuse animations between different skeletons, it can even go beyond humanoids if you also use weight blending and selective animations (i.e., only use the upper body or arm animation).
It seems that you can go a long way with advanced skeletal animations especially for 2D games, yet pixelart make up the majority of games... but then again Live2D/Vtubers have gained so much popularity. I've yet to see a visual novel (or any game really) that used the technology.
>>
>almost 50ms to transfer ~67 million floats across pcie
I quit.
>>
>>101962799
wstring is horrible, even if you used win32 Wide api for ReadConsoleW / WriteConsoleW it's much more sane to just convert utf-8 to wide (and if you had internationalization, I think gettext only supports singlebyte for strings, but I never really got to the point to use gettext, or what alternatives windows has).
Note wcout or wprintf won't print unicode, it just converts the text to the programs code page, typically a single byte encoding.
If you don't mind dropping window 8 support, you could set the manifest.xml to use the utf8 codepage (non wide API's will use utf-8, also make sure your code is compiled with utf-8), but it will not do anything to fix the terminal printing emojibake due to the default terminal using a legacy single byte codepage.
To fix the terminal printing emojibake you need to set the terminal's code page to utf8 (you can manually do this in the terminal or win32), and your terminal needs to have a font that supports the character (you can't print all of unicode using one font, a single ttf file can only store 65k glyphs, 65k is enough to fit all languages, but you cannot fit emojis if that's your goal, also note if you care about CJK support, and you are rendering unicode characters in your GUI, chinese and JP need different fonts because very common kanji characters are drawn differently between chinese and japanese, it is a problem).
I think it's better to treat your terminal text as english only, ignore emojibake when printing filenames / user strings in the terminal, and let gettext take care of converting the utf-8 text into the locale's code pages (or configure gettext to use utf-8 and use the utf8 manifest setting).
Or even better, don't use the system terminal at all, disable it when you release the program, and draw it inside the game.
I prefer using C strings for references and I prefer snprintf, but printf hates string_view's because they don't guarantee null termination, even when they mostly are and <format> looks ok.
>>
Can someone tldr engine architecture for me? I don't want to read a 1400 page book.
I know how to make a game loop and a game object model and render stuff but how the fuck do I implement an editor?
>>
What would happen if I just used UE5
>>
>>101982049
Pikuma is a good resource in my opinion, but all of his content is paid, and I don't think anyone has ripped the lectures yet.
>>
>>101982049
Game Engine Architecture just gives you a brief overview of all the systems in a game engine
You implement an editor by making an application that allows you to place and edit objects and then save them out to a file which your game then loads
>>
>>101981192
>it's weird that animations has a fixed framerate because apparently the AAA way is to sample animations at fixed rates.
the FPS variable is just the speed that the animation plays at
>>
File: 1723996630255381.jpg (355 KB, 791x607)
355 KB
355 KB JPG
>>101977712
>>
>>101982049
>I don't want to read a 1400 page book.
You want to build a game engline and not do any reading? Just the tl;dr? Peak /g/. I don't wanna work... gimme, gimme, gimme, gimme and gimme etc. Fucking spastics.
>>
>>101951928
This enrages gayedg
>>
>>101982687
They're different approaches, the earlier section of the book talked about animation syncing and the issue of animation drifting.
Currently my line of thought is, why would you store a framerate and a list of frames instead of storing the timestamp of each frame?
The difference is very subtle, but playing 100 frames at 30fps is different than playing 100 frames where every single frame has the exact timestamp it needs to play at.
For 2D flipbook sprites it should be interchangeable, but for 3D models where interpolation is always in play there is a difference.
As the book says, it's easy to sync multiple animations because it's easy to set all animations to be in a certain time t1 regardless of issues in framerates like lagging or off by 1 frame start.
>>
>>101982755
Yes just let me read all the books and try all the things and by dumb luck stumble upon a solution to my particular probl-ACK! Now I'm retarded and dead from old age and didn't even leave behind a game engine for my loved ones
>>
File: file.png (145 KB, 999x851)
145 KB
145 KB PNG
>>101982959
If 38 hours is what stands between you and old age, you better go sleep in your grave already grandpa.
>>
>>101982848
Storing frames at regular intervals means lookup is faster (it's just an index into an array) and interpolation is faster (you can just use linear for everything instead of blend curves and quaternion slerp) but the downside is you have to store more animation data in RAM. But RAM is cheap
>>
>>101982755
Reading isn't working it's procrastinating
>>
>>101983051
>38 hours of reading
>before writing a single line of code
Good job smart guy. I bet everybody will be real impressed you read that big book when you tell them the story
>>
>>101983080
Storing timestamps means that you don't have to store unnecessary frames, you just store the next frame. seeking is indeed more complicated but it should be basically a binary search, and that's only if you're jumping to the middle of the animation.
>But RAM is cheap
it is, but memory bandwith and GPU transfer rate isn't, skinning happens on GPU so sending less data should be better afaik.
>>
>>101983174
You don't transfer entire animations to the GPU as they're playing
You just transfer the current frame
>>
File: file.png (23 KB, 300x822)
23 KB
23 KB PNG
>>101983166
stop being an illiterate nigger and read what you need. most of the book is about pictures, example, and C++ code. You can skip the whole introduction. Although it had a neat debugging trick.
In my case I'm only interested in the animation system and code structuring. I don't need physics and audio system, anything beyond those is basically just an extra.
>>
>>101983189
iirc modern GPUs added the ability to cache some data so you don't have to keep sending it every frame, shouldn't it be better?
>>
>>101981513
>~67 million floats
for what purpose
>>
>>101983233
What was the debugging trick?
>>
Is there a name for this garbage collection method and is it any good?
What I thought of is sort of a hybrid of a sweep GC and reference counting. Every resource object stores a uint32 bitmask where each bit represents something referencing it with its own lifetime. One bit is a global lifetime, one is a level lifetime, and the rest are streamable sublevel lifetimes.
Referencing a resource requires marking all subresources as being referenced on the same lifetime bit. Freeing a level/sublevel is just unsetting a bit on all resources and checking if the mask is 0.
The one advantage I like is that lifetimes are clearly defined as being attached to levels/sublevels instead of being ambiguous with reference counts. And using a resource doesnt cause any atomic adds or whatever like with a reference count, you just use the pointer again.

>>101982049
init();
while(1)
{
update();
render();
}


>>101981192
>>101982687
Animations (usually) have a fixed framerate but you interpolate the keyframes based on time. So the animation could be at 20fps but its still smooth at any arbitrary fps. Storing keyframes at a variable framerate is totally valid too, however it becomes a tradeoff as now you need to store another float with each keyframe and you cant just index the keyframes as if they were fixed. You still have to interpolate keyframes if you are using a variable framerate if you want it to be smooth. Fixed vs variable is more about compression.
Blending of animation clips is always done on the CPU in every game anyways (because blend trees and state machines get complex). The part thats sometimes done on the GPU is computing the verticies from the skinning matricies once and resuing those instead of doing that every vertex shader (but this is not necessary at all).
>>
>>101983252
If you don't update animations every frame then you won't have smooth animation
You can calculate animation on the CPU or the GPU, but the end result of this calculation is a single frame that gets applied to a skinned mesh
So the amount of source animation frames you have doesn't affect the the efficiency of the skinning process
>>
>>101983298
Those are called memory arenas
>>
File: file.png (83 KB, 1009x760)
83 KB
83 KB PNG
>>101983258
#define debugBreak() asm { int 3 }

int 3 in assembly is the instruction that switches control from application to a debugger, you can use it in reverse engineering to add break points to any executable as a bonus, because it's so small it fits anywhere.
>>
>>101983340
Memory arenas are different though. Thats for allocation. Im talking about references/GC. My idea is more like a reference count except the reference count propagates downwards and instead of storing a counter, it stores a mask where the counter is implicit (the number of bits set).
>>
>>101983254
It's just a test I made but how much you can transfer per frame is obviously your limiting factor on how much dynamic geometry/animated stuff you can have in a scene.
>>
>>101983252
I would skip doing anything on the GPU now. The term "skinning" that you may have read is talking about transforming the skeletal models verticies to their final pose from the animation matricies that you compute (not about keyframes). This step should just be done in the vertex shader for now.
Those animation matrices have to be computed every frame, this is done on the CPU. Computing the matrices involves sampling animation clip(s) (the things with keyframes), applying blend rules, transforming the bone space transforms into mesh space ones by traversing the bone hierarchy, and then multiplying by the inv bind pose. No one does this step on the GPU as its too complex. You then send the bone matricies to the GPU every frame to transform the skeletal mesh's verticies.
>>
>>101983233
>stop being an illiterate nigger and read what you need
That's the point of a tldr retard. Just tell me the good parts so I can focus my research and you can go back to reading giant nerd books so you're ready to tldr the next man of action who comes along
>>
>>101983494
>You then send the bone matricies to the GPU every frame to transform the skeletal mesh's verticies
Roughly how many floats is this, on average?
>>
>>101983508
(sizeof(float)*16*number_of_bones)
If your animated models had 128 bones each, youd be sending 8kb of data to the GPU per model.
But 128 bones is a lot if you just want a basic animated thing, probablly you could just use ~20 bones for a background npc. If you want large scale crowds with 1000s of objects, you could look into storing baked animations in textures and reading those in the vertex shader.
>>
>>101983598
for similar models you can send a whole portion of an animation and only send a frame index per model, basically instancing but for animation.
>>
If you have a game with a ton of animated characters you can have characters share animation so they're displaying the exact same pose
Some games also do staggered animation where they only update animation every second frame but that looks choppy
>>
>>101983598
Thanks that's actually really helpful.
>>101983636
>>101983737
Yes but the dream is tons of perfectly unique animations and even "animated" geometry like cloth and particles that you do CPU side so it actually interacts with your physics objects, which is even more floats...
>>
>>101983779
>the dream is tons of perfectly unique animations
Why is that the dream? If you have lots of characters, you don't notice duplicates
>>
>>101983795
>you don't notice
Oh I'll notice.
>>
File: file.png (260 KB, 1291x308)
260 KB
260 KB PNG
>>101983779
https://simoncoenen.com/blog/programming/graphics/DoomEternalStudy
>>
If the goal is to get a graphics programming job cause let's be real you guys don't give a shit about games. Then you'll have to learn vulkan or if you're a webdev threejs. Opengl is depreciated.
If I were to set a goal it'd be to render a scene with an animated character first.
Can you guys do that?
>>
>>101983795
Why is your dream to be extremely lazy and low effort
>>
>>101983883
>lazy and low effort
Implementing duplicate animation takes more effort, it's a performance saving feature
>>
>>101983834
Animation compression is pretty cool but like it says only for baked animation what if you wanted to do something more dynamic like procedural generation on the CPU instead?
>>
>>101983883
Hardware instancing is literally the easiest thing you can do performance wise.
>>
File: 1717916906882952.png (452 KB, 680x417)
452 KB
452 KB PNG
>>101977712
Finally someone makes an actual playstation 1 inspired game!
>>
>>101946689
omg i love this non antialiased picture so much
its always the first option i turn off in all games
>>
Do you guys rawdog opengl/vulkan/directx or use something like bgfx or sokol? I'm currently trying to use veldrid (c#) seems pretty ok.
>>
>>101984385
rude
>>
>>101977712
this is easily the best project in the whole thread
>>
>>101984841
Yep, Vulkan and C is what I use.

Currently dealing with pic rel bug as I am trying to 'step through' the terrain 4 chunks at a time.
>>
>>101973975
>whatcha making?
Just a (hopefully) simple 4X/grand strategy type game.
>>
>>101983503
>Just do the work for me lel
Get the fuck outta here
>>
>==151350== HEAP SUMMARY:
>==151350== in use at exit: 141,901 bytes in 2,187 blocks
>==151350== total heap usage: 20,691 allocs, 18,504 frees, 698,545,757 bytes allocated
>==151350==
>==151350== LEAK SUMMARY:
>==151350== definitely lost: 2,560 bytes in 44 blocks
>==151350== indirectly lost: 12,116 bytes in 71 blocks
>==151350== possibly lost: 52,584 bytes in 1,592 blocks
>==151350== still reachable: 74,641 bytes in 480 blocks
>==151350== suppressed: 0 bytes in 0 blocks
>==151350== Rerun with --leak-check=full to see details of leaked memory
>==151350==
>==151350== For lists of detected and suppressed errors, rerun with: -s
>==151350== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
uhh
>>
>>101988000
let me guess, Vulkan even though you cleaned up?
>>
>>101988032
I'm pretty sure it's openGL. I saw someone shill sokol earlier in the thread, and noticed the guy behind it made this:
https://github.com/floooh/pacman.zig
so I thought I'd compile it and see how it works. It seems pretty leaky to my clueless eyes.
Is this normal? It's allocated ~700 MILLION bytes for a game from 1980.
>>
>>101983993
Desktop GPUs have had compute support for years.
>>
>>101971436
Cool, it reminds me of OGame
>>
>>101989247
It's loosely inspired it, alongside a few other games (EVE and WZ2100).

Last weekend I worked on the UI and made something looking half decent. Now I have to refactor this piece of HTML garbage I've created into components and add a proper mobile design with it (responsiveness).

After that's done I can continue with the implementation. I've already started work on constructing buildings on your colonies, but I want to introduce a set of resources and a tick system (so things take time, instead of construction completing immediately).
>>
>>101984841
I just use C++ and OpenGL, there’s really nothing that a wrapper offers you.
>>
>>101946689
Aside from visual novels and text based adventures, what (genres) are the easiest games to make?
>>
>>101971436
looks cool my dude. Did you make the art yourself?
>>
Hi my frog friends, I want to create some sort of a dungeon crawler, where you fight monsters, get loot and have fun. I'm having trouble designing dungeons, where do I look for inspiration. Also trouble finding cool assets. Link me some or atleast point me towards a good direction. Thanks frogs.
>>
>>101991156
Nah just grabbed some random images off the internet to spice up the UI.

I might use some AI art later in the meantime as proper filler, and commission some artists even later for proper handmade art.
>>
>>101991130
first person walking simulators
>>
>>101947285
how does sokol compare to bgfx? bgfx was crusty. I use and write vulkan at work. It takes forever to do anything basic, for my side projects I want a decent high level abstraction because it's just me and I don't have time to create basically an entire application driver using vk
>>
>>101992159
nvm, doesn't even support compute shaders. Looks like its webgpu or nothing if I want a modern crossplatform gfx API that sits inbetween Vulkan and a full fledged game engine
>>
>>101992159
You create your abstractions and move quicker as you go.
>>
I feel like I'm cheating when I'm using libraries like love2d.
I kinda want to go low level but at the same time I don't really make tangible progress and I get demotivated easily.
>>
>>101994215
pain now for ease later in terms of game engine development.

You'll know more about your system and be able to do more if you just go low level now.
>>
>>101983099
>Trawling through the internet is going to fix my retardation.
Okay, Champ.
>>
>>101994215
Well it depends if you want to actually make stuff or just gain anonymous autist credit on 4chan
>>
Why does everyone use unity for mobile games? Why not Unreal? Epic proved that anything was possible with infinity blade and especially Fortnite mobile. I want to understand why the pushback?
>>
>>101994215
try both
>>
File: 1489383683091.jpg (70 KB, 960x729)
70 KB
70 KB JPG
>tired from work
>even more tired because it is hot af
>0 (zero) motivation to do anything
>>
>>101994215
I know enough openGL to reimplement raylib or love2D, I even did it at some point. I don't see the point of reimplementing it again. As long as you know the inner workings and can modify existing code to fit your use case, it's fine to use existing frameworks.
>>
>>101994668
you want a cheat code?
work on your game in the morning before work.
>>
>>101994401
>You'll know more about your system and be able to do more if you just go low level now.
I'm leaning more towards this.
>>101994458
I want to gain anonymous autist credits on 4chan.
>>101994734
Maybe I feel like it because my OpenGL knowledge is lacking. I need to go deep so to speak.
>>
>>101994869
stop it with the analysis paralysis. crack those knuckles, open up learnopengl, fire up nvim and start coding.
>>
>>101994869
>Maybe I feel like it because my OpenGL knowledge is lacking.
it's just busy work imo, it's easy to get lost in the sauce if you're not careful. there's a reason why I don't bother with Vulkan. I'd rather get something working first. Learning graphics API and spending hours/days without much result to show for it will absolutely destroy your motivation.
>>
>>101957921
>he updooted
>>
>>101994907
Okay. You motivated me enough. I think I'll just end up creating a shitty version of raylib when I do get deep into it.
>>101994986
>Learning graphics API and spending hours/days without much result to show for it will absolutely destroy your motivation.
I'm not going to bother with vulkan for now. I think building my own abstractions will help me learn a lot more. I don't want to ship a game quick(though that would be nice), I want to learn and have fun.
>>
>>101994401
>pain now for ease later in terms of game engine development.
this is kinda bullshit unless you need more than what your engine provides
>>
>>101995177
Godspeed, anon.
>>
>>101993345
I don't want to create an abstraction, my job at work is creating abstractions over Vulkan already. I think I will just stick to WebGPU. I would use OpenGL 4.6 everywhere if it weren't for Apple being cunts deprecating it. Sometimes I just want to create some shaders / meshes / execute compute and submit it to the GPU without thinking of a million implementation details or caring.
>>
>>101995840
why do you care about Apple
>>
File: paste.png (421 KB, 1374x1377)
421 KB
421 KB PNG
Paste now works as well.
Now of to painting
>>
I BEEN IN THE SAUCE SINCE DAY 1
I BEEN DRINKING THAT SAUCE
THAT TOMATO RED VULKAN SAUCE
>>
>>101996259
I don't get it
>>
>>101996488
he likes vulkan
>>
>>101991057
>there’s really nothing that a wrapper offers you.
Cross platforming?
>>
>>101996773
you only need Linux and Windows support and it's just a matter of preprocessor compilation paths.
>>
>>101996814
Why do you need Linux support?
>>
>>101996913
I use Linux and dev on Linux.
I like Linux, I will always support it for my games.
>>
>>101996934
that's cringe
>>
>>101996934
You know what? Maybe I'll even add BSD support.
>>
>>101996934
that's based
>>
>>101996946
bro if I cared what people thought was 'cringe', I'd be in a very different place right now.
>>
>Linux support
HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA
>>
>>101996934
holy based i kneel
>>
>>101996968
>guy who was ideologically brainwashed pretending to be a freethinker
>>
>>101997028
why is this so funny?
>>
>>101997028
My linux support is through Wine and Proton. That's as far as I can go.
>>
>>101995874
so I can sell my shit on Apple
>>
>>101996934
Based
>>
>>101997028
My engine has first class Linux support. Windows was supported AFTER linux. Get with the times old man.
>>
>>101998369
I'm sure all the players of your games really appreciate that
>>
File: ohgu34tput_vide345.webm (2.76 MB, 1864x1300)
2.76 MB
2.76 MB WEBM
got raycasting, line drawing, 3d text to camera projection. text is crisper since it scales with dpi. now I can actually debug wtf is wrong with the meshes and why & where it has nonsensical uvs & normals
>>
>>101998369
wtf are you me?
>>
>>101998496
>now I can actually debug
have you tried renderdoc or it doesn't work on mac?
>>
File: ogthgu34tput_vide345.webm (3.86 MB, 1864x1320)
3.86 MB
3.86 MB WEBM
those damn vertex buffers
>>
>>101998598
nah, shit's not available on macos. there's some xcode bullshit but i don't have the energy to learn that, and it's probably metal only
>>
>>101998369
Isn't that easy as fuck to do anyway? You're not re-implementing everything in directx when you port a game from Linux to Windows because the necessary libraries are already on Windows.
>>
>>101994548
>Why does everyone use unity for mobile games? Why not Unreal? Epic proved that anything was possible with infinity blade and especially Fortnite mobile. I want to understand why the pushback?
>no one knows
Shit
>>
>>101994401
or you give up because coding low level shit is a slog when you're also responsible for the high level shit too, I'm not anti building your own engine from nothing but saying everyone should do it is dumb
>>
>>101998630
Yes it's relatively trivial both ways which begs the question of why more game studios don't ship native linux binaries.
>>
>>101998496
protip: use dithering in your fragment shaders to avoid the visible banding effect on the floor

also you should get a linux / windows machine you NEED renderdoc
>>
>>101998712
>why more game studios don't ship native linux binaries.
1% PC market share
>>
>>101998369
My engine has first class Mac support. Windows and linux are not supported. Get with the times non zoomer/millennial
>>
My engine only supports a fictional operating system I made up in my head
>>
>>101998369
Both linux players just clapped
>>
>>101998728
It's 2% on steam (the only statistic that matters for game dev), which is more than mac, and game devs supported Mac anyway despite its shitty ecosystem and just as low market share.
>>
any wayland fags who use renderdoc here? how did you get it to work? i don't want to switch window managers just to use it
>>
>>101998880
>game devs supported Mac anyway
no they don't
>>
>>101998724
>also you should get a linux / windows machine
I thought about it, but it's kinda inconvenient for me rn to carry around a separate computer, I guess I'll just bootcamp windows.
>you NEED renderdoc
what makes it so cool? I was getting frustrated with shadowing for some time and someone suggested it, but I don't see how it'd help. I imagine it'd tell me the matrix values for the shadow caster, and the matrix i use for transforming light space to camera space. but it'd just be 16 random floats that have no meaning to me
>>
>>101998894
X11 is bloated as fuck, but Wayland is simply unfinished, Mir is fucked too last time I looked at it.
>>
>>101998905
You know how you can see all the data in your program with a debugger? Renderdoc is that for the GPU
>>
File: 1716897054198112.png (22 KB, 250x290)
22 KB
22 KB PNG
>>101998899
Yes they did, are you retarded?
>>
>>101998724
>protip: use dithering in your fragment shaders to avoid the visible banding effect
how do you do that? slightly randomise the colors with noise or something?
>>
>>101998989
Oh wow, a single game company? This is somehow significant
>>
>>101998433
ur mom probably doesn't have linux, so that's like 100% of the userbase then
>>
>>101999005
>Fortnite, one of the most popular games in the world getting Mac support over Linux is insignificant
Roblox has a mac port, Valve made ports for mac (until they dropped 32 bit support), the lego star wars had a mac port, tons of indies make a mac port over a linux port, No Man's Sky has a mac port. This is an OS doing everything it can to drive gamers out but still getting mac ports by devs catering to a 1% player userbase. Devs are just don't care to port to linux reguardless of market share reatard.
>>
>>101999137
Market share is the only reason anyone chooses to port to anything
Linux has 1%, Mac has 5%
>>
Small update, added fillbars, scrollbars and separators, adding music soon...
>>
for my game I may go with the early 2000's soul calibur style and give each port a bit of its own flair.

Linux, Mac, and Windows.

That'd be pretty cool. Like how if you bought Soul Calibur for the Xbox you'd get Spawn. For Gamecube you'd get Link. For PS2 you'd get that Tekken guy.
>>
File: 1701282119929198.png (48 KB, 379x444)
48 KB
48 KB PNG
>>101999199
Can you take a WILD guess where they buy those games? Their maket share is half of Linux on Steam, again the only relevant statistic for if your game will do well.

Linux is 2%, Mac is 1%. Sorry, port your game to linux now.
>>
>>101999258
whoa I'm on Fedora.
I'm rare.
>>
>>101999258
Overall OS use might be a reason, more people still have Macs than use Linux even if there's more Linux users on Steam
>>
>>101998880
How much of that 2% is from the Steam Deck? How much is dual booting?
>>
Is it true that an "API agnostic" renderer which has compatibility layers for OpenGL and Vulkan is objectively worse than a pure Vulkan renderer or a DX12 and Vulkan Renderer?

Because you'd have to simplify your Vulkan usage in order to align with OpenGL's high abstraction?
>>
>>101999206
what's the point of mixing ada with c if you're using c anyway?
>>
>>101999666
No, graphics APIs are similar enough that you can make an abstraction over them with minimal overhead
>>
File: 1721195340953065.png (59 KB, 932x437)
59 KB
59 KB PNG
>>101999580
40% of that 2% is Deck. Dual booting is unknown.
>>
>>101999258
how much of that is some retard installing Steam on every machine in the computer lab so he can play League of Legends during class?
>>
>>101999678
But that would mean there's no point to use Vulkan.

If you can literally do anything in OpenGL that you can do in Vulkan ( including low level GPU memory management ), then use OpenGL since it is more compatible with numerous machines and is simpler.
>>
What's the market share of Chromebooks on Steam?
>>
>>101999731
Yes, that is true
>>
>>101998915
Mir is just a Wayland compositor now
>>
>>101999750
But I don't think OpenGL can do low level memory management like Vulkan.

There has to be some difference or else Vulkan is completely useless. It'd just be a more complex. OpenGL would be objectively better.
>>
>>101999766
>I don't think OpenGL can do low level memory management like Vulkan.
It can
Vulkan can do some things OpenGL can't like multithreading and it's more efficient, but you're correct in saying there's no point in using Vulkan for most people
>>
>>101999766
Newer functionality like hardware accelerated raytracing
>>
>50% of Linux users on Steam have 1 GB or less VRAM
And I'm supposed to make video games for these out of touch boomers?
>>
>>101999817
I am building a retro box with a 650 NVIDIA card to dev my game on here and there.
>>
File: file.png (83 KB, 1001x678)
83 KB
83 KB PNG
>>101999817
>PS3 only has 256 MiB of VRAM and RAM
you don't need more
>>
>>101999891
>2024
>you don't need more than the worst Playstation
you tried
>>
>>101999917
I'd post the PS4 specs but it doesn't even have VRAM, it just splits the 8 GiB with RAM and system. again, you don't need more, you will never make graphics better than PS3 let alone the PS4, you're just a delusional nodev.
>>
>>101999964
It's very easy to use more than 256mb of VRAM even with shitty graphics
>>
>>101946919
that's because you didn't ship anything
vk drivers are so small you don't have to deal with gorillion ogl driver bugs on all the hw your shit will run on
you'd think at least core profile would run on anything, but all the poojeets at intel aviv, amd and nvidia are there to prove you wrong
don't even think about azdo unless you have an experienced team or want to commig sudoku
vk is a bliss in comparison
>>
>>101999997
I've shipped OpenGL games and have not had to deal with a single OpenGL driver bug
>>
>>101999977
According to Game Engine Architecture book all triple A studios had to compress the shit out of everything, models, animations, textures, literally everything.
No wonders Jon Blow had to be so autistic about avoiding the empty space in images, even for a 2D game.
They even compress their floats.
Again, you wouldn't even make something that look better than a NDS game let alone a PS3.
>>
>>101999999
>>102000000
>>
>>102000026
Are you agreeing with me or disagreeing with me?
I had to conserve resources even making a 1024 x 768 isometric RPG back when video cards only had 256mb of RAM
It's very easy to eat that space up with textures
>>
>>102000013
shill your steam page
inb4 oh it was just couple frens and randos on itch or some obscure forum that downloaded and maybe played it (and maybe it worked fine for them because i have 0 feedback)
>>
>>102000028
grow up faggot
>>
>>102000065
Both the games I worked on on OpenGL have over 100k sales afaik
Only real issues were with Windows itself, not OpenGL
>>
>>101998991
yes, https://www.anisopteragames.com/how-to-fix-color-banding-with-dithering/

very easy and fast effect you can do in the fragment shader, looks a million times better for basically no effort

>>101999731
>there is no point to use vulkan
The point is that you get more control / potential performance in exchange for more work. For indie games its generally unnecessary, but vulkan serves a useful niche for some
>>
You guys talk a lot about making games but I've never seen one here
>>
>>102000185
we're talking about making engines not games
>>
>>102000185
Because all of us have 1000 unfinished prototypes and few finished games, experimenting with game design, no one here works at AAA game studio.
--
It's important to play around and have fun, since we're all hobbyists, image related, my (unfinished) game, that'll be finished when I stop switching projects.
>>
>>101999668
I have 2 separate versions of GUI """library""", one was written in Ada and is good, the other one, you see right there is written in C, and it's a toy.
--
I got bored of some other projects (my game, picture above) and tired of others (group project high-level assembler), so I started making my own:
> (toy) music player, image viewer, file manager, task manager, text editor.
>>
>>102000093
doubt button was pressed so hard it melted

amd especially was notoriously bad with their ogl drivers, not just the loonix ones, windows too (devs surely remember glTexStorage crashing the driver)
and we're just talking pc, mobile vendors are a whole different level of crap when it comes to their drivers
>>
>>102000275
sell me on ada, also do you have a public git?
>>
>>102000346
What is your source for this information?
>>
>>102000523
mobile opengl drivers are notoriously shitty, but I think desktop opengl is mostly fine
>>
>>102000534
I thought we were just talking about PC? Like I said, I've released OpenGL games on desktop with no issues
>>
>>102000523
gray hair on the head of anyone who worked as a graphics programmer in the past decade
if you want some war stories, khronos forum is full of them, as is twatter
>>
>>102000606
So what have you actually released on OpenGL?
>>
>>102000586
I'm not that anon. Desktop OpenGL is fine.
>>
>>101973314
You mean spoon-feed you an engine that you can use?
If you're looking to be spoonfed a "game engine" try "Game Coding Complete" by McShaffery. It's for the most part, garbage and uses third party components for literally everything, including the heap of shit MFC. Make of that what you will.
>>
>>101983382
That won't work for gcc or g++.
>>
>>102000629
>doxx yourself
you go first, i already asked you
>>
>>102000751
so?
>>
>>102000761
Okay, pandesh. Continue.
>>
>>102000760
That's not what I'm asking
I worked on two games on OpenGL 2 and 3 in the 2010s, there were no driver issues with either of them
>>
File: 1724166023839732.gif (272 KB, 220x227)
272 KB
272 KB GIF
>>102000812
Whether you worked on two games or not, ignore the baiters man.
>>
File: file.png (26 KB, 873x537)
26 KB
26 KB PNG
>>102000751
huh?
>>
>>102000847
I don't think he's baiting, sounds like he's just repeating unsubstantiated claims that "everyone knows"
Although I know OpenGL has had issues at some point in time, I definitely don't think it's the case now
>>
>>102000868
True, that will work. But the define that was posted earlier wouldn't.
>>
>>102000898
good observation there, retard.
>>
>>102000365
Here's my Git, I don't really care about dd-ing myself: https://gitlab.com/xolatile
I also have GitLain and Codeberg, but 95% of my projects aren't uploaded.
About Ada, it's nothing special, it's like Pascal+C++ and eternal Valgrind/Splint.
Sometimes Ada is so strict that non-pedantic and non-patient programmers quit it.
>>
>>102001066
good stuff
>>
https://www.youtube.com/watch?v=jhlrUcmPZj0

Let's say I want to implement a sequence like this, where the game moves forward when you spam Use on a door multiple times, even though the character at the other side tells you to hold your horses while they try to open the door

* How do I convey to the player that they're supposed to keep pressing Use? Or maybe the chastisement should be "independent" from the "main" event that is the delayed door?
* If it's not "independent", how many times would be a good amount? 5? 10?
>>
>>102001949
Just make the door say something different every time and the player's natural curiosity will cause them to keep trying.
Also you should go play some video games before making one nerd.
>>
>>101999852
Kek, are you me?
I'm attached to my old toaster, but more practically, if it'll run on my toaster, literally no one else will have any issues.
>>
File: moving_by_4chunks.webm (1.32 MB, 1920x1080)
1.32 MB
1.32 MB WEBM
Solved the problem of moving through the terrain 4chunks at a time.

Here's a webm of me moving 4 chunks at a time through the terrain with arrow keys.

I keep them 4 chunk large for now because I still need to implement extensive culling.
But this is the foundation for flying over multi-chunked terrain and having it load/unload chunks.

Praise be to the King Jesus Christ
>>
>>102002100
yep, that's my philosophy here.
I looked at the earliest cards that Vulkan supports and also the Steam Hardware Survey.

650 is what I want it to run good on.
>>
>>102002266
Cool shit bro.
It's neat to see the progress.
>>
>>102002310
Thank you.
God bless.
>>
>>101999666
If you want a few examples of how the current mainstream gpu apis differ just check the discussion on the webgpu projects on GitHub. Lots of interesting info.
>>
>>102001997
Funny. I thought this sub tended to be against playing games. I guess it would make sense for this thread to be an exception, but still
>>
>>102002732
I like videogames, it is why I make them.
>>
>>102002732
/g/ is pretty fucking retarded outside of this thread
>>
>>102002732
Being a consumer Vs producer.



[Advertise on 4chan]

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

[Enable Mobile View / Use Mobile Site]

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