3D Doomlike FPS (Worth continuing?)

Jase217

Member
EDIT: So I've decided I will finish the game (Probably), a big update is on the way.

I've worked on this for a little while, however I'm not sure If I should continue, I've lost a little motivation and interest as this may be a bit ambitious in the long run with what I had planned for this game, but if it has potential then I may continue.

So I thought I would get what I had out there, just to ask if you guys think I should turn this into a full, complete game.

So basically this is a 3D FPS akin to something like Doom or Duke Nukem 3D, NOT a Wolfenstein clone, it has different floor and ceiling heights, free look, jumping and crouching, I even made a level editor for this, as it would be almost impossible to create levels for it otherwise. Entire levels are stored as single PNG image files, which makes it very easy to share. I haven't posted the level editor though, as it is a bit buggy at the moment.

As of right now, the game is just a single very short level that you can run around in, shoot one type of enemy with two different weapons, the level can't even be completed, the end level button doesn't do anything when pressed.

The levels themselves have some interactivity in them, there are retractable walls, breakable glass, breakable ceiling lights, lifts, as well as teleports and wall buttons, but far from what I have yet to add.

Here is a GIF:
https://gfycat.com/VainAllIberiannase

Screenshots:
Screenshot1.pngScreenshot2.pngScreenshot5.png Screenshot4.png

A screenshot of the level editor:
Screenshot3.png

Demo:
https://www.dropbox.com/s/amrd66z0owaagk9/Jase217FPSUnfinishedDemo.zip?dl=0

Controls:
1 - Equip the machine gun
2 - Equip the triple barrel shotgun
WASD - Move around
C - Crouch
Space - Jump
Left mouse - Shoot
Shift - Run
Esc - Quits the game
Enter - Respawn dead enemies, for dubugging purposes.
Q - Kick (Kick the doors to open them, there is no use key)

Shoot or kick buttons to activate them.

Let me know if you guys think I should continue this, I do want to finish it, but only if its any good.

If you do play it, let me know what kind of fps you were getting.
 
Last edited:

Andrey

Member
And if there is no desire and interest to reach the end in the game development, why torture yourself?
Screenshots are cute. Perhaps the implementation on android / ios?
 

sp202

Member
Kicking down doors is super cool. Hone in on that kind of interactivity. Perhaps take some inspiration from Hotline Miami.
 

RangerX

Member
I love those "nowadays extinct" types of FPSs.
But if you lost motivation maybe you should not continue. How about turning this problem into an "engine" for people to use or to sell on the marketplace?

By the way, your screenshots its looks like the first level of Doom2 you sneaky guy. :p
 

Jase217

Member
Thanks for the replies so far!

And if there is no desire and interest to reach the end in the game development, why torture yourself?
Screenshots are cute. Perhaps the implementation on android / ios?
I don't think it would run or play very well on a phone, it would be interesting to experiment with that though.

I love those "nowadays extinct" types of FPSs.
But if you lost motivation maybe you should not continue. How about turning this problem into an "engine" for people to use or to sell on the marketplace?

By the way, your screenshots its looks like the first level of Doom2 you sneaky guy. :p
Motivation to complete this comes and goes, I do want to finish it, I just want to make sure its worthwhile.

Kicking down doors is super cool. Hone in on that kind of interactivity. Perhaps take some inspiration from Hotline Miami.
I definitely will, the interactivity was one of my favorite things about Duke Nukem 3D.

Levels saved as png files!? That's impressive; just like this game.

I would buy this.
Thanks!
For the png levels a good trick is to use the red green and blue values of each pixel to hold information about the level, and then copy the image several times if you need more than 3 different values.
 

sp202

Member
Technically you've got 4 channels, the 4th being alpha. Not to mention if you were to convert the values into binary you could store a large number of values; each pixel could contain up to 32 Booleans or a combination of integer variables that add up to 32 bits.
 
