[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: firefox_mIBC9O16Li.png (449 KB, 824x717)
449 KB
449 KB PNG
90s PC/MAC edition (also late)

/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

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: >>101304197
>>
File: vmware_DgJOAvrKyx.png (64 KB, 1714x924)
64 KB
64 KB PNG
Well anons? Are any of (You) developing for or modeling your scope after old 90s computer platforms?
>>
>>101337514
Anyone know any tips for terminal adhd and being an eternal ideas guy who never gets shit done? I hate thinking about doing gamedev for years and just doing nothing instead.
>>
>>101337564
The rfkill command.
Also you can go outside with paper and write your programs out by hand then have chatgpt transcribe them. You get much more focused and deliberate this way.
>>
>>101337564
Realize that you will be dead soon, sooner than you realize and when you die your ideas go with you, you're running out of time, what are you waiting for?
>>
>>101337625
this but unironically.
A few year back I had a really bad health scare and this made me realize my own mortality. We have just so much time on this earth, might as well spend it making something instead of waffling around.
>>
This is the thread.
>>
>>101337544
Does C++98 without the standard library count even if it's in VS2022?
>>
>>101337544
>Are any of (You) developing for or modeling your scope after old 90s computer platforms?
Which is?
>>
>>101335664
making a scene where a character with animations runs around and there's some post-processing effect on top is, basically, trivial compared to the titanic effort required to take that, and turn it into a finished game with well tuned gameplay, content, levels, assets, etc. maybe a couple months if you're doing it for the first time at a "I have a day job" pace.

this is why people become either engine programmers, or game designers
you either make a game, which doesn't require much technology, or you make technology, which doesn't require much game
>>
>>101337625
>>101337657
So reflect on death, momento mori, all that, got it. Maybe I'll give myself death anxiety so I panicked so much that I get shit done.
>>
>>101337625
well, even if you make a game, everyone who's ever played it will also die, and the media it's carried on will burn up when the sun envelops the earth, so eh, the ideas will die anyway
>>
Started OpenGL with Odin. Why is it so retarded?
I'm a bit confused by the vertex buffer objects and vertex array objects and why do I need both of them?
Also can anyone reliably explain what shaders are actually doing? I mean even this simple shader is very foreign to me
// Fragment shader
#version 330 core

void main()
{
FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);
}

//vertex shader
#version 330 core
layout (location = 0) in vec3 aPos;

void main()
{
gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);
}


this is the shader for the triangle. What and how? What are the in out parameters? can anyone reliably explain? And contrary to popular belief that AI is getting smarter, no AI has explained to me this clearly. I know I'm asking a lot so you can probably ignore this if you think I should just do my own research. Thanks
>>
>>101338124
It builds naturally once you realize that all those wonderful sounding "ideas" you have are actually potential decades of your life you have to spend in isolation working 16 hours a day to realize. It's like rolling a snowball downhill you just need to get it started.
>>
>>101338124
if that's get you to stop procrastinating then it's all good.
You're probably still young, so give it time. It will come to you naturally.
>>
>>101337544
>le win32 hello worlde
Stop bragging until you have a game to brag about.
>>
Wait a minute. Are libraries like raylib actually constructing a shader in memory when I want to draw a shape?
>>
>>101338235
Maybe you should do the learnopengl tutorial. And actually spend the time to read what is said and not just copy pasting the code.
>t. copy paster
>>
>>101338235
VBO holds attribute data (vertex information)
VAO is a bundle of program state
A vertex shader transforms attribute data
a fragment shader transforms individual pixel data
>>
>>101338292
>And actually spend the time to read what is said and not just copy pasting the code
I'll do that and hopefully it starts making sense. At this point I'm uttlerly lost.
>>
>>101338404
Godspeed anon
>>
File: 46t34g4.jpg (281 KB, 800x800)
281 KB
281 KB JPG
>>101338155
>>
>>101338286
no, you can read the code it's usually not that complicated because it's 2D.
I think raylib for the most part just uses fixed function pipeline opengl which has almost no concept of shaders (I would not be surprised if they ported it to modern opengl or something, but there no benefit because raylib draws stuff the way old opengl would draw stuff).
usually for performance 2D libraries just allocate a giant buffer in memory (VBO) and they just clear it every frame (essentially the fixed pipeline ported to modern API). The buffer is batched if possible (batching is cut if you switch textures or other state changes like blending, changing color will not cut batching because it's part of the buffer usually).
For a 2D game texture switching and batching doesn't even matter, you could use opengl in the worst way possible and still hit 100fps on a low end 2015 IGPU, you might have trouble drawing 10k sprites, but a 3050 could probably draw 100k unbatched sprites in shitty opengl at 100fps.
>>
>>101338235
You should really read learnopengl and/or webgl2fundamentals. Both of these have decent explanations of shaders IIRC, probably VAOs too.
VAOs are a bit confusing, this page explains them but you have to read fairly carefully: https://www.khronos.org/opengl/wiki/Vertex_Specification
The quick rundown is that, in order to draw something, you need to tell OpenGL:
>how many vertex attributes it needs to pass to your vertex shader -- glEnableVertexAttribArray(<attrib(0,1,2...)>)
>which buffer (VBO) each attribute gets its data from -- glBindBuffer(GL_ARRAY_BUFFER, <vbo>); glVertexAttribPointer(<attrib>, ...)
>how to read a float/vec2/3/4 from that buffer -- glVertexAttribPointer(<attrib>, <components(1/2/3/4)>, <type(GL_UNSIGNED_INT/etc)>, ...)
>if using glDrawElements, which buffer (EBO) to read indices from and how -- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, <ebo>), etc.
And then of course issue the actual drawcall, telling it:
>what kind of primitives it should read vertices for and in what order -- glDrawArrays/Elements(GL_TRIANGLES/GL_TRIANGLE_STRIP/etc, ...)
>how many vertices to read and draw - glDrawArrays/Elements(..., <count>, ...)
>what offsets into the VBOs and EBO to use, how many instances if you're using instancing, some other nonsense if you're using indirect...
Doing the enable/bind/vertexattribpointer dance every time you want to render a mesh is a bit inefficient, so they added VAOs to let you just swap all of these bindings and parameters out.
>>
>>101338615
Unless your GPU chip still has T&L chip on it all modern APIs, even ones that emulate older APIs are using shaders behind the curtian.
>>
>>101338615
raylib does support modern GL/ES, they have to for mobile: https://github.com/raysan5/raylib/blob/master/src/rlgl.h
>>
>>101338688
I said almost no concept of shaders. I already know about ARB assembly language, but I have a feeling that barely any indie developers have stepped into those shaders, since there is enough fixed pipeline features to implement primitive effects without the need of shaders for an indie (I wonder how the fixed pipeline worked with ARB shaders, like I think there are fix functions for Gouraud shading, does it work with ARB shaders?).
>>
>>101338882
>ARB assembly
Whoa! Did I get transported back into 2002?
Maybe consider learning about GL from newer sources?
>>
>>101338286
yes, always, even if they aren't using shaders

aside from very very small bits the fixed function pipeline does not exist in hardware anymore, everything is shaders
everything is implemented as software or programmable hardware
>>
>>101338882
>ARB assembly
oh that's so cute it's like SPIR-V but retarded
>>
>>101339226
Actually I just looked at raylib source code and yes it does use a default shader for drawing stuff. It also has a speicialized shader for quad. Cool stuff.
>>
>>101337514
>day 938 of no 32 bits lights or skies being posted
pls
>>
>>101339517
i'm not surprised, there's absolutely no reason to use legacy fixed function pipeline emulation unless you're running a legacy program
it probably makes the GPU very upset even if it's not noticeable

