[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_ZfP3LdrMdg.png (166 KB, 1664x944)
166 KB
166 KB PNG
Editor edition

/gedg/ Wiki: wiki.installgentoo.com/wiki/Gedg
IRC: irc.rizon.net #/g/gedg
Progress Day: rentry.org/gedg-jams
/gedg/ Compendium: rentry.org/gedg
/agdg/: >>>/vg/agdg
Render bugs: renderdoc

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

Previous: >>101710522
>>
Should my first game be 2D? Or at least, really simple 3D? (i'm speaking in terms of both gameplay and graphics)
>>
>>101723689
Probably depends what tools you are using. As an enginedev 3D always scared me so I only make 2D stuff. But I think with engines 3D isn't necessarily any harder? Though 3D assets will definitely be be more annoying to make upfront.
If you haven't made a game before I would suggest 2D personally
>>
>>101723689
>>101723860

Go straight to 3d, why bother learning so much 2d logic, just start learning the 3d logic
>>
>>101723669
how do I debug a multiplayer game? I have a seperate server and client executable and when I open one in gdb the other disconects it using printf is a pain
>>
>>101723689
simple 3D, like the other anon said, I too was scared of 3D, but I exported a 2D puppet made in blender to raylib with gltf and it worked flawlessly in like few minutes, you can achieve an artstyle similar to pic related in less time than it would take you to draw real 2D sprites that aren't pixel shit, or you can use Spine runtime (or Dragonbones), or you know, just render a normal spritesheet from blender like your typical 2D games.

I'm currently trying to study Spine and Dragonbones, and Live2d too I guess, I wonder why few indie games use a similar approach, setting things up can be a bit slower but you get major speed later, or you know, just use cutout puppet style akin to Darkest Dungeon 1 artstyle, it would work straight out of the box and is super easy to customize. I doubt you'd need those fancy IK solvers and bezier curve deformations, maybe you need a pixel mask.
>>
>last thread only had 24 posts
Is gedg dying? Guess I am forced to actually work on my game so I can bump with progress posts
>>
>>101726581
Someone please keep it bumped so I don't have to visit /dpt/
Tell your friends about it too
>>
>>101723689
If you're programming from scratch, start with 2D
If you're using an engine it doesn't matter much
>>
>>101725869
you should be able to run the server and the client in the same process
>>
I AM WORKING ON A MEDIEVAL FIRST PERSON SHOOTER GAME THAT RUNS ON SOURCE.

I NEED

- an artist, specialized in medieval styles, who would also be willing to work on this game for commission

- need someone to work on Game UI or hud

WILL PAY
>>
>>101728586
WHERE DO I GO TO FIND THESE PEOPLE
>>
>>101726581
'Working on' and 'posting in' are mutually exclusive. I've made myself an airgapped workshop to avoid doomscrollig 4chin while working on mu game.
>>
>>101728756
https://www.indiedb.com/jobs
>>
File: 1713938131246299.webm (1.25 MB, 1276x718)
1.25 MB
1.25 MB WEBM
>>101723669
I've been spending a LOT of time just sorting out the foundations of the project so I can ensure that I won't be shooting myself in the foot.
I got fog + a dynamic sun working though!
>>
>>101728876
GMI, keep us updated
>>
>>101723669
Is go a good language to make a visual novel?
>>
>>101731052
I'd personally try do it in English.
>>
>>101731052
visual novels basically have bare minimum requirements for both CPU and GPU, you can pick any language you want and it will do fine, just pick whatever you feel the most comfortable with
>>
>Trying to make a 2d EVE like RTS/simulation
>No clue what I'm doing idgaf circles on the screen are moving 'ore' from asteroids to their bases
>Numbers are going up, iron plates are being made
>Stars/planets/asteroids are slowly spinning as God intended
I don't know how far I'll get, I don't really care. What I want to know is more of the theory/practice around what parts to develop in particular order. Should I go very wide/broad on implementation of the many different areas an rts. e.g. have 1 type of each class of ship trader/miner/attack, 1 type of attack, make some basic 'ai' logic other than 'mine copper rather than iron' or should I focus on smaller but more deep implementation. e.g. complete 'mining' (Full mining techtree+exotic ores+gases/other stuff)?
>>
>>101731433
Try to make all the systems in a game before expanding on them, because you'll need to refactor things as you do this
>>
File: wave_cubes.webm (2.79 MB, 828x656)
2.79 MB
2.79 MB WEBM
Devil may cry 6 in the making. Rust + WGPU is suprisingly comfy.
>>
>>101731052
why not just use Ren'Py?
>muh language
unless you've already made and FINISHED a project in something 'easy', there is no point to adding all this added difficulty when you could just use what works and work on making an actual working game
>>
i don't want to learn how to program, if I wait a few years maybe AI can do it for me. I hate the overly complex syntax of ALL modern languages. I only like basic and pascal and vb before it became modern faggot vb.

I looked into game engines and the only one that looks easy is gdevelop but the games made with that all look horrendous and have terrible performance.

I want to make a game that people will play. not a vn because those are so boring, I tried to play one to research it but it was the worst 'game' I ever played.

I basically want to modify an existing game and mod the hell out of it. what is the easiest way of doing that. modding doom? it seems very arcane and weird since it's like 50 years old, I mean how it's modded. is there a game that I can mod that is fun and easy to do? if Lyra was all made with blueprint maybe that would be good for me. but it's not. any ideas on anything I don't know about... I open source free to use game or engine I can tweak and change sprites and change weapons and add stuff? I don't want to start from square one and make everything from the ground up, like love. also fuck you if you try to tell me to learn Godot, seems like most popular answers to this sorta question
>>
>>101733832
When you are modding Doom, you aren't modding the original Doom, you are modding modern source ports which have been completely rewrritten to support lots of new features
>>
>>101733843
I looked at a video of how to like change the animation of a grunt and it's super bizarre because they have to stay compatible with how they decided to do it 50 years ago, that's what I mean.

like it seems it will be a project in learning all this weird shit that is super not user friendly, you know what I mean? so I wish there was like a doom, but super easy to mod, like a doom made in gdevelop or using blueprints for most game logic.

anyway what is a something similar to doom (open source) that is super duper easy to mod. like having a lot of quality of life stuff.
>>
>>101726267
I'm curious, why use raylib instead of something like godot?
>>
>>101733943
Yeah Doom is weird like that, but it's still probably the easiest game to mod
If you want real freedom you will probably have to use a game engine
>>
>>101731120
Would you say it's worth trying to do more things on your instead of using something big like Godot? When I think about it you're right, a vn doesn't need that much.
>>101733030
>>muh language
I won't use it because fun is an important part of programming to me, also anything made with it just has that uncanny Renpy look.
>>
>>101734077
Writing your own VN engine sounds like an easy and fun project
>>
File: annoyed.jpg (5 KB, 220x168)
5 KB
5 KB JPG
>>101733832
>i want to make a game
>i dont want to make an effort to learn new shit
fuck off
>>
>>101734038
Same can be said about the reverse, why godot and not something way simpler?
Check godot source code and you'd know, variants for every single variable, dictionaries of variants everywhere, every single node access goes through a string lookup split by the full path, a gigantic pile of spaghetti in the form of a global signal system that turns every single update call into a signal broadcast into a switch case for a simple function call, it's retarded.
Raylib also happens to be so simple that you can start mixing openGL calls, editing raylib functions, and upgrading it as you need, it's a great learning point for openGL too, but you could use anything else.

The best thing about godot is learning from it and maybe steal a couple of ideas, and I guess tools. you need to make tools super fast and you don't care about performance for them in general, you can also do the exact same thing in love2D or any fast prototyping framework/engine. In fact 99% of the things you can do in godot can be done in lua or a simple scripting language, even the convenient node system (Balatro is made in love2D btw).

We're on /gedg/ here not /agdg/, if you're not doing something even slightly low level that takes a bit of learning, what's the point?
>>
https://www.gamedeveloper.com/production/art-design-deep-dive-getting-official-south-park-art-into-i-the-fractured-but-whole-i-
This is cool
>>
>>101735040
>every single node access goes through a string lookup split by the full path
lol what
>>
File: firefox_a1g0BqQzWX.png (271 KB, 646x355)
271 KB
271 KB PNG
>>
File: file.png (128 KB, 1919x930)
128 KB
128 KB PNG
>>101735108
>the notification/signal system and fun string concatenation shenanigans
https://github.com/godotengine/godot/blob/3978628c6cc1227250fc6ed45c8d854d24c30c30/scene/main/node.cpp#L52
>the fun way to access nodes in gdscript and rest
https://github.com/godotengine/godot/blob/3978628c6cc1227250fc6ed45c8d854d24c30c30/scene/main/node.cpp#L1806

https://github.com/godotengine/godot/blob/3978628c6cc1227250fc6ed45c8d854d24c30c30/scene/main/node.cpp#L1806

https://github.com/godotengine/godot/blob/3978628c6cc1227250fc6ed45c8d854d24c30c30/scene/main/node.cpp#L1721

I can't fit all the dank memes I've found in a screenshot, I stopped caring after they took 2 years to fix a tooltip zooming issue that made them unusable, that and how they straight up closed any discussion about the mentioned issues, even when somebody had working code for performance improvement.
>>
>>101735374
I guess if those strings are interned and not doing full string comparsions it's not an issue
>>
Odin bros, if I have procedure return two values, is there a way to do some basic math on them?
for example if
foo()-> (i32,i32)
do something like
bar(foo()+(0,15))?

Also how does one do code posting on /g/? I am a /v/ & /vg/ fag
>>
>>101733832
>I hate the overly complex syntax of ALL modern languages
Take the C pill. OOP is overrated anyway.
>>
>>101735822
return a vector
foo :: proc() -> [2]i32
from your proc if you want to do an operation on it.
foo() + [2]i32{0, 15}

>...
>>
>>101735822
code enclosed in [] followed by /code also enclosed in []
>>
>>101736043
>>101736057
 Thanks anons 
>>
>>101735822
>>101736201
but if the proc is not yours i.e a GLFW function. you can always do
scale: [2]f32
scale.x, scale.y = glfw.GetWindowContentScale(window)
>>
>>101726581
>>101726746
maybe if you faggots would talk about actually important things like descriptor sets and vertex weights instead of "should I make my Unity/Godot game with a PS1 shader", then the thread would be better
>>
>>101733832
>>101733030
>>101732858
>>101731433
>>101728586
kys
>>
>>101726581
I'm too busy shitposting in aggie and making progress on my game.
>>
File: file.png (3.07 MB, 958x1671)
3.07 MB
3.07 MB PNG
This will be a design rant but I'm going down a rabbit whole trying to make a fun "4 niggas in a row game", it started with Darkest dungeon 1, the 1 dimensional 4+4 row combat is fun with some cool movement mechanics, but the concept start falling off midgame because there isn't much substance for more mechanics, all enemies end up doing AoE of mixed status effects and damage. Then I played Wildfrost, it's a card game but the it has a wider board than DD so it naturally allows for more mechanics and tile targeted attacks, but then the movement absolutely sucks because you can shuffle your heroes for free and your turn only ends after you play a card that does consume your turn, I guess that's one way of limiting free movements.

When I try to push that concept further it I just remembered Radiant Historia, but sadly it only applied the grid movements to enemies only. Then I noticed that I'm just one step away from Megaman Battle Network board battle, kinda frustrating. There was one other game with an OC board with front row and back row and the ability to invade the enemy tiles, but it felt like trash...

Tell me anons what would be your favorite 4 nigga in a row game?
>>
>>101736867
remind me to never interact with "game designers" ever again
>>
>>101736906
that's just how turn based and board games are, there's little to no technical complexity besides AI. You can code the full Darkest Dungeon 1 experience in fucking renpy.
The hard part is designing the game itself.
>>
>>101736867
>rabbit whole
stopped reading here. Get an editor.
>>
>>101736867
I've never played a 4 niggas in a row type game that had any depth, if you can manage that then good for you
>>
what is the size of the sun with a camera that has 80 degrees field of view?
>>
>>101737144
My son who is a cameraman is 5'4". Not sure what fov he uses for filming though
>>
File: 1722802910183996.jpg (681 KB, 1000x519)
681 KB
681 KB JPG
dunno if I should have asked in the current "godot sucks" thread or even /agdg/, but
could this kind of thing not have been made in the (G)ZDoom engine?
'cause I did watch that "potato optimization" video, and the dev made godot sound worryingly incomplete
>>
>>101738413
Just use Unity ffs
Godot sucks, GZDoom is still Doom and can't do lots of things
>>
>>101736285
Ok anon, whats the better approach: performing vertex skinning + morphing in the vertex shader, or doing it in a compute shader?
>>
File: highlight.png (146 KB, 1085x856)
146 KB
146 KB PNG
Scene queries and collisions now work. Yay me.
>>
>>101738646
Is that a 3D map editor?
>>
File: highlight2.png (198 KB, 1028x818)
198 KB
198 KB PNG
>>101738686
Content editor for my game - where you are going to build models using simplistic bricks ( some variety visible on the top ) on a grid. I'm making a 3D version of OTTD.
>>
>>101738733
looking gud buddy
it's nice to see progress from you
>>
File: file.png (79 KB, 1358x473)
79 KB
79 KB PNG
Very newfag question, I'm ESL and I don't know if I'm understanding this correctly.

If I made a game in Unity and released it, and my revenue exceeded that amount, do I have to pay for the Pro license?
>>
>>101739790
I read that as...
if (unity_product.revenue < 100000 || business.revenue < 100000)
can_use_unity_personal = true;
else
can_use_unity_personal = false;

if (business.revenue_in_last_12_months < 200000)
can_use_unity_personal_2023_lts = true;
else
can_use_unity_personal_2023_lts = false;

if (!can_use_unity_personal && !can_use_unity_personal_2023_lts)
buy_unity_pro_or_enterprise_license();
>>
>>101739790
It's a good thing that C/C++, GLFW and OpenGL is free to use.
>>
>>101740290
>>101739790
And if you, by miracle, exceed the 100k/yr revenue do you just need to start paying their monthly 200USD fee? That's more than reasonable.
>>
>>101738611
i would say that if you have a very high number of vertices/bones/characters on screen, or if you are doing complex soft body deformation stuff, then probably a compute shader is better if of course it is available on the device. i also wonder if there is a situation where a simple vertex shader produces some weird inefficient memory access problem that a compute shader wouldn't have

but that is just my hunch ;)
>>
>>101741209
>i also wonder if there is a situation where a simple vertex shader produces some weird inefficient memory access problem that a compute shader wouldn't have
no
skinning is dead simple, its one of the first things shaders were used for
>>
>>101741275
how can you be so sure? with tiling architectures these days, you can't really guarantee the order in which things run anymore. there may be some situation where your pipeline would stall or have a high number of cache misses if you need to access a lot of vertices.
>>
>>101741325
Like I said, vertex skinning has historically been the primary function of the vertex shader, of course it's going to be able to do it correctly
>>
>>101741435
>"like i said, your computer is just a fast PDP11, so of course C will handle everything correctly. there's definitely no paradigm shift that has happened in the last 55 years at the hardware level"
chud tier opinions in this thread never cease to amaze
>>
>ahum ackshually, the vertex shader can just never do anything wrong on any platform at any time. it's just always correct ok? it just is, it's totally different from every piece of software ever written
>>
bros i dont like how the thread is going, do you guys think should I make my Unity/Godot mmo with a PS1 shader and graphics? how many people do you think i'd be able to fit per server before the engine shits the bed?
>>
>once again game devs using the game engine dev thread
Fuck off to /agdg/. You’re only allowed in this thread if you’re using Vulkan or Dx12.
>>
>>101741866
>>101741918
Not him, and I've never implemented such a thing, but it looks like something that takes some vertices, and applies some matrix transformations to get their new location.
Kind of sounds exactly like a vertex shader.
>>
How hard is it to setup basic path tracing?
>>
>>101733832
you have to be 18 to post here
>>
>>101738540
There are a decent amount of GZdoom projects that do more than reskin doom, so an FPS like he asked is definitely doable
>>101738413
Yeah this could've been done in GZdoom. The guy making it is a brain rotted zoomer, so his game would still be shit
>>
>>101742285
Not hard. To optimize it is one of the biggest challenges in the game dev history though.
>>
File: 1696348389430.png (235 KB, 715x741)
235 KB
235 KB PNG
>>101742200
>how many people do you think i'd be able to fit per server before the engine shits the bed?
At least 6 million
>>
>>101742251
>You’re only allowed in this thread if you’re using Vulkan or Dx12
Fuck off poser, OpenGL is better.
>>
>>101741209
I'm not so sure compute would be a net benefit with large numbers of characters on-screen unless you were doing a lot of multi-pass rendering, because you need to keep the transformed data around somewhere until you are done with it for the frame.
>>
>>101742849
Sorry, but not everyone was filtered by Vulkan like you were.
>>
>>101742849
For your pussy game sure
>>
Is there any "I'm a stupid dummy and need my hand held" tutorial/guide to engine architecture?
I don't mean like link Raylib and make Pong, but like a real engine with a renderer and a viewport and GUI and the ability to make and build different projects
>>
File: 1629919779808.jpg (40 KB, 500x644)
40 KB
40 KB JPG
Can anyone figure out why the fuck this throwing an error? the idea is that whenever I want to log an error to the common log file (and to the console) I just drop this function in there and tell it explicitly in the code if it's an error I'm logging or not
 
#include <fstream>
#include <iostream> //there are more std headers included but this little snippet only needs these two iirc, anyways its not a forgot header problem

template <typename T> //declare function template placeholder identifier template
T Out2LogNConsole(T thingtolog, const bool iserrorlog) { //use as CoutNLog<int, bool, std::string, double, ect;> (variablearg, false/true,);
std::fstream logfile("Log.txt", std::ios::app);
logfile << thingtolog << "\n";
if constexpr (iserrorlog == true) { //<========= ERROR HERE: error: 'iserrorlog' is not a constant expression
std::cerr << thingtolog;
};
return;
};

>>101742251
If I can into pointers in a single day will I get filtered by vulkan
>>
File: 1720310165418157.jpg (205 KB, 1024x770)
205 KB
205 KB JPG
>>101743296
not really because the whole point of rolling your engine is that you use critical thinking and planning to cook up your own unique architecture. For example; consider the 20yo genA brainrot making Source Engine (they also made some games with it iirc)
>Source uses;
DX7/8/9+ as its 3d render library
VGUI (in-house) as it's GUI & menu Library (most apparent in hammer)
Havok for its physics
.vpk for asset storage, (in-house)
.vmt for material data, .vtf for texture data, .vmdl for models + animations, .vmf for uncompiled mapfiles, and .bsp for compiled mapfiles. and .ogg for audio files. all of these besides .bsp are more or less in-house
BSP was created for the quake engine back in '96 and stores logic and I/O along with a polygon mesh, lighting data, and binary partitioned "room" tree, as well as a list of entities with coordinates. any assets not "baked" (packaged) within the mapfile (which is a massive waste of storage unless you have one map total in your game) instead reference content in the game directory.
the "Source Engine" itself only has a few (although critical) functions;
1) read game information and external code libraries to figure out what it's supposed to display on the menu & settings, if singleplayer get a map+chapter list, if multiplayer give the VGUI server browser
2) interpret various asset types
3) load and interpret .bsp files and handle saving and loading modified map states (savegames) tie the various other systems together (i.e navigation, vgui player input, npcs, props, executing logic & I/O, and handling map transitions)
4) manage memory consumption of the other components
if you wanted to learn good methods of making an engine I'd look at tutorials on working with other engines and consider how they work at a high level, then take everything you like and mix it into your own engine
>>
I set up raylib+odin and got a window opened and drawing a sprite I can move around with wasd. It aint much, but I am satisfied with my progress for this weekend. Very comfy setup so far. Hasn't induced any violent rage in me yet, not even once, which is more than I can say for C++ or Rust (especially rust..)
>>
>>101744224
make iserrorlog a template parameter.
if constexpr doesnt work like that
>>
>>101734412
instead it should be
>i don't want to make a game
>i want to make a effort to learn new shit
which is /gedg/ in a nutshell

