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?

  • Feyter@programming.devM
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    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.

    • rhabarba@feddit.deOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      What you want to do is actually quite advanced topic.

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

      • Feyter@programming.devM
        link
        fedilink
        arrow-up
        4
        ·
        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
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        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.devM
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          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
            link
            fedilink
            arrow-up
            0
            ·
            1 year ago

            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.devM
              link
              fedilink
              arrow-up
              1
              ·
              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.

          • MJBrune@beehaw.org
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            It’s not buried, Unreal blueprints are extremely searchable. It’s less about learning programming and more about learning logic. Programming is like “what perfect syntax will get the result I want.” blueprints and logic flow is “this does this and so I get this.” Far more visualized and helpful to people who don’t know how to program.

            Several times I’ve seen designers come on to a project only knowing what they want to have happen, pick up blueprints, and get the logic to do those things. That’s learning. Is it programming? probably not in the sense it’s not dealing with perfecting syntax but it’s learning programming to make the computer do the logic you want it to do. The end result is that people want to make games, is it learning programming to learn how to make games? Probably not. It’s learning how to make art in general. IMHO, it’s far better than programming.

  • AngryClosetMonkey@feddit.ch
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    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.

  • Klaymore@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 year ago

    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.

    • rhabarba@feddit.deOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      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
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    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.
    • rhabarba@feddit.deOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

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