Ty for your feedback.
@Heelx: The main idea is to make 3dgs more unity like. You can extend your entity by simply adding components(and those have always the same syntax and can easily be migrated from project to project). Components can be nearly everything(particle emitters, controllers, ...).
I now added the possibility to add singleton components. Singleton Components only run once per game(Input, Settings, Interface, ...). I also added the possibilty to set the execution order of components:
Code:
CPSetSingleton("Input", CPComponentListEarly);
CPSetSingleton("Interface", CPComponentListLate);
CPcurrentEntity = ent_create(CUBE_MDL, vector(10, 15, 20), NULL);
CPSetComponent("transform", "Transform");
CPSetComponent("player", "Player");


Furhter more i added the possibilty to store variables per instance with the help of macros. Now components look like this:
Code:
CPData(Player)
	Transform transformation;
	var health;
	void move;
CPDataEnd(Player)

CPStart(Player)
	this->transformation = CPGetComponent("transform");
	this->health = 20;
CPEnd(Player)

CPUpdate(Player)
	this->transformation->rotation->pan+=1*time_step;
	this->health += 0.5 * time_step;
	TransformTranslate(this->transformation, vector(1*time_step, 0, 0));
CPEnd(Player)

CPGui(Player)
	if(IPGetKey("Mouse left"))
		UILabel(1, UIRectC(20, 20, 200, 40), "Mouse left is hold down");
	if(IPGetKeyUp("a"))
		printf("a key released");
	if(IPGetKeyDown("a"))
		printf("a key pressed");
	if(UIButton(2, UIRectC(250, 100, 200, 40), "Hello, world!"))
	{
		printf("button pressed!");
	}
CPEnd(Player)



Last but not least, as you can see I started to implement a Input and frame based GUI component to 3dgs(will get like the unity gui, except that it will only run once per frame).
The first parameter for the GUI functions is an id. This will be no more needed if jcl implements the __Line__ and __File__ macros for 8.6 wink (ty jcl <3 )

regards Alain