imagine postponing making a game by autistically arguing over which engine to use when you could postpone making a game by making a new game engine altogether
>>
>>101744283
>actually made progress
nice
>filtered by rust
rust is incomprehensible and the only way you could shill it with a straight face is if you haven't tried to use it. the amount of bloat it introduces renders it useless ala
>I want a low level language like C++ to fuck with memory n shieeet but I don't want to deal with the responsibility of not fuckin wit memory n shieet because I can't into nullptr and my programming experience is 50% java and 50% scratch
>filtered by C++
learning c++ isn't a learning experience, its like working out; if you give up because your weak shrimp ass can't lift the heavy weights, get angry and eat a ton of protien and repeat tomorrow
>>101744353
I'll try that, also wxplain? the idea is that you can feed the function either a) info for the log, like the size of a value or "this thing did this thing" and if you told it it was an error, (which would be known at compile because the code would look like
 
void dothing() {
if (!thing == doneproperly) {
Out2LogNConsole(std::string "thing didn't get done\n", true)
};
else {
Out2LogNConsole(std::string "thing got done\n", false);
};
};

in which case because the value of
iserrorlog
is known at each call of
Out2LogNConsole();
which the compiler could squish down to either outputting
thingtolog
to Log.txt or to both Log.txt and throw an error.
>>
>>101744503
if constexpr only works on compiletime constants. since it effects the actual code generation of the function.
what you want is for it to generate 2 versions of the function depending on runtime parameters which it doesnt do. Except for when it inlines.
you could check the code gen (godbolt is useful for this) and tryout different optimization levels, inline or [[alwaysinline]] or whatever that attribute was.