but no i meant even the parts of the fixed function pipeline that are still in shader based OpenGL are emulated in shaders and programmable hardware
i think AMD dumped the last of it with their next generation geometry engine, not sure when nvidia did
>>
>>101339598
fixed function still works completely fine
>>
>>101339621
yes and no
you just don't notice it
if you were microbenchmarking it at the driver level or doing some extremely complicated stuff which would be extremely retarded to do with fixed function pipeline emulation you might be able to find the overhead
it's there
i'm not entirely sure on this but a situation where it might cause actual overhead to the end user is the GPU context switches, since init/deinit and activation/deactivation of fixed function pipeline emulation is bound to be fairly costly and there's just no reason to cause unwarranted overhead especially since you should assume other applications are running on the same system
>>
>>101339705
I haven't noticed any overhead
Why do you think it isn't just a default shader
>>
>>101339735
because what you're doing doesn't matter, it's what you could do
GPU doesn't like variable state in the way that OpenGL does it
that being said apparently it could just be a single shader (just not a simple one), i'm finding conflicting information on actual implementation details
>>
>>101339817
The fixed function pipeline would be a pretty simple shader, it's very limited
>>
>>101339817
The FF T&L pipeline is super simple, there's nothing that would cause any performance issues. Is there something in particular you think would be slow?
>>
File: file.png (36 KB, 1277x757)
36 KB
36 KB PNG
Finally a fucking triangle and this time I mostly understood what's going on.
>>
>>101339966
What happened to your simclone?
>>
>>101339925
I don't think he even knows what the fixed function pipeline does
>>
>>101339993
>simclone
I have no idea what that is. You're probably mistaking me for someone else
>>
>>101339925
i'm second guessing myself now since this could just be my memory being shit but can't you record an arbitrary number of a fixed set of math OPs into the command buffer? stuff like the matrix transforms and whatnot
that's specifically what i'm thinking of since that would be like building a shader opcode by opcode before dispatch and you'd need to do it every frame since there's no guarantee what you're recording wouldn't change between frames
>>
>>101340068
the push and pop matrix operations would obviously be done cpu side
>>
>>101340097
excuse my stupidity i forgot the CPU existed
>>
>>101339966
hello fellow Odin enjoyer!

>>101339993
>>101340013
kek he's not the real walmartdev.
>>
Hi, I am trying to write my own game engine with cpp, and I a using GLFW API for window stuff.
I have an issue where I can't call glfw function callback with class methods, forcing me to declare my functions and variables in static, which I don't want.
For example,
glfwSetFramebufferSizeCallback(window, frameSizeCallBack);

void
glfwCamera::frameSizeCallBack([[maybe_unused]] GLFWwindow* w, int width, int height)
{
glViewport(0, 0, width, height);
}


Doesn't work unless frameSizeCallBack is a static function.
I searched a lot, and found out that the issue is about the class pointer stuff. I can't follow solutions to fix the problem, since everything is pseudocode and I am too retarded to implement my own. Can someone please help me? Thanks :3
>>
How do I make a game like SimCity 2000 and the one in the OP pic (which is a beta version of The Sims in SC2K's engine)?
I.e, make a game that uses an OS's native APIs, has various parts of the game UI use the OS's UI, hell, even run on these old OSes if I wanna be autistic
There's something about games that use native OS windowing ui that just fills me with something, I don't know what.
>>
>>101340187
learn winform I guess.
>>
>>101340177
They have to be static functions, there's no way around this
You should get used to it, you won't be able to use OOP for everything
>>
>>101340177
for most practical purposes you can't (not without really stupid bit level hacking of member function pointers at least and that gets really dangerous especially on windows)
you're meant to use a dummy static function, store your class as a window user data pointer and cast then dispatch

this is why i prefer SDL since it uses event polling instead of callbacks leaving you free to set up your own callback system in any way you desite
>>
>>101340187
Just write the game using the APIs?
What are you even asking? Do want some hello world code to point you in the right direction? Go ask chatgpt for that.
>>
File: 1715241214627499.jpg (50 KB, 793x590)
50 KB
50 KB JPG
>>101340287
please understand that anon is in his ideaguy phase.
let's just hope he shake himself out of it and actually become a yesdev.
>>
>>101340222
One of my callback function uses a variable that lots of other functions also use it, which makes a chain reaction where I have to declare them static. >>101340233
Can you explain a bit more about dummy functions? Thanks :3
>>
File: file.png (36 KB, 1275x756)
36 KB
36 KB PNG
>>101339966
Another one. I have a quad baby. Now I gotta do perspective and get a cube on the screen and I'll be in heaven.
>>101340166
>hello fellow Odin enjoyer!
Hello there.
>>
>>101340344
so refactor that variable
>>
>>101340233
If you can get the OS to sleep your thread when there are no events event polling is absolutely the way to go.
A lot of libraries really don't like it when someone else takes over the main loop like that.
>>
>>101340233
//you only have one window user pointer so i wouldn't necessarily make a camera class the user pointer in practice
//either a window class or something like std::map<string, void*> type so you can have more
//does nothing but dispatch to the actual frameSizeCallback
void glfwCamera::staticFrameSizeCallback(GLFWwindow* w, int width, int height) {
//set this in window init
reinterpret_cast<glfwCamera*>(glfwGetWindowUserPointer(w))->frameSizeCallback(width, height);
}

//include the window if you need it but it looks like you don't right here
void glfwCamera::frameSizeCallback(int width, int height) {
glViewPort(0, 0, width, height);
}
>>
File: Configuring the form.jpg (94 KB, 1080x468)
94 KB
94 KB JPG
>>101340187
Use freepascal with its RAD gui builder gui builder
>>
>>101340378
meant to (You) >>101340344 as well
>>
>>101340187
Sir use JavaFX
>>
>>101340348
what got you to try Odin?
>>
>>101340177
what I personally do is create a duplicate function that is named slightly different like:
static void C_frameSizeCall(GLFWwindow* window, int width, int height)
{
static_cast<*glfwCamera>(glfwGetWindowUserPointer(window))->frameSizeCall(window, width, height);
}

use glfwSetWindowUserPointer to set the pointer to "this" or the address of glfwCamera.
The problem is that all window events need to be in one class, you can use composition so that you have a "Window" class with all callbacks, and inside that class you have the "Camera" class, so you would access the camera function from the window class
static_cast<*Window>(...)->camera.frameSizeCall(window, width, height)

This code is pretty shit, glfw wants the functions to be global because glfw is a C library not a C++ library (SDL2 manages to fit better because there are no callbacks). And it's pretty normal for the window to be stored as a global variable.
You could use a lambda instead of the static function, but I don't like it because it makes the stacktraces messy and I print stacktraces for diagnostics.
>>
>>101340187
you can use QT if you disabled the vista style plugin, it will look like the old windows style.
But if you use opengl you need to use QT's API for opengl and it's pretty ugly.
>>
>>101340455
Being fed up with Zig breaking every month. Also the lack of well-maintained libraries.
>>
>>101340515
>>101340378
cool these actually work. It is hard to understand why, but still thank you :3
>>
>>101340628
damn are you me?
Are you also making a simlike?
>>
>>101340187
use winapi dumbass
If you need to, you can just use SDL to initialize the window and handle all the tough shit before obtaining the window handle and passing it to the Windows api for that final 90's game look
>>
>>101340663
it's cause when a function is a non-static member function a secret pointer to the class called the this pointer (it's what the this keyword accesses) is passed as an argument
that and a few other things makes C++ member function pointers incompatible with C function pointers even if the functions look like they have the same arguments
you have to manually resolve the function
>>
>>101340738
*incompatible with global function pointers
not C
even though in this case they are C
>>
>>101340738
>a secret pointer to the class called the this pointer (it's what the this keyword accesses) is passed as an argument
It's not a secret in C++23 anymore
>>
>>101340628
What causes this? Also, what makes you think Odin is better in that sense?
>>
>>101340772
oh yea i guess not
wonder if explicit this actually has any impact on the ABI
>>
>>101340824
nta, but Ginger Bill said the language is pretty much finished and only need the spec to be written. Also in the 8 months I have been using it, the only change that required me to update my code was really minor.
for x in &arr {
...
}
to
for &x in arr {
...
}
>>
I'd use Odin if the debugging experience wasn't dogshit
How can you call a language "finished" if you haven't bothered to make sure there's a decent debugging experience.
>>
>>101340948
you can use any regular debugger that handle llvm. What are you on about?
>>
>>101340187
win32, menus, status, buttons, MDI. theForger's win32 tutorial is a good place to start, also see if you can find win32.hlp from windows 95 SDK.
>>
what line width do you use? 80 is too short especially with cpp
>>
>>101341420
uncapped, if you use any libraries that make any kind of use of TMP you never know when you'll run into a template metaprogram where someone didn't properly line break the parameters in a sane or readable way
>>
>>101341420
120 is the patrician choice. I'm not just saying that because it happens to be a good fit for my particular monitor with my particular choice of font. It's definitely 100% objectively the correct choice and if you use anything else you're wrong.
>>
>>101341420
I don't use one, I don't care about it. Am I in the wrong ?
>>
>>101341420
unlimited
I don't know why low level programmers are obsessed with short variable and function names, as far as I'm concerned, the more descriptive a name is, the better
as long as it's snake case, though
>>
>>101334323
GDScript does not use garbage collection. All variables in GDScript are reference-counted. Why would you just lie on the internet? I don't even use Godot but this isn't one of the reasons why.
>>
>>101338235
>Started OpenGL with Odin. Why is it so retarded?
Why are you retarded?
>>
Nearly got my WebGPU project actually running in chrome. Guess I'll be enjoying it in a few years when it actually becomes more battle tested. Maybe?
>>
>>101341744
It's not a bad choice honestly. I don't want to use it because its limited compared to vulkan and has its own shaderlang but it has a spec and conformance tests. And tons of people from multiple companies working on it. Hell of a lot better than bgfx.
>>
>>101341765
>conformance tests
Can anyone even pass them at the moment? WebGPU CTS certainly doesn't pass on any hardware I have. Latest Chromium, latest AMD driver for Windows, probably the 2nd most common desktop platform out there...
>>
>>101341865
Not sure, but at least they're there and there's a goal for every vendor to pass them. With bgfx the "spec" is the implementation and that changes at a whim, and often you'll just get ebussy'd for pointing out bugs or gaps.
>>
>>101337564
Start listening exclusively to classical music and have a constant drone of rain background noise.
Your brain volume will increase by 125% guaranteed.
>>
>>101338235
>Odin
Man these C clones keep getting more retarded every year. C is already ugly as sin, no need to add the semen drinker god paradigm to it
>>
>>101341765
Never tried bgfx myself.
WebGPU certainly has a lot of weird limitations compared to vulkan - like bindless stuff is not too practical in its current state, and you HAVE to use staging buffers for dynamic data.
It feels a lot like they took metal, made it more strict, and didn't bother writing any good documentation for it nor did they add in any debugging features apart from validation layers which aren't sufficient to catch all the weirdness that goes on (and it can get very weird when behavior from the underlying API leaks into webgpus "clean" abstractions).
The shading language isn't too bad but it does generate some weird code and I'm not sure if theres really anything in the spec about caching which is a little disappointing because I'm getting frustrated with all the stuttering modern stuff ends up having because of it.

Still hoping it will eventually be good though!
>>
>>101341932
>classical music
https://www.youtube.com/watch?v=KEdcOR179_Q
>>
Ok, I did some research and apparently I've been living under a rock because it's actually now difficult to find a consumer device that doesn't support opengl 3+ or opengl es 3+.
for laptops it's thinkpads so old only richard stallman would use them (and he doesn't play video games)
for phones, it'd have to be so old even your grandma wouldn't want use it for whatsapp

