This member has provided no bio about themself...
While discussing how to best use the scripting functionality of the Dragengine, I ended up with a long post that received a very short answer from Dragonlord: Moves this to an article. Well, here we go:
Let's see if I can summarize the API in a few handy words:
- under common the folders curve, math, shape for base geometry, color data classes and operations on them.
- the folder filesystem plus under common the folders string, xmlparser, file for base text persistence classes and operations on them.
- the folders logger, errortracing plus under common the folders exceptions for cross cutting error handling.
- the folder resources which seems to include mid and high level visual entities, artificial intelligence, physical and networking.
- the folder systems, containing the folder modules, containing interfaces for all modules, which then probably during runtime get their different implementations plugged at the will of the user.
All in all a neat setup :-). Maybe slightly unbalanced folder tree and a bit inconsistent sorting of the related structures, but oh well, systems grow and have a life ;-).
Now taking a look at the scripting:
- first impression is, it seems to be heavily relying on events and the implementation seems to be required to implement a lot of callbacks for AI, physics, rendering, network... . That sure covers the necessities for game logic, but seems quite cumbersome as a base layer.
- first idea is, I'd want to provide base game logic entities like avatar, tool, material, product, monster, machine, and some abstract game facilities to bind all the nuts and bolts together to something easily accessible. But maybe my short skim over the documentation made me overlook some gems that possibly already fulfill such desires?
Feel free to comment, especially if you have answers to my last question! Thank you :-).