but probably best to just drop the constexpr, its might even be more efficient since less code to stick in the instruction cache.
>>
>>101744503
>>filtered by C++
Wouldn't say filter per se, its always been my go to language of choice for gamedeving till now. Just that it managed to make me frustrated/angry at times. Though I fully admit I get filtered by cmake, I managed to get it do what I want once by bashing my head in the wall till it worked and have been copy pasting that cmake file ever since.
Fully agree on rust. Whatever nicer features it has are fully negated by stuff like the borrow checker in my opinion
>>
File: 1700956429771193.jpg (51 KB, 640x759)
51 KB
51 KB JPG
>>101744585
yeah I dropped const and it Just™ Works™, also reading the documentation of the GCC compiler it might??? (compilers are fucking nuts, I'd have to do acid to understand it properly) bake the functions anyways in all instances where the arguments are implicitly constant
>>101744644
>filtered by CMake
cmake doesn't make sense. It's an IDE compile tool without an IDE. Whenever documentation refers to "undefined behaviour" or "ancient grimore of forbidden and incomprehensible knowledge" I think of cmake. Its git but if git just told you where to copy paste. I couldn't get shit working whatsoever, I just let codeblocks handle that shit
>>
I'm so bored now. I don't know how to proceed. Raylib is starting to show its teeth.
>>
>>101744980
what are you getting filtered by
>>
File: 1710463479474548.jpg (161 KB, 1024x779)
161 KB
161 KB JPG
>>101738413
godot is a pretty crummy engine.
All the fanfare just comes from people coping for the fact that it's FOSS.
The free part is great, the everything else is mediocre.
Its scene graph dependency chains are the worst.
>>
>>101744980
No shit. You should be using Vulkan like a man.
>>
>>101745074
>You should be using Vulkan like a man.
1100 lines to show a triangle? Fuck off
>>
>>101744980
>Raylib
>Teeth
Raylib is a wondrously orgasmic self-heating vibrating onahole tho.
>>
>>101745087
It’s called being a developer. Your engine will contain a few thousand lines of code at minimum.
>>
>>101745127
For the majority of small games people are just going to ship an OpenGL emulator library 500 years in the future
>>
>>101745087
You'll write those 1100 lines, and you'll come to appreciate them.
>>
>>101745145
vulkan is too complex and I'm too stupid to understand it.
>>
>>101745163
Vulkan really isn't that complex. It's mostly just filling out paperwork and making functions that automatically fill out paperwork.
>>
SIGGRAPH is here so you know what that means. New research papers!
https://www.realtimerendering.com/kesen/sig2024.html

The one that caught my eye the most, Real-Time Path Guiding Using Bounding Voxel Sampling https://suikasibyl.github.io/vxpg I can’t wait to implement this.
>>
>>101745163
vulkan-tutorial.com
>>
>>101745178
>It's mostly just filling out paperwork and making functions that automatically fill out paperwork.
I understand it's a one time thing. I have to write "boilerplate" only once but it's still very complicated in my opinion
>>101745225
I know. Similar point as above.
>>
>>101745370
Honestly for most applications Vulkan is overkill in terms of configuration dpeth. 90% of programs just want to draw textured rectangles with maybe some fragment shaders running.
For this reason alone OpenGL or some derivative pseudo-standard library is going to persist for the rest of time as a common binding.
>>
>>101745074
>>101745145
>>101745410
Yeah vulkan is nice when you a) want your indie metaphor for depression platformer to get 400+fps on a smart fridge with integrated graphics but for most projects its hammering nails in with a JDAM
also why are you spamming about vulkan so much? poast what you did with vulkan that has you like this so we can admire your ingenuity or gtfo
>>
Is there a resource that could help me implement a way to get the contact points of collided polygons?
>>
>>101745823
how hard could it be to figure out if two triangles are intersecting? theres at most 18 floating point numbers involved, and you only need to use addition/subtraction and a for loop

