The Legend of DOOM (v1.1.0)
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.
Got a cool project idea but nothing else? Put it in the project ideas thread instead!
Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.
Please read the full rules for more details.
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.
Got a cool project idea but nothing else? Put it in the project ideas thread instead!
Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.
Please read the full rules for more details.
-
- Posts: 12
- Joined: Wed Jul 04, 2018 6:06 am
Re: The Legend of DOOM TC
Pretty nice that Vinny streamed this wad.
-
- Posts: 678
- Joined: Mon Jan 16, 2006 8:53 pm
- Location: Rio de Janeiro - Brazil
Re: The Legend of DOOM TC
Oh Lord, this is amazing!
-
- Posts: 102
- Joined: Wed Jun 06, 2018 11:15 pm
Re: The Legend of DOOM TC
This is pretty great, but there are a couple minor details that bug me.
-The Triforce HUD scaling in the automap makes using said automap pretty much impossible unless you use a super tiny HUD.
-The sword opens bombable walls, which...Well, it shouldn't? Far as I know it's possible to make objects that only respond to a specific weapon, so why not do this with bomb walls?
-Sword swing feels a bit slow compared to LoZ's sword stab.
-Sword projectile can travel several "screens" in some cases before hitting something, limiting its use if you miss a shot and it goes past what would be a "screen" boundary. Maybe limit its range to prevent this?
-The Triforce HUD scaling in the automap makes using said automap pretty much impossible unless you use a super tiny HUD.
-The sword opens bombable walls, which...Well, it shouldn't? Far as I know it's possible to make objects that only respond to a specific weapon, so why not do this with bomb walls?
-Sword swing feels a bit slow compared to LoZ's sword stab.
-Sword projectile can travel several "screens" in some cases before hitting something, limiting its use if you miss a shot and it goes past what would be a "screen" boundary. Maybe limit its range to prevent this?
-
- Posts: 479
- Joined: Sun Mar 21, 2021 9:40 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): linux mint 21
- Graphics Processor: ATI/AMD (Modern GZDoom)
Re: The Legend of DOOM TC
@Detwelve - I agree with this fellow So I'll offer the fix adviceretronutcase wrote:This is pretty great, but there are a couple minor details that bug me.
-The Triforce HUD scaling in the automap makes using said automap pretty much impossible unless you use a super tiny HUD.
-The sword opens bombable walls, which...Well, it shouldn't? Far as I know it's possible to make objects that only respond to a specific weapon, so why not do this with bomb walls?
-Sword swing feels a bit slow compared to LoZ's sword stab.
-Sword projectile can travel several "screens" in some cases before hitting something, limiting its use if you miss a shot and it goes past what would be a "screen" boundary. Maybe limit its range to prevent this?
-The Triforce HUD scaling in the automap makes using said automap pretty much impossible unless you use a super tiny HUD. --- GZD 4.7.1 updated Automap stuff. So there may be a way of adjusting it easier now.
-The sword opens bombable walls, which...Well, it shouldn't? Far as I know it's possible to make objects that only respond to a specific weapon, so why not do this with bomb walls?--- This one is mostly fixed by MAPINFO concerning Hub Maps so that opened stuff remains saved rather than reset every time.
-Sword swing feels a bit slow compared to LoZ's sword stab. --- This one is true. The sword can safely swing faster without causing a gameplay imbalance. Tic speed of 2 at each address Fire state frame should resolve this pretty easy.
-Sword projectile can travel several "screens" in some cases before hitting something, limiting its use if you miss a shot and it goes past what would be a "screen" boundary. Maybe limit its range to prevent this? This can be fixed via the Spawn State ending with : Goto Spawn+2 rather than use of Loop to give it an infinite range. This should just run it through it SPawn animation phase for 2 full cycles, or however long the best timing is, then initiate the Death State after that.
-
- Posts: 19
- Joined: Tue May 11, 2021 6:20 pm
Re: The Legend of DOOM TC
Just released an update for version 1.1.0!
I wanted a VR branch to be the next major release, but there was just too much room for improvement in the original release to let slide. v1.1.0 makes some significant quality of life changes without really changing the gameplay or original aesthetic.
This release is much more well tested than the initial release, so hopefully no huge bugs but as always, please report any bugs or suggestions you might have. Many of the changes came from this thread and watching where folks struggled during YouTube/Twitch playthroughs.
One thing I'm specifically looking out for is whether or not the changes to the overworld geometry have a noticeable impact on performance for most players. My "low end PC" testing was done on a Surface Pro 5. When it's plugged in, I get nearly solid 60 fps on the overworld. Unplugged it throttles the CPU and the overworld FPS goes way down to 15-45. v1.0.3 didn't have perfect FPS in the overworld either, but it was a solid 5-10 frames faster. No difference noticed on a PC running with a GeForce 2070.
I wanted a VR branch to be the next major release, but there was just too much room for improvement in the original release to let slide. v1.1.0 makes some significant quality of life changes without really changing the gameplay or original aesthetic.
This release is much more well tested than the initial release, so hopefully no huge bugs but as always, please report any bugs or suggestions you might have. Many of the changes came from this thread and watching where folks struggled during YouTube/Twitch playthroughs.
One thing I'm specifically looking out for is whether or not the changes to the overworld geometry have a noticeable impact on performance for most players. My "low end PC" testing was done on a Surface Pro 5. When it's plugged in, I get nearly solid 60 fps on the overworld. Unplugged it throttles the CPU and the overworld FPS goes way down to 15-45. v1.0.3 didn't have perfect FPS in the overworld either, but it was a solid 5-10 frames faster. No difference noticed on a PC running with a GeForce 2070.
-
- Posts: 479
- Joined: Sun Mar 21, 2021 9:40 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): linux mint 21
- Graphics Processor: ATI/AMD (Modern GZDoom)
Re: The Legend of DOOM TC
Glad to help out. Cant wait to try this new version!
edit--- I'm happy you liked my Shield Actor Code enough to adapt it directly! Warm fuzzy feelings!
Played it and it looks excellent for the most part. The only real graphic mishap I'm seeing is the Yellow Rupees rendering as a green color. Thought I was getting a lot of Blue Rupees at first until watched the counter go up by one.
Good job on the Bomb Doors getting their due diligence for requiring bombs now.
The Boomerang performs marvelous.
Looks like you're just some minor steps away from getting this project finalized! Next up? The ADventure of Link Doom! JK JK
edit--- I'm happy you liked my Shield Actor Code enough to adapt it directly! Warm fuzzy feelings!
Played it and it looks excellent for the most part. The only real graphic mishap I'm seeing is the Yellow Rupees rendering as a green color. Thought I was getting a lot of Blue Rupees at first until watched the counter go up by one.
Good job on the Bomb Doors getting their due diligence for requiring bombs now.
The Boomerang performs marvelous.
Looks like you're just some minor steps away from getting this project finalized! Next up? The ADventure of Link Doom! JK JK
-
- Posts: 15
- Joined: Wed Apr 01, 2020 10:30 am
- Graphics Processor: nVidia with Vulkan support
Re: The Legend of DOOM TC
I can't say for sure, but I think the 1 Rupee being green is intentional? In later Zelda games, the 1 Rupee is green.kalensar wrote:Glad to help out. Cant wait to try this new version!
edit--- I'm happy you liked my Shield Actor Code enough to adapt it directly! Warm fuzzy feelings!
Played it and it looks excellent for the most part. The only real graphic mishap I'm seeing is the Yellow Rupees rendering as a green color. Thought I was getting a lot of Blue Rupees at first until watched the counter go up by one.
Good job on the Bomb Doors getting their due diligence for requiring bombs now.
The Boomerang performs marvelous.
Looks like you're just some minor steps away from getting this project finalized! Next up? The ADventure of Link Doom! JK JK
-
- Posts: 19
- Joined: Tue May 11, 2021 6:20 pm
Re: The Legend of DOOM TC
This is correct. It was part of the changes brought over from Zelda 1 Redux. It was one I thought about not bringing over, but since I'd already put in a 20 rupee to replace the Compass I figured may as well make them all match the rupees in later games.ChrisHighwind wrote:I can't say for sure, but I think the 1 Rupee being green is intentional? In later Zelda games, the 1 Rupee is green.
We'll see! I have some ideas for this and would like to do it, but I'm not sure if I have it in me to sink a lot of effort into another completely derivative project that Big N could waltz in and shut down at any moment.kalensar wrote:The Adventure of Link Doom
-
- Posts: 3
- Joined: Wed Feb 16, 2022 8:13 am
Re: The Legend of DOOM (v1.1.0)
This is great! What do you think of an option to disable taking damage from touching most enemies? I find myself getting too close when using the sword. When the enemy does an attack it would still cause damage. The jump of a tektite or the flight of a bat could be considered their attacks. Enemies with an adverse type like on fire/spikes/toxic could still cause damage on contact.
Also, has anyone developed z-targeting like from The Legend of Zelda the Ocarina of Time in Doom? That could also be a really fun addition.
Thanks for all your hard work.
Also, has anyone developed z-targeting like from The Legend of Zelda the Ocarina of Time in Doom? That could also be a really fun addition.
Thanks for all your hard work.
-
- Posts: 479
- Joined: Sun Mar 21, 2021 9:40 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): linux mint 21
- Graphics Processor: ATI/AMD (Modern GZDoom)
Re: The Legend of DOOM (v1.1.0)
The damage suggestion would take away from the closeness of the Mod to source material. Every monster you touched in Zelda 1 would cause you damage except the Bubbles( flashy red skull balls in the dungeons). You can hit a wall until you figure out the range that the sword hits at. I have to do that in all doom games with melee base until i figure out the range to hit.Nem05 wrote:This is great! What do you think of an option to disable taking damage from touching most enemies? I find myself getting too close when using the sword. When the enemy does an attack it would still cause damage. The jump of a tektite or the flight of a bat could be considered their attacks. Enemies with an adverse type like on fire/spikes/toxic could still cause damage on contact.
Also, has anyone developed z-targeting like from The Legend of Zelda the Ocarina of Time in Doom? That could also be a really fun addition.
Thanks for all your hard work.
-
- Posts: 537
- Joined: Wed Dec 22, 2021 7:02 pm
- Graphics Processor: Intel (Modern GZDoom)
- Location: Medellin, Colombia
Re: The Legend of DOOM (v1.1.0)
Wow! This mods looks like a lot of fun. I am also a beginning modder here working on importing an old classic game into the GZDoom engine, and a fan of the Zelda series. I've played your mod (about half-way through so far) and I have some suggestions and things I've noticed:
First of all - the doom guy in the Link cap on the status bar - love that!
I see you have hints for bombable cliifs and burnable trees - I remember collecting up enough bombs to bomb every square I could find, and (before finding the red candle) going on and off screen to burn every tree. Old gamers had patience for that, new gamers do not. So, thank you.
I like that you change the sky near the grave yard.
On the overworld, you use mostly orthogonal blocks, but a few diagonals as well. A problem with the diagonals is that the graphics no longer line up properly. If you set the scalex on those lines to 0.71 then they will line up properly.
The Armos statues, if I bump them they spawn an Armos actor, but the Armos status block remains. I have to "use" it to get it to go away. Both actions should be triggered by the bump.
Also in dungeons, I have to "use" locked doors. If you're trying to stay faithful to the source, these should open on "bump" instead. In fact, the original has no "use" function, so you could disregard it entirely, do everything with bump or other source-similar features, if that is your goal.
In dungeons rooms, blocks should only be half-height, so that you can see over them and shoot over them, if you're trying to maintain classic function.
Secret/movable blocks should be poly-objects (if you're going to keep them at full height) or actors with 3d models. Doing it with floor geometry is always going to look/feel weird. And again, do it with bump.
The hitbox for the Keese is below the sprite, the hitbox for the thrown sword is above the sprite.
If your approach is to make the game feel like a 2-d game in a 3-d world, eg wolf3d, make the thrown sword always stay a fixed height from the floor below it, so it never goes into the sky or into the ground.
I've noticed that when placing bombs near a bombable wall they don't do their usual timer, and usually explode instantly.
In shops you have the prices on textures in map geometry. I'd suggest you put those in as sprites instead, so that they always face the player.
For caves, you create an entrance and set the walls, floor, and ceiling to black. I'd suggest put regular textures on those surfaces, only put black on the back wall, and then you can put a dynamic light up against that wall and set it to subtractive so it fades the cave entrance to black. That's no LoZ authentic but since I notice you using dynamic light in other places I thought you'd be okay with it.
I think you could also do this with sector fog but I'm not sure how to do that, I haven't tried it yet.
I see the discussion on how to handle weapons and items and I have an idea. Make 3 swords as weapons, each stronger one replaces the one below it. Make all other game items as usable inventory items, similar to Heretic, Hexen, etc. Now you can have the player can select the inventory item with the regular built-in inventory features, so that's less work for you. In each sword's alt-fire, make a call to the player's inventory item use function, and design your items to work from there. For an example, see another GZDoom mod called Castlevania: Simon's Destiny. It functions like that - it has 3 whips, each replaces the weaker one before, and there are collectable sub-weapons that are fired from the alt-fire function. If you're trying to maintain controls similar to the LoZ 2-button configuration, I think that's the way to go.
There is another game called Classic Zelda. It is a fan-made recreation of LoZ that's been around for 20+ years, and like GZDoom it has a ton of fan-made mods and content for it. Take a look, you'll find things like 8-way sprites and voxels and other things that may be useful to you.
If you're looking for "better" graphics, you can get them from a game known as BS-Zelda - a japan-only release of a remake of LoZ for the SNES. If you want to use 16-bit graphics, you might like those. One thing - look for a set with the "character patch" because the stock BSZ didn't star Link, it was the BS company mascot, a kid in a baseball cap. The character patch puts Link back into the base sprite set.
Monsters from one screen can easily move to another. If you're trying to keep it authentic, Put monster-blocking lines at the edges of each screen. You could also make it so that when you cross one of those lines, All monsters on the previous screen de-spawn. You could also make it so that the screen you stepped away from fades out (all sector lights to 0 and dynamic lights off) and the screen you just stepped into fades up.
Overall I love what you're doing and eagerly waiting to see your progress.
First of all - the doom guy in the Link cap on the status bar - love that!
I see you have hints for bombable cliifs and burnable trees - I remember collecting up enough bombs to bomb every square I could find, and (before finding the red candle) going on and off screen to burn every tree. Old gamers had patience for that, new gamers do not. So, thank you.
I like that you change the sky near the grave yard.
On the overworld, you use mostly orthogonal blocks, but a few diagonals as well. A problem with the diagonals is that the graphics no longer line up properly. If you set the scalex on those lines to 0.71 then they will line up properly.
The Armos statues, if I bump them they spawn an Armos actor, but the Armos status block remains. I have to "use" it to get it to go away. Both actions should be triggered by the bump.
Also in dungeons, I have to "use" locked doors. If you're trying to stay faithful to the source, these should open on "bump" instead. In fact, the original has no "use" function, so you could disregard it entirely, do everything with bump or other source-similar features, if that is your goal.
In dungeons rooms, blocks should only be half-height, so that you can see over them and shoot over them, if you're trying to maintain classic function.
Secret/movable blocks should be poly-objects (if you're going to keep them at full height) or actors with 3d models. Doing it with floor geometry is always going to look/feel weird. And again, do it with bump.
The hitbox for the Keese is below the sprite, the hitbox for the thrown sword is above the sprite.
If your approach is to make the game feel like a 2-d game in a 3-d world, eg wolf3d, make the thrown sword always stay a fixed height from the floor below it, so it never goes into the sky or into the ground.
I've noticed that when placing bombs near a bombable wall they don't do their usual timer, and usually explode instantly.
In shops you have the prices on textures in map geometry. I'd suggest you put those in as sprites instead, so that they always face the player.
For caves, you create an entrance and set the walls, floor, and ceiling to black. I'd suggest put regular textures on those surfaces, only put black on the back wall, and then you can put a dynamic light up against that wall and set it to subtractive so it fades the cave entrance to black. That's no LoZ authentic but since I notice you using dynamic light in other places I thought you'd be okay with it.
I think you could also do this with sector fog but I'm not sure how to do that, I haven't tried it yet.
I see the discussion on how to handle weapons and items and I have an idea. Make 3 swords as weapons, each stronger one replaces the one below it. Make all other game items as usable inventory items, similar to Heretic, Hexen, etc. Now you can have the player can select the inventory item with the regular built-in inventory features, so that's less work for you. In each sword's alt-fire, make a call to the player's inventory item use function, and design your items to work from there. For an example, see another GZDoom mod called Castlevania: Simon's Destiny. It functions like that - it has 3 whips, each replaces the weaker one before, and there are collectable sub-weapons that are fired from the alt-fire function. If you're trying to maintain controls similar to the LoZ 2-button configuration, I think that's the way to go.
There is another game called Classic Zelda. It is a fan-made recreation of LoZ that's been around for 20+ years, and like GZDoom it has a ton of fan-made mods and content for it. Take a look, you'll find things like 8-way sprites and voxels and other things that may be useful to you.
If you're looking for "better" graphics, you can get them from a game known as BS-Zelda - a japan-only release of a remake of LoZ for the SNES. If you want to use 16-bit graphics, you might like those. One thing - look for a set with the "character patch" because the stock BSZ didn't star Link, it was the BS company mascot, a kid in a baseball cap. The character patch puts Link back into the base sprite set.
Monsters from one screen can easily move to another. If you're trying to keep it authentic, Put monster-blocking lines at the edges of each screen. You could also make it so that when you cross one of those lines, All monsters on the previous screen de-spawn. You could also make it so that the screen you stepped away from fades out (all sector lights to 0 and dynamic lights off) and the screen you just stepped into fades up.
Overall I love what you're doing and eagerly waiting to see your progress.
-
- Posts: 537
- Joined: Wed Dec 22, 2021 7:02 pm
- Graphics Processor: Intel (Modern GZDoom)
- Location: Medellin, Colombia
Re: The Legend of DOOM (v1.1.0)
One thing I noticed when looking at your maps is that your are manually placing your dynamic lights. Did you know that you can create a dynamic light definition and then attach it to a sprite frame in a state sequence? You start by putting a light definition in the gldefs file in the root of your PK3:
I copy-pasted this from somewhere else, so edit those numbers to match what you want if this doesn't look right to you.
Anyway, then you can simply attach that light to a sprite, like so:
And then that dynamic light will be attached to that sprite loop, so you don't have to place it manually on the map. It will also follow the sprite if it moves, so you can use this on enemies or fireballs or anything else that you want to stay lit as it moves.
And if you're serious about wanting to get voxels working, there is an abandoned LoZ web-game project that had voxels. They have over 350 voxels, all the in-game sprites even stuff like the fonts and title screen image and stuff is in voxels. It's on github and is MIT licensed, so you could use it in your project. Only issue is that the voxels are stored in an image strip format that gzdoom does not read natively so you'd have to find a program to convert them or write one yourself. Anyway here is the link to that project:
https://github.com/scottlininger/zelda30tribute
Code: Select all
lightsizefactor 0.667
flickerlight2 ZeldaFireLight
{
color 0.89 0.35 0.13
size 256
secondarySize 320
interval 0.025
offset 0 16 0
subtractive 0
attenuate 1
dontlightself 1
dontlightactors 0
noshadowmap 0
}
Anyway, then you can simply attach that light to a sprite, like so:
Code: Select all
class ZeldaFire : ZeldaBillboard
{
Default
{
//$Title Fire
+RANDOMIZE
-SOLID
+NOGRAVITY
+FLOAT
}
States
{
Spawn:
FIRE AB 8 BRIGHT Light("ZeldaFireLight");
Loop;
}
}
And if you're serious about wanting to get voxels working, there is an abandoned LoZ web-game project that had voxels. They have over 350 voxels, all the in-game sprites even stuff like the fonts and title screen image and stuff is in voxels. It's on github and is MIT licensed, so you could use it in your project. Only issue is that the voxels are stored in an image strip format that gzdoom does not read natively so you'd have to find a program to convert them or write one yourself. Anyway here is the link to that project:
https://github.com/scottlininger/zelda30tribute
-
- Posts: 537
- Joined: Wed Dec 22, 2021 7:02 pm
- Graphics Processor: Intel (Modern GZDoom)
- Location: Medellin, Colombia
Re: The Legend of DOOM (v1.1.0)
I finished playing it all the way through. So much fun to run around in 3d in those old 2d maps, thanks for making this!
I looked into the voxels a little more, found Ken Silverman's description of the voxel formats. There are several different voxel programs out there. I didn't find one that mentioned in it's description that it could read those image strips from the other project. I also see the [wiki=voxeldef]wiki page[/wiki] saying that GZDoom's handling of voxels is very inefficient, and that it's better to convert them to 3d models and use those instead.
Yesterday I tried making an actor class to use for sliding secret blocks, for rocks and graves in the overworld and blocks in the dungeons. You place them on the map like any other map thing, and when the game starts they spawn a fake floor to cover the stairs they are hiding. Or you can set them to use no fake floor, for example in the dungeon where a secret block moves but the stairs are already visible. For cases where the secret block is not on top of the stairs they are hiding, there is an offset in the user variables you can use to tell it where to place the fake floor.
Examples:
I used sandy ground on the real ground and clear ground on the fake ground to help it stand out for this demo
I looked into the voxels a little more, found Ken Silverman's description of the voxel formats. There are several different voxel programs out there. I didn't find one that mentioned in it's description that it could read those image strips from the other project. I also see the [wiki=voxeldef]wiki page[/wiki] saying that GZDoom's handling of voxels is very inefficient, and that it's better to convert them to 3d models and use those instead.
Yesterday I tried making an actor class to use for sliding secret blocks, for rocks and graves in the overworld and blocks in the dungeons. You place them on the map like any other map thing, and when the game starts they spawn a fake floor to cover the stairs they are hiding. Or you can set them to use no fake floor, for example in the dungeon where a secret block moves but the stairs are already visible. For cases where the secret block is not on top of the stairs they are hiding, there is an offset in the user variables you can use to tell it where to place the fake floor.
Examples:
I used sandy ground on the real ground and clear ground on the fake ground to help it stand out for this demo
Spoiler:In my example all my blocks are 64x64. I see you map has some things as 64x64 and others as 128x128. My code can be pretty easily adapted to fit 128x128 or any other size. Just change the size of the spirtes and models that they use and then change the radius and height for the collision detection and the rest should be automatic.
-
- Posts: 537
- Joined: Wed Dec 22, 2021 7:02 pm
- Graphics Processor: Intel (Modern GZDoom)
- Location: Medellin, Colombia
Re: The Legend of DOOM (v1.1.0)
Since the blocks in the dungeon don't look right with sprites, I tried replacing them with 3d models:
Spoiler:I know the texturing isn't right, I'm still figuring out the texturing, but they're functional - can be pushed and moved. Right now they just spawn and then delete a fake floor to cover a staircase. To be useful in Zelda dungeons I need to make them also able to open doors.
-
- Posts: 274
- Joined: Mon Jun 06, 2016 11:26 pm
- Preferred Pronouns: No Preference
- Operating System Version (Optional): Widnows 11
- Graphics Processor: nVidia with Vulkan support
Re: The Legend of DOOM (v1.1.0)
LOVE this mod, but found one issue. If you accidentally hit "Use" on an already unlocked door (for example, double-tapping the button when you open one) it still consumes a key.