this post was submitted on 03 Aug 2023
4 points (75.0% liked)

Godot

5855 readers
28 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 1 year ago
MODERATORS
 

Hello all,

I hope my question is not too stupid. :-) I have the following concern: I would like to create - in general terms - a maze in which computer-generated enemies follow a random path and can also come towards me. (I assume I need 3D for this.) After some reading, I have determined that Godot might be the wisest choice for this.

Now I have no experience at all in developing games and designing graphics, so I need a hint in the right direction: What is the easiest way to create a three-dimensional model of an opponent and insert it on a map in Godot so that it automatically follows a certain path? I assume I need Blender or similar software for that?

all 16 comments
sorted by: hot top controversial new old
[–] Feyter@programming.dev 5 points 1 year ago (1 children)

What you want to do is actually quite advanced topic. Godot is coming with some build in functionality that you can use Look for navigation mesh

But if you never used a game engine I recommend you start with baby steps and lern how Godot works basically. Try to create a scene, create an object, add a script and try to move it from code... All this stuff.

I would recommend to at least completely the getting started section of the Godot docs this should give a very good overview.

[–] tux0r@feddit.de 2 points 1 year ago (2 children)

What you want to do is actually quite advanced topic.

Ew! I thought that would be a rather easy start. :-(

[–] Feyter@programming.dev 4 points 1 year ago

Depends on what you call easy 😄

It's just my point of view that there is no such thing as "easy" if you do it for the first time. It's always easy if you know now everything works. Don't want you discouraged you.

I think a project like this where you have a goal in mind and try to find out how to achieve it is much better to learn than following strictly a tutorial and just replicating it step by step.

[–] MJBrune@beehaw.org 3 points 1 year ago (3 children)

If you don't mind a ton of bloat. Use unreal where you can get started much quicker and see results with an hour. With Godot you'll take a day just to get a basic movement system and interaction system.

[–] Feyter@programming.dev 3 points 1 year ago (1 children)

What? Creating a nav mesh and copy pasting a script for the agents to move it will also just take a few minutes... It's just that if you want to know what you are doing this will take you longer.

[–] MJBrune@beehaw.org 1 points 1 year ago (1 children)

Copying and pasting a script for agents would not really take you a few minutes though, would it? Because you have to actually find that script and really, you should write it or understand how you are enabling it. With unreal you'll do this in the first hour. It's like a few blueprint nodes and you'll get it to happen. With Godot, which I love very much, it's a good portion to set up nav mesh + agent nodes + the script. This assumes you know what you are looking for and what you are doing. In Unreal these things are literally built for you with examples or even just engine code. Out of the gate, you just create a new character, on begin play you tell it to move to and give it the result from "get random reachable point in radius" Which Godot doesn't even have a way to get a random location within a radius in the engine. Much less a reachable one.

Godot is great but it lacks a lot of quick tools and is less newcomer friendly than Unreal in my opinion. If you tried this in Godot you'd hit a lot of snags. One of the major ones I can think of is that the navigation server isn't ready for queries on _ready(). So if you even tried to get a random point and project it to the navmesh you'd get back 0,0,0 using the same methods as above, which in godot also requires more setup like having to setup a navmesh. In Unreal the navmesh is setup and ready from the moment you hit create a new project.

[–] Feyter@programming.dev 1 points 1 year ago

So the point goes to unreal because it comes with a build in library of working copy/past examples?

But still if you want to know what you're doing (which would be required to be able to fine-tune, extent and debug) you need to invest more time so IDK if OP would get much benefits of using Unreal.

A game like this can be done in every engine with similar effort I would say as long as you know what you're doing.

[–] tux0r@feddit.de 1 points 1 year ago

I will also look into that. :-) Thank you.

[–] AngryClosetMonkey@feddit.ch 4 points 1 year ago (1 children)

Regarding 3d models, you can:

  • use spheres and cubes as placeholders, there is no need to create 3d models as long as you don't have a game yet.
  • you can download models for free from various websites
  • you can make your own 3d models with blender ( If you don't know how to do that yet, you will have to spend some time learning about blender first. Checkout blenderguru)

Since you ask for the easiest solution, just use CSGMeshes for your maze and a cube or sphere mesh for your enemies.

[–] tux0r@feddit.de 2 points 1 year ago

Ah - placeholders are a good idea! Thank you.

[–] Klaymore@sh.itjust.works 3 points 1 year ago* (last edited 1 year ago) (1 children)

Yeah, for an enemy you can find a model online, use a basic cube or cylinder, or make a model in Blender. Using Blender is pretty complicated so I would use some other model or a basic shape while you get started, you can always make one later. Then for enemy navigation you can use the built-in navigation system.

However, if this is your first time making a game, I would work on the first person controls before tackling navigation or modeling. For your first game you pretty much need to follow a tutorial to learn how to use Godot, so I'd find a tutorial like this one on how to make a first-person game. It could also be helpful to follow a basic tutorial like this one just to learn how Godot works. Learning how to make games is pretty difficult so don't worry if it takes you a while to get things working, especially if you don't have any programming experience.

[–] tux0r@feddit.de 2 points 1 year ago

Thank you, sounds reasonable. :-) I work as a developer, but game development is completely over my head... so far!

[–] nibblebit@programming.dev 2 points 1 year ago (1 children)

As others have said so far. If you have zero experience what you are aiming for is pretty complicated.

  • you need path-finding. Godot nav mesh will do great. But you could implement waypoints and A* yourself if you like more control and want to learn.
  • you need some place holder models. Using prisms or Sprite3d is better because you can more easily see which way they are facing
  • you need some agent behaviour. What does move randomly but also towards the player mean? Are you thinking of a pacman like situation?. You might want to think about a state machines
  • If you want the levels to be procedurally generated you open a whole new can of worms.
  • Depending on your use case you might want to spend time getting comfortable with the UI framework and Control nodes to create buttons and widgets to create start and reset levels.
[–] tux0r@feddit.de 2 points 1 year ago

Sounds like more work than I had initially assumed. Well, thank you - I'll take notes!