The only problem with this "ooP"(Object-Oriented Programming) aspect of 3dgs, is that you can't just arbitrarily declare data members, instead you're forced into the skills and flags regime which are limited in number(skills are at 100 while flags are at ... 10 or 20? Not quite a lot.); That, my friend, can be a hassle with relatively complex games. And you also have to use DEFINES with those skills if you want a legible name; With c++, you'd just declare...

Struct Enemy
{
int health = 100;
int damage = 5;
}

Enemy Enemy_One;

And then simply do...

Enemy_one.health -= Enemy_one.damage.


You could also do ARRAYS of structures which allows you to simply scroll through the different members(In this case enemies), and quickly and efficiently handle and manipulate data(in this case, the enemy's health.). In C-script, you have handle that one at a time, copy and pasting it with each action(Or use a function which is C++ -like.).