>>101745604
the difference between the two things you described is being gainfully employed vs being a basedboy european "gamedev" who will soon be opening an onlyfans account and linktree
>>
>>101745370
>it's still very complicated
Because GPUs are very complicated.

>>101745225
I really wish they'd update these tutorials to use dynamic rendering. That's like 20% of the annoying frontload for beginners shaved off right there.
>>
>>101744783
the problem with codeblocks is that you are living in the stone age without address sanitizer, and when I tried to use codeblocks on linux like 7 years ago it would just crash way more than on windows.
And linux is just autistic, just use wsl, vcpkg solves certain problems with the package manager and for game dev you can't remove the address sanitizer memory leak from SDL or any graphics API, so you need to suppress it but it still pops up as being suppressed.
I liked codeblocks but it's just bad, it's really only good for a PC with 4gb of ram, which was what I was using (for a while it was 2gb of ram). With so much CPU and free ram you might as well use intellisense or whatever.
If you are not interested in porting to cmake, consider using WSL (if you are on windows 10/11) and run codeblocks on linux (the UI probably won't be fast, but it should work 100% to test asan and ubsan, and valgrind).
>>
any decent audio programming book? possibly using sdl mixer / anything portable to mobile?
>>
>>101745823
separating axis theorum https://www.metanetsoftware.com/technique/tutorialA.html
in 3d you can use gjk distance
>>
>>101745889
cringe. tutorials and dynamic rendering are cringe

vulkan 1.1 for life. vulkan 1.3 is for brainlets just like cpp
>>
>>101745889
>I really wish they'd update these tutorials to use dynamic rendering. That's like 20% of the annoying frontload for beginners shaved off right there.
That’s what vkguide.dev and the example repositories are for. Its a good thing vulkan-tutorial teaches basic vulkan.
>>
>>101741866
GPUs have not had a "paradigm shift" which makes them somehow unable to perform simple tasks like skinning properly you idiot
>>
>>101746105
>basic vulkan
I feel like "dynamic rendering" was too haughty of a name. It makes it sound like some advanced feature, but it's just "renderpasses were a pain in the ass; I'm not targeting some ARM crap, just let me skip that shit" and is more basic and beginner friendly.
>>
>>101747111
It's more like "Vulkan was a mistake, let's make it more like OpenGL"
>>
>>101747121
Apparently the inflexibility was causing issues for people who were using multiple APIs, and wasn't really doing a whole lot for desktop-class GPUs anyway.
>>
File: images.jpg (5 KB, 225x225)
5 KB
5 KB JPG
>>101723669
I have been thinking...
In most games opinion is depicted as linear value, which is nearly worthless.
Human relations are pretty complex, wouldn't it make sense to have 3 axes?
>fondness, how much X likes to be around Y
>respect, how much X values Y opinion
>trust, how much X is willing to entrust to Y

The negative trust would be someone you are afraid, of because you DO NOT trust that they don't hurt you
The negative respect would be someone who you consider to be a clown, whose opinions are always wrong.
The negative fondness is someone you do not want to be around, e.g. you are annoyed by them.

Overlapping examples would be something like

You can respect your boss and trust that he will pay you, but you are still not fond of him.
You can be fond of your conspiracy-theorist uncle and trust that doesn't steal your purse, but you don't take opinions from him because you don't respect him
You can be fond of your friend and respect his career, but you don't trust he will show up like he promised.


Is respect and trust too similar?
>>
>>101738413
I wouldn't use godot for 3d. All 3d options in godot are still very raw and experimental.
>>
>>101747420
It's a get set of axes, there are high-respect low-trust scenarios eg. someone who has power over you
>>
>>101747768
>get
*good
>>
>>101747420
it would make sense but it would also be indefinitely harder to reason about and implement these relations
>>
File: 1700824919429946.jpg (47 KB, 700x368)
47 KB
47 KB JPG
>>101745871
>>101746003
Collision detection is the easy part. What I'm trying to do is get the contact points where the collision occurred so I can use them to calculate the angular speed. I found a technique called clipping but I've yet to find a resource that explains it well, I'll probably have to go to existing physics engines source code and decipher them.
>>
>>101749512
It's actually pretty easy
You have polygon A and polygon B. polygon A has a velocity vector.
Take all the vertices in polygon A, apply the velocity vector to all these points to get lines. Intersect these lines with all the edges on polygon B. Save all the intersection points as progress along the velocity vector between [0,1].
Then do the opposite, take all the vertices on polygon B, apply the reverse velocity vector, and test those lines against the edges of polygon B. Save all these intersection points as progress along the reverse velocity vector between [0,1], then reverse them
Now, take all those intersection times, find the shortest, that is your intersection point
>>
3Dlads, what do you use for placeholders for objects?
Cubes? Spheres? Capsules? A single triangle?
>>
>>101750007
A question mark
>>
File: pas confit.png (342 KB, 600x600)
342 KB
342 KB PNG
I want to draw a finite sized grid square like a chessboard, like with 20x20 squares total.
Practically, I can draw this with specifying the vertice points on some float array with double for loops and calling glDrawArrays(GL_LINES, 0, totalVertices)
But this way looks messy and "feels" not the right way.
Is it the correct way? What other methods can I also use? I also want to make a interface in the future to increase the size and number of the squares in the grids. Would it pose a problem in the future?
Also is this how we draw infinite grid floor that game engines have?
I use cpp
Thanks!
>>
>>101735040
i don't know why i always forget love2d exists. coupled with fennel or yue it's really nice to use.
>>
>>101750492
Love2D is so underrated, I was underestimating it until I saw a particle system demo in lua rendering millions of moving particles at higher than 60 FPS, if Vampire survivors/bullet hell games can be made in JS, then LuaJIT would run circles around it.
There's 0 reason to use any other 2D framework paid or free. You also get modding for free. I used it on mobile when I didn't have access to my computer and it was so fun.

>b-but anybody can decompile your assets and code
Same can be said about unity, even il2cpp is renversable, same issue for gamemaker and godot too. It would probably take less than 1 day to add encryption to base Love2D and recompile it. Or you can just replace it with your own implementation for rendering, the game logic should remain the same.

I love enginedev for games, but for tools and utilities? I advocate for maximum utilitarian mentality.
>>
>>101750644
When I used Lua I found it kind of annoying to use because the language was so simple
>>
>>101750670
ridiculous
>>
>picrel
Why is gcc being such a whiny bitch ?
>>
>>101750797
C actually has a type system, you know. It doesn't consider a uint16_t and an array of 88704 uint64_t's to be the same thing.
>>
>>101750834
It's an array of uint16_t's anon
Sorry if my screen is a bit small
>>
>>101750670
It's good for what it is, people complain about debugging it, but you can mod the language to hell and back and abuse its features so hard that it turns into something else entirely if you want.
I fucking love Lua coroutines, animations? behavior trees? AIs? statemachines? dialogue system? cutscene system? scripting within scripting? recreating renpy in lua? just slap a coroutine on it and it just werks.
>>
>>101750855
Typo/force of habit to write 64.
While C arrays like to decay into pointers very easily, it's not so easy that it's going to do it inside of a pointed-to type, because that's straight up not the same thing.
Just do
uint16_t *ptr = &ptr_to_array[0][0]
or
uint16_t *ptr = *ptr_to_array;
if you don't mind the lost context.
>>
>>101750894
It's good for scripts, it's not good for the organization of large codebases, so writing a whole game in it feels a bit iffy
>>
>>101750909
Already what i am doing
uint16_t _vram0[DWIDTH*DHEIGHT];
uint16_t _vram1[DWIDTH*DHEIGHT];
uint16_t *vrams[&_vram0, &_vram1];
>>
>>101750933
Correction:
uint16_t *vrams[] = {&_vram0, &_vram1};
>>
>>101750917
large codebases are a larp
>>
>>101750969
By "large" we're talking about more than a few thousand lines
>>
>>101750980
what's missing from lua to assist that?
>>
>>101750985
it really offers nothing in the way of structuring your code, no types or classes or anything, you have to roll all that shit yourself
>>
>>101750998
thank god we don't have classes shitting everything up
>>
>>101751013
Most Lua users implement their own classes
>>
>>101750917
name one indie game with a large codebase
I'm struggling to find any 2D game that Love2D would struggle to make, maybe CPU bound heavy simulations likes Factorio but then again you can throw most of the heavy stuff to a compute shader, shaders became the new sledge hammer of programming.

old machines and console had large games anon, Luajit would not lag behind Java and C# that much, you can even work around the garbage collector if you've hit that point.
>>
>>101751025
I'm just talking about organizing your code, not performance
>>
>>101750998
>>101751019
>classes
absolute garbage, games were made before that cancer shit took over the world.

>>101751032
like how? you can add a tree viewer to visualise everything in your code at runtime, and that's without me looking actively for dedicated tools to help with debugging. you can also code defensively and add all kind of checks and asserts in debug build.
also I think there's a flavor of Lua that has typing, similar what TS is to JS, but I want to actually use Lua.
>>
>>101751096
Lua offers you a lot of freedom in how you do things with metatables, so it's basically up to you to invent your own language and ways of doing things, which is a bit too much when I just want to make a game
>>
>>101751025
But do you want to make all of those concessions instead of just writing in a based language like C to start with ?
>>
>>101751109
It comes to taste then.

>>101751114
I'd love to see how you'd handle utf-8 and proper text rendering in pure C anon, localisation is so fun in C! spoilers, it fucking suck on every low level language.
>>
>>101751208
Well I guess if wanting to organize my code is a matter of taste, Lua makes you do everything from scratch
>>
https://steamdb.info/tech/Engine/XNA/?min_reviews=10000

I know XNA is not an engine. My question is, if it was discontinued in 2013, then how are developers still using it? The most recent one is Hades II released in 2024.

Is it because they're using something like FNA or Monogame? But those two are also separate "engines" in steamdb. I'm a bit lost in this topic.
>>
>>101751413
They're probably using MonoGame, although XNA might still work anyway. It's not like it just stops working after a certain period of time
>>
>>101745952
If you want decent audio, write your own audio layer. SDL_Mixer is using an old windows library so it's got a decent amount of lag
>>
>>101733832
The easiest way you can make a game is with GZDoom Builder, literally even a monkey can build levels with that editor without knowing any programming. The problem is that to sell it you cannot use any of the assets that come with Doom, so you'd have to make your own textures and sprites
>>
>>101750441
if it's a finite size, yes go with having one vertex buffer containing all your grid vertices and draw it once.
If you want to do an "infinite"/large grid. split it in chunks and render only the ones visible.
>>
>>101751413
Discontinued as in "doesn't get any new updates", it doesn't mean the existing code stops working magically.

XNA is still used by Salt & Sanctuary studio, Terrari and Stardew valley too iirc. They only switch to FNA/Monogame for crossplatform. Some people just stick with what they know.
>>
>>101751736
I see, I was just confused because I thought FNA/Monogame were like succesors of XNA. So if I wanted to use XNA, do I need additional stuff to make the game work in W10 for example?
>>
>>101751797
>I thought FNA/Monogame were like successors of XNA
they kinda are, but they tend to use the openGL backend for crossplatform.
XNA's advantage is that it can run flawlessly even on old machines that don't support openGL 3, because it's based on directX. It also runs fine on linux using Wine. I guess that leaves consoles and mobile.
>do I need additional stuff to make the game work in W10 for example?
it should work out of the box. still an odd choice tho, are you perhaps following this book?
https://www.amazon.in/Building-XNA-3-0-Games-Independent/dp/143021869X
it's by the Salt & Sanctuary folks, I have good memories because of it.
>>
>>101751927
>still an odd choice tho, are you perhaps following this book?
Nope, I was on steamdb checking out the technologies used for some games that I've played, and I kept seeing XNA. And on top of that, paired with Monogame or FNA and I became confused as to what was actually used.
>>
File: 1722929983540269.png (305 KB, 576x467)
305 KB
305 KB PNG
Who are most mentally ill?
Enginefags
Fantasy Console fags
Tutorial Content Creator fags (those youtubers like heartbeast who have no games yet pretend they are good enough to teach others)
Ideaguy fags?
>>
>>101752577
enginefags are the most mentally ill but ideaguys are the most annoying, thankfully theres few ideaguys here
>>
bump
>>
File: 1000007195.jpg (29 KB, 680x544)
29 KB
29 KB JPG
>>101752617
>enginefags are the most mentally ill
he says in the game engine thread
>>
>>101754877
Well yes, obviously, there has to be something to back up an assertation and this thread is a prime example.
>>
>>101752577
me
>>
>>101752577
you have to be to be an engine dev
>>
The past threads failed to hit bump limit even with shitposts so I guess the general is dead, there isn't any progress posting either.

I guess I'll post about this instead
https://ruby0x1.github.io/machinery_blog_archive/
My biggest regret is that I missed this engine when it was available. A pure C engine with hotcode reloading, plugin API and most of the bells and whistles most modern engines have, with a blog containing a lot of interesting stuff about enginedevving, lost to time and corporate greed, taunting me with every feature I wanted, but no source code in sight even in archives. I still hold hope that I'd see its code in my life, reading the archived blogposts, cursing this world where knowledge can be wiped out of existing just like that.
>>
how do I rotate shit?

glm::mat4 m = glm::mat4(1.0f);
m = glm::translate(m, position);
m = glm::rotate(m, glm::radians(rotation.x), glm::vec3(1.0f, 0.0f, 0.0f));
m = glm::rotate(m, glm::radians(rotation.y), glm::vec3(0.0f, 1.0f, 0.0f));
m = glm::rotate(m, glm::radians(rotation.z), glm::vec3(0.0f, 0.0f, 1.0f));
m = glm::scale(m, scale);


this doesn't work, I know I need to use quaternions but I don't really understand the math.
>>
>>101755111
I actually downloaded this engine and it wasn't particularly interesting
>>
I am storing my vertices in a vector array
std::vector<std::vector<float>> gridVertices =    {{1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
{-1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},

{0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f},
{0.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f},

{0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f},
{0.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f}};


Now I want to send this to VBO and render stuff. My current rendering function is

void
render::setBuffer(std::vector<std::vector<float>> vertice)
{
glBufferData(GL_ARRAY_BUFFER, sizeof(vertice), &vertice[0][0], GL_STATIC_DRAW);

glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), reinterpret_cast<void*>(0));
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), reinterpret_cast<void*>(3*sizeof(float)));
glEnableVertexAttribArray(1);
}