Looks pretty cool. I'd keep it up if I were you. By the way, when you got blood splatters on walls. how do you handle situations where the splatter lands on a corner?
 
G

Guest

Guest
It's really impressive but you need to have a viewpoint, something to say. What do you want to say that wasn't said by Doom?
 
F

FROGANUS

Guest
oh wow, it looks awesome. wish i could run it (on a 32bit backup laptop, for now)..
i'm curious (sadly a little skeptical) about any gamemaker fps games, but this looks impressive; def plan to check it out on mi otro maquina.

so the kickable doors.. heh heh, for a second, i was thinking this is silly, is every door kickable?
but then I noticed in the very exe title, the game is "DOOR SMASHER" which I say you should keep! it calls directly to the classic games you're referencing in this project and the inevitable monotony of opening door after door in one of these classic fps games, so yeah its a great center point, it immediately implies something fresh, not just silly. it reads as a promise for accelerated gameplay.

i would love to see what other 'interactivity' you're working on. also, some of my earliest game developing was just custom mapping for duke nukem, so i'm curious about that level editor too..

I say keep at it.

;) :p ;) :p ;) :p ;) :p
 
Looks good! But, if you aren't feeling it, you won't really see it through. Finish up the engine and either make it open source or sell it.

I am working on a similar scope of game (3D FPS, Doom-like sprite art style) in GMS. It has been a learning experience for sure. My biggest difficulty is getting level design ideas working well. I have a lot of technical things in place, but actually making compelling levels is tricky.
 
G

Gai Daigoji

Guest
The animated GIF certainly makes it look like a project worth continuing, but of course, that is your decision to make.
Gameplay looks fast and smooth, well done!
 
D

Daniel Gonzalez

Guest
Hey there Jase217, I love this project you have been making, the demo runs great, I heavily endorse you complete this project. However I have to ask, if there is any way you could provide information as to how you made this project or point me at some websites/videos you used to make this? I've been searching all over the web to find a doom-like game that utilizes full camera movement in GameMaker and have had absolutely no luck finding any tutorials/resources that can help me with my side project. Primarily I just want to learn how to make a character move around in 3D space and be able to have full camera movement with the mouse like your project does. If there is anything anyone can point me towards that will be a big help, thank you for your time reading this long post.
 
Z

zendraw

