GithubHelp home page GithubHelp logo

entity_ai's Introduction

NAME

The entity_ai name is kind of lame, so, I likely will want to change the name to something that more appropriately represents it's architecture. There is absolutely nothing AI about this desing, and it's more of a finite state machine than anything. Not that that diminishes the project in any way. But despite it's capability of plugging in a real AI of sorts, it currently doesn't do that.

LICENSE

Copyright (c) 2016-2019 - Auke Kok [email protected]

entity_ai is licensed as follows:

  • All code is: LGPL-2.1
  • All artwork is: CC-BY-SA-4.0

except:

  • sound files in the sounds folder are licensed according to their respective licenses (documented in sounds/readme.md).
  • stone_giant.png is identical to default_stone.png from minetest_game and licensed as the original.

["code" means everything in lua files, "artwork" means everything else, including documentation, sounds, textures, 3d models]

SPLITTING UP THIS PROJECT *

In the future, the core API code will be seperated from the monster definitions. Each monster will be it's own mod permitting users to disable/enable monsters as they see fit. This organization will help to keep per-mod specific code out of the core and make core functions better suited to handle all monsters.

entity_ai's People

Contributors

ferk avatar mbartlett21 avatar sofar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

entity_ai's Issues

Licensing

  • Licensing just the artwork under CC-BY-ND does not disallow derivatives on the code, which isn't distributed under the same license. Only issue is that documentation would have to be rewritten from scratch if the API of a fork was different from the original. However, the licenses are still effective in reducing forking, by limiting the number of people who want to work on the project.
  • Even if the licenses worked in the way you described, it would make it a little bit harder to contribute since people could not put their changes in a public repository to make a pull request.
  • It's not clear if documentation is meant to include code comments
  • Forking this mod would have no significant negative consequences, as long as the forks used a different mod name. It would be even beneficial if they provided modified APIs, since modders would have greater choice in how they make their mobs.
  • Mobs would not have to switch to a LGPL-compatible license later on, because of the dynamic linking exception.

Though it looks like the repository might be meant more as just an in-progress preview of something you want to merge into minetest_game instead of a standalone mod, since the CC-BY-ND license would prevent it from getting in the mod releases forum. In that case, most of my non-technical criticisms would not apply.

Factors don't belong in the state

From looking at the code, it looks like factors give input to states by setting fields in the state. This seems ugly and unnecessarily stateful, and the fact that the factors are nil-ed right in start after being checked suggests that they are not conceptually part of the state.

Why not pass factor parameters into the state as a parameter to start? It would remove the need for the factor = nil boilerplate and leave less room for error.

Spawning

How should mobs spawn? You have no spawn code in the engine. Should this be done in mods or do you want to add this to the engine?

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.