[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: Game_Hxw5PlCxTh.webm (146 KB, 1296x758)
146 KB
146 KB WEBM
OpenGLs New and Old edition

/gedg/ Compendium: rentry.org/gedg
/gedg/ Wiki: wiki.installgentoo.com/wiki/Gedg (ded link)
IRC: irc.rizon.net #/g/gedg
Progress Day: rentry.org/gedg-jams
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: >>102609787
>>
I love gamedev so much
>>
First for I'm 80k lines deep and hundreds of hours more on modeling into a game I'm making with godot and I'm deeply worried about its future as a project.
>>
>>102638385
Should have enginedevved
>>
>>102638385
80k lines of GDScript? ouch
>>
>>102638385
it's not like it affects your current project
I also doubt godot will die from it
>>
If I want my game to have a dll/dso-based plugin architecture, should I primarily develop for Windows and have that as the only target platform?
There's no cross-platform way to load dlls and functions from them (no, Boost.Dll doesn't count), unless SDL has a simple function that does that
>>
>>102638419
Realistically people only play games on Windows
But I don't know why some people are so interested in the DLL plugin architecture, using a scripting language seems better to me
>>
>>102638385
Post source or GTFO concern troll
>>
>>102638419
I think you can use wasm for this, but I don't know if anyone did that yet.
>>
>>102638430
>using a scripting language
A) To properly make a plugin architecture, you should ideally base your core/base/vanilla game and the entire engine/game structure around it, and I feel that would be kinda iffy with scripts everywhere
B) Most scripting backends are super slow. Ofc there's luajit but it's a pain to set up in a build system, same goes for Mono
>>
>>102638385
People were stupid for migrating off Unity as a reaction to their dumb business decisions
People are even stupider for migrating off Godot as a reaction to them saying woke on Twitter
>>
>>102638447
and they're stupidest for using an off the shelf engine in the first place
>>
>>102638445
What do you want to use DLL plugins for? If it's moddability then scripts are better
>>
>>102638407
Decent portion of that (~18k lines) is C++ as GDScript ended up being too slow for the simulation I was running. I could port what I have currently over to a new engine, but I settled on Godot a while ago and would only really want to use an MIT-licensed engine that has some 3D capability and doesn't charge licensing fees.
>>
>>102638458
There's nothing wrong with using an off the shelf engine
>>
>>102638458
based!
>>
File: 1723817621662162.jpg (614 KB, 1430x954)
614 KB
614 KB JPG
>>102638435
Okay, here's The Source.
>>
>>102638458
this was a given.
>>
>>102638489
How far as radioshack fallen... Now it's nothing but a smartphone stand disguised as a store.
>>
>>102638520
It's pretty much all over for them, they're being integrated into Best Buy, only the most trafficked locations will stay open but they'll all eventually be rebranded to "Best Buy Express" stores.
>>
>>102638458
I am simply too dumb to make my own engine anon. I didn't go to school, I've learned a good amount going through the source code for Godot though because their documentation in some places is ass so for my next game I might try to roll my own.
>>
>>102638461
Moddability yeah.
Should I just use Mono (aka C#) for a scripting backend? I have no idea how to set it up with CMake though.
I could use Lua but although I like some things about it (like how you can define data a lot better in it than other scripting languages, and even make it a DSL or a better json), the non-zero indexing triggers me and I have a feeling writing my simulation game's main logic and shit (I plan to base the game and engine code around either plugins or scripts) in lua might be a bad idea
>>
Total slop engine death
>>
>>102638623
You sound smart enough to. Remember that you don't need to make a full feature engine with a visual editor and a custom script language and whatever.
I personally I would call a custom renderer using OpenGL or Vulkan, any collection of libraries you cobble together and your custom non-game-logic code (Quad tree, Level of detail, animation, etc...) be an engine.
You make/use what you need for your game, that's it.
>>
>>102638348
tonight after work I will start (and maybe even finish) converting my shaders from GLSL to slang
I've never used HLSL so this syntax family is new to me
>>
>>102638666
It sounds like you're trying to put too much of your game into mods or plugins
If you use DLLs or scripts this tends to make things too generic
>>
File: 1715613109465382.gif (1.99 MB, 332x263)
1.99 MB
1.99 MB GIF
>spending all this time on overengineering something he will abandon in 3 months
>>
>>102638737
HLSL is unreadable
>>
>>102638865
I find myself having to preprocess GLSL explicitly with my own scripts to shove common data definitions in them, slang seems to offer some nice solutions for this like modules
>>
Alot of vulkan stuff needs device. For a code that is outside of the scope containing the device, how do you handle accessing it?
>>
>>102638865
Wait till you find out about wgsl
>>
I'm considering making my game in D3D9 instead of GL3 because GLSL is kind of a pain
>>
>>102639623
if you have to access the device handle you have to access it, I'm not sure what you mean
if you don't want to pass it directly you write a nice API that other modules can call that tell the graphics/vulkan module what to do and it'll access the device to carry out those commands
>>
File: 1648647766073.gif (160 KB, 400x267)
160 KB
160 KB GIF
God why is making an engine so much easier than making a game.
>>
>>102640071
What are you struggling on with your game?
>>
can any zigger tell me how they work with SDL? do they just import it as a c library or use the bindings, and what are they benefits?
>>
>>102638419
>unless SDL has a simple function that does that
yeah it does.

Dynamic library based plugins is fine, see Bitsquid:
https://bitsquid.blogspot.com/2014/04/building-engine-plugin-system.html
or Ourmachinery:
https://ruby0x1.github.io/machinery_blog_archive/post/little-machines-working-together-part-2/

I am going the same route, and I've come to the conclusion, DLLs are always a huge security issue, BUT, you can literally have a DLL plugin that has lua/js/c#/wasm virtual machine that load other code safely. Why is it the best compromise?
1 - you don't have to litter your code with glue scripting code
2 - you can offload those scripting languages to modders themselves
3 - they get the extra freedom of using any language they want as long as they provide the bridge plugin.
I think this is how Godot approach it with gdnative to supporte arbitrary languages, but it'll always be bad because gdscript garbage is all over the place.
This was my idea after a lot of struggling, use it or leave it, this is what I found best.
>>
>>102640349
When I was using zig, I liked to just import it as a c library instead of using any wrapper.
The idea behind that is that I could just refer to the lib doc instead of having to deal also with how the wrapper is doing things.
>>
File: dump.png (37 KB, 500x500)
37 KB
37 KB PNG
9 days of work - bout 40 hours in total - some heavy refactorings and bugfixes. But I finally have my offline rendering set up.
>>
>>102640349
I prefer to use wrappers, either an existing one or making it myself to get those extra zig features, using normal C types in zig can stick like a sore thumb. If I can't do much I just use an inline function to make things neater. You don't have to convert the whole API tho, just whatever you used.
>>
>>102640600
It's unfortunate that the wrappers for SDL2 are outdated (0.12.0 vs 0.13.0) but I can always use that version
>>
>>102640592
Can you show a resulting sprite? I'm curious how it looks.
Also nice job for the progress, what's your next step?
>>
File: old_game_projection.png (50 KB, 1034x576)
50 KB
50 KB PNG
>>102640825
The result is in the attached image - it is just a dump made using the offline renderer - now I'm off to set up the actual sprite generation. Firstly I need to set up the correct dimetric projection, as these older games used peculiar axis angles ( pic rel ) for 2:1 pixel ratios.

Then I'll need to set up the palette-correct rendering and the correct sizing of sprites for each rotation angle. The palette thing is essential as some features in OTTD are achieved with palette shifting.

Fun times are ahead.
>>
>>102640904
>Firstly I need to set up the correct dimetric projection, as these older games used peculiar axis angles ( pic rel ) for 2:1 pixel ratios.
That won't be hard
>>
Here's some good and bad news in the video game industry.
Bad news: Ryujinx got shut down by Nintendo
Good (?) news: Spore is back(?), and has a new dev team
>>
>>102641462
>Spore is back(?)
source
>>
File: GYuWOB7XcAAD1-V.jpg (68 KB, 1258x356)
68 KB
68 KB JPG
>>102641502
>>
trying to fix this. Basically, chunk seam stitching between disparate LOD levels.
>>
>>102641515
that's interesting.
>>
>>102638348
is it really easier to make my own collision detection for a 2d platformer instead of just using Box2D/Chipmunk? I will only use AABB collision detection, and have 45* slopes
>>
>>102638666
>Mono
use this instead
https://github.com/StudioCherno/Coral
>>
>>102638666
or use this, personally want to try this instead of Lua
https://wren.io/
>>
>>102638666
ummm xir... have you considered our lord and savior lisp?
>>
>>102638419
Loading stuff from a DLL is fairly trivial to implement on each platform. For Windows:
#include <windows.h>
#include <pathcch.h>
char exe[MAX_PATH];
GetModuleFileNameA(NULL, exe, sizeof(exe));
PathCchRemoveFileSpec(exe, sizeof(exe));
PathCchCombine(exe, sizeof(exe), exe, "Hitler.dll");
HMODULE dll = LoadLibraryA(exe);
PFNCommitSuicide* commit_suicide = GetProcAddress(dll, "CommitSuicide");

For Linux:
#include <dlfcn.h>
#include <unistd.h>
char exe[1024] = "";
readlink("/proc/self/exe", exe, sizeof(exe)-1);
strcpy(strrchr(exe, '/')+1, "libHitler.so"); // this code comes with NO WARRANTY
void* dll = dlopen(exe);
PFNCommitSuicide* commit_suicide = dlsym(dll, "CommitSuicide");

For fagOS:
#include <dlfcn.h>
#include <unistd.h>
#include <mach-o/dyld.h>
char exe[1024] = "", fuckoff[1024] = "";
uint32_t size = sizeof(fuckoff);
_NSGetExecutablePath(fuckoff, &size);
readlink(fuckoff, exe, sizeof(exe)-1);
strcpy(strrchr(exe, '/')+1, "libHitler.dylib");
void* dll = dlopen(exe);
PFNCommitSuicide* commit_suicide = dlsym(dll, "CommitSuicide");

Or at least that's the basic idea. I'm sure you can figure out the quirks. Point is, there's no reason to limit yourself to Windows.
>>
>>102642333
>this code comes with NO WARRANTY
kek
>>
File: 1727813881050.png (192 KB, 600x2165)
192 KB
192 KB PNG
>>102638385
Don't be. The whole thing is a giant nothingburger, everyone apologized, everything is normal now, FOSS wins yet again. Proprietary companies could never pull this off
>>
I just started writing a doom-style renderer but I can't figure out how to texture map. The textures wobble slightly and it's making me lose my shit. Any decent resources on how to do this correctly?
>>
Three.js Chads rise up. Wokedot retards on suicide watch.
>>
>>102642643
>.js
no thanks.
>>
>>102642444
>The textures wobble slightly
Some would call this a desirable artstyle.
>>
>>102642408
damn the godot shills from /agdg/ are fucking bringing graphs lmao
>>
File: 1716384139210444.png (817 KB, 1920x930)
817 KB
817 KB PNG
>>102638348
How difficult is it to develop homebrew for say, the Dreamcast or PS2? Ruling out consoles that can only use assembly language to deal with performance (4th gen and lower).
>>
>>102638419
You can use wasm if you don't mind being limited in performance (you can't share memory, plus wasm is just slower).
You still need to use DLL's for development, quake 3 arena had it's own qasm (very similar to wasm in function), but it still used DLL's for debugging stuff, wasm has some debugging tools, but you really need address sanitizer and that doesn't exist in wasm (emscripten does but that's a website thing, not a native runtime).
The one crazy things you can do with wasm is that you can save the memory and reload it (like a save state), but of course that won't work when there is state outside of the wasm binary.
And to share memory, as in modifying data stored in "host"/native memory, or sending an event that contains dynamically allocated memory, that's tricky, the approach I would take would be to use flatbuffers, which is really painful to use and ugly, but it lets you serialize data when it's necessary, but when you switch to DLL mode you can remove that copy, and also you could benchmark the overhead it gives.
But personally Unity is the best option for passive modding, as in doing absolutely nothing, but keeping the possibility open in the situation that your game actually blows up in popularity, since a lot of people who add modding to their games forget that they actually need 1000+ people to download and play their game, and a good chunk of those people need to form a community (like a discord or a streamer), and people who make free games have trouble holding onto any players after they beat the game / consumed all the unseen content. And the best part is that the modders will host and handle everything for you, they will make a website, they will made a mod loader, they will deal with tracking of which mods are compatible with eachother, they will deal with stopping virus mods that hack people's PC's, you just need to avoid making changes that break all the mods (or just listen to the modders).
But this is all a pipe dream.
>>
>>102642408
But donor charts aren't updated live...
When you cancel your membership it's not instant, if you pay for three months then it expires at the end of that period.
>>
>>102642680
what else?
>>
>>102642744
Donor numbers are updated live.
1533 > 1491
So the number of supporters actually grew. Godot is not going anywhere
>>
>>102642758
They lost 3k though
>>
>>102642770
so are they updated live or are they not
>>
>>102642790
Fuck if I know
All I know is that they lost 3k
>>
>>102642867
And you think that a simple game engine is not possible to maintain with 55k$ PER MONTH?
>>
>>102642877
Nothing is sustainable if it isn't growing
That is basic economics
>>
>>102642887
So they will have to downscale on the community management and twitter shitposting. Big deal
>>
>>102642887
My line is going down tho.
>>
rying to stitch seams between disparate LOD levels.

Just a nice screenshot showing the two disparate LOD levels side by side here.
>>
>>102642877
>>102642887
godot isn't publicly-traded or for profit
it doesn't need to keep growing
its only basic economics for corporate america which has an obligation to increase value for shareholders
godot has no shareholders
all this talk about godot having a "CEO" also shows me that the shitposters on this side are just babies who are completely unfamiliar with the scene
>>
>>102643139
What? Anon, I need you to realize that Godot is an organization.
It can no longer be managed by just one guy (no matter how much Juan may argue against it).
And once you need more than one person to manage something, you need a source of income.
Then after you gain a source of income, you start basing your management on that source of income.
Godot had plans with that missing 3k. You think they'll start firing managers or take a pay cut? Hah!
>>
>>102643162
It doesn't have shareholders but it definitely has stakeholders who have a vested interest in seeing it grow, pretending otherwise isn't going to get you anywhere.
>>
>>102643266
meant for >>102643139
>>
>>102643162
Yeah right, just like wikipedia totally went offline because they claim they have no money. Retard
>>
>>102643266
>>102643162
funding for godot is not an investment - its all donation
there is no expectation to get anything back, not even the initial investment
hence no, it doesn't need to grow
godot also only has a small number of staff, most of that money is for adhoc contract work
they're not going to fire anyone or give paycuts, they just won't assign some tickets to being worked on this year
>>
>>102643435
Godot spends less than half on development
>>
File: file.jpg (379 KB, 1664x1248)
379 KB
379 KB JPG
>>102643421
>just like wikipedia totally went offline because they claim they have no money
Wikipedia is loaded, anon. No matter how desperate their donation requests may seem, they gain more than enough donation money to keep everything running.
See:
https://unherd.com/newsroom/the-next-time-wikipedia-asks-for-a-donation-ignore-it/
https://en.wikipedia.org/wiki/Wikimedia_Foundation#Finances
>Top tier managers earn between $300,000 and $400,000 a year, and dozens are employed exclusively on fund-raising.
>>
>>102643494
>Wikipedia is loaded, anon. No matter how desperate their donation requests may seem, they gain more than enough donation money to keep everything running.
exactly my point. Godot is loaded too
>>
>>102643435
This is not true. There is venture capital invested in Godot. In any case, stop posting off-topic nonsense! There are like a dozen Godot threads!
>>
>>102643503
>Godot is loaded too
Source?
All the sources I could find claim that they're spending more than they're gaining and that a few one-time donations are all that is keepingthem from going into the red.
See:
https://godotengine.org/article/godot-foundation-update-2023/
https://godotengine.org/article/funding-breakdown-and-hiring-process/
>Of course, our current increase in funding is not enough to sustain all these extra roles.
>At the same time, thanks to the sizable one-time donations we received, we also have savings in the bank that we can use for project-based funding without putting ourselves into a permanent cash flow negative situation.
>>
>>102643521
>There is venture capital invested in Godot.
show proof - there is no mechanism for godot to recoup an investment as a nonprofit
>>
>>102643532
>Source?
55k$ per month? how is that not loaded
>>
>>102643549
Of course there is, which is why there's venture capital invested in it. What the fuck, man. Is your autism that bad? At least focus it on game and engine development when you're in the game and engine development thread.
>>
>>102643621
Show proof, retard. There is no mechanism for Godot to provide a return on investment. It's clear to me you don't understand economics so I'll spell it out:
donation = you get nothing back
that's how Godot is funded, as a nonprofit
There is no investment money in Godot. The closest thing is W4Games which is a porting house and publisher, but it has no bearing on Godot itself.

Jesus Christ. Again, SHOW PROOF if you're going to talk out of your ass.
>>
>>102643558
Ah, I see where the problem lies.
Anon, I want you to grab two glasses and fill one with water.
See that water? That is Godot's $55.000 "revenue".
Now I want you to take a big sip. That sip is called an "expense".
I want you drink from that glass until only a small bit of water remains.
That remaining water is Godot's "profit".
Every month Godot is only allowed to keep that remaining water.
>>
>>102643633
I refuse to spell A + B = C out for a fucking 12-year-old. Figure it out yourself. Pro tip: "it has no bearing on Godot" is a certifiably deranged thing to say.
>>
>>102643558
>>102643644
Now, pour that water in your second glass and repeat the process eleven (that's one extra after ten) more times.
That water in your second glass is Godot's earnings per year.
>>
>>102643644
They're a non-profit (supposedly)
>>
>>102643661
Show me the fucking papers (that have to be filed with the SEC btw) that show which VCs funded The Godot Foundation in exchange for shares.

C'mon you stupid bitch
>>
>>102643671
Ah, but what if you're VERY thirsty after your first glass?
The water inside isn't enough, now you'd need one and a half to quench your thirst!
The only way to keep quenching your thirst is to keep pouring more water in your glass.
>>
>>102643688
But I'm not a jew so I only need the amount of water I get
>>
>>102643702
>so I
>I
>singular
See >>102643162
>>
>>102643731
If I had an employee it would still be "I."
>>
>>102643435
>there is no expectation to get anything back, not even the initial investment
That doesn't matter, at all, people can still put stake into a project or organization regardless of whether or not they get money back because it favors their present conditions. To say it is not in the interest of a FOSS project like Godot to grow without analyzing the people who are running it and their motives is simply unreasonable.
>>
>>102643744
No, it would be a "we".
"We", as in "me and my employee".
>>
>>102643825
No it would be "I" because "I" get the money as the owner and "I" pay them. They are an expense.
>>
>>102643682
>if it's not spelled out in a legal document it can't be happening
I don't even know what to say at this point. What's your life like? Genuinely, I want to know what kind of person thinks like this. How old are you? Are you in school, do you have a job, do you live by yourself? Wife, family?
>>
>>102643838
You can't hire people as an employee as a private individual, anon.
Legally they'd be considered an independent contractor or a self-employed professional.
>>
>>102643903
>>102643863
You are actually braindead. We all knew it from your posts but it has to be said out loud.
>>
>>102643863
You have no idea how investment works
>>
File: file.png (18 KB, 577x154)
18 KB
18 KB PNG
>>
>>102643669
>>102643644
I know how economy works, but they don't NEED that much
>>
>>102644000
What a cringe and transphobic shitlord. I hope Billy Mitchell wipes the floor with him to be honest
>>
>>102644000
It wouldn't be that hard if your game does nothing. Do more than basic generation using cubes you worthless fat fuck.
>>
>>102644028
Lol, have you seen their networking code for multiplayer in java? I used to write bukkit plugins, that thing was messy
>>
>>102644000
he's right about making your own engine at least
>>
File: 1718306611928096.jpg (70 KB, 1280x720)
70 KB
70 KB JPG
>>102644028
>create world's most popular video game
>still not enough for /gedg/
>>
>>102644063
Well if he doesn't support transgender ideology, then its not /gedg/
>>
>>102644063
I just don't care for voxelfags desu
>>
>>102644063
>popular is good
Clearly a newfag. The whole culture of /g/ is dunking on itoddlers
>>
>last thread ruined by rust shills

>this thread ruined by godot shills

we should make it a rule that you cannot post on /gedg/ without posting progress. this isn't /shitflinging/, this is /gedg/ game engine development general. post progress, or post questions about game engine stuff.
>>
>>102644104
>we should make a rule /gedg/ must be dead and gets a max of one (1) post before 404ing
Agreed
>>
>>102644104
There are no progress posts because there is no progress retard. There are like 3 regulars and they probably have other things to do. Even if they didn't, game engines are large and complex, not every day is there a visual progress
>>
File: hmm.png (2.81 MB, 2513x1266)
2.81 MB
2.81 MB PNG
idk here's something
this is using naive GPU frustrum-culling on 1000000 unbatched models (no other type of culling)
I'm done for the renderer for now but will come back it later and add batching (which is a bit tricky since visibility check is on GPU)
>>
Managing GLSL shaders in OpenGL3 is a pain, mainly how you have to compile them at runtime (I'm not using SPIRV), and how you have to set up the input attribs for each vertex (glVertexAttribPointer is cancer). That said, I'm not sure how, if I switched to D3D9 and used HLSL, to do offline shader compilation in my build system (which is cmake).
Should I just use fixed function D3D9?
>>
>>102644208
Does GL3 not support SPIRV at all?
>>
>he doesn't even talk to his engine
>>
>>102644222
Nope, SPIRV support wasn't added until 4.1, so I'm stuck with runtime GLSL.
>>102644248
That looks cool but also kinda nutty
>>
So is Godot kill or did they win?
>>
>>102644000
Based notch
Trannies seething
>>
>>102642656
It's fucking based if you want to impress the HR when looking for a job
>click on link
>amazing shitty shader with particles happens
>>
>>102644307
Okay but I am a performance autist. I typically don't use godot but it does have native language
support
>>
File: van.jpg (6 KB, 225x225)
6 KB
6 KB JPG
>>102644343
>
>>
>>102644208
Sorry, why do you think compiling shaders at runtime is bad? I'd rather have the driver do it than maintain some kind of offline shader compiler that needs to be triggered by or linked into the game, or to run in the background and feed shaders to the game somehow, and probably depends on fucking LLVM and glslang and fuck knows what else.
>>
>>102644381
>offline shader compiler that needs to be triggered by or linked into the game
offline shader compilers are supposed to compile the shader into an IR when the game compiles, and the game loads the IR at runtime.
>>
>>102644402
Yeah, but like, what I meant was... do you not have live reload for shaders in your engine?
>>
>>102644439
I assume this is just for debugging/playing around?
>>
>>102644208
>to do offline shader compilation in my build system (which is cmake)
I use that too, however what bothers me is that cmake never ouputs the error with the line where the error occurs whenever a shader isn't compiled. Do you know how to do that?
>>
>>102644439
Right now, I just have a basic OpenGL3 setup that loads shaders from raw string literals built into the game code and them compiles them with the API.
>>102644455
>Do you know how to do that
No, cause I haven't even tried to use a offline shader compiler in cmake yet
>>
>>102644452
Yeah, for the thing you're gonna be doing every day until your game goes on Steam.
>>
>>102644455
nta but this works for me:
## iterate each shader
foreach(GLSL ${GLSL_SOURCE_FILES})
message(STATUS "BUILDING SHADER")
get_filename_component(FILE_NAME ${GLSL} NAME)
set(SPIRV "${PROJECT_BINARY_DIR}/gen/shaders/${FILE_NAME}.spv")
set (GLSL_MOD "${PROJECT_BINARY_DIR}/gen/shaders/mod_${FILE_NAME}")
message(STATUS ${GLSL})
##execute glslang command to compile that specific shader
add_custom_command(
OUTPUT ${SPIRV}
COMMAND mkdir -p ${PROJECT_BINARY_DIR}/gen/shaders
COMMAND echo "Comp ${GLSL} to ${SPIRV}"
COMMAND bash -c "bash ${PROJECT_SOURCE_DIR}/scripts/shader_patcher.sh ${PROJECT_SOURCE_DIR} ${GLSL} ${GLSL_MOD}"
COMMAND ${GLSL_VALIDATOR} -V ${GLSL_MOD} -o ${SPIRV}
DEPENDS
${GLSL}
${PROJECT_SOURCE_DIR}/src/shaders/shader_common.h
${PROJECT_SOURCE_DIR}/src/shaders/shader_vert_common.glsl
${PROJECT_SOURCE_DIR}/src/shaders/shader_frag_common.glsl
${PROJECT_SOURCE_DIR}/scripts/shader_patcher.sh
)

list(APPEND SPIRV_BINARY_FILES ${SPIRV})
endforeach(GLSL)

add_custom_target(
shaders ALL DEPENDS ${SPIRV_BINARY_FILES}
COMMAND echo "Shaders"
COMMAND echo ${GLSL_SOURCE_FILES}
)

add_dependencies(your_engine shaders)


There's extra stuff there because I do some preprocesing and patching because GLSL is kinda shit
>>
>>102644478
idk I have shaders part of my build process as so
>>102644496
it takes 2 seconds to recompile since Make doesn't just throw everything in the garbage due to based dependency graphs, I don't have a use-case for hot-reloading mid-game
>>
>>102642408
That's not good. The apology wasn't an apology. If this behavior doesn't get any consequences they're just be encouraged to do more of it.
>>
>>102644496
ty
>>
>>102644000
>Write your own engine. It'll make the game feel more unique, and you have all the control
>it's not that difficult. If you can make a game, you can make an engine.
true and real.
Kind of sad that people are made to believe that making your game from scratch is super hard.
Especially that the great majority of indie devs are not even making a game with AAA visual fidelity.
>>
>>102644520
It is because people don't know that physics engines exist. Now having to create your own physics engine IS hard. Unless it is, like in Notch case, just cubes
>>
>>102644536
representing a plane as infinite cubes is kinda based desu
>>
I just asked it to divide 78/7 and instead it decided to try "help", learn there is an "ai" option and basically called itself and hung (so artifacts)
fluffy af
>>
>>102644510
>I don't have a use-case for hot-reloading mid-game
While I look through my ebussi folder for the right image, ponder what happens when you have a rendering glitch. Live reload can cut down on debugging time a LOT.
>>
>>102644536
Most indie games don't have that complex of a physic needs that it couldn't be done in house.
But yes, you're right, there's always a physics engine you can use for your game.
>>
>>102644520
>>102644536
Making your own engine is hard
>need to now a bit of everything (animation, physic, graphics), be really good at programming/architecture
>know how maths/3D work
>the modern 3D api are a pain in the ass
>gpgpu
>cpu multithread
>sync
>you need also an UI, make an editor, integrate a scripting language, make your engine support hot reloads, modifications on live, etc
>>
>>102644582
you make it seam like you need to know all these things at once but you can actually just roll into these gradually as you go

if you love tinkering on your code, you'll make it. Don't look at the end goal, just start on that little problem you ended with last round. Dopamine will take care of the rest.
>>
>>102644582
You don't need your own physics or multithreading
>>102644570
Anything that isnt boxes gets hard relatively fast. I can't think of how I would do polygon colision detection, let alone collision correction
>>
File: ebussy_foot.jpg (19 KB, 300x300)
19 KB
19 KB JPG
>>102644563
I mean, yeah I could see where that may be useful. I'll consider it down the road. I use uber shaders so its pretty easy for me to at least figure out where things are going wrong at this stage
>>
>>102644248
>>102644551
I'm not a big fan of LLM but I can say that putting a natural language model in your engine is quite nice. GJ

>>102644582
>need to now a bit of everything (animation, physic, graphics), be really good at programming/architecture
yes for the first part, not really for the later.
>know how maths/3D work
Just enough to get through but you certainly no need to be a math pro.
>the modern 3D api are a pain in the ass
If you're using vulkan, but even then once your renderer is done you probably won't touch for the rest of the development.
>gpgpu
Not needed
>cpu multithread
Not needed
>sync
Network sync ???
>you need also an UI,
Really not that hard
>make an editor, integrate a scripting language, make your engine support hot reloads, modifications on live, etc
Not needed

>>102644618
make everything boxes, aka a character is a bunch of box colliders.
>>
>>102644634
That is why I said minecraft doesn't count. But if you make a level model in blender then tou kind of need polygon colision
>>
>>102644551
>called itself to ask the question you asked it
I don't know why but I find this funny
it's like that one scene in R&M (before R&M became shit) where all the meeseeks kept calling eachother
>>
>>102644652
Is it simpler to check for a collision between a cube and a polygon? Instead of polygon on polygon? I never done such complex collision handling so pardon my ignorance.
>>
>>102644634
>I'm not a big fan of LLM but I can say that putting a natural language model in your engine is quite nice. GJ
I mean I don't think anon is going to ship the LLM. The model he's using in that screen is Qwen 72b at Q5 quantization - it utterly destroys most gamer setups and requires north of 40 GB of VRAM to run. I'm guessing this is for development only.
>>
>>102644722
I don't know either and that is the thing. I cannot even come up with an algorithm that would do it. I know there is an easy way to check if a point is in a polygon if said polygon is convex, you use the same technique as convex hull and then expand on for all points. But I don't know how to get a reverse vector to push the object out of colision and not all polygons will be convex
>>
>>102644706
>instantly wants to gray goo
>>
>>102644222
Maybe as an extension?
ARB_gl_spirv
>>
>>102644706
if only I had the VRAM to do just that
right now only one just got stuck in a loop when I asked it what fps it was running
>>
https://github.com/shader-slang/slang
This looks neat
>>
my hypothesis is, if people are doing 3D software renderers, we can do a lot with just 1 GB of VRAM.
so I'm limiting my Vulkan app to 1 GB of VRAM and building also a retro box with a GTX 650.
>>
>>102644849
>gtx
>retro
>>
>>102644860
Steam Hardware survey indicates that most people have cards above the 650.
>>
minimum NVIDIA card that Vulkan runs on is the 650, so you're not going any lower with Vulkan than the 650.
>>
>>102638385
nothing will happen, even when the godot troons will 41% and their pedophile supporters will get jailed.
>>
>>102644000
Notch continues to be a reasonable man
>>
>>102644860
What do you want me to do here? The minimum card is 650 for Vulkan.

You're not going any lower.

And if you say make an OpenGL layer, know that making an OpenGL layer defeats the purpose of even using Vulkan because you use Vulkan for its low level control over memory. You'd have to refrain from using that if you have an OpenGL layer.
>>
>>102644815
it's down to citing numbers
>it's retarded
at least it's getting ready
>>
>>102644860
gtx650 is firmly in the retro era now
Time marches on.
>>
>>102644942
>>102644849
go for it, I'm going for "retro"/low-poly too on vulkan because my modeling skills are shit
vulkan is just a way cooler API than opengl
>>
>>102638666
You can always try embedding a WASM runtime. Seems fairly simple and is language agnostic. You could use wasmer for that https://github.com/wasmerio/wasmer-c-api
>>
Actually, I wonder if I should write my game in C# and use something like Silk.NET. As an anon earlier pointed out, Unity games are easily moddable without having to do anything. That's because they use C#, and you can easily decompile and hook a C# assembly. If I used a managed language like C# or Java, players could easily mod my game with no fuss on my part...
>>
>>102645694
just release your source code
>>
>>102644014
YWNBAW
>>
Which API?
OpenGL 4.6?
DX11?
DX12?
Vulkan?
>>
>>102645991
Vulkan for more control over memory
>>
>>102645991
write your own software rasterizer
>>
>>102646026
is that even viable for a commercial game?
>>
>>102646048
It worked for Doom.
>>
>>102646000
none of those APIs give you more control over memory
>>
>>102646088
I thought Vulkan gave me more control over VRAM than OpenGL.

Are you saying I can do all of the same things in OpenGL, that I can do in Vulkan?

Then there's absolutely no point to Vulkan unless you just want to support less hardware.

Sounds off.
>>
>>102646111
Vulkan is faster and has better support for newer graphics card features
>>
>>102646111
>>102646129

OpenGL is just an API and can be implemented in software, so technically it doesn't have to give you any control over VRAM at all. But the API has everything available for an implementation to do arbitrary meddling directly with VRAM.
https://www.khronos.org/opengl/wiki/Buffer_Object#Persistent_mapping
>>
accelerating a software renderer with CUDA wouldn't be the same as using a graphics API right? Because I wouldn't have access to the GPU's hardware rasterizer right?
>>
>>102646278
UE5 nanite does the same thing
>>
>>102646278
>>102646427
well, they do it with platform-agnostic compute shaders, not CUDA
CUDA isn't as portable
>>
>>102646427
>>102646434
wait so building a software renderer and then accelerating it with GPU compute could actually be fast and viable?
>>
>>102646450
If you accelerate it with the GPU it's not a software renderer
>>
>>102645694
Silk.net is comfy
I use it for windowing for my webgpu bindings
>>
>>102646472
but compute is not exactly the same as using the GPU's hardware rasterizer
>>
>>102646450
yes its viable
>>
>>102646490
rasterization is an algorithm, how it's implemented is a separate issue
>>
>>102644208
>glVertexAttribPointer is cancer
it isnt, you write a wrapper for it once and never look at it again, wow so hard!
auto vertexBuffer = std::make_shared<VertexBuffer>(sizeof(QuadVertex) * maxVertices);
vertexBuffer->setLayout({
{ BufferElementType::Vec3, "a_position" },
{ BufferElementType::Vec4, "a_color" },
{ BufferElementType::Vec2, "a_textureCoordinates" },
{ BufferElementType::Uint, "a_textureIndex" },
});
m_vertexArray->addVertexBuffer(vertexBuffer);
>>
>>102644582
endless fun to be had, unironically
>>
>>102644722
>Is it simpler to check for a collision between a cube and a polygon
Extremely simple, especially if you know the cube is axis aligned
>>
Has anyone used tests for their gamedev? How did it go for you?
>>
File: 1693353238047512.gif (1.42 MB, 256x320)
1.42 MB
1.42 MB GIF
>>102644000
>>
>>102645991
They're all shit sadly
Roll a die and enjoy your suffering
>>
>>102638348
>make a map on unity
>try placing text on it
>it's fixed canvas so it moves with the camera...
Am I supposed to recalculate text's position every time camera is moved?
>>
>>102646278
AFAIK you don't get access to any of the fixed function hardware
I've been wanting to do what you're describing to get away from the hellscape that is modern 3d APIs (and as a learning exercise), but CUDA isn't great because its nvidia only and OpenCL is not good from want I've read
>>
>>102648221
>unity
This is an enginedev general sir
>>
>>102648238
it's game and engine general, not game engine general
>>
>>102644191
You don’t need (dynamic) batching. Instancing, however, both highly effective and trivial to implement.
>>
File: wtfpl.jpg (158 KB, 1280x616)
158 KB
158 KB JPG
i use .hpp header files for c++
>>
File: 1727858042701.webm (3.93 MB, 540x540)
3.93 MB
3.93 MB WEBM
How is this possible
>>
>>102648302
Where is this from?
>>
>>102648320
https://x.com/harryh___h/status/1840792085995331800?t=4I2lUQXrUAPYbqVc3mOyOQ&s=19
>>
>>102648302
It literally says "lattice"
It's been used for a while for deformations. https://help.autodesk.com/view/MAYAUL/2025/ENU/?guid=GUID-334813CE-30E5-43CB-B032-CF8FE1ED96F7
>>
>>102642333
based
>>
>>102648346
Oh thanks will look into it
>>
yeah, I think I'm going to make a GMOD-like...
>>
>>102642333
you don't need to readlink and strcpy, you subhuman
>>
>>102648381
You need to do -Wl,-rpath,'$ORIGIN' or some shit in that case.
>>
Enginedevs stay winning.
>>
>>102648429
Or just use "./name.so"?
>>
>>102648636
And your game now breaks when launched from the wrong working directory.
>>
>>102642706
>plus wasm is just slower
wasm isn't just slower, it might be the slowest. most implementations I've seen are literally a switch case over op codes, that's just a virtual machine, an emulator, so of course you get save states for free.
I guess you can look for some JIT implementation, but at that point why not just use luaJIT?
>>
I'm adding a filter for g*dot shills, retards are making threads and posts everywhere non stop, even /v/ can't escape.
>>
>>102649116
based godot shills
>>
>>102649116
I asked
>>
>>102648221
I see the solution was just changing canvas's mode from screen space to world space
>>
>>102649087
If your code isn't shit and you aren't doing really complex simulation on CPU then you have a lot of spare time every frame. So it might be a good idea to sacrifice some performance for convenience.
>>
Bros I gave in I think I'll begin using smart pointers...
>>
>>102649313
when anybody tries to make a plugin system based on dynamic libraries, you're 100% sure they want native performance for their plugin code.
going from DLL speed to a simulated cpu in the most native way without even JITing sounds very dumb.

show me a modded game where the users doesn't end up with at least 50 mods doing different things. and last time I checked, wasm modules are fully sandboxed, so any communication between them is an overhead on top of more overhead.

I'm not arguing against the case of setting a bunch of properties once, or doing something once something specific happens. I'm talking about multiple plugins doing multiple things possibly per game object, just to set real expectations.
>>
>>102649474
>in the most native way
i meant naive
>>
>>102649474
asking mod authors to write native code and compile DLLs is a great way to ensure nobody will mod your game
>>
>>102649494
Source and Bethesda games were anyway without even a public modding api. Not even C++ native games can stop modders. Dwarf Fortress had process memory mods since forever too.
Just make a good game, there's always an autist modder that will find a way.
>>
>>102649520
You're comparing your average game to the most popular modded games
>>
File: untitled.webm (1.89 MB, 1920x1022)
1.89 MB
1.89 MB WEBM
How do I make this more interesting?
>>
>>102649568
nation borders
curves instead of lines
>>
>>102649583
Nah that is a totalitarian concept. I am a libertarian
>>
>>102649474
Letting native code written by somebody from internet to run on your computer is a bad idea. Malicious mods already exist. So sandboxing is necessary. You can't really sandbox native dll. At work we have special modified lua that doesn't have any access to anywhere or run bytecode. Overhead problems aren't that bad and can be mostly solved by batching.
>>
>>102649525
Assuming that your game is successful is more likely to happen than assuming modded code won't be absolute shit, imo.
>>
>>102649639
You should assume modders aren't that technically proficient
The most modded games are the ones that are easy to mod
>>
>>102649583
I have been wondering about how to do that.
Current borders are a wireframe mesh, but are more sophisticated.
Should I generate a path between every adjacent province?
How would I detect them?
>>
>>102649568
>coup d'état and rebillions can happen in big enough kingdoms, ensuring that one kingdom can't just consume everything else by sheer size
>certain tiles have a higher defense advantage
>resource tiles with higher values that give attack advantage
>peace treaties to help small kingdoms to not get consumed
>big kingdoms spend more resources, thus enforcing a theoretical maximum size that doesn't consume the whole map
>favor at least one or two small kingdoms to help them stay alive to add some variety to the map in endgame
>>
>>102649568
Map painting games are not interesting. If I wanted to play a board game I'd get out my fucking Risk.
>>
>>102649638
It's an architecture choice. Like I mentioned before, once you have the DLL plugin system working, nothing's stopping you from making a DLL that loads lua or js, or whatever. As long as you make a plugin for the language runtime, it will work. It's way flexible than you think.
At that point you can use the DLLs for yourself and keep the user mods gated behind sandboxes. Or just expose everything and give players more choices. You can even add an ingame box with a warning before you even load arbitrary DLLs if you wish so.
>>
>>102638348
It looks better with the legacy API. The shaders suck.
>>
>>102649363
noooo
>>
>>102649568
Via kingdom management.
>>
>>102649568
Sex scenes. Not joking.
For many years, patreon adult games using renpy/rpg maker as engine and daz3d/illusion games as art, is basically a cheat code.
Considering the amount of low-effort slop, and AI art now, well-crafted games with hot sex scenes will make bank. Then you can release on steam, gog after several years.
Rinse and repeat.
>>
>>102646278
That’s why compute shaders exist
>>
>>102646450
yeah it's super viable. the default GPU way of things operate on Quadrants (4x4 pixels) in a complex pipeline, all it takes to mess with its performance is to have a bunch of very thin triangles, or some shitty suboptimal topology.
I think a custom code to handle super small/cluttered models into a flat image (aka software rendering in compute shaders) would beat the default GPU techniques any day.

That being said, Nanite for example do not use mipmaps and tends to step over the GPU's feet making it work even harder, but those are Nanite problems only.
>>
>>102649568
Daughters and Mothers to romance and impregnate
>>
File: map game.jpg (422 KB, 1397x811)
422 KB
422 KB JPG
>>102649568
look at this
https://ben.itch.io/nation-wars
>>
File: 43434.jpg (1.74 MB, 1612x897)
1.74 MB
1.74 MB JPG
>>102649748
Well, the goal is to be more than map painter.
Like every province has land slots that be constructed and those impact stuff like food production impacts provincial wealth, which turn impacts population growth, etc.
>>
>>102650903
that's is pretty neat

>>102649714
>>certain tiles have a higher defense advantage
The complication is that the battle occurs en route rather than in provinces, so I can't really bonuses, until I add siege mechanic.

>>big kingdoms spend more resources, thus enforcing a theoretical maximum size that doesn't consume the whole map
>>favor at least one or two small kingdoms to help them stay alive to add some variety to the map in endgame
There is sort of mechanic.
Basically, only way to profit is by collecting taxes but you can only collect taxes if you magistrates (MGST) are equal to number of your provinces, and you get MSGT based on 1+ruler's statecraft (STC). Therefore a a big kingdom with 36 provinces and ruler with STC of 2 can only collect taxes every 12 months, while country with only one province can collect every month.

Side effect of this is that because tax money comes out of provinces, they tend to run out of money due monthly taxation
>>
File: firefox_M1rnuc8fD3.png (105 KB, 1440x852)
105 KB
105 KB PNG
The starbound source code has no license
Do you guys think it's a good learning resource?
>>
File: 1727879706184.png (192 KB, 1400x518)
192 KB
192 KB PNG
LMAO
>>
>>102651122
AHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA
>>
>>102651118
>headers and sources in the same directory
i am vomit
>>
>>102651176
Why add an include flag when compiling when I can just be lazy?
>>
>>102651176
You don't do that? What is wrong with you?
>>
>>102651118
license doesn't mean its free to use, you have to assume its a restrictive license in these cases
>>
>>102651193
Actually include_directories is used in the CMakeLists.txts for each component of the engine; the headers are in the same folder as sources for each component of the game because the game and engine are intertwined (the engine was not meant to be used for anything else iirc)
>>
>>102651222
I use an include directory like a any sane person would
>>
>>102651234
*no license doesn't mean
>>
>>102651234
Yeah actually, iirc this is leaked source code, though when it leaked the developer said "fuck it, guess it's open source now, you can do anything with it, but there's no warranty"
>>
File: file.png (199 KB, 1893x581)
199 KB
199 KB PNG
>3 separate shitdot threads on /g/ alone
>>
I think we should just make this an engine development general. At least for a few weeks while this nonsense blows over
>>
>>102651312
There is more but they are not labeled
>>
>>102651312
go away
>>
>vulkan only needs to use a bind slot on the sampler for a texture
>hlsl doesn't support this? it requires both texture and sampler to be bound?

am I understanding this right? my first hurdle with migrating to HLSL/Slang for vulkan
>>
>>102651350
This but keep it forever
>>
>>102651350
So you can have another thread that gets spammed?
>>
>>102651350
Not like anyone here makes games anyways.
>>
>>102651782
I do
>>
>>102651782
I do
>>
>>102651782
I don't
>>
>>102651782
I do but I suck
>>
File: 1710096144978702.jpg (44 KB, 1200x630)
44 KB
44 KB JPG
Any good AI related reads I should check out? Been reading picrel, but it feels really low quality, at least in the first few chapters, and the code examples are pretty bad, likely because this was written at the peak of OOP autism.
>>
>>102651699
No, the idea is it would be only for custom home-made engines, not Godot/Unity/Unreal/whatever
>>
>>102652459
Then call it custom engine development general then
>>
I'm starting to understand. GLSL was made by hardware engineers, hence why its so explicit
HSLS was made by software poojineers, which is why its so high level
>>
>>102644000
Godot?
More like Godon't.
>>
>>102652475
*HLSL
>>
>>102652472
"From scratch gamedev general"
>>
>>102652529
But you aren't writing your own compiler
>>
>>102652552
I did, once, for a bespoke custom architecture we designed at work
of course that thing isn't running games... but it could....
>>
>>102651350
There is no reason for this to be general game dev anyway, there is already /agdg/ for game dev as well, which fits prebuilt engines much better. This should just be engine dev, and in fact I'm pretty sure that's how it started.
>>
>>102652615
Congrats. I wrote an assembler and even that barely
>>
I thought bidirectional multilingual text rendering was the end boss, forget about that, it's not the rendering that is an issue, it's getting that fucking input from the keyboard
>>
>>102652641
It did, it got no posts and died.
>>
File: arken002.webm (135 KB, 1080x317)
135 KB
135 KB WEBM
Screen is not drawn using rasterization which means you can specify what should happen every n frames. E.g every 2 frames the circle grows and every frame the cube rotates. I have it set up so every entity is responsible for clearing iets own previous picture before drawing itself again if the frame timer hits zero.
>>
Let's say I wanna use C# for scripting (i.e embed a C# runtime, .NET or mono). What runtime should I use and how do I set it up with CMake?
>>
>>102653232
there's a lot of sovl in this screenshot
>>
is pixel-perfect collision needed if there won't be much platforming?
>>
>>102653912
as someone that lies platformer games, just make sure the bottom of your rect collider lines perfectly with the soles of your character's feet, and same for the top of the platform to the top of its rect
thats as pixel perfect as it needs to be to feel good, most players can intuit with this
>>
>>102653912
no one will notice that it's not pixel perfect.
>>
How many of you fellas are switching to Redot?
>>
>>102653962
my test sprite digs into ground sprite for a pixel or two so I was wondering.
>>
>>102653988
thats kinda cool actually, leave it like that
it would be worse if the collider ended a few pixels below the feet because then you might miss jumps by colliding into the platform where the player would expect to make it fine, but the other direction is fine

best to err on giving the player leniency when designing colliders
>>
>>102654064
I see. Ok then, thanks!
>>
>>102653912
it's a meme
>>
>>102651246
>include directory
i am vomit
>>
>>102653733
https://github.com/StudioCherno/Coral
>>
working on stitching seams between disparate LOD chunks. This seems to be a more helpful setting for looking at it.
>>
>he doesn't have an include dir
ngmi
>>
File: loll.png (50 KB, 343x878)
50 KB
50 KB PNG
>>102655811
>>102655422
why not both
pure chaos
>>
>>102655422
hello vomit, I am dad
>>
>>102649568
Each kingdom has a harem of anime girls that you must carefully manage & breed to produce the ideal heir.
>>
Optimizing is kinda fun, reminds me of when I was minmaxxing builds in Warframe
>>
>>102652712
>"Oh, you're working on internationalization? So your game has a lot of players?"
>>
>>102655898
This is literally how I organize my projects.
>>
>>102642690
I've only developed homebrew for the GC/Wii before but from what I can understand many console makers (or homebrew devs) styled their graphics APIs after OpenGL 1.0 to make development super easy, so you really only have to worry about game logic and math.

6th gen consoles are also pretty powerful so you can afford to get a bit sloppy with your math and algorithms as long as you don't let yourself go too much
>>
>>102656723
It's quite counterintuitive, do you have enough players to warrant the effort to localize? or do you localize because you want more players?
https://youtu.be/wv7N45apEhE
I've done a decent amount of resource, all videos I've seen (with transparent stats) show that localization does make a huge difference.
In this video, english countries make up 10% of the downloads, they do make up 50% of the profit but that means you double your profit minimum.
I've seen similar trends everywhere, sometimes you even hit the jackpots because some countries favour specific game genres for some odd reason, they even tend to be autistic about it (polish and their weird fascination with obscure rpgs).
The only pitfall is that machine translation for story based games can hurt your game but it's still better. It's good to have all your strings in some easy to access CSV that players can contribute to, so technically, if you make the game support all languages, the players themselves can do the translation for free.
Personally I speak 3 different languages so it's hard to find a reason to not do it. But I did consider making a symbol only language...
As for the input thing, you have to call native windows functions, the state of localisation and accessibility is wild. In web land they tend to fake text input by overlaying an html input box over the canvas to get it working for all platforms for free. Lucky bastards.
>>
File: dokibird realization.gif (1.31 MB, 418x432)
1.31 MB
1.31 MB GIF
>>102644000
>If you can make a game, you can make an engine.
>Therefore
>If you can't make an engine, you can't make a game.
uh oh
>>
>>102657652
>if you can pick up a pencil you can draw
>if you can't draw you can't pick up a pencil
Not quite
>>
>>102645991
If you can't prove you need more than glBegin and glEnd, you don't need more than OpenGL 2.
>>
>>102652341
Programming Game AI by Example - Mat Buckland
Game AI Pro books

Beyond that, just read presentations, blog posts, papers etc. Game AI is considered especially specific to each individual game, so you're only ever going to receive little pieces of general theory among numerous concrete approaches. Hot tip: GOFAI robotics papers can be relevant to game AI too
>>
>>102644520
So where would I start creating my own engine? What are some good resources to start my journey?
>>
>>102658536
for the basics of rendering
https://learnopengl.com/

everything else can just be improvised as needed.

the only other thing that i found can be kind of complex is asset management. but i ended up improvising a pretty good scalable solution for myself.
>>
File: firefox_8Hu3kloimr.png (43 KB, 1081x491)
43 KB
43 KB PNG
Researching to see what my target hardware/os and system requirements should be
>>
File: file.png (1.49 MB, 1056x1079)
1.49 MB
1.49 MB PNG
>sprite not aligning correctly for some reason
>jitters back and forth when you resize the window
>remember back to an old forum post about how the PlayStation hardware needs you to align sprites with a half-pixel offset
>sprite.xy += 0.5;
>sprite aligned perfectly, sharp enough edges to cut diamonds
what the fuck
>>
>>102659805
>the PlayStation hardware needs you to align sprites with a half-pixel offset
Now why would they make it like that?
>>
>>102659852
Doesn't make any sense considering the playstaion used ints and 0.5 would be rounded to 1
>>
>>102659918
the playstation used fixed point numbers (of various sizes) for its calculations
>>
>>102659946
Like floats? Isn't that why theres that jittery effect for PS1 games?
>>
>>102659852
>>102659918
My apologies I just looked it up and it was for the PS2 https://ps2-home.com/forum/viewtopic.php?t=3481
I'm using nearest filtering though not linear.
I thought about it a bit more and the sprite I was trying to align was always centered so I might have just corrected the sub-pixel offset from that. So only slightly retarded
>>
eh, slang doesn't seem to support KHR extensions for draw parameters/draw ID. Guess that stops my exploration. Back to just managing glsl files with scripts I guess

well that's enough of that, time to move on and start integrating jolt physics
>>
>>102642690
Dreamcast is easy because of KallistiOS and the community around it. PS2 is a nightmare but might get better in a few years because there's something they're working on, can't remember the name.
>>
>>102659966
Some of the jitter was due to the fixed point building up precision errors after multiple GTE operations in a row but a lot of the jitter was due to the PS1 snapping vertices to the pixel grid prior to rasterization due to its lack of subpixel precision.
>>
>>102651176
I hope that should I ever need assistance with integrals I can find your assistance.
>>
so for me to make an engine i should start with a game loop and then create every single function for everything? or is there a more elaborated way
>>
>>102660580
grab yourself raylib to start out and just draw some rectangles on the screen, learn the basics
>>
>>102660589
>raylib
looks interesting and elaborated, thanks man i'll take a good look
>>
File: 1705228751612561.jpg (91 KB, 868x693)
91 KB
91 KB JPG
>>102659966
>Fixed point numbers
>Like floats?
>>
what I will solve.
trying to seam stitch disparate LOD chunks.
some of the edges look fine.



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