that leaves us with SBCs, where there's a fair number that still only have GL ES 2, and people do play games on them, but, like, not modern commercial ones, mostly just emulators or retro games. and it's never someone's main device either way, so if they wanted your game, they could get it on their phone or computer.

so I suppose there actually is pretty much no reason to ever target OpenGL below 3, or OpenGL ES below 3.

my team lead was right, I'm a retard
>>
File: 5192Zk0z14L._AC_.jpg (24 KB, 353x443)
24 KB
24 KB JPG
>Can't decide if I want to make a windows 95 game, a DX7/8 game, a compiler, or learn japanese
>Whenever I do start a project, always 1 week later i abandon it and start a new one
I hate my adhd
>>
>>101341997
It's not hard. Go in to Windows Control panel, Uninstall your GPU driver, and now your device only supports OpenGL 1.1. Wasn't hard at all.
>>
>>101341908
Fair enough, I'm not sure why you wouldn't just target Vulkan at that point though. Is WebGPU really that much simpler?
>>
>>101341963
Odin's pain problem is pascal-style syntax
Its basically Jai but available today

C will always be king
>>
>>101342041
but pascal syntax is superior, C's type declarations are pants on head retarded
>>
>>101342032
Yeah I just prefer Vulkan. Mac support for Vulkan is dodgy, but Apple is on board with it so theoretically if you're able to write your renderer in WebGPU it'll run everywhere. I don't really care about web or ios or whatever though.

