Giter Site home page Giter Site logo

chopin407 / jbt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gaia-ucm/jbt

0.0 0.0 0.0 8.29 MB

Java Behaviour Trees is a Java framework for easily building and running generic behaviour trees. Here, "behaviour tree" refers to the technique used to control the behaviour of characters in video games.

License: Apache License 2.0

Perl 0.32% Java 99.68%

jbt's Introduction

*******
License
*******

JBT is released under the Apache License, Version 2.0.

****************************
What's Java Behaviour Trees?
****************************

JBT is a Java framework for building and running behaviour trees. In the past few years, behaviour trees have been widely accepted as a tool for defining the behaviour of video games characters. However, to the best of our knowledge, there is no free-software Java implementation of such concept. With JBT we intend to provide a solid framework to build and run behaviour trees in Java.

JBT has two main parts. On the one hand, there is the JBT Core (it is the Eclipse SDK project under the "./JBTCore" directory), which implements all the classes needed to create and run behaviour trees. JBT Core basically lets the user create behaviour trees in pure Java and then run them. In order to ease the task of creating behaviour trees, JBT Core includes several tools that automatize the process of creating behaviour trees. In particular, it can create the Java source code of a behaviour tree from its description in an XML format. By doing so, the user of this framework basically has to worry only about defining behaviour trees in XML files and implementing the low level actions and conditions that his trees will use, which are domain-dependant (that is, they depend on the game being played).

On the other hand, there is the JBT Editor (which is composed of two Eclipse SDK projects under the "./JBTEditor" directory). The JBT Editor is a GUI application that can be used for defining behaviour trees, and then exporting them into XML files in the format that the JBT Core understands. The JBT Editor offers a set of standard nodes for building behaviour trees. It includes nodes such as sequences, parallels, decorators, etc. For low level actions and conditions, the user can provide their conceptual definition through Make Me Play Me (MMPM) domain files (for more information on MMPM, see the Sourceforge page of the project "Darmok 2"). The JBT Editor is an Eclipse RCP application. You must use Eclipse SDK in order to run it.

JBT implements a behaviour tree model which is mainly based on that of the book "Artificial Intelligence for Games", second edition, by Ian Millington and John Funge. JBT also includes the concept of "guard" and static and dynamic priority lists, which make use of guards. JBT behaviour trees are driven by ticks, which means that, in order for them to have CPU time, they need to be externally ticked. By following this pattern, the user can control how much CPU time the behaviour tree consumes.

***********************
For more information...
***********************

For more information on JBT, see the user's guide, which is located under the directory "./UserGuide". It contains the documentation itself along with the Latex source files.

*********************
Directories structure
*********************

./Documentation: contains the project's documentation, explaining what JBT is and how the framework works. It also contains the source code of the documentation, which is written in Latex. Images are in several formats, including ODG.

./JBTCore: contains the main framework of JBT, that is, the set of classes that are needed in order to use it. However, it is encouraged to use the JBT Editor, placed in "./JBTEditor". This project is structured as an Eclipse project, so we encourage the user to use Eclipse SDK when working on it.

./JBTEditor: contains the JBT Editor, a GUI application that lets the user define behaviour trees and export them into XML files that are easily handled by JBT. When creating behaviour trees, the user should use this application. This is an Eclipse RCP application, so Eclipse SDK must be used to run it. In order to run the application, just open the file "bteditor.product" with the "Product Configuration Editor" (right click on the file, then "Open With -> Product Configuration Editor"), and in the "Overview" page, click on "Launch an Eclipse application".

./UserGuide: contains the user's guide. It also contains the source code of the user's guide, which is written in Latex. Images are in several formats, including ODG.

*******************
Binary distribution
*******************

If you just want to get the compiled version of JBT or its documentation, go to our SourceForge download page:

https://sourceforge.net/projects/jbt/files/?source=navbar

jbt's People

Contributors

ricardojuanpalmaduran avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.