Hello all,

Thought I'd share for feedback, motivation, and just because I felt like procrastinating.

This is that I am working towards creating any sort of minimal working prototype for, many of my other projects were messing around and learning. I have only been coding for maybe 2 years (off and on sometimes several months inbetween). So, this is totally a noob project, and I have been helped tons to even be able to do what is in this video by many people on this very forum.

Well here is a short video of my character moving around, and attacking an enemy, no fancy art or animations, very barebones, sorry that it isn't more fleshed out yet.

For those interested in actually moving the character around (I know it is very boring atm) I am going to link the itch.io page, it is free.

Inconnu - Prototype RPG

xRegnarokx changed the title to Inconnu - Small 2.5D RPG Project .

So, I have implemented a basic attack skill, here is a video demonstrating using my debug white box for skill placement reference. I haven't updated my itch.io game files since this is still a pragmatic hackjob. I am going to refactor a little bit and implement a skill selection screen so you can choose which of the four slots/hotkeys the skill is associated with.

Thanks all!

Edit:

Here is start of character skill selection:

So, I have updated a few things, still old files on itch.io. I have some bugs to iron out first, and also a few more things I want to implement before updating the files there.

However, here are some photos of my skill menu, some fruit bushes, and I have a controls menu so you know what the controls are before starting up the game.





Well, off to procrastinate from implementing the next thing since it is late and ran out of steam haha.

Edit:
Here is the video of all these updates in action!

My plan and goal was to implement a few aspects of my game by the weekend and update the game files on itch.io.

-Consumables
-Inventory
-Balance damage
-Fix attack range
-Create two interactable objects
-Create secret zone for kicks and giggles

However, as I often do, I ran across a bug, and in the process of fixing it I realized two things. I had a bad case of speghetti code, and I had pre-optimized systems that were making it more difficult for me, example; behavior trees (my enemies are not yet complex enough to need one).

Alas, I could have fixed the bug and kept on, but I decided to see if I could simplify my code a bit to make it easier for me to follow.

In the process of rewritting my two primary systems, cell map generation and player movement, I managed to streamline thosee slightly, as well as adding in a simple visual debugger system to make it easier in the future.

Though the biggest victory was finally learning about _unhandled_inputs() and the benefits of using event.

I had a node that was creating speghetti code by continually casting a ray at mouse position and updating player with what was under the mouse, so that if the player clicked, the player would interact with that object...

It was a mess. I optimized by using a boolean to only allow casting the ray once when the mouse is clicked, rather then every physics frame like I was stupidly doing before. I also realized that my "player" node didn't need to know any of that information, and the node handling the ray casting could also just handle the information.

So, all in all I have probably eliminated 3 to 4 extra func, a few signals, a handful of var, and many lines of code.

I shall reimplement everything else now, while setting up StateMachine logic rather than BehaviorTrees.