Overall its simpler I'd say, just looking at the API. But desu Vulkan isn't that bad. Once you write your first triangle you chuck all that code in a header somewhere and never worry about it again - then you're like 90% of the way there and basically the same as OpenGL. You just have to be mindful and explicit about barriers/syncs.
>>
File: 1709291693278953.jpg (99 KB, 649x676)
99 KB
99 KB JPG
>>101342056
Retarded or not, they just feel right. Pascal was made for academics. C was made for real human beans.
>>
>>101342078
>Mac support for Vulkan is dodgy, but Apple is on board with it
since fucking when?
i was under the impression they were explicitly hostile to vulkan-on-metal
>>
>>101342511
i think they added something to metal to make vulkan emulation easier, probably to help with the emulation tool they made by forking wine. (developers are still expected to port their code to metal, the tool is only for developers to test viability, the tool is also painfully difficult to use unlike wine on linux I think).
>>
>>101342555
i thought the rest of khronos just gave up and decided they could never get full conformance out of apple and that was what VK_KHR_portability_enumeration was about
>>
>>101342511
sorry I structured that sentence poorly
I meant Apple is on board with WebGPU
>>
>>101342604
if by "on board" you mean "intentionally destroyed"
a WebGPU subdialect of SPIR-V for the web is dead because of them and they changed wGSL for the web to be more retarded
>>
>getting filtered by vulkan-tutorial.com
>>
File: 1dc7wp-1245240256.jpg (66 KB, 900x900)
66 KB
66 KB JPG
>>101337514
CAN SOMEONE FUCKING TELL ME HOW THE FUCK TO RECORD A WINDOW WITH OBS WITHOUT GETTING A *BLACK FUCKING SCREEN"!!!!!! REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
>Upload Failed
>Connection Error
FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU FUCK YOU
>>
>>101343257
if you think you're being clever and trying to record DRM encumbered content with OBS that's not going to work
otherwise you just do?
like i changed zero settings when i first installed OBS on linux (iirc it's the same on windows) picked the window and it worked
>>
File: spongethink.png (1.64 MB, 1622x830)
1.64 MB
1.64 MB PNG
Hypothetically speaking, if any of you guys finish your game, where are you going to publish it? Steam? Itch? How are you gonna show it online to others outside of this site? Are you gonna use an anonymous or pseudonymous handle to showcase the game and its development, instead of your IRL identity?
I want to publish my game on Steam, but also allow the "pay what you want"/shareware model, which afaik Steam doesn't allow (You have to have a set fixed price from what I know and the price has to be the same as on other storefronts). I want to show my game to the world when it's ready, but under a pseudonymous handle. There's nothing "bad" per se about my game that would make me not want to associate my real identity with it, I just don't like having my personal life intertwined with my internet activity. And yet, I don't want to be on the typical social media sites that games are often showcased on either (for the whole "I prefer privacy/pseudonymity" reason, also so I don't get brainrot)
Is it possible to do all this? Present and publish a game on a public platform/storefront under a PWYW or shareware model, under a pseudonymous identity?
>>
>>101343257
How do you have you inputs set up? Depending on whats happening it is sometimes better just to record the entire screen in fullscreen instead of a window, although this will lead to some weird stuff.
>>
>>101343320
If you want to do a PWYW model just add a bitcoin address or smth.
>>
>>101343279
Look at the thread title, simpleton.
>>101343321
>How do you have you inputs set up?
What's this? Inputs are the window I'm trying to record?
I've tried every setting, watched every youtube "fix". I've been at it for literally 6 hours. Free software has a cost, they're a fucking time sink.
>>
>>101343393
i just assumed you were stupid and lost because of the way you posted
is there a potential you have any drm encumbered content open in any window at all?
i'm like 40% sure it can still cause black screens regardless
alternatively try AMD/NVIDIA's screen recorder if you're on windows
don't know where NVIDIA shadowplay is but AMD's one is in the control panel
>>
>>101343393
Hm never had this issue in windows or linux.
>>
>>101343441
*AMD control panel
>>
>>101343441
>is there a potential you have any drm encumbered content open in any window at all?
No. Other than visual studio and notepad++ I don't have any other windows open. I'm tired, angry and fucking fustrated as hell with the piece of fucking shit that is OBS.
I've got an Nvidia card but I'm not downloading any shit onto my system, because I use AtlasOS so fuck knows if that shit will even download let alone install.
>>101343451
>Hm never had this issue in windows or linux.
Congrats.
>>
>>101343320
I will sweat, cry and overwork myself for the next 10-15 years.
Then I will create a masterpiece and just release it to the public domain. No donate option either.
Fuck money and fuck Jews, I'm doing it because I enjoy it.
>>
>>101343524
>I've got an Nvidia card but I'm not downloading any shit onto my system
>because I use AtlasOS
i mean that's probably part of the problem
i've no idea how nvidia's hardware encoding infrastructure works or for that matter how OBS work under the hood but i'd imagine you're going to have to download and install your drivers properly, assuming stupidly using a custom windows ISO hasn't fucked things irreparably
why the fuck would you think that was a good idea
>>
>>101343532
But where will you release it?
>>
>>101343257
Are you using Game Capture or Window Capture
>>
>>101343552
It's got nothing to do with AtlasOS. I can happily play AAA games at a higher frame rates than the shit stock Win10 install. It's not a driver problem or an AtlasOS problem. It's a fucking OBS problem and still hasn't been fucking fixed.
>>
>>101343567
I've tried both settings. Neither of them work.
>>
>>101343595
OBS doesn't care if games run, it cares if NVENC runs
>>
>>101343559
Nowhere
I will delete the only copy of my masterpiece and kms, depriving the world forever of its magnificence
>>
File: F.webm (296 KB, 1280x720)
296 KB
296 KB WEBM
>>101337514
YUP IT'S GAMING TIME
>>
>>101343614
>free software
>propriety software to run
Wow, sweet.
I'll try it though.
Why doesn't x264 work?
>>
File: F2.webm (457 KB, 1280x720)
457 KB
457 KB WEBM
Should i add chads that chase you down to my game?
>>
PhysX?
>>
>>101338235
> Why is it so retarded?
Because it clings tightly to C retardation.
>>
>>101344025
Found the rust cultist
>>
File: uint64_t.png (271 KB, 603x324)
271 KB
271 KB PNG
>>101344056
Wrong.
>>
>>101344062
Oh, nvm, based...?
>>
>>101343695
your entire graphics software stack is proprietary you dingus
the only way OBS can have a fully open source HW encoding stack is linux using an open VA-API impl
>Why doesn't x264 work?
well then that rules out codec problems
no idea then
>>
>>101343618
holy based
>>
File: merged.png (81 KB, 607x250)
81 KB
81 KB PNG
What books are you currently reading? I'm working through these three
>>
>>101345049
what do you think of the one on the right?
real-time rendering is really dense, I use it more as a reference book than something to read sequentially
>>
>>101343320
Not releasing your game on Steam is a dumb idea but you're not required to publically disclose your idenitity
>>
File: Baby-Duck-4953783.png (172 KB, 521x786)
172 KB
172 KB PNG
>>101342089
>they just feel right.
>>
>>101341684
Automatic reference counting IS garbage collection
>>
>>101345112
no its not shut the fuck up
>>
>>101345130
Yeah it is
You have a runtime that's doing book-keeping behiind the scenes to clean up memory (collect the garbage) when you've finished with it
Doesn't really make any sense to call mark-and-sweep GC but ARC isn't GC, they both have a performance impact
>>
>>101345143
>You have a runtime that's doing book-keeping behiind the scenes
It's not a run time, that implies there's a background thread or process doing this. There simply isn't. That's not how ARC works. Cleanup happens as soon as the object falls out of scope. It's no different than calling free, just with added safety in premature deallocations.
>>
>>101345112
By that definition are C++ destructors and smart pointers also garbage collection, retard?
>>
>>101345206
>that implies there's a background thread or process doing this.
No it doesn't, it implies it happens at runtime. What the fuck are you smoking
>It's no different than calling free
Reference counting does unneccessary work, it has to keep a reference counter on the object and it has to incremenet / decrement it when pointers are assigned
It can be optimized but it's still slower than manual memory management, even slower than mark and sweep in some cases
>>
>>101345223
>Reference counting does unneccessary work, it has to keep a reference counter on the object and it has to incremenet / decrement it when pointers are assigned
>It can be optimized but it's still slower than manual memory management, even slower than mark and sweep in some cases
This is literally insane, an atomic add/sub costs virtually nothing on modern hardware

