Announcement

Collapse
No announcement yet.

[FINISHED] DOT Fuzzy Logic AI Engine Pre-Alpha (Open Source)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    [FINISHED] DOT Fuzzy Logic AI Engine Pre-Alpha (Open Source)

    So quite a while ago, I did promise that I was going to release full source code to DOT. I plan to hold up this statement for future reference. As for now, I'm releasing an older version of DOT + an open source editor.

    None of the architecture present in the version I'm releasing here is present in the version that my studio uses. (We've moved to a cluster based system, and integrated various LOD management solutions). If you have any questions, let me know. I didn't have enough time to create proper documentation, so I'm sure tons of people won't have the first clue how to navigate through this.

    This version does not include a UE4 port; however, future open source releases will. Everything here is in native C++ and C.
    The license is of course GNU General Public. Therefore, any modifications to this code base that you make (Including ports, integrations, etc) must be open source as well. However, the code may be treated as BSD in the event that the editor is not being distributed. (ie: Distributing a game to consumers)

    A lot of the SDK functionality (In this version) is covered in AI_Sample.cpp.
    I have also included 4 example XML files. Future versions of DOT output different results for the same input, so try to not become too keen on a particular set up.

    While this is not required by my software license, if you plan to use DOT in your game, please let me know I can provide extra support for you and your team.

    This version has few optimizations, however still runs at a considerable 90k Entities/second. Future versions are well above the 500k Entities / second mark.

    http://matrixcompsci.github.io/DOT/

    Our original post: https://forums.unrealengine.com/show...tion-Templates (Note this was when we were trying to fit everything under one engine. As mentioned below, DOT has split into 4 SDKs)

    PROJECT GOING CLOSED SOURCE. SEE POST #36
    Last edited by MatrixCompSci; 01-30-2015, 06:41 PM.

    #2
    As I should point out, few features are included here from the original scope of DOT. DOT split into 4 different engines (DIAG, LiNK, DOT, and ZETA), and currently DOT only encapsulates the Utility and Inference components. DIAG, which *may* (Do not quote me on this) be released, is a full natural language generation and processing library. It works only with DOT, but can use a few well known NLP and NLG libraries as its framework.

    ZETA does group management, and provides an LOD system.

    LiNK is for compression and networking of DOT's data.

    LiNK and ZETA won't be released anytime soon

    Comment


      #3
      I for one, have been giving a good shot at this. If you want to build a Sims like game or very open ended RPG. This is what you are looking for

      Click the tiny bird!
      It'll take you to my stuff!

      Comment


        #4
        Expect the first DOT tech demo by January, and the first playable tech demo shortly after
        Last edited by MatrixCompSci; 11-18-2014, 09:19 PM.

        Comment


          #5
          Originally posted by MatrixCompSci View Post
          The license is of course GNU General Public. Therefore, any modifications to this code base that you make (Including ports, integrations, etc) must be open source as well.
          UE4 and GPL are not compatible, so nobody can use your code legally.
          GPL infects the whole code, so users of this would be forced to release the game source code and the UE4 source to any customer. This is not possible for UE4 code since only people with a subscription have access.

          Maybe you can add an exception, so you say "licensed with GPL with the following exception".

          But it would be easier to use LGPL with static linking exception. Then people can use it, also statically link it, and do not have to opensource their game and engine code, but still have to release changes to your code. This sounds exactly like what you want. E.g. wxwidgets uses something like that: http://www.wxwidgets.org/about/licence/ or zeromq: http://zeromq.org/area:licensing

          Edit: I just saw on the linked zeromq page they say MPL v2 (Mozilla Public License v2) is basically like LGPL with static linking exception, so you can use that then you can use a standard license without exceptions.
          Last edited by Tarantula; 11-18-2014, 09:46 PM.

          Comment


            #6
            That's quite useful to know... I need to keep part of my code GPL though, since I'm using some other GPL projects within it it for the editor. Yeah, I think I should add that

            Comment


              #7
              Originally posted by MatrixCompSci View Post
              That's quite useful to know... I need to keep part of my code GPL though, since I'm using some other GPL projects within it it for the editor. Yeah, I think I should add that
              If it's just your editor that relies on GPL code then you can license your editor under the GPL, and license the library people will need to link into UE4 under a more permissive license. I would strongly recommend licensing the library under a BSD, MIT, or Apache v2 license, as these are well known, mentioned in the UE4 FAQ as being compatible, and are likely the quickest to get approval for (in cases where people have to deal with a legal department before integrating third-party libraries into their products).
              Contact: enlight in #unrealengine IRC channel on Freenode, or @macagonator on Twitter

              Comment


                #8
                The license is of course GNU General Public. Therefore, any modifications to this code base that you make (Including ports, integrations, etc) must be open source as well. However, the code may be treated as BSD in the event that the editor is not being distributed. (ie: Distributing a game to consumers)
                I fixed the license here. I'll update it on github in a bit.

                Comment


                  #9
                  Fixed all the license stuff. There shouldn't be an issue anymore

                  Comment


                    #10
                    If anyone is on an AMD bulldog era CPU, please debug DOT and let me know where exactly you're crashing. This bug has been tormenting me for a month now

                    Comment


                      #11
                      MatrixCompSci,

                      But what is DOT? What does D O T stand for?

                      Comment


                        #12
                        I'm not sure what we originally said it stood for, but now for most of my team, it's
                        Destination
                        Oriented
                        Templates.

                        Just because, at least in the final version, how it will work is by specifying plot points that the ais need to hit. These plot points will be reached by the ais that are based off of the templates of main characters that the programmer has specified.

                        These (instances of) templates wish to a) stay alive b) acquire more of a particular attributes. So maybe the plot point is that the orcs need to take over a certain island. The orc templates will be compiled with that objective in mind, and it will be ingrained into their attributes and general goals. They may have an attribute for Islands that has a higher desire rate (A stronger gradient in the SDK). After they take over the island, the template changes since the goal has been met. They then move onto the next plot point as specified within the tree of various plot devices that the designer had specified.
                        Last edited by MatrixCompSci; 11-21-2014, 05:58 PM.

                        Comment


                          #13
                          I had a very nice discussion about this on reddit:
                          http://www.reddit.com/r/gamedev/comm...e_have_a_look/

                          Comment


                            #14
                            Does that clear things up?

                            Comment


                              #15
                              All that sounds awesome.
                              Sadly I have other stuff to finish before I have time to play with it :-(

                              Comment

                              Working...
                              X