Contributor Digging into code - hit a rock - crafted a pickaxe

oniatus

Member
Contributor
Architecture
  • Name: @oniatus
  • Social: https://github.com/oniatus
  • From: Germany
  • Skills / Tools: I am working with Java for some years now in various smaller projects. I am not using IntelliJ but eclipse and made some smaller contributions to the Eclipse IDE myself, so working on a large codebase is not completely new to me. I am familiar with git and have basic knowledge of github/gradle/jenkins/some others but nothing very special.
  • Found via: Some years ago, by looking for alternatives to minecraft.
  • Interests: Hard to specify. I tried to write smaller and bigger games all the time but most of them never reached prototype-level. Games like dwarf fortress are most interesting to me, as I like trying out mechanics for AI/Terrain Generation. I made some smaller experiments with perlin terrain generation (rendered 2d on a Swing-Canvas, my 3D skills are ... low ;)) and tile-based games with some behaviour trees.
  • Extra: I was following the project as a guest for around two years now and tried out the last version from time to time. Last week I found some spare time to get into the code - or at least started getting into the code of some modules.
    I experimented with some modules and managed to import a model from blender in terasology (looks ugly though, my 3D artist skills match my 3D rendering skills :D). For now I am experimenting with the pathfinding (it is more than only pathfinding, right?) module and try to make my mesh follow my player, which is the point where I may need some help :)

    In a larger picture, I would like to try out things like a small game-mode, or maybe some multiplayer stuff like economics/trading/land claiming. But at first let's start with some smaller steps - like getting into the Pathfinding/Work/Behaviour stuff.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Hi @oniatus and welcome! :)

The Pathfinding module needs a solid maintainer so you're more than welcome to tweak at it. It is used in some creative ways like finding out where to put roads in the Cities module for instance. Our behavior tree AI system is also tied to it somewhat and also in need of a maintainer if we don't hear back from @synopia :( And yep there's a work system of some sort too.

@Josharias might be good for some gameplay questions and some 3D / rendering stuff, he has been messing with attaching the player / meshes / cameras in new and interesting ways lately :)

(nice little avatar btw)
 

Kazimir3701

New Member
Contributor
Can confirm. Avatar is adorable. I look forward to seeing what kind of AI and pathfinding advances are made.
 

oniatus

Member
Contributor
Architecture
This will definitely take some time :)
From my "I have no idea what to do"-perspective, the pathfinding documentation did not help very much.
Taking my use-case "Make an entity follow the player" as example:
It is not clear to me what components/system i have to assign to which entity and which components/systems i have to implement by myself.
Maybe this will be a nice example to implement with plain pathfinding first, then using work and last using the behaviour nodes.

The LightAndShadow module looks like a good point to start reading as it makes heavy use of the pathfinding module.
I will try to get my examples running the next days. If i see space for some documentation/refactoring or example projects i would post it to the pathfinding modules thread or open an issue on github.
Feel free to lead me in any direction i am missing :)
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Documentation / refactoring - please do! One of the main problems of the current setup is approachability.

Did you find the Youtube video with @synopia demonstrating the behavior tree editor and such? He has several interesting videos on BTs/pathfinding.

There might be some heavily outdated older AI in the Miniion module, or maybe that made it into Pathfinding, where a non-BT approach to have a creature follow the player was implemented. I think the Oreons might use that and still may react if near the player. In the legacy version of the game with working gelatinous cubes they'd "mob" the player if close enough. Oreons were sort of the second iteration after that, then later the BT-powered L&S creatures.
 

oniatus

Member
Contributor
Architecture
I tried out some nodes in the behaviour tree editor (using the L&S creatures), it seems that no path to may local player is found:
Sequence of :
-Set Target To Local Player - Success
-Find Path - Running (forever?)

Got some random exceptions and (dirty) fixed some initialization of the BehaviorEditor (initialize(Context) is never called on my instance -> behaviorNodeFactory was null) but at least it is a point to start the debugger for pathfinding.
And by counting my savegames, i crashed the game only 17 times this day ("experimenting progress" :thumbsup: )
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Yeah I'm pretty sure we both lack some behavior nodes and others aren't quite working. Maybe they never were or they broke in the many changes since @synopia originally implemented the system :)

You probably found issue #2070 already but I should've linked it earlier just in case. It has some related info (and a code bounty for what it is worth!) including on the v2.0 of behavior trees which was nearly completed, but not quite.
 
Top