You can just admit you're full of shit and move on instead of being a DK retard
>>
>>101345230
>atomic add/sub costs virtually nothing
They don't, there's a measurable performance difference, you have to access that memory and it might not even be in cache
Don't act like reference counting is free and call me a DK retard, you don't know the first thing about garbage collection
If refefence counting was free nobody would use mark and sweep
>>
>>101343648
HAHAHAHA DUUUDE
>>
>>101345254
Do you even know how many cycles free() takes? If you've never written a generic allocator shut the fuck up
>>
Guys please don't argue about reference counting and garbage collection, I'm begging you. This argument is going to go absolutely nowhere
>>
>>101345257
I've written a fucking garbage collector
free() does not take a fixed amount of cycles, you DK retard
>>
>>101345266
hey DK retard it should be clear that free() is more expensive than a fucking atomic add/sub
>>
>>101345270
adding and subtracting the reference counter takes place far more often than free you idiot, and the cost of freeing the memory depends on your allocator. if you use a bump allocator you don't even need to free, if you use a stack allocator it's just an atomic add
>>
>>101345286
no one is using ARC for memory allocated via a bump allocator you absolute retard
I can't believe you actually tried to deflect with that
you will die jobless as you live today
>>
>>101345301
>no one is using ARC for memory allocated via a bump allocator you absolute retard
I didn't say they were
You don't understand this topic
>>
>>101345318
unemployed retard
>>
>>101345326
How many GCs have you written litte bro
Have you approached language designers with your discovery that reference counting is free so they should all ditch mark and sweep
>>
>>101345086
>what do you think of the one on the right?
I'm only on chapter 2 but so far I think it's great. It introduces a Vulkan concept, explains it with visuals, and shows how to do it with a code example. Whereas Khronos gives the specification I think this book serves as good actual documentation. I should also note it uses VMA.
>real-time rendering is really dense, I use it more as a reference book than something to read sequentially
I'm reading it to get the brain juices flowing with rendering concepts and jargon. I don't intend to read every chapter like VR and Intersections. Although at some point ill have to pick up a math book. Either gamemath.com or one of the Lengyel ones. Right now I'm more focused on learning c++ and getting a basic renderer up before diving into the shader rabbit hole.
>>
>>101345350
Look you've more than illustrated you have no idea what you're talking about. I've written 2 GCs, but I'm not wasting time on someone is 1. an idiot 2. gets paid $0 to work on software
>>
>>101345370
>I've written 2 GCs
Yet you seem to think reference counting is free
Don't just go and lie on the internet like that
>>
>>101345376
Virtually free != free. Processors are different today. Profile your shit. This is the last reply, jobless sis.
>>
>>101345386
Not virtually free either, naive RC implementation is actually slower than naive mark and sweep, especially on modern processors which can take advantage of ILP which gets ruined by inserting reference counting operations everywhere
>>
i had a dream about a hardware store shootout. im inspired to yesdev
>>
>>101345230
And atomic add sub bocks memory access for the whole 16 core machine.
>>
File: rux5byyhw4171.png (552 KB, 800x600)
552 KB
552 KB PNG
I use Godot because I enjoy it.
>>
Forward+ or Deferred?
>>
>>101346720
Forward#
>>
File: IMG_4921.jpg (909 KB, 1284x1568)
909 KB
909 KB JPG
Taking his sweet ass time
>>
Is rust good for game dev?
>>
>>101346805
No
>>
File: IMG_4922.jpg (288 KB, 1213x1394)
288 KB
288 KB JPG
Apparently GDC has a bookstore. Anybody know the one cut out on the top left with green text?
>>
>>101346795
>>101346832
Stop wasting your time reading books
>>
>>101346838
no
>>
>>101346795
why would he put a zombie that looks like it came out of a ps2 game on his 2024 game engine dev book
>>
>>101346935
Modern games contain too much clutter
>>
Godot's Node system is garbage.
>>
>>101347229
Godot is garbage
>>
File: 1718616173506536.png (258 KB, 750x722)
258 KB
258 KB PNG
>>101345105
I actually started with Pascal.
>>
>>101340331
Grill friend no hesitation.
>>
>>101346832
if only game engine architecture had pseudo code instead of math
>>
>>101342004
What do you want to get out from any of these?
>>
>>101346805
Use it for anything else but gamedev. Developer experience is unmatched when developing cli, tui, compilers, etc but It's compile times are not fun when developing games.
>>
>>101347577
reduz is a mastermind grifter
he created the perfect foss neet trap with godot
a software that can only produce incomplete and buggy and abandoned software
>>
>>101348135
I don't like Godot but there have been actual good games released with it so that's not strictly true
>>
>>101348139
>good games
>doesnt name even 1
tall order champ
>>
>>101348158
If I name them you'd probably say they were shit
>>
>>101348192
perchance persay because deep down you know those arent actually good games? is that why you have no confidence ?
>>
>>101348220
me knowing they're good games doesn't mean you're going to be convinced if you don't want to be
>>
>>101341997
Survivor bias. Wonder what made undertale so popular? Besides watching youtubers, they could actually play it without modern computers.
>>
>>101348259
99% of the game-playing population can run OpenGL 3
>>
>>101342089
Quite the opposite, semicolon and bracket spam is made for retarded computers.
>>
so uh I got told to come here to learn how to code to make a gayme. which one of those links can help someone who knows nothing about tech at all to get started.
>>
>>101348265
Survivor bias. People don't need to throw their old stuff just to listen to music or watch movies at 720p. For videogames is the opposite.
>Steam says
Yes.
>>
>>101348323
>Survivor bias
No, actual research, which you should do before you go and say retarded shit like that
>>
>>101348229
Can't speak for that anon but I want to know what games you like.
Dome Keeper was pretty successful but I don't know if Godot was that helpful, seems like they could have made that in any toolset just as easily (or easier).
Cruelty Squad apparently includes a quip about how the developer picked Godot as a contrarian choice and regrets it, so I don't know if that's a glowing endorsement.
Cassette Beasts looks okay and it got some decent reviews, but they were probably wrong to choose Godot overall? It seemed like it fucked up their Switch release at the very least.
What else?
>>
File: owned.png (59 KB, 590x391)
59 KB
59 KB PNG
>>101348328
Research THIS.
>>
>>101348345
I didn't say Godot was better than other software, but it has produced multiple successful games
>>
>>101348361
Before I chose what OpenGL version to use, I went out and found hardware surveys to see what peoples computers supported. Nearly everyone could do OpenGL 3, and that was ages ago
Meanwhile your sources of information are your single personal computer and your asshole
>>
>>101348370
>I went out and found hardware surveys to see what peoples computers supported.
So you researched what can computers that are being sold now do? That won't tell you anything about the people who aren't purchasing new computers.
>>
>>101348386
No not what computers are being sold, what computers are being used
>>
is 80% of indie game dev the art? ie mapping, modelling, texturing, etc?
(assuming youre using one of the popular engines (unity, unreal, godot))

I want to make a simple exploration puzzle game, no crazy mechanics or anything, just a map with some key items
so I feel like Id just be spending 95% of my time in blender
>>
>>101348386
>>101348361
>NVIDIA GeForce 9400M
>A laptop GPU from 2008
There is a point where you just have to say old is too old.
>>
>>101348393
Yes
>>
>>101348363
haha yeah like that sonic game LMAO
>>
Surely your GPU supports Vulkan 1.3 so you can play my game right?
>>
followed this godot tutorial today as my first introduction to godot: https://youtu.be/A3HLeyaBCq4?si=A73ctgEqfKgrYv7q

I really like it, I find it all really intuitive
Ive mainly been using python for years now and Im proficient in blender so I think that helps
I find godot more intuitive as a beginner than unity
not saying its better, because its not, but from what Ive seen so far the level of polish of godot 4 is quite impressive
Im starting to believe itll become the blender of game engines
>>
File: DevMachine.png (38 KB, 710x668)
38 KB
38 KB PNG
>>101348361
Works on my machine
>>
>>101348563
Of course, anon
But where is this game?
>>
>>101348398
Not yet my friend!
>>101348391
>what computers are being used
And who is reporting this? Computer enthusiasts of course. Most surveys in programming languages will hype rust. How often have you find rust used in real work? You are falling for the trap, the majority is silent and will buy a new phone before they recycle their computers. Are you making a phone game?
>>
>>101348566
Cool cool. Now finish a game.
>>
>>101348608
It’s coming…eventually
>>
Im using godot (mistake 1) to make a roguelike (mistake 2)
im planning to use premade rooms and then connect them together
but it feels like i already have waaay to many nodes (each room scene has like 10-15 nodes)
Wont this slow everything down?
How can I visually edit stuff but also not have it be nodes and instead just data i draw to the screen in a for loop?
>>
>This in turn allowed us to demonstrate that all high-performance garbage collectors are in fact hybrids of tracing and reference counting techniques. This explains why highly optimized tracing and reference counting collectors have surprisingly similar performance characteristics.
https://web.eecs.umich.edu/~weimerw/2012-4610/reading/bacon-garbage.pdf
>>
>>101348642
>And who is reporting this? Computer enthusiasts of course
No, telemetry stats of random computers people use. Literally making shit up to justify your prexisting biases, stop being retarded, go look at Steam stats
>>
>>101348690
>all garbage collection same
u needed an education for that? just ask any garbage man
>we pick up garbage and move it somewhere else
>>
>At some point I measured smart_ptr to be 25x slower than raw pointers. The compiler I am maintaining is not using C++ style smart pointers. It is using a global whole program optimisation pass to reduce reference manipulation to a minimum. Basically what a world class C++ programmer with years of experience optimising performance would do. It is just done automatically.
Just use GC ffs.
>>
>>101348766
There’s no actual evidence smart pointers are slower than raw pointers
>>
>>101348793
Thats literally "some random shit I did is 25x slower than raw pointers (no methodology for measuring this provided)"
>>
>>101348766
>smart_ptr
good morning sir
>>
>has dreams of becoming a big game dev
>wants to make generic 2D roguelike
>doesn’t want to use c++, prefers c#
>”unreal is for big teams”
>watches “I FINALLY MADE MY DREAM GAME!” youtubers
>r/gamedev
Why are there so many of these people?
>>
>>101348801
>>101348793
https://stackoverflow.com/a/47853989
>>
>>101348793
>Muh zero cost abstractions
They don't exist and it's incredible how easily propagandized you retards are
>>
>>101348849
proper reference counting includes the reference counter as part of the object it's counting, not a seperate allocation
>>
File: 81e-N6bN2iL._SL1500_.jpg (173 KB, 1052x1500)
173 KB
173 KB JPG
>>
>>101348793
Shared pointers are slower because they are not equal to raw pointers. You can implement the same functionality faster than STL if you ditch thread-safety.
Unique pointers are literally the same as new-delete pair in optimized build.
>>
>>101348849
It's wrong, you can make shared pointer without two pointers. Also shared pointer is not intended to replace raw pointers.
>>
holy fuck some of you all in this thread are either gpt bots or have never programmed a line of C++ in your lifes and are larping as a C++ programmer
>>
>>101348849
>ACK overflow
might as well ask chatGPU for programming advice
>>
>>101348964
welcome to /g/ newfag
>>
>>101348683
Don't worry about such foolishness.
>>
>>101337564