The result is buggy. Can someone explain to me where is the issue? Trying to debug this for hours now
>>
>>101755114
What is the rotation variable here?
Here is my model matrix, it works
void
shader::updateModelM(double changeX, double changeY)
{
model = glm::mat4(1.0f);
model = glm::rotate(model, static_cast<float>(glm::radians(changeX)), glm::vec3(0.0f, 1.0f, 0.0f));
model = glm::rotate(model, static_cast<float>(glm::radians(changeY)), glm::vec3(1.0f, 0.0f, 0.0f));
setMat4("model", model);
}
>>
>>101755210
position, rotation, and scale are vec3s, rotation is in degrees. it looks like you are only updating 2 axes, I am using x, y, and z
>>
>>101755127
Can you post the source code? I'm interested in the architecture more than anything, especially the plugin api
>>
>>101755279
I might have it on an old hard drive but I think I probably deleted it
The plugin architecture didn't look particularly practical iirc
I think the devs previously made the BitSquid engine if you want to look for that
>>
>>101755256
Everything looks good. Are you sure you send the matrix to the shader properly?
>>
>>101755431
the display is working, the rotation itself is just wrong
>>
>>101755114
you can build a a quat from an axis and an angle
glm::quat rot = glm::angleAxis(glm::radians(90.f), glm::vec3(0.f, 1.f, 0.f));
>>
>>101755161
glBufferData assumes a single flat buffer of data, you're supplying a vector-of-vectors i.e. a set of pointers to different parts of memory. Use just a simple std::vector<float> instead and pack all of the attributes into it. Also sizeof(vertice) is the size of the vector and not the data it contains, use sizeof(float) * vertice.size()
>>
>>101755715
it shouldnt make a difference, it takes a void*, you can pass an array of structs to it too, anything with values contiguous in memory
>>
>>101755715
Okay I fixed some parts of it but I really want to stick with 2D vectors, they are just intuitive.
Is there any way that I could make this work?
For more clarity I am stuck at
&vertice[0][0]