Sorry for the long update, I hope it finds all you champs doing well, those of you who made it to the end that is.

    xRegnarokx i wonder, the character rig, did you rig it yourself or used ready made asset? If you did rig it, any pointers how to streamline the process? Also how to streamline creating animations like walking and stuff.. i keep making following tutorials but end up looking ugly or the animation feels too rigid and not natural and thus cant find a way to sync up with the speed of character moving

      kuligs2 So, in general I haven't followed anything for making this project (Except to get a starting point if I am stuck). Eventually I want to mess around with maybe blender for creating animations. However, for this project at the moment I wanted to create placeholder characters with basic animations.

      What I did was fairly simple, I made a Node3D for each joint I wanted to move (arms, legs, ect...) anything attached to that joint became a child of that joint. I then just used animation player to interpolate the rotation value of the joints to create my walking animation.

      I haven't yet figured out how to make the animation sync with variable speed, but in my game because movement is a set time that the character will move, I just set the animation length to that.

      For streamlining, not sure if my process is exactly streamlined. My character uses head, chest nodes, then 4 node3d for arms and legs, then I have two nodes attached to each of those nodes to make the arms and legs with shoulder/hips.

      Hey all! So, it has been a week, I didn't want to stay silent about what I've been working on for to long. I haven't yet updated the game files on itch (will update you guys when the new ones are uploaded). As I said in my last post I decided to do a lot of rewriting and refactoring, and to take a little more time, be less rushed in general. I am not expecting to sell this as a business or really make any money off it, it is just a hobby project. That said, I haven't made as much progress as I'd have liked with Mothersday and work being kind of busy this last week.

      However, here is a short video of my UI that I've redesigned a little.

      I want to connect the UI to my world scene, and then make it so you can pick fruits that'll go into your inventory screen. I will probably update the files on itch once I have that figured out.

      I will then work on reimplementing a basic skill and making the fruits more than just decoration! I will keep you posted!

      So, I thought I'd post this small update here, I got my inventory/item collecting interactions connected now. I can collect berries, so, I'll be moving onto attacking and consuming the berries for health.

      2 months later

      It has been a good moment, life has gotten crazy and unfortunately my hobby has taken the brunt of that.

      I don't have any visual updates yet, made a character screen, and you can now choose characters name.

      Working on leveling right now, which will segway into equipment, not sure how this'll all go as far as figuring out semblance of balance. Though I don't anticipate how I set up stats and equipment to be the final product.

      I also still want to add in lootable containers like chests, but first I want leveling and equipment figured out.

      These are all base rpg elements that I am working on.

      4 days later

      So, managed to implement some new things, but realized that how I've been organizing and making my code is starting to make it difficult to work on.

      I haven't been good at writing comments, and even my naming convention I feel like has left something to be desired. I have many signals that are difficult to know where they connect, or where they are connected from.

      I don't know if I have a good grasp on how to make it easier to follow, but I may take sometime to rework my code, using comments and better naming for clarity. I also, will probably take a little bit of time to think through some of my communications (signals, calls), and whether they are necessary or if I can make them more decoupled or not.

      We shall see how long this takes, however, I won't be making any progress on new material.

        xRegnarokx rewriting code is common. I do it all the time.. this way you learn how not to write code 😃

        I dont know how you set up signals, i suggest you connect then via code and not editor, this way you can check the script files to remember how they are all connected..

        Dont use alot of comments, just write code in such way that it explains itself using simple straight forward conventions.

        My suggestion try to divide code pieces into components. Dont make long script file with loads of functions and varriables.. make multiple functions in separate files that do only specific thing, this way you wont have to refactor a lot and you can iterate on the design process and implementation much faster.. (im learning from my past mistakes 😃)

          xRegnarokx Naming is extremely important in large projects. Inventing good names can also be quite mentally demanding. Most beginners don't realize this. You should reserve a substantial chunk of your design time for thinking about names.

            xRegnarokx I have many signals that are difficult to know where they connect, or where they are connected from.

            Signal Lens

            A Visual Debugger for Signals
            Supports Godot 4.3 and 4.4.

              kuligs2 All signals external to scenes are in code. In some of my UI scenes I use editor signal connections between parts of UI that doesn't have script attached.

              xyz Yeah I have some generic names, or reused names in other codes/signals that create confusion.

              I even have var that are almost identical to a func except with an s... it is a mess haha.

              Not sure how I made it work.

              • xyz replied to this.

                Tomcat oooo.... that could be super helpful. Better then having to use print to check signal connections.

                xRegnarokx Avoiding obvious confusion is the bare minimum of name design. The real challenge though is in making your names good; as short as possible while at the same time as meaningful as possible. It's always a tug of war between brevity and expressiveness. Note that name's scope is a significant factor too.

                For designing a large set of names that need to work side by side in a project, it's useful to have a broad vocabulary for concepts in your problem domain as well as general computing concepts. Opening a thesaurus now and then is also not a bad idea.

                  xyz yeah I have a lot of names like update_this(), load_this(), start_this().