Besides changing some basic properties of parts, I have never actually scripted until I decided to make a waves-based zombies game about 3 weeks ago. The learning curve on lua has been pretty hefty, but I’m finally coming around now and feel proud of this game I’ve made so far.
Anyways, here it is: Pandemic Phase.
It is still very early in alpha, so expect more features to come such as:
Character customization
Being able to buy doors and weapons.
Different types of zombies.
The more helpful and insightful your feedback is, the better.
Anyways, yeah. This is also my first devforum post and I’m super happy to be here!
Maybe a global leaderboard of the sort. It promotes people playing
True. The character customization system will involve how many waves you survived, so I could throw a leaderboard in there while I’m at it I guess.
Feedback: I would add more sound effects. Maybe better gun noises and maybe zombie grunts. A couple different zombie types would also be cool! Also, the map feels very compact. Maybe make a bigger map.
Bugs: When you kill a zombie, it can still damage you before it despawns.
Smart idea. When zombies are dead I’ll disable the hit system until they despawn. As for the sounds, I was planning on adding more gun sounds when I get around to actually making guns haha (the current gun is a free model placeholder). And I do plan on the door being buyable, that’s my current work-on objective actually is having more of the map being accessible by spending the points you gather.
I really enjoyed looking at your game! The guis and the menus were very nice especially with being able to teleport to different places. It shows a lot of promise. One suggestion I have is to have a certain amount of ammo and have to reload at some points because I was able to survive just walking in a circle. Find some way to make the combat more engaging. But other than that, the game looks very nice!
Thanks! I do agree with you that combat is very repetitive as of right now. Also in my opinion too easy, being able to reach Wave 15 in the Spawn Room with only a pistol. I’ll try to bump up the difficulty and uniqueness of combat. Thanks for your input!
No problem! I’m happy that I was able to help!
Well Put together Game, I enjoyed playing it. But shooting the zombies felt harder than needed to be. when then bullet touches the zombie you should make an if statement detecting the zombi’s “HumanoidRootPart.Parent:GetChildren()”. so the player can make headshots or deal some damage for arm and leg shots.
Thanks! The main issue with the shooting right now actually is the gun itself. I’m currently using a free model of a pistol (obviously configured to work with my code) as a placeholder until I settle in and finally create my own weapon. The mechanics for the gun are a little bit wonky, and do not perform as well in 1st person which is weird.
By the way, when detecting if a humanoid is hit, is that the HumanoidRootPart only?
It’s good, but maybe add more weapons and armor
I am currently working on adding multiple weapons, and a random chance to get them (kind of like a mystery box) I never thought about armor, but I’ll take it into consideration!
yes, but when you do .Parent, that means you are getting the parent of the humanoidrootpart; which in this case is the Zombie. and the :GetChildren() means you are getting all the parts to the Zombie. aka Feet, head, torso, arm,…
So how would I make all parts of the zombie NPC detectable then by the bullet ray?
I think a better option to what i said is:
Bullet.Touched:Connect(function(hit)
if hit.Parent:WaitForChild("Humanoid") then
---- deal damage to that "hit" body part. Something like:
if hit.Name == "Head" then -- checks for the head part but could be any body part
hit.Parent:WaitForChild("Humanoid").Health - 60 --- this subtracts a big amount of health for a headshot
end
end
end)
Oh hey, that’s smart! One issue though is that they ray doesn’t detect the head. With the trail, it will show a direct impact on the head, but my output doesn’t print out “hit” and then what part it hit like I made it do when a part is hit, and also the humanoid health of the zombies isn’t taken down. Is there a way to enable the head to be hit?
I think I made an error with the dealing damage, but for the Output, you’re going to need to show me your code to better explain.
Bullet.Touched:Connect(function(hit)
local zombHumanoid = hit.Parent:WaitForChild("Humanoid")
if zombHumanoid then
---- deal damage to that "hit" body part. Something like:
if hit.Name == "Head" then -- checks for the head part but could be any body part
zombHumanoid.Health = zombHumanoid.Health - 60 --- this subtracts a big amount of health for a headshot
end
end
end)
This is an awesome start! A lot of the feedback I have for you would just be restating what other developers have already been telling you. A great QoL feature to add would be a menu for settings or options so players can adjust things stuff like mouse sensitivity, sound effect volume, and particularly music volume. In addition, adding some varied, cool animations to the zombies would do a lot to make them stand out. You have a great framework so far though. Keep up the good work!
Thank you for the input! I do agree the music can get too loud or too quiet at times, so a sound setting would be a great idea! I’ll look into mouse sensitivity also. As for animations, I’m currently learning how to properly make animations so I hope to have that out soon.
With a little more work, maybe some ads here and there, your game could make it to the front page, IMO.