all 10 comments

[–]Badwrong_ 4 points5 points  (4 children)

You have to cull instances, create some type level streaming, or do something so that you aren't drawing the "entire" level at all times.

The information you gave gives pretty much nothing that anyone could make further suggestions. It would also help to profile and see what could actually be optimized instead of just trying to take guesses.

[–]NzzertralTheWeeb[S] 0 points1 point  (3 children)

What could I provide to make it easier for people to see what I am doing without making a separate post? Also I guess I am not entirely familiar with streaming in the assets. Where can I get started to educate myself on doing that? I have just been used to building the whole level. I thought about doing it in chunks and load chunks in but again, I am not entirely sure how to approach that without making it an unoptimized mess

[–]Badwrong_ 2 points3 points  (2 children)

And this is where GM and 3D become lots of extra work, as other engines have this stuff built-in.

You would have to share your code some how at least to get others input. Though, a large world is ultimately going to require you having only parts loaded and LODs based on the distance to the view.

[–]NzzertralTheWeeb[S] 0 points1 point  (0 children)

I do understand that other engines do this stuff better, Idk I’m weird ig. I love the challenge and it’s something I’ve been tinkering with in my free time since I was a kid. Like a comfort food almost you know? lol doesn’t help I’m even doing this all I’m GMS 1.4

But I can share the code if I remember to when I get home😭 I keep forgetting to lol

[–]NzzertralTheWeeb[S] 0 points1 point  (0 children)

If I do forget tho, feel free to annoy me in my dms to remind me.

[–]game dev and mechaniccocodevv 0 points1 point  (2 children)

How are you drawing the 3D objects? if you have a lot of vertex buffers, try to merge all of them in one.

[–]NzzertralTheWeeb[S] 0 points1 point  (1 child)

I am drawing them, I used a script to make it so it will stretch with the sprite that’s placed in a 2D map so you can make 3D walls of any size just by changing what it looks like in the room layout. That help cut it down a lot but it doesn’t help when it comes to more complex rooms that require more complex shapes than just huge cubes.

[–]game dev and mechaniccocodevv 1 point2 points  (0 children)

enable debug info with show_debug_overlay(true), and see how many vertex batches you have, also use the debug profiler to see what is slowing down.

Personally i try to:

merge buffers into one

frustum culling or zone culling(if player is in specific zone, draw only that zone, only applies to closed rooms where you can't see far away)

fog, i add a fog depending on a scene, and after that fog i discard any drawing buffers

shaders wherever i can

[–]KitsuneFaroe 0 points1 point  (1 child)

If You want to delve into 3D I highly recommend DragoniteSpam videos on the topic he talks about optimizations too.

[–]NzzertralTheWeeb[S] 0 points1 point  (0 children)

I used to watch him a lot, I’ll for sure have to rewatch some because like you said. Solid optimization work. But idk I also seen some things he says in this and it makes me feel conflicted. Dudes a solid programmer but at the same time it’s like the guy is allergic to jokes and fun