Honestly a combination of >>101337597
and >>101341932
>>
File: deboonking.png (137 KB, 964x634)
137 KB
137 KB PNG
this kills the Pust shill
>>
>>101348999
https://dev.epicgames.com/documentation/en-us/unreal-engine/smart-pointers-in-unreal-engine
>>
File: 338a490.jpg (256 KB, 1282x1282)
256 KB
256 KB JPG
>>101346805
No, you're better off using a language that is more ergonomic with handling mutable state with, such as C++
t. tried writing one in pure rust, got filtered hard, but kinda want to try again except this time if I do im going to write a forth as a scripting language
>>
>>101348964
is it really ok? 10,000 nodes?? wont it take forever to traverse thr fucking scene tree
>>
>>101349069
unique_ptr is NOT zero-cost:
just check out y-chromosome-combinator
https://news.ycombinator.com/item?id=24391419
>>
Unfortunately, there are also a number of disadvantages to reference counting. First, it imposes a time overhead on the mutator. In contrast to the tracing algorithms we consid- ered in earlier chapters, Algorithm 5.1 redefines all pointer Read and Write operations in order to manipulate reference counts. Even non-destructive operations such as itera- tion require the reference counts of each element in the list to be incremented and then decremented as a pointer moves across a data structure such as a list. From a performance point of view, it is particularly undesirable to add overhead to operations that manipulate registers or thread stack slots. For this reason alone, this naive algorithm is impractical for use as a general purpose, high volume, high performance memory manager. Fortu- nately, as we shall see, the cost of reference counted pointer manipulations can be reduced substantially, even to become competitive with high performance tracing collectors. Second, both the reference count manipulations and the pointer load or store must be a single atomic action in order to prevent races between mutator threads which would risk premature reclamation of objects. It is insufficient to protect the integrity of the reference count operation alone. For now, we simply assert that actions are atomic, without ex- plaining how this might be achieved. We reconsider this in Chapter 18 when we examine reference counting and concurrency in detail. Some smart pointer libraries that provide reference counting require careful use by the programmer if races are to be avoided. For example, in the Boost library, concurrent threads can read the same shared_ptr instance simultaneously, or can modify different shared_ptr instances simultaneously, but the library enforces atomicity only upon reference count manipulations.
>>
>>101349219
The combination of pointer read or write and reference count increment is not a single atomic action. Thus, the application programmer must take care to prevent races to update a pointer slot, which might lead to undefined behaviour. Third, naive reference counting turns read-only operations into ones requiring stores to memory (to update reference counts). Similarly, it requires reading and writing the old referent of a pointer field when changing that field to refer to a different object. These writes ‘pollute’ the cache and induce extra memory traffic. Fourth, reference counting cannot reclaim cyclic data structures (that is, data structures that contain references to themselves). Even if such a structure is isolated from the rest of the object graph — it is unreachable — the reference counts of its components will never drop to zero. Unfortunately, self-referential structures are common (doubly linked lists, trees whose nodes hold a back pointer to the root, and so on), although their frequency varies widely between applications [Bacon and Rajan, 2001]. While it is possible to use reference counting in ways that break cycles or ignore back-links, these techniques are not a general purpose solution and must be used with care. Fifth, in the worst case, the number of references to an object could be equal to the num- ber of objects in the heap. This means that the reference count field must be pointer sized, that is, a whole slot. Given that the average size of nodes in object-oriented languages is small (for example, Java instance objects are typically 20 to 64 bytes long [Dieckmann and H ¨olzle, 1999, 2001; Blackburn et al., 2006b], and Lisp cons cells usually fit into two or three slots), this overhead can be significant. Finally, reference counting may still induce pauses.
>>
>>101349225
When the last reference to the head of a large pointer structure is deleted, reference counting must recursively delete each de- scendant of the root. Boehm [2004] suggests that thread-safe implementations of reference counting may even lead to longer maximum pause times than tracing collectors. Weizen- baum [1969] suggested lazy reference counting: rather than immediately freeing garbage pointer structures, deleteReference adds an object with a zero reference count to a to-be-freed list, without destroying its contents. When the object is later acquired by the allocator, its children can be processed similarly, without recursive freeing. Unfortunately, this technique allows large garbage structures to be hidden by smaller ones, and hence increases overall space requirements [Boehm, 2004]. Let us now see the extent to which we can resolve two of the major problems facing ref- erence counting: the cost of reference count manipulations and collecting cyclic garbage. It turns out that common solutions to both of these problems involve a stop-the-world pause. We mention these here but examine how this requirement can be relaxed in Chapter 18.
>>
>>101349234
>>101349225
>>101349219
can you stop spamming your garbage article
>>
>>101349219
>>101349225
>>101349234
off-topic, shut up
>>
>glew latest update is in 2017
it's so over
>>
>>101349186
I'm going to fucking hurt you in a minute cunt.

Yes the engine build entirely around the concept of nodes and handle nodes.
>>
>>101349219
>>101349225
>>101349234
Great information, thank you sir.
>>
>>101349241
>>101349245
>"Garbage collector bad!"
>Refute this
>"Don't like your source!"
>Keep refuting this
>"Anyway, it's offtopic!"
Sore losers.
>>
>>101349291
You aren't arguing with anyone, you're just dumping offtopic shit
>>
>>101349304

>>101341684
>>101345112
>>101345223
>>101345230

I can go on.
>>
>>101348683
Ok at 500,000 nodes the engine tanks.

Literally DOA, pack it up boys.
>>
>>101349328
he's not even here anymore
>>
>>101349340
kek! you are right.
>>
>>101349218
it is if you dont abuse it like a retard
>>
>>101342089
>" Pascal was made for academics"
No it wasnt. it was adopted by it though.
And even so it doesnt matter.
Erlang was made for phone exchange but is used as a general purpose language.
>>101342056
Check out HROT for a cool old school FPS written in pascal
>>
>>101346832
You giving any of those books away for free?
I'll read them and give an honest review.
>>101346838
You think the jeets and retards on jewtube can give you more information than those books huh?
>>
>>101350027
The only way you learn is by doing
>>
>>101350045
Thats why just started writing scrambled text into notepad.
If just keep "doing" i will have a game!
Fuck books!
>>
>>101350169
That's the spirit
>>
>>101350045
Well you've been doing retardation for awhile now. So I guess you're pretty good at it.
Anyways, no, I'll never stop reading books or papers for that matter about programming or technology. New ideas and thinking about things in a different way is what separates the good-tier programmers from the, well, jeetcoders and /g/.
>>
>>101350587
Good programmers are thought leaders, you're a thought follower
>>
>>101338615
>batching is cut if you switch textures
I surely hope not, even my hobby babies-first shader can do 32 textures before needing to start a new batch
>>
>>101350614
>Good programmers are thought leaders
You're implying they control thoughts of others?
>>
>>101350640
They lead the way, they think indepedent thoughts, they do things the way others don't
>>
>>101350646
That's not the answer to my question, champ.
>>
>>101350662
The answer is no
>>
>>101350552
i dont have the source
>>
File: 1720286825668065.jpg (23 KB, 398x500)
23 KB
23 KB JPG
>>101350670
Well, done.
Now, I can get back to reading these useless books that don't control my thoughts.
>>
>>101350695
ok, have fun procrastinating
>>
>>101343257
pacman -Rs wayland
pacman -S xorg-server
>>
>>101343320
I've been doing private MMO server stuff for the past 12 years and have small communities (100s of people each) on Discord here or there, I'd probably try to advertise it there. I also have a lot of connections with people who are into gaming 24/7 so I'd probably first launch an invite-only Steam release to get a beta going.
>>
>>101343712
TempleOS vibes
>>
>>101348766
Most of the time you don't need to pass a smart pointer around, only in cases where you need to store the pointer for reference counting, in all other cases you do:
void some_func(Foo &foo);
some_func(*smart_ptr);
>>
>>101348312
https://files.catbox.moe/a875c2.pdf
>>
File: gamedev books.jpg (2.31 MB, 1600x9487)
2.31 MB
2.31 MB JPG
>>101348312
here you go fren
>>
>>101351548
please tell me this image is bait
>>
>>101351548
>Step 0: books for kids
Why would the guy put that in this pic if kids can barely understand this infographic (probably)? Step 0 is meaningless
>>
>>101340177
you can store 1 pointer into the glfw context
GLFWwindow* m_window;