>>101755781
How can I pass 2D vector?
>>
>>101755847
>Okay I fixed some parts of it but I really want to stick with 2D vectors, they are just intuitive.
Write a 2D vector type (that is backed by a 1D vector), what you have can’t work unless you copy the data to a 1D vector every time you want to upload it.
>>
>>101755114
Are you trying to rotate shit about an arbitrary axis? If so, look that up and use it.
>>
>>101755161
>>101755847
Instead of trying to cram everything into a single glBufferData call, use multiple glBufferSubData calls for each row.
It's less efficient, but not by very much. It's just a few more memcpys by the driver into its own internal buffer.
>>
How am I storing matrices in the GPU?

At the moment I have xyzw rgba st and I don't think it will expand

I could flat the values as floats into a vector

Or I could use vec4+vec4+vec2 to represent it in a wrapper class.
>>
>>101758077
shader languages have native matrix types
>>
>>101758215
I have to get it to the shader first.
I don't think it'll be easy buffering it if I if I create the wrapper class
>>
>>101755330
>https://bitsquid.blogspot.com/2014/04/building-engine-plugin-system.html
I guess that's how I thought it would go, not sure why I expected something better.
I'm not sure how you can handle plugins calling other plugins indirectly, there would be an infinite recursion somewhere in this system, unless you never allow more than one plugin to do a certain thing at a time.
>>
>>101758077
Store them as either 4x4 or 3x4 matrices depending on your needs. You can encode them into your vertex buffer too. So many possibilities!
>>
I really don't know why I obsess so much with wanting to use 2D sprites for my isometric game.
This shit is causing me so much pain. I don't know how the old guys managed to make it work so flawlessly all those years ago.

I'm losing so much time...
>>
How much suffering would I be giving myself if I tried to enginedev a mobile game?
>>
>>101755111
C fetishization makes no sense
>>
>>101760402
C is fine when you work with other C programmers.
for every other language, you don't want to work with anyone.
unfortunately C programmers are usually antisocial and end up working by themselves and failing because working by yourself is hard.
>>
File: 168912-1.png (17 KB, 750x552)
17 KB
17 KB PNG
>>101751096
>classes
>absolute garbage, games were made before that cancer shit took over the world.
yeah, games that look like this
>>
>>101761021
Astrosmash on the Intellivision was a great game
>>
File: 1599171624212.jpg (50 KB, 887x499)
50 KB
50 KB JPG
>Writing something Vulkan
>Make everything a dedicated allocation
>>
is tkinter good to do something like that quickly? first time doing a gui, idk if there's any library to get things done quick and dirty
>>
Reminder that if you’re making a 2d pixelshitter you deserve everything coming to you. Real men use Vulkan or dx12 to create 3d empires.
>>
>>101759702
what are you having trouble with? sorting?
If you go back and play old iso games you'll notice they don't actually work flawlessly, I was replaying Syndicate and Ultima 8 and they had clipping issues everywhere
>>
>>101762553
Usually I see people use things like nuklear for throwing these kinds of UIs together for games.
>>
>>101763371
>He doesn't use Vulkan to make simple sprite-based 2D games
Not gonna make it.
>>
>>101763371
>Vulkan and dx12
I understand they're really powerful, but those are hard mode and can be really hard to get into for a newbie enginedev since they're so low level.
I instead recommend opengl or dx9-11.
>>
>>101763371
Calm down lilbro you're not making AAA games
>>
File: output.webm (1.53 MB, 1280x720)
1.53 MB
1.53 MB WEBM
>>101763456
Sorting was easy. My bane is having sprites line up. Yesterday I added custom mipmapping and today I changed the smooth camera zoom to a stepping one. So that the sprites are using the mipmap texture as is and not an interpolation between two of them.
It was great until I recorded webm related and got an artifact....

The more and more I wrangle with using sprites the more and more I replicate the limitation of The Sims...

Meanwhile the old 3D walls are looking great, never had a gap between them. Also can have AA on them. No need for a depth map...
So why not use 3D models for the objects also?

I'm going to use low poly models but not meme poly flat shaded slop. Also Move the walls from the Sims 1 "Inside a tile" to on the border between tiles.