Guest
-i also use png`s to store levels, very neat trick indeed.
id say the game is ready, as far as a prototype/demo goes, so perhpas work on content and polish? i like the game.
 

ReidDC

Member
nice game mechanics! and it runs perfect for me.
As for continuing, yes I think you should. I find that your not always going too
have "motivation during a project, and on those days you just gotta push on.

Either way great little demo, hope too see more.
 
M

Misty

Guest
This is gud. Make more. I beat the level and wanted more. Make moar. Moar.
 

Jase217

Member
Thanks for the replies! I am currently working on a substantial update that will bring the game up to a much higher quality, I've rewritten most parts of the engine and should have it out within the month hopefully,

Some of the new stuff will include new weapons, enemies, breakable stuff and a separate freezing power that you can use as a secondary fire.
test.png
Looks pretty cool. I'd keep it up if I were you. By the way, when you got blood splatters on walls. how do you handle situations where the splatter lands on a corner?
I made it so the decal sprites wont be placed if it will flow off the wall, little bit buggy though, especially with moving walls.

Hey there Jase217, I love this project you have been making, the demo runs great, I heavily endorse you complete this project. However I have to ask, if there is any way you could provide information as to how you made this project or point me at some websites/videos you used to make this? I've been searching all over the web to find a doom-like game that utilizes full camera movement in GameMaker and have had absolutely no luck finding any tutorials/resources that can help me with my side project. Primarily I just want to learn how to make a character move around in 3D space and be able to have full camera movement with the mouse like your project does. If there is anything anyone can point me towards that will be a big help, thank you for your time reading this long post.
Thanks! I mostly learnt out of trial and error, along with some help from youtube tutorials. I learnt alot from "The Sivart".

Walking around in a 3D space can get complicated, especially with collisions, the way I've done it is that the world is made up of cells, and each cell has a floor height and ceiling height, these are used to check for collisions using a tilemap collision system, its a bit more to it than that but that's the basic system the engine is built on.
 

Geoff Jones

Member
This looks awesome! The game feels mor elike Duke3D (and thats a good thing).

Its really fun to play, even the small demo. I want more!
 
D

danieldiggle

Guest
Yeah man this looks awesome! Would love something like this as a marketplace engine - something I could apply my own visual take on. Looking great so far!
 
@Jase217

Hey, I was just thinking about your decals some more. I realized if you are using GMS2, I believe you can make use of gpu_set_zfunc to keep decals from appearing to hang over the edge of your walls/ceilings/floors. What you'd need to do is make the decal exactly on the same plane as the wall's surface, then set the zfunc to "equal". If I'm right, you wouldn't need to worry about whether your decals are close to an edge.
 

Jase217

Member
@flyingsaucerinvasion

Thanks, I didn't know about that function, I haven't tested it yet but can you explain what it does? The manual says it sets the z-buffer comparison mode but how does it affect the drawing if I set it to less, equal etc?
 
This is excellent, I love every little thing about it. Shooting feels satisfying with the smooth camera recoil as well as the resulting bullet holes and blood splatters. Kicking in doors is a blast, especially when you take down an enemy by doing so. Normally, I'm not a fan of old-style shooters like these, but the gameplay is solid enough to make me look past that.

The only real issues I have are the render button being easily accessible (as I kept instinctively trying to reload) and the weapon sprites looking a bit odd being so detailed yet having giant pixels. The pistol in your latest screenshot looks better than both of the weapons in the demo. I also noticed that the weapon sprites tend to jitter when at a standstill.

Also, is there a way to respawn after death, or do I really have to restart the entire game?
 
@Jase217

keep in mind i only have gms1.4, so I can't test these things for myself. But if my understanding is correct, you can use gpu_set_zfunc in order to change the way the gpu decides if a new fragment's depth is such that it should overwrite what is already drawn at that same location based on the depth that was previously recorded there. So, when zwriteenable is on, when a fragment is drawn,its depth is recorded onto a zbuffer. If another fragment tries to draw in the same place, the gpu makes a comparison between the new fragment's depth, and the previous depth at that location, and if the comparison made is true, then the new fragment is drawn. "cmpfunc_less" should result in things drawing only if they are nearer to the camera than what is already drawn on the same surface realestate. "cmpfunc_greater", should do the opposite. My suggestion is to try "cmpfunc_equal" when drawing the decals, because it ought to only draw the decal fragments at locations where there is a wall drawn in the exact same place and depth. This would require that the walls are drawn before the decals. I'm not sure if precision or math epsilon might be an issue, but I bet it's worth a try.
 
M

MEITdev

Guest
@Jase217 I have played almost all WIP games in the past year that have been here on the GMC and I can critically say, that this game is worth finishing if you give it a good thought in regards to level design. It could be a good "speedrun" game for streamers. But that is just my opinion, looking forward to playing your next update. Keep up the good work!
 
B

Blackguard1

Guest
This game looks pretty cool! What ever came of it? Are you still working on it?
 

Jase217

Member
It's really cool to see continued interest in this! I am indeed still working on it but it's taking longer than I expected, which is mainly because I've been rewriting the entire game from scratch as it was a bit of a mess before, this new version has an uncapped framerate, a much improved and simple to use level editor similar to how the doom engine works with sectors, which is going to make it much, much easier for me to actually make levels as well for everyone else. Then it comes down to making content, perfecting the way the game feels, making interesting weapons and enemy behaviours etc.

Thanks again for the replies! I will get something out within the next few weeks.
 
T

Thunder Lion

Guest
I'd take the engine off your hands, I never got too deep into 3D in GM but I've played with it before and love it.
 
Top