// Associate the wrapper to the window

glfwSetWindowUserPointer(m_window, this); // this = your object, "Window" for me

// Window resize callback
glfwSetWindowSizeCallback(m_window, [](GLFWwindow* window, int width, int height) {
Window& w = *(Window*)glfwGetWindowUserPointer(window);

w.m_properties.width = width;
w.m_properties.height = height;

WindowResizeEvent event(width, height);
w.m_eventCallback(event);
});

it might feel a little dirty, but static_casts are cheap anyway
>>
>>101351574
I thought you wanted to learn from zero.
>>
File: firefox_1PsoBp610q.png (66 KB, 608x552)
66 KB
66 KB PNG
Get ready for the WHEEL OF DEATH. Roll the wheel, and whatever "old" coding setup you land on, you MUST use for the next month or so of gamedev!
https://wheeldecide.com/index.php?c1=%3EWin32+--+Visual+C%2B%2B+6+--+Direct3D7&c2=%3EWin32+--+Visual+C%2B%2B+2002%2F2003+--+Direct3D9&c3=%3EWin32+-+Visual+C%2B%2B+6+-+OpenGL+1.x&c4=%3EMSDOS+-+Watcom+ANSI+C+-+3D+software+renderer&c5=%3EWin32+-+VC%2B%2B4.1+ANSI+C+-+3D+software+renderer&c6=%3EAmiga+%28%3F%3F%3F%29+-+C+%28%3F%3F%3F%29+-+3D+software+renderer&c7=%3EWin95+-+VC%2B%2B4.1+-+Early+early+Direct3D+%282.0%2F3.0%29&c8=%3EMSDOS+-+Watcom+ANSI+C+-+Glide&c9=%3EClassic+MacOS+System+7+-+MPW+-+2D&c10=%3EDOS%2FWindows3.1+-+Watcom%2FVC%2FVC%2B%2B+-+2D&time=5
Alternatively, if you'd prefer not to use the site in the link, do the "classic roll".
0: 3D Windows programming with Visual C++6 and DirectX7.
1: 3D Windows programming with Visual C++ 7.x and Direct3D9.
2: 3D Windows programming with VC++6 and OpenGL 1.x.
3: 3D software rendered MSDOS ANSI C programming using Watcom.
4: 3D software rendered Win32 ANSI C programming using VisualC++4.1.
5: 3D software rendered Amiga programming using ??????
6: 3D Windows 95 programming using Visual C++4.1 and Direct3D pre-5.0.
7: 3D MSDOS ANSI C programming using Watcom and Glide.
8: 2D Classic MacOS (System 7) programming using MPW (Macintosh Programmer's Workshop).
9: 2D DOS/Win16 programming using Watcom, Visual C, or Visual C++. Your choice.
>>
>>101338124
"memento"
Fucking americans are all fucking illiterate
>>
>>101338124
>momento
>>
>Most developers don’t have a clue about performance. A friend of mine (an average developer by his own account) joined a company that had just lost a $10 million contract because of low performance software. He has a background in games development. So he raised an eyebrow, ran a profiler to figure out what the bottleneck was, and fixed the problem. In less than a week. Now he is treated like a super star by management and other developers. So knowing how to make software fast can be a real benefit.
>>
>>101352006
rolling
>>
>>101348312
no programming experience at all ?
>>
>>101352504
>programming
uh is that like coding?
>>
So I was making a game in Godot, very slowly over a bit of time.
I started taking it a bit more seriously, and I started running into issues with the performance of the tilemaps in Godot. I ended up rewriting stuff in C++ and Raylib.
It's quite fun, but the development is moving at a glacial pace now compared to earlier, even with me being a lot more dedicated now than earlier.
In raylib I implemented my own tilemap system (sadly doesn't have connected textures, but hey it doesn't glitch out when changed during runtime like with Godot's tilemap).
I'm kind of wanting to use Godot again now, because it supports animations and GUI is so fucking easier in Godot than in Raylib, and development is much faster. But if I move over to Godot, I want to rewrite everything again. And that's going to set me way back again.
What do you people recommend me do?
>>
>>101352518
yes !
>>
File: SIMCITY_Ecqb046Fsl.png (122 KB, 1920x1039)
122 KB
122 KB PNG
Man, I really want to make a game like this.
>>101352518
Yes, Allen!
>>
>>101353039
if it serves of any help, I don't know of a single game made in godot.
>>
>>101353039
What was wrong with the performance of tilemaps? You can implement your own custom tilemap into Godot with C++ pretty easily by using a module.
>>
>>101353087
>>101353201
cool I've been learning to kode with this girl on youtube
>>
File: 0_fdQSvh7PcgmhkI_G.jpg (36 KB, 650x366)
36 KB
36 KB JPG
>>101353239
HEY PAUL!
>>
thoughts on xmake?
>>
>>101348312
wrong general, this is the thread for C/C++ engine developers, the people who use unity/godot/etc already got gatekept because OP doesn't explicity say unity/godot/etc is accepted here (but also doesn't explicitly forbid them).
Statistically 99% of all games made by indies are using some sort of general purpose game engine, making a game engine from scratch sucks but it's a cool flex in programming skill, really horrible in terms of making video games however with little benefit other than "MUH BLOAT" (the size of the exe or the number of libraries used, maybe performance but that requires years of experience, and 1000x more work, don't get me started on how difficult C/C++ is).
The ONLY situation creating a game from scratch is acceptable is for 2D games. It's a little more difficult than making an 3D game with an general purpose engine however depending on what you are aiming for (also 100x more youtube videos / examples / tutorials compared to making a 2D game from scratch, main reason for difficulty is that engines offer conveniences like UI and animation/special effects, translation tools).
Note when you are making a 2D game you are not making an engine, you are just making it from scatch, in my opinion engines mostly apply to 3D games, and general purpose engines that support 2D games is more like a 3D engine drawing a 2D game, it's relatively easy to use from examples, but not as flexible as doing it from scratch (doing something outside the scope of examples is difficult). Another nitpick with making a 2D game from scatch is that you may have trouble translating your skills to a 3D game, because using an engine is a completely different way of programming (it's not simple, lots of moving parts, you will want to do things that are more complicated than tutorials, and the low level API's are identical to stuff you do in engine from scratch dev).
The place you are looking for is:
>>/vg/agdg/
>>
>>101353227
I've thought of that. I usually use GDScript with Godot, as I find the C++ integration cumbersome. GDScript also "just works". It's just very slow. I've rarely had scripts be the bottleneck, though.
The Godot tilemaps are very efficient. Much more efficient than anything I could write. The issue is just how buggy it feels when it's being changed on runtime.

Also after using Raylib, I've gotten used to the idea that every texture is using memory on the GPU. With Godot that was all abstracted away, and I had no clue how many textures was on the GPU.

My intuition says I should stick to Raylib, and that rewriting everything again would be a waste of time. The idea of wwitching to Godot comes from the same part of my mind that keeps nagging me to make the game 3D.

Pic rel is Raylib version of the game. It's come much shorter than the Godot version which is arguably a minimum viable product, while this looks like a shitty tech demo.
>>
>>101353343
Godot version

I hate showing my game, or sharing my ideas for it, with other people. It feels a bit better doing it on 4chan because of the anonimity; but it's still daunting.
>>
>>101353343
>I find the C++ integration cumbersome
I would agree for GDExtension, but modules compile with the engine (if you didn’t know that already)
>The issue is just how buggy it feels when it's being changed on runtime.
Can you elaborate? I haven’t used them
>>
>>101353385
Ooops. Forgot I disabled the connected textures in the Godot version a few commits ago. It looked a bit better, but it made the rendering bug out even more than it does now. It looks fine when you load into the map, but if you move around it'll get fucked very quickly. The Godot devs say that they want to fix runtime changes to the tilemaps in a future version, but it seems ways off.