Thanks for reading my blog
>>
>>101764480
>nuklear
didn't know it, looks interesting thx dude
but i just wanted to make some software to make and edit the levels of my game, it's not for the UI in the game. and even if i could use this lib for that, C is pretty heavy anyway
i think i'll do a web interface instead. it's a good opportunity to learn the basics of web dev
>>
>>101764480
>>101765832
cause in the end i just need to write some text files and my engine parses them to create the levels
>>
>>101751208
>localisation
cringe, just do english
t. ESL
>>
Say my only target right now is Windows. Should I go for a dll-based plugin system then? And should I use visual studio directly instead of CMake?
>>
>>101766434
What do you need a plugin system for?
>>
>>101766434
In meson you can define "libraries" which you can then later define as static or shared.
>>
>>101760233
Java and opengles? Sounds easymode
>>
Would studying engine/game development for a few years lead to transferrable skills in other domains?
Sorry if this sounds retarded but I honestly don't know anything, I'm just getting started with c++ and opengl from scratch. I'd just like to know how specific this skillset would be.
>>
>>101766590
Programming video games makes you better at programming in other fields than natives
>>
>>101766590
>learning problem solving, applied math reasoning, memory management and oop
yeah man it's good
i hope you like it
>>
I want to start learning about graphics libraries. But I'm an autistic future-proof idiot. I heard "vulkan" is the future but it's really hard. Where x11 is easier but not as future proof. where does OpenGL fit in? what should I learn, I mostly use C.
>>
>>101766988
>I heard "vulkan" is the future
>>
If you have an incremental or generational garbage collector, and you only ever allocate small objects that live for less than 1 frame, will the GC still do major stop-the-world phases from time to time?
>>
>>101767152
incremental garbage collectors mean the big pause doesn't happen
Unity has an incremental garbage collector
>>
>>101766988
vulkan isn't going away
>>
>>101767171
unity instead has lots of little pauses
>>
>>101767219
No, the incremental garbage collector does work every frame
>>
>>101766061
English is my third language and I couldn't agree more with you. But for some reason koreans, the chinese and euros are too retarded and too proud to learn new languages. Some gamedevs posted their stats and the chinese alone doubled the sales for their small game.
Localisation is still a serious issue nowadays.
>>
>>101766988
Apple not supporting vulkan kind of killed it as the defacto cross platform API, then again shader cross compilation with SPIR-V makes it less important
>>
>>101747420
If you want to check if the system you have is not complex enough just ask yourself if there is something you can not represent with it.
For example, with the linear model, you can't represent a person experiencing stockholm syndrome. You need both respect and fondness to do this.
>>
>>101767067
I'm really curious how this graph was even formed as most games I pick up are Vulkan. Is this purely AAA?
>>
>>101769794
https://carette.xyz/posts/state_of_vulkan_2024/
>>
>>101769817
>Gets all of his data from fucking wikipedia pages
Yeah, figured it was a trash graph.
>>
>>101769855
the source of the data is https://www.vulkan.org/made-with-vulkan and https://www.pcgamingwiki.com/wiki/List_of_Direct3D_12_games
>>
Vulkan gets used for every single wine/proton game, it often gets used as a way to play games like fallout new vegas on modern windows versions.
>>
>>101766434
just use xmake
>>
>>101769903
>often gets used as a way to play games like fallout new vegas on modern windows versions.
how does that even work?
>>
>>101770099
Just like with wine, you implement directx on top of vulkan.
>>
>>101770099
You can run Wine on Windows. It can be build to be a handful of DLL files you just drop in to an application's folder and then it will do the same shit as it does in Linux, along with translating the Dx API to OpenGL or Vulkan.
Its actually really useful for older jank games, or stuff that newer versions of Windows broke.
>>
>>101770197
>>101770237
ooooooooh
>>
>>101770335
In case you want to check it out, there is a guy who does fairly regular build of WineD3D (Wine on Windows)
https://fdossena.com/?p=wined3d/index.frag
>>
File: stack_overflow.png (27 KB, 345x204)
27 KB
27 KB PNG
>>101766434
VS is pretty comfy once you get used to it
t. debugger addict, it converted potentially many hours of frustrating printf debugging into an hour of staring at the debugger (with less frustration)
>>
>>101770687
>5mb data type
wtf are you doing?
>>
>>101770687
>>101770924
holy shit
>>
>>101770924
>Forth
sounds like mental illness
>>
>>101770687
based forthman
>>
looking at box2d repo made me puke a little. how is this the best 2d physics engine the code is so bad
>>
>>101770924
So about one texture? What’s wrong with it?
Shit I’m not even into engine dev, I just wanted to read the thread, but I’ve had memory blocks in the GBs when working with volumetrics
>>
>>101750007
Ideally you should have a small library of very low resolution meshes, think PS1/2 graphics that you can use to get an idea of what you’re looking at
Making a placeholder tree takes 5 minutes and now you’ve got something that you can reuse everywhere and actually has a semantic meaning besides “an object should be there”
>>
File: vacay_title.webm (1.61 MB, 640x480)
1.61 MB
1.61 MB WEBM
Coming August 11th
>>
>>101728876
By dynamic do you mean the sun just goes dim? Looks nice though, what did you make this on? Curious for some more details.
>>
File: proud.png (337 KB, 715x741)
337 KB
337 KB PNG
I am at a point where my project has bunch of headers and source code that makes navigation messy.
Currently I only have 3 main directories
>src every c and cpp files
>shader glsl files
>include every h and hpp files
Should I have related source and headers in the same directory? What even is the industry standard?
How do you do it anons
>>
>>101771713
looks kino
>>
>>101771784
I prefer headers and cpp in the same place, freetards like to have a seperate directory for headers but I find that harder to navigate
>>
>>101771784
>Should I have related source and headers in the same directory?
Saw some people do this but I don't like it personally it's kinda messy. I like having sources in src and headers in include.
>>
A dead general worthy of dead unfinished projects
>>
>>101771780
Thanks. I ended up switching to a baked lighting system though since I like it more.
I'm using OpenGL & C. I just hacked this together to get it to work.

