Helping with creating TowerDefence

Hello. I was recently hired by a company to create a towerDefence game. But I’ve never made a game like this. For this reason, I ask you to answer my questions, please:
Would I make non-humanoid zombies? How to make zombies non-humanoid?
Would it be better to make sure that all zombie movement takes place on the client, and only the Health and attributes change on the server?.. For example, “The time until the hp is removed from the base”. on the one hand, this greatly increases the speed of the client, on the other hand, it will probably make the game less updatable. Maybe you should also implement movement on the server?
Should I make non-humanoid towers (men who shoot zombies)?
That’s all. Thanks for any reply! (Help ples)

  1. Why would you make non humanoid zombies. It’s so much easier to manage health, speed, animations on a humanoid

  2. I’d say keep it in server as you need towers to be visible to all clients and as so you’d need the zombie movement to be on server too so the towers can see it

  3. The towers themselves will probably just be models but if you want a guy shooting on them for visual effect that dude will likely have to be a humanoid

1 Like

I’ve read about humanoids. For some reason, everyone writes about how they are not optimized. That’s why I asked this question

First time in hearing that. Making it with humanoid is way easier still

1 Like

I don’t think it’s true that Humanoids are unoptimized (100 player games exist…)

However, you can use AnimationControllers to make animations instead, while updating the position and health values on the server if you really want to.

You can use the PathFindingService to determine the actual paths these characters should take.

A game mechanic like this is not too difficult to create, so I do beg the question: Why would you accept a position you aren’t qualified for?

Programming at a level you can’t understand will inevitably make you burnt out and not want to code anymore, so I do hope it works out well for you.

Also you might want to delete this post so your employer doesn’t see it💀

2 Likes

I would say. that I’m a very good scripter, it’s just that some of the texts I’ve read seem to have really misled me. I’m not asking obvious things like how to scratch something. cmon tower defense is very easy to do. But I don’t really want to implement something in one way, and then realize that it takes too long to replicate the positions of 200 zombies.

(in the fact of lol)

If his employer is reading this hire me I have experience

I see. Generally what you should do is handle core game-logic on the Server. You want to do this to minimize the amount of information that is accessible to exploiters, so they don’t have an easy time exploiting your game.

So yes - All critical game components should be managed by the server. (For example, the coins a player has, what Towers they are allowed to place, the state of the game)

The client side should control inputs, VFX, and other behavior that you do not want to replicate. Client sided scripts should be the way clients interact with your game, they should not be the game.

2 Likes

Thanks, but I know that. I’m grateful anyway that you’re warning me, even though it’s already known to me.:blush:

Judging by the code in your last scripting support post, I doubt it.

Which one are you talking about . Can you link it

Edit: if it’s the one about the password code door I fixed it a while ago the issue was the parts weren’t loading in when the code executed I think

1 Like

You said this yourself:

Would it be better to make sure that all zombie movement takes place on the client

So if it’s known to you already what you should be doing, why are you asking?

1 Like

sometimes it’s better to make sure and agree with the opinion of another person than to do everything without looking back. But you are right sometimes it’s redundant.

Bugs in wait in a wait line game - Help and Feedback / Scripting Support - Developer Forum | Roblox
the last script I found in your activity. Considering what’s going on in it, I really don’t believe that you really good scripter

edit: or this Code rarely does not work with no errors given - Help and Feedback / Scripting Support - Developer Forum | Roblox

Oh I fixed that too. you can play the game if you want. Should also gamble some Robux in it

I had to pretty much rewrite the whole main script for the game because for some reason I tried to utilize both values inside workspace parts and values inside the player to represent the same thing. And when they for some reason didn’t match it broke everything. I kept over complicating it. When I wrote it again keeping it simple it worked

1 Like

Bro go do your job😭 the Roblox forum will await your next question

It’s not just about whether the code works or not. It is important that it lacks the basic principles that you would expect to see even from a junior developer. code that is difficult to maintain and extend becomes a problem, even if it solves the current problem.
In general, I mean that you don’t have the right to say “I would hire myself in his place” when you don’t know my level of coding and you know that you are just a beginner.

I literally said I rewrote it, what principals is it lacking. I made a joke response when the other guy said your employer might see the post.

Humanoids are a large detriment to any tower defense game that aims to be half decent. While solutions such as Humanoids and PathfindingService will perform well on the small scale (50 or so enemies), they will fall apart drastically on anything more.

Not to mention, Humanoids and PathfindingService are prone to failure and bugs during runtime. Their behavior is never 100% predictable, compared to a more grounded solution: making it from scratch.


Your best bet is to use non-humanoid characters with AnimationControllers in place of their Humanoids. Pathfinding can be done by lerping between preplaced points along the path. Enemy models should ideally be rendered only on the client.

There are various resources to help with attaching accessories and clothing to non-humanoid characters. You should CFrame and Weld accessories onto the NPCs rather than just parenting accessories.

Additionally, you can use Decals & custom made R6 body meshes to render clothing on top of non-humanoid characters.

2 Likes

These are exactly the tips that I needed so much! Thank you, it’s really very helpful.

1 Like