An entity and spell system c++ godot engine module, for complex (optionally multiplayer) RPGs.
Go to file
2020-03-09 00:35:48 +01:00
data Updated old style getters/setters to use the new style. E.g. sget_ -> gets_. 2020-02-26 21:20:54 +01:00
doc_classes Updated old style getters/setters to use the new style. E.g. sget_ -> gets_. 2020-02-26 21:20:54 +01:00
docs Updated old style getters/setters to use the new style. E.g. sget_ -> gets_. 2020-02-26 21:20:54 +01:00
drag_and_drop Updated the license header for 2020, also added the license text to the top of the c++ files. Removed a now unneeded, unused file. 2020-01-31 19:34:47 +01:00
entities Updated old style getters/setters to use the new style. E.g. sget_ -> gets_. 2020-02-26 21:20:54 +01:00
formations Updated the license header for 2020, also added the license text to the top of the c++ files. Removed a now unneeded, unused file. 2020-01-31 19:34:47 +01:00
infos Added support for item spells. 2020-02-25 14:00:55 +01:00
inventory Organized the data folder's classes into subfolders. 2020-02-03 13:01:17 +01:00
pipelines Organized the data folder's classes into subfolders. 2020-02-03 13:01:17 +01:00
profiles Ported a few of Entity's virtual methods from BrokenSeals. Started reworking spawning, and Entity initialization. Moved the singletons into a new singletons folder, and renamed the profile_manager folder to profiles. 2020-02-03 11:56:52 +01:00
singletons Add use spell points setting. 2020-02-21 11:56:57 +01:00
skeleton Organized the data folder's classes into subfolders. 2020-02-03 13:01:17 +01:00
ui Updated the license header for 2020, also added the license text to the top of the c++ files. Removed a now unneeded, unused file. 2020-01-31 19:34:47 +01:00
utility Now entity also stores the class level, and class xp. Added separate class and character xp properties to EntityCreateInfo aswell. Standardized the remaining methods in XPData. 2020-02-20 12:18:55 +01:00
world_spells Ported the spell and aura script from BrokenSeals. Also small work on WorldSpell. 2020-02-01 02:37:10 +01:00
.gitignore Now the module can be built as a shared library. This doesn't work on windows (at least it didn't a while ago when I tried it). 2020-01-03 15:52:26 +01:00
config.py LootDataBase should be a lot more usable from now. 2020-02-26 21:05:39 +01:00
config.pyc The bag is now scriptable. 2019-08-14 15:52:23 +02:00
entity_enums.cpp Levels are now (properly) separated into class and character levels. 2020-02-19 12:17:10 +01:00
entity_enums.h Levels are now (properly) separated into class and character levels. 2020-02-19 12:17:10 +01:00
item_enums.cpp Added support for item spells. 2020-02-25 14:00:55 +01:00
item_enums.h Added support for item spells. 2020-02-25 14:00:55 +01:00
LICENSE Updated the license header for 2020, also added the license text to the top of the c++ files. Removed a now unneeded, unused file. 2020-01-31 19:34:47 +01:00
README.md Removed outdated information from Readme.md. 2020-03-09 00:35:48 +01:00
register_types.cpp LootDataBase should be a lot more usable from now. 2020-02-26 21:05:39 +01:00
register_types.h Updated the license header for 2020, also added the license text to the top of the c++ files. Removed a now unneeded, unused file. 2020-01-31 19:34:47 +01:00
SCsub LootDataBase should be a lot more usable from now. 2020-02-26 21:05:39 +01:00
spell_enums.cpp Updated the license header for 2020, also added the license text to the top of the c++ files. Removed a now unneeded, unused file. 2020-01-31 19:34:47 +01:00
spell_enums.h Updated the license header for 2020, also added the license text to the top of the c++ files. Removed a now unneeded, unused file. 2020-01-31 19:34:47 +01:00

Entity Spell System

An entity and spell system for the GODOT Engine.

Usable for both 2d, and 3d games.

The actual player, mob etc implementations are still in the main game's repository (https://github.com/Relintai/broken_seals). (As GDScript)

This module have optional dependencies to some of my other engine modules.

The main class that can be used for players/mobs is Entity. I ended up merging subclass functionality into it, because that way it gains a lot more utility, by sacrificing only a small amount of memory.

For example this way it is easy to make chests attack the player, or make spell that animate objects.

Spell is the class you need to create spells, it stores the data, and also it has the ability to be scripted.

Aura is also built the same way.

The module provides a huge number of script callbacks, usually as vmethods.

The main data class is EntityData. You will need this to properly initialize an entity.

The module can do multiplayer, but it's not finished, and at the moment not safe to use. It should mostly work though. Also it supports entity visibility. If you need rpcs that use this, use vrpc. (Implemented inside Entity).

Every variable is broken up into clientside, and serverside ones, when applicable. This makes it easy to develop games, that can also run locally, with less overhead. And simpler logic. E.g. this makes it easy to use the visibility system even on the server, because you just use the clientside variables, and the logic will work the same way.

Right now everything wokrs authoritatively, except for movement. FYI Movement is handled in GDScript int the game's repo right now. (I plan to implement authoritative movement later.)

Everything is called the remotesync way, but instead of remotesync, I have c++ macros, which sends the rpc, and then calls the given function directly aswell.

For usage check the main game's repo.