DopeFish - The Doom Loader - Pay What You Want

TheSnidr

Heavy metal viking dentist
GMC Elder
Just a heads up I've tried repeating a texture from an atlas for batching reasons, it's all fun and games until you try to get mipmapping to work with it. It'll create seams at the borders of each repeat, and GM seems to be missing certain GLSL shader functions that would solve this like the textureGrad function. Not sure why that is.
Just extend your borders. You can do this in the Texture Groups window.
Uten navn.png
 

Jase217

Member
Just extend your borders. You can do this in the Texture Groups window.
View attachment 30109
Tried that but unfortunately it seems to be a problem with how the LOD is calculated or something, and wrapping texture coordinates in a shader manually seems to break it. I'm not too sure but after looking online for solutions it seems to be a common problem with repeating textures from atlas + mipmapping, and that it requires having access to things that we can't use in GM. Though I'm no expert on this stuff so I may be wrong.
 

IGameArt

Member
I've also run into that problem with this project, it's inherent in GLSL unfortunately. All of my textures are saved to individual atlases, one atlas per texture. This is to ensure that some of the non power of two textures still tile properly. The problem with that then becomes texture swaps occur constantly which can dramatically effect performance. This is something that I'm going to be looking into further when I have more free time to do so. I did manage to find a way to circumvent that weird border issue but my method is really only viable for systems like mine where non power 2 textures are saved to individual atlases though.
 

Jase217

Member
The problem with that then becomes texture swaps occur constantly which can dramatically effect performance.
That's where Doom's BSP tree system could help, only rendering whats visible. As for texture swaps, since you can use the Z Buffer just sort the all visible planes by texture so that planes that use the same texture will be drawn together. Also something to note: I've found that vertex_submit() won't break the batch if the texture doesn't change, setting uniforms will of course, but at least you won't get as many texture swaps.
 

IGameArt

Member
Yeah that's one of the things I'm hoping to implement into the system, sorting buffer submissions by texture to reduce swaps.
 

Yal

🐧 *penguin noises*
GMC Elder
GM seems to be missing certain GLSL shader functions that would solve this like the textureGrad function. Not sure why that is.
GM uses GL ES 1.0 with no extension support, so if they were introduced later or are extensions, there's your answer.
 

IGameArt

Member
On the topic of optimization, I've recently created a technique for batching vertex buffers together that all share the same texture, so that's something I'm going to be experimenting with implementing into this project. That should reduce my number of vertex buffer submissions drastically, and hopefully also increase the frame rate as well.

Keep your eyes on this topic if you want to see the results of these experiments.

I'm feeling pretty hopeful!
 

Lazymoth

Member
Bump; I've bought a few of your assets off the store before. They're great. I would love to make a game with this as a map editor, especially combined with your RetroFexx resource to make a game vaguely in the style of King's Field, or something.

I hope progress is smooth and that your living situation has stabilized. I tried to find a Patreon under your name because I would like to support you, but couldn't. Did you ever get one set up? Also, Ko-Fi is another good site for accepting donations, and I would recommend setting one up.

Wishing you the best!
 

IGameArt

Member
Thanks a billion @Lazymoth! I've been putting a lot of my time and effort into finishing my video game Starr Mazer DSP, which is on track to be completed by December.

I've heard of Ko-Fi before but haven't even considered it until now. I'll definitely look into that!
 

z_bill

Member
I still check here from time to time and would use this like nuts if it came out! My 3d GMS2 game runs like trash when I add too many "walls" using my current system/hack, so I'd love any way to get, like, just a full legit video game level in it! haha.

Bump; I've bought a few of your assets off the store before. They're great. I would love to make a game with this as a map editor, especially combined with your RetroFexx resource to make a game vaguely in the style of King's Field, or something.
I beg your pardon? King's Field?! I need to look into this other resources!
 

CMAllen

Member
I beg your pardon? King's Field?! I need to look into this other resources!
Kings Field 1 and 2 are old PS1 games. But they are full 3d, more akin to Quake than Doom. Well, if Quake was swords and sorcery and an RPG, and such.
 

z_bill

Member
Kings Field 1 and 2 are old PS1 games. But they are full 3d, more akin to Quake than Doom. Well, if Quake was swords and sorcery and an RPG, and such.
I know it! My mind just sorta shattered by being suggested some Doom/King's Field combo game! haha.
 

IGameArt

Member
Hey guys, I'm not dead! Neither is the project. Been putting a lot of time into other endeavors, like working on trailers for games published by Devolver Digital, and doing visual effects work for Facebook.

Anyways, I migrated the project to the latest version of GMS, and fixed some issues with midwall segments not lining up the way you'd expect them to, as well as a couple other under the hood quality of life improvements.

Here, have a pretty picture:
1612860111625.png

EDIT: Made a bunch of progress today too, specifically I've updated the entity parser to include flag checks for stuff like "is it a monster", "does it hang from the ceiling" and so on. I also implemented proper actual sprite offsets.


 
Last edited:

IGameArt

Member
Got some rad new features implemented, namely a proper billboarding shader set up, no more rotating all sprites to face the camera, it just happens naturally now.

Entities can be animated, directional, or neither, or both.

Took a lot of work to get that to happen, so here, have a video as a reward for all my hard work.

 

IGameArt

Member
Thanks for the kind words!

I managed to discover a weird bug yesterday that causes the ceiling to render with the wrong texture, so I've managed to fix that, and I improved the level geometry shader to more closely mimic the dimished lighting found in the original idtech 1 engine.
1613527563058.png

I've also been working a lot on my test map, and have learned a lot of things about how to design a level so as to keep it looking cool but also keep it from lagging. Looking pretty cool I think!
1613528496807.png
 

IGameArt

Member
So couple of cool additions, I spent a LOT of time working on fixing several bugs with texture alignment, and a bug where a wall texture would be used in place of a floor texture with the same name. That no longer happens thankfully.

Obligatory screenshot of Doom 2 Map13:
1614035101479.png

I also fixed a problem where certain texture patches would appear invisible, so now textures just work straight across the board, which pleases me pretty greatly.

Just yesterday I started refactoring a Huge part of the project. Currently all of the sector, line, thing, subsector data are stored in ds_maps, which is cool I guess, but since GM now has structs, why not use them? So I'm swapping all of that information over into struct format, so wish me luck!

Obligatory screenshot of an update made to my personal DopeFish testmap:
1614035261314.png
 

z_bill

Member
whoa dropped by on a whim and mega stoked to see this project is back on!

I've been stubbornly making levels in 3d programs but this would really really help me with level design.

Has collision stuff been worked on yet? I forget (heh, not to rush you. Everything looks great!)
 

IGameArt

Member
whoa dropped by on a whim and mega stoked to see this project is back on!

I've been stubbornly making levels in 3d programs but this would really really help me with level design.

Has collision stuff been worked on yet? I forget (heh, not to rush you. Everything looks great!)
Actually, collision has been in for a very long time. It's getting overhauled currently, but yea, that's been a thing :)
 

IGameArt

Member
The core of the dopefish engine itself is purely gml. There are some helper assets that it comes with for processing wads so that they are usable by dopefish which only run on windows unfortunately. I'm relying on already available tools and am integrating with them using a custom written dll to handle the processing of your wads so that dopefish can display them, and do so efficiently. Your dialogue module might work quite well with the wad processing application that I'm planning on writing.

I do eventually plan on opening the source to Dopefish, but I want to get as much of the core written and functioning as possible before doing so. This is an old project of mine and really needs a lot of cleanup before it's ready for the public to look at lmao.
 
Top