void Lighting_update_sun(SceneManager* render_state, float current_time, float speed) {
float angle = current_time * speed;

glm_vec3_copy((vec3){sin(angle)*5.0f, 0.0f, cos(angle)*5.0f}, render_state->lights->sun_light->direction);
glm_vec3_normalize(render_state->lights->sun_light->direction);

float sun_height = render_state->lights->sun_light->direction[2];

render_state->lights->sun_light->light_info.intensity = fmax(0.0f, sun_height*1.0f);

Shader* object_shader = dynarr_get(render_state->shaders, SHADER_OBJECT);
Shader_Activate(object_shader);

Shader_set_vec3(object_shader, "sun_light.direction", render_state->lights->sun_light->direction);
Shader_set_float(object_shader, "sun_light.intensity", render_state->lights->sun_light->light_info.intensity);
}
>>
>>101772094
show us your projects anon
>>
>>101772186
don't disturb the dead, anon
>>
Why is Caves of Qud 500k lines? Is that really necessary?
>>
>>101772704
is the source code available?
>>
>>101772704
wouldn't most of that just be hard-embedded text?
>>
>>101771637
Now look at the Bullet source code
>>
>>101772811
You have to decompile it.
>>101772815
It's hundreds of thousands of lines of C#, the static data is separate XML
>>
>>101773056
post some code, let us see it
>>
>>101773056
Is the decompliation an accurate reflection of the source?
>>
>>101771784
>Should I have related source and headers in the same directory?
Yes, you 100% should - separating them is an old C style thing that just makes navigation more difficult.
>>
>>101773325
It's C# anon, it reproduces the original code without obfuscation. Even il2cpp is reversible.
>>
File: qudsrc.png (139 KB, 1354x1180)
139 KB
139 KB PNG
>>101773109
>>
File: sad-pepe-meme-9.jpg (329 KB, 1600x1200)
329 KB
329 KB JPG
Most of the good game programming tutorials on YouTube are for fucking Java. It sucks bros. I downloaded Eclipse to give it a shot and I can't stand it. (Yes I know I can adapt the code to another language but it still pisses me off)
>>
File: two_lazy_4_if_stmt.webm (546 KB, 1920x1080)
546 KB
546 KB WEBM
>>101770924
This is what happened when
I typed one more zero when specifying the size of my dictionary, which is stored as an std::array of approximately 65,536 register sized ints (along with some other metadata)
>>101770980
If java is supposed to be an especially bureaucratic office, and haskell a mathematician's blackboard, forth would be the skeleton of a prosthetic hand, ready to be modified to fit the user's usecase like a glove.
If men can control satellite dishes and spacecraft with it, I believe making a game with it is worth a try.
Picrel is the pre-rewrite version of my forth.
I had to type out the "machine code" of this SDL2 demo because I had no idea how to implement looping at the time.
>>
>>101776563
>Youtube
read a book you dunce
>>
File: Screenshot (1324).png (1.78 MB, 1802x1057)
1.78 MB
1.78 MB PNG
Added a basic UI system and some billboard sprites for some of the entities in the editor (and it all works with mouse picking since they are just Render_Objects with a billboard material so their ID's work with everyting)
I still cant get over how awesome a class system is with serialization/reflection/factory creation. Now I can actually run the game and it works now, the game starts in the "entry level" map defined in the config file which is just an empty map with its "game mode" set to a main menu class that spawns in a UI. All that was so easy to add because of the class system. My design keeps convering on Unreal but desu I dont mind since its a pretty good one.
>>
>>101762553
tkinter if its just this is fine enough. But I would just do it in pygame, pyglet, etc since it would be good to learn that for yourself anyways.
>>
File: 1548794336935.gif (570 KB, 670x551)
570 KB
570 KB GIF
>>
>>101779331
cool trashcan sprite bro
>>
File: 1704079798633667.jpg (526 KB, 1920x1080)
526 KB
526 KB JPG
I assume this is a common dumb question, but how much am i over my head for light stellaris clone? Doable in a year, given after work/weekends?
Pic rel, for those unfamiliar. I'd skip the whole 3d space fights and just focus on the 2.5d galaxy map as seen. Probably a big adjacency matrix and some delay mechanics to simulate flight mechanics.
Problem is my last art class was 12years ago and just one spaceship icon took me almost the last whole weekend till i was happy about it..
>>
>>101780046
>Doable in a year, given after work/weekends?
>just one spaceship icon took me almost the last whole weekend till i was happy about it
Maybe it would be doable in a year if you quit your job
>>
File: firefox_Xqb9ILe9b9.png (16 KB, 589x172)
16 KB
16 KB PNG
https://x.com/notch/status/1817893899073122534
>>
Want to make a "quirky earthbound-inspired rpg" (though it's more inspired by south park and the funny/absurd bits of mother than say being a depression simulator) except it's 3D and will have n64 graphics.
How limited/simplified should I make my engine considering this?
>>
>>101780046
>Doable in a year, given after work/weekends
haha, no
>>
File: file.png (428 KB, 1444x1600)
428 KB
428 KB PNG
>>101771713
reminds me of this cartoon, just a house in a wacky desolate place
>>
>>101780046
unironically yes if you didn't care about high quality models/textures and the randomized civilizations with their own personalities etc, just generating a "galaxy" and linking it up and letting units travel around and adding some basic autobattle could probably be doable in a year, if, and only if, that was the ONLY thing you ever worked on on the weekends and you worked every weekend on it without excuses
so in theory doable, in practice not really, see you in 5 years
>>
File: a4ynd0x4q56c1.jpg (40 KB, 680x510)
40 KB
40 KB JPG
>making an 'engine'
>before you've made your own software framework

you are ngmi.
>>
>>101766858
>>101766969
Thanks anons, I'll come back when I make some progress.
>>
Made this with chatgpt
https://jsfiddle.net/peteblank/aj7fp2ys/1/
bahaha
>>
>>101781585
>>101781307
>>101780262
Thanks for the honest heads up. I know my kind is usually quite impatient with SE, so i expected some adjustment of my expectations.
>if you didn't care about high quality models/textures and the randomized civilizations with their own personalities etc, just generating a "galaxy" and linking it up and letting units travel around and adding some basic autobattle could probably be doable in a year
Haven't thought too much about civilisations and AI yet, but i don't see too much complications in an autobattler. Right now i have a rough 4arms galaxy generator, basically a bunch of black lines simulating higher and lower systems around what will be the typical white blob in the middle. Now that i got something representing ships, my next goal is to let them move around and "be" somewhere. So far everything was quite easy to take from basic graphs and dump onto bevy, although i haven't really looked into if there's better ways of doing things so far either.
>>
I sleep now. Tomorrow I will add a texture to my spinning rectangle and then nobody will be able to stop me
>>
>>101782860
next implement animated textures
>>
>>101776872
>Chuck Moore is typing
lel
>>
How the fuck does one do UI?
>>
>>101785012
Can you be a little more specific?
>>
>>101785309
In-game UI, like Unity's built-in one. How do I design the layout for the UI, and how do I set up controls for it?
>>
>>101785352
Ryan Fleury has a series of blogposts on building UI from scratch. You could also look into ImGui.
>>
>>101785352
just b urself
>>
>>101785415
ImGUI is for debug GUI. I'm looking in particular for in-game GUI, like Unity's UI system.
>>
its been 2 months since i last did anything. should i try again? what do you do when you need assets but cant make them?
>>
>>101785441
false distinction
>>
>>101785012
with lots of patience
>>
Is sokol decent to make games? I'm thinking of learning zig + sokol to make games.
>>
>>101785415
too bad his shit is paywalled
>>
>>101786467
glfw opengl thank me later
>>
File: ui.webm (382 KB, 1280x720)
382 KB
382 KB WEBM
>>101785012
Like vidrel.
>>
>>101738413
If you think Godot is the problem when it comes to optimization you should look at the absurd horror show that is ZDoom games trying to do anything outside of being a direct doom clone. Games that push the limit like Selaco have done an incredibly amount of work to force the engine to behave how one would expect.

Not much different no matter what you choose, what are you going to do about it as the developer?
>>
>>101786467
Yeah, I'm basically doing the same
>>
>>101787709
>Not much different no matter what you choose
I have to disagree
Unity and Unreal are better than Godot, which is much better than trying to mod Doom to not be a Doom game
>>
What's your favorite engindev blogs anon?
I'm looking for stuff related to cutscenes, animation systems with advanced blending, and timelines, although anything interesting is fine too.
>>
>>101787780
I don't trust anything that didn't come to me in a dream.
>>
>>101788292
holy based
>>
>https://libraryofbabel.info/
>it would contain every possible combination of 1,312,000 characters, including lower case letters, space, comma, and period. Thus, it would contain every book that ever has been written, and every book that ever could be - including every play, every song, every scientific paper, every legal decision, every constitution, every piece of scripture, and so on. At present it contains all possible pages of 3200 characters, about 104677 books.
your game already exist, for the better or the worst.
>>
>day 1 of project
Tutorials for everything in existence in more

>Day 40 of project
1 poorly worded stack overflow response from 2012
>>
>>101789597
I see that you're hitting the intermediary wall. Good luck anon.
>>
>>101777141
very cool anon
>>
>>101787699
Your cursor isn't long enough.
>>
What if you made like a really cool game and everybody loved it but you secretly put racist slurs as text with like a 99.9% transparency value in every texture and added racist audio at 0.01% volume into every audio file?
>>
>>101790419
Don't cursor shame
>>
>>101780046
>adjacency matrix

If I try to make a grand strategy (pausable, real time), what concepts should I be aware of? I'm probably going to use Unity and I assume I should be using the Dots. But other than that what things should I know about?
>>
>>101790686
UI and AI seem like the biggest parts
>>
>>101790749
AI I understand. And it feels like that's where I'm going to be stuck.
>UI
What do you mean by it? For what I know now it seems like a non issue. Do you mean designing an elegant ui that will provide nice user experience or do you mean like algorithms, programming-wise.
>>
>>101790839
>Do you mean designing an elegant ui that will provide nice user experience
Yes
It's a huge task for a strategy game, much bigger than it seems to begin with
GS games tend to have shit UIs too
>>
>>101790976
Thanks. I'm much more worried about the programming, complexity of it. Things like procedurally generated maps and pathfinding are going to be major ones I think. I will require something like what google maps does when creating a route, but for so many units.
>>
>>101790686
Don't ask me, i started three(maybe four?) weeks ago and graphs seemed reasonable application from all of the remaining uni math i still got in me. Like i said, if there's a better way to do this, i haven't bothered yet to look into it.
>>
>>101791096
Pathfinding is easier than it appears. It's the A star algorithm, which you can implement in half an hour, plus optimizations like hierarchies and caching
>>
>>101791301
>half an hour
With an example in about every language out there, i'd say more like 10minutes. It's just too ubiquitous these days.
>>
>not even 5 progress posts in the whole thread
sasuga



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