Godot Experimentation Log

Started by Jubal, November 26, 2024, 11:23:24 AM

Previous topic - Next topic

Jubal

I've started messing around with Godot a bit.

My ultimate aim is to see if I can use it to build a sort of classic RPG engine of some kind, though I'm at very, very early stages indeed and right now I'm doing things like working out how the animation blending works and how to control it through code and so on and so forth.

I've downloaded a little pack of animated cartoonish guys - I am very much not becoming an animator for this or any other project - and I've got one with some movement code, jump, turn, and attack anims all running more or less properly though the transitions could be more fluid. That said, ultimately I want something fairly zoomed out so I'm not too bothered about building smooth real-time combat or anything.

Thoughts so far: gdscript is pretty similar to python though I've got a lot to learn about how it interacts with game structure more generally, I've been scripting on individual objects but much less on world state and interactions and so on. Some stuff I'm just unused to like passing vectors to functions, it's a very vector-y system which feels odd in that I'm probably going to have to try and workout adding grids for movement calculations etc to an essentially fluid-ish world. I'm occasionally getting frustrated because so much less is directly script-controlled and I'd sometimes rather use a script than have things in clicky draggy boxes, but I'm making progress all the same.

Will post some screenshots and thoughts as I go :)
The duke, the wanderer, the philosopher, the mariner, the warrior, the strategist, the storyteller, the wizard, the wayfarer...

Jubal

So I did a chunk more of this in early December. For the initial first person stuff I've not added too much, but I didn't give a picture in the last post so here goes:



The main addition, though really is that I've also created a tactical view:



The idea here is that the tactical view might allow me to make a system for some kind of turn-based combat, it has a free camera and I've got code to switch between the tactical and first person cameras.

I've also got pathfinding grids working, though I need to write myself some notes on doing it and, equally, I need to work out a few more advanced bits like jump points.

Another advance was being able to select a second character and move them around when in tactical mode. This gives us some potential for having a party-based system, which is what I imagined when I started this testing.

My most recent addition was a "lock" that detects when the player is close to an enemy and stops their movement until another signal is given (at the moment this is selecting another unit, but I guess it should ultimately be refreshed on a new turn in a turn-based mode). This is useful because it means that we can click on an enemy and move to them without continually trying to run through them forever.

I think upcoming plans to add include:
  • Have 3 player cameras to switch between during first person movement, plus maybe 1-2 side cameras that can be switched to in conversations.
  • Actually implement some combat! I think I'm about halfway there on this, adding simple close combat attacks, a turn order, and death are the next steps. Probably the biggest problem, though, is getting some AI (in the old computer game sense not the modern LLM sense) working so the enemy models can actually find the player character(s) and fight back.
  • Have party members follow you around in "explore" mode (should be viable I think).
  • See if I can make "jump points" for allowing characters in tactical mode to jump between levels/disconnected sections of the movement grid (may be very difficult).
  • Add conversations and some UI, not really tried Godot's UI system yet.
  • Add multiple locations and check I can respawn player & party in a new area.

I have to admit that other than "make an RPG engine" I'm still not sure what I'm doing this for:
The duke, the wanderer, the philosopher, the mariner, the warrior, the strategist, the storyteller, the wizard, the wayfarer...