Pic of Godot version with farmland and some crops.

Sorry for the spam.
>>
>>101353454
>I would agree for GDExtension, but modules compile with the engine (if you didn’t know that already)
Just having to have two editors open at the same time makes things cumbersome. I'm a retard, so that might have something to do with it.
I haven't used modules, though, only used GDNative/GDExtension.

>Can you elaborate? I haven’t used them
If you edit the tilemap using the main thread, the game will freeze for about a second or two for just changing 128 tiles. The fix is to do it in another thread; problem with that is that the tilemap is not thread safe, and about half of the tiles edited will remain empty/have their previous tiles. It's only a graphical issue, collision and such works fine.
>>
>End-to-end (E2E) testing is a software testing methodology that verifies the working order of a software product in a start-to-finish process. End-to-end testing verifies that all components of a system can run under real-world scenarios.

>The goal of this form of testing is to simulate a user experience from start to finish. E2E testing can find software dependencies while also validating the system under test, its data integrity and integrations.
>>
File: 1715793930506918.gif (3.57 MB, 260x346)
3.57 MB
3.57 MB GIF
>>101354022
get that corporate shit out of here!
>>
File: editor.png (198 KB, 1030x812)
198 KB
198 KB PNG
Long time no see guys. But I have progress. Now I am at a point of making scene queries - whence a question - do you have any links to resources about it?

I know I need to cast a ray from the current mouse cursor position and then run along it to check against my game entities where I'm hitting. But that is the extent of what I know.

I need to convert mouse position to screen position than multiply by inverse of projection and view matrices to get the location of the click point - right? An I construct the ray by getting the intersection points against near and far clipping plane?
>>
>>101353343
>>101353385
>>101353468
>rewriting everything again would be a waste of time
seems like the godot version is already ahead though, rewriting what exactly?
>>
>>101353239
first rule of koders is you must forget girls exist
eliminate all interaction with females in your life, even online (except porn)
if you ever see a woman IRL run away screeching autistically and hide behind your screen
>>
>>101353468
how the fuck does a game that looks like this have performance issues
you have to be doing something seriously wrong
>>
>>101355284
I've learned a lot since starting on the Raylib version. The Godot version is horrible and a result of not really thinking about design or code structure before starting.

>>101355894
It doesn't have performance issues, The only issue is the bugged out built in tilemap which is not really meant to be edited while the game is running. It'd probably run better if I was just drawing sprites directly instead; like how I'm doing it in Raylib.

With Raylib I'm drawing the tiles to a texture in RAM, to create the chunks, moving the texture to VRAM, and then drawing the chunks directly to save draw calls in exchange of using more VRAM.
>>
>>101356188
why are you editing the tilemap? if you have to draw objects like vegetables can't you use sprites? you draw the map and draw the sprite on top of it
>>
>>101356188
Here's how it looks like when it's bugging out as well. This is single-threaded as well, so it's not that the tilemap isn't thread safe, it's just fucked.

>>101356275
The game is chunk based, and practically infinite in all directions. So when I'm loading a new chunk, it's being written to a tilemap. When the player is a certain distance away from the chunk it gets unloaded and the tiles are deleted from the tilemap.
The "entities" such as the crops and vegetables are their own nodes that are being drawn on top of the tilemap.
>>
>>101355124
>I need to convert mouse position to screen position
You must mean convert mouse position from screen space to world space? The stuff you said about the inverse transforms is correct.
>An I construct the ray by getting the intersection points against near and far clipping plane?
The ray goes through the camera and the near plane
>>
>>101356188
If you want to move your terrain system to Godot, which I think would be a good option, you could do it like this:
>each time a chunk is updated/loaded, use Image.blit_rect() for each tile
>create/update ImageTexture from the Image
It MIGHT even be possible to do this with decent performance in GDScript since blit_rect() is doing most of the heavy lifting.
>>
>>101356424
Oh. So Image.blit_rect() works about the same way as ImageDraw() in Raylib? It draws textures to a part of another texture.
>>
>>101356449
Yes. In Godot, Images are in RAM, Textures are in VRAM.
>>
>>101353315
>making a game engine from scratch sucks but it's a cool flex in programming skill, really horrible in terms of making video games however with little benefit
When I think of "4chan devs who made it" I think of Notch (enginedev) and Barone (enginedev), not sure who else there is but that's two enginedevs and zero enginecucks.
>>
>>101356462
Ah. Nice. Same terminology as Raylib. Thank you. I've gotten used to things a bit more from scratch now, so knowing I can do stuff like that in Godot makes Godot a lot more attractive. Thank you for sharing.
Looking at the Godot code now there's so much I need to change I really get the urge to just start again. But I'm afraid of getting into a trap where I rewrite the bloody thing over again forever.
I just added trees to the Raylib version, and I realized that I need to do proper Y-position depth sorting. And the collision system I'm using for the tiles will not work for the entities (anything that's not a tile). Everytime I add something I have to add a shit-ton of other things which I don't have to do with a game engine. Don't get me wrong, it's fun, but it makes everything move at a glacial pace.
>>
>>101356546
But then again… I am much more proud of my work when it's done in C++ with Raylib. Everything in the game feels like its mine in a way, a feeling I don't get from using a game engine.
>>
>>101356463
undertale is a 4chan dev I think, and I think there are rrats on other devs who use 4chan but not confirmed or something
>>
4chan isn't le secret club anymore
>>
>>101353315
go away /agdg/ subhuman
>>
File: 2024-07-10 18-29-31.webm (707 KB, 640x480)
707 KB
707 KB WEBM
Working on adding richer interactions with entities in the editor, so that you can manipulate things in a more intuitive/visual way. I've got a pretty decent groundwork for adding interactive sub-elements like the guides on the platforms in vid related. I'm still trying to iron out some of the broader organization though, in terms of whether to store certain state on entities themselves or in the global editor state.
>>
Which is more autistic
>Making a game in the style of a 90s game (either a 2D game like SC2K or a 3D game like Quake or Unreal/HL1) targeting modern platforms with modern toolchains and using a fake "retro" classic windows-style UI if doing a 2D game
>Making that kind of game, but actually targeting platforms of their time with old toolchains/sdks
>Making a modern game with those old toolchains
>>
>>
>>101353315
>Statistically 99% of all games made by indies are using some sort of general purpose game engine,
People keep saying this, and I dunno if this is some kind of cope self-hypnosis, believing without evidence, or wishful thinking.

If we sample only successful indie games (who gives a fuck about timmy's weekend project game jam 3 people played for 5 minutes), the ratio is more like 35% custom/framework, 65% engine.
If we pick 2D games, the proportion of custom engines is even higher, which makes sense. I think basically every 3D game in this list except for minecraft was made using an engine. 3D is hard.

On another note, kinda funny how there's a couple shovelware titles I've never heard of, that apparently sold more than a lot of indie household names.
>>
>>101358859
also, our boy jonathan blow would have increased the number of custom engines on the list, but none of his games seem to have sold enough to make it lmao
oof
>>
>>101358740
>Which is more autistic
Not using Vulkan or DX12 with c++17+ as the lord intended. It’s time for this general to live in the present. Filthy retrofags single-handedly holding /gedg/ back.
>>
>>101358859
>If we sample only successful indie games (who gives a fuck about timmy's weekend project game jam 3 people played for 5 minutes), the ratio is more like 35% custom/framework, 65% engine.
This gives you a bad selection bias
>>
>>101358957
>It’s time for this general to live in the present
The present fucking sucks
>>
>>101358740
Actually targeting windows 98/xp but with modern gcc
I'm gonna do it
>>
i'm gonna try PixiJS and go full web games
>>
>>101359586
>but with modern gcc
I've looked up that myself, and it seems like it's a pain to target windows 98 with modern gcc. there's a repo for doing that but it's 3 major gcc releases behind and afaik you have to jump through a lot of hoops
there's tdm gcc and it works I think but the latest tdm gcc that compiles for 9x is gcc 4.7 ish
>>
I’m part of the “use an engine nobody talks about anymore” crowd. I could probably rewrite it blindfolded at this stage, though it lacks a lot of niceties (or “bloat”) of modern stuff.



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