Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411490 Posts in 69371 Topics- by 58428 Members - Latest Member: shelton786

April 24, 2024, 07:59:09 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsDopeFish: Doom Map Loader for GameMaker Studio 2
Pages: [1]
Print
Author Topic: DopeFish: Doom Map Loader for GameMaker Studio 2  (Read 1467 times)
CDLegasse
Level 3
***


View Profile
« on: December 06, 2019, 05:54:31 AM »


Pre-order on itch.io!


#BRANDING Tongue


DopeFish is the only full GML Doom/Heretic map loading system for GMS2.3+ (so far as I'm aware)
 

So what does DopeFish do?
DF reads wad files straight from within your GameMaker project, and interprets the data that they contain, the textures, sprites, maps, and so on. It takes this data and constructs a 3D level and fills it with content, and quite efficiently.

I decided to begin work on DF ages ago in the hopes that it would facilitate the creation of more 3D content in GameMaker by allowing developers to utilize a widely known format for their projects, using a whole host of battle tested tools.

 

However, DF is not a source port, it's not beholden to the gameplay of the boomer shooters of yesteryore, you are not bound by creed to create only a doomlike clone using DF. Why not a third person action RPG, a racing game, a moody walking simulator?

DF will ship with a handful of example levels and gameplay controllers to get you started on the way to crafting your own 3D game quickly and easily.


Screenshots and Videos:
DopeFish: Historical Archives




*Dev Log*
Feb - 15 - 2021
  • Improved Sprites Shader, now contains cylindrical billboard projection reducing the need to process billboards on the cpu
  • DF now supports multidirectional sprites
  • Improved performance by freezing vertex buffers for level geometry as they are static and have no further need for editing
  • Initial implementation of GLVIS optimizations, the system will only render chunks of a level visible to the current camera resulting in FPS boosts of up to 300%
  • Implemented built in wad processing. DF requires the presence of certain data types in a level to display them properly and efficiently, and will now add that missing data automatically, removing the need for the end user to process the files themselves.
To Do For Release
  • Add overrides for Things, Textures, and Sprites ( replace any texture in the map with your own, or replace any enemy with whichever object you choose )
  • Improve collision
  • Implement multiple example game type controllers
  • Decorate Support - define whole new enemies, objects, and so on straight from your wad editor of choice
  • Mapdef, Animdef - define the environment of each map in your wad, and texture animations
  • Skybox integration with support for 3d meshes and animation
Possible Future Features:
  • 3D floors (rooms over rooms)
  • Sloped floors/ceilings
  • Geometry Normals
  • Dynamic Lighting/Shadows
« Last Edit: February 18, 2021, 05:03:06 PM by Indecom » Logged
CDLegasse
Level 3
***


View Profile
« Reply #1 on: December 11, 2019, 03:48:06 AM »

Okay guys it's been a few days but I've managed to accomplish a good deal. Much of that was just researching the various map formats that currently exist for Doom editing. Let's just say that supporting the hexen/zdoom formats will be a very interesting endeavor haha.

Aside from that I managed to fix and issue with the system that's been bugging me for some time, and that's the inaccurate rendering of surfaces with alpha transparencies. FYI currently DopeFish only supports surfaces with a 1bit alpha channel, but this will change in the future. In previous versions of DopeFish, there was a chance that a geometry with a transparent surface could clip overwrite any surface behind it. This is due to the fact that the BSP node renderer is not yet in place, so geometry is all rendered out of order. This can really mess with the visuals. However with a little shader magic and some strategic placement of a discard command I'm able to produce correct transparencies:



In addition to this I've also been working on getting mipmaps implemented into the engine to reduce aliasing of pixel textures when viewed at great distances or sharp angles. This provided some obstacles for myself to overcome as my textures are technically saved to an atlas and tiled using a modulo function. Modulo and mipmaps do not play well together, and will instead produce a very ugly seam where your textures tile:


However with a little thinking outside of the box I was able to "almost" completely overcome the issue. You'll be able to see this feature in action when I get around to recording some more footage.

Anywhoo, that's about the gist of this update. I'll be back soon when I've managed to get some more cool stuff implemented!
Logged
CDLegasse
Level 3
***


View Profile
« Reply #2 on: December 18, 2019, 03:37:46 AM »

SO I've been building a map using a combination of Doom Builder and Slade 3 to stress test different features of DopeFish. I've been able to track down and solve multiple problems, such as improper texture alignment, and improper generation of middle texture geometry. I've managed to get those issues fixed, and even implemented a new feature allowing for the reading of texture patches that exceed 254 pixels tall, which was a limitation of the original doom engine.

As a reward for my hard work, here are a few screenshots Lol!





Logged
CDLegasse
Level 3
***


View Profile
« Reply #3 on: February 18, 2021, 05:02:09 PM »

Hey guys, I have had some pretty major progress on this over the past few weeks so I went ahead and updated the original post to reflect the new changes. The biggest new addition to DopeFish has to be integration with GLBSP and GLvis for pretty incredibly performance gains. Frame rates now range about 200-300% over that of what I was getting when this topic was created. There's still much to do but if anybody is interested in supporting development, I've opened preorders through itch.io.
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic