Jump to content

DaDonik

Members
  • Posts

    376
  • Joined

  • Last visited

Posts posted by DaDonik

  1. No problems here :)

     

    World size: 50000

    Camera Range: 6000 (if that matters...maybe??)

     

    A model at Vec3(6000.0F) looks exactly the same as Vec3(3000.0F), no matter

    if there is a light or not...

     

    Have you tried it with a smaller model? Mine are max 20 units across.

  2. When i remember correctly, that demo was made using balljoints to link the rope parts together.

     

    I hacked something together for you:

     

    DebugPhysics (1);
    TBody LastBody = NULL;
    TVec3 Vec3Pos = Vec3 (0.0F);
    for (int i = 0; i < 10; i++)
    {
    	Vec3Pos = Vec3 (0.0F, 0.0F, (float)i * 6.0F);
    	TBody NewBody = CreateBodyBox (0.5F, 0.5F, 5.0F, 0);
    	SetBodyMass (NewBody, 1.0F);
    	EntityType (NewBody, 1, 0);
    	PositionEntity (NewBody, Vec3Pos, 0);
    	if (NULL != LastBody)
    	{
    		TJoint NewJoint = CreateJointBall (NewBody, LastBody,
    				Vec3 (0.0F, 0.0F, Vec3Pos.Z * 0.5F), 
    				Vec3 (0.0F, 0.0F, 1.0F));
    		SetBallJointLimits (NewJoint, 2.0F, 0.0F, 0.0F);
    		SetJointCollisionMode (NewJoint, 0);
    	}
    	LastBody = NewBody;
    }
    

     

    Far from ideal, but it has some kind of a rope structure :)

  3. Don't know if you already know but...

    Your material file must(!) have the same name as the texture you applied to your model in 3DSMax.

    When you don't name your material that way, the engine will not know witch material to use -> white object in the Editor.

  4. You could take a look at the framewerk (renderer.cpp) to check what it does when the buffer size changes.

    Using framework, all you need to do is call Graphics(...) and it works in all cases.

     

    I remember that some parts of the renderer.cpp had fancy graphics related stuff. Maybe your implementation

    is missing something there :)

  5. Actually i think it depends on what you want to do.

     

    For example, speaking as a FPS-lover, i hate when my bullet doesn't

    exactly hit where i shot. So it maybe would be best to do this via

    an absolutely straight raycast.

     

    On the other hand, when making a space simulation you maybe want to shoot

    ships to pieces and assign the right velocity, ect. to it. The "best" (maybe not fastest)

    would be to create a entity as a bullet/missile/laser and let the collision callback

    deliver you the impact force and so on...

     

    It really depends on the game and the CPU/GPU time you have left to waste. ;)

  6. Ok, this will be a bit rough, but should you get started.

    (Note that i do use lua explicitly for setting entity properties

    and not for actual scripting).

     

    Pipeline (programmers point of view :D)

    -------------------------------------------

    1) Make a model, export to the right format, ect.

     

    2) Make a lua script for that model

    (does not need to do anything in your game. I use the scripts just

    for adjusting the properties dialog.)

     

    3) Create a scene in the editor and place some models there.

     

    4) Open the properties dialog for each model and adjust the properties

    as you wish. (add own properties via the lua script)

     

    5) Save that scene as sbx file

     

    6) Open the file in any text editor and take a look at it. You'll see

    every model you placed in the editor and the according values. So you

    can also make a scene in notepad. :P

    All properties your model has are written like: "entitykey"="somestring"

    These are extremely important, as they are loaded along with the model.

     

    7) In your program you can call LoadScene("abstract::MyScene.sbx") and this

    will load all the graphics + the keys specified for each model.

    You can easily retrieve the entity/model keys using the GetEntityKey() function.

    At this point it is even possible to create an instance of a class and glue

    that class instance to the entity and set up some predefined callbacks that

    call methods of that class...that is really nice to have ;)

     

    Hope that helps.

  7. You can just use a corona. I made some kind of starfield with that.

    The most simple approach i used for testing was:

     

    for (int i = 0; i < 1000; i++)
    {
    	TCorona NewCorona = CreateCorona (0);
    	TVec3 Vec3Temp;
    	Vec3Temp.X = 3000.0F - (float)(rand() % 6000); 
    	Vec3Temp.Y = 3000.0F - (float)(rand() % 6000);
    	Vec3Temp.Z = 3000.0F - (float)(rand() % 6000); 
    	PositionEntity (NewCorona, Vec3Temp, 0);
    	SetCoronaRadius(NewCorona, 10, 20);
    	PaintEntity(NewCorona, LoadMaterial("abstract::Corona_Sun_001.mat"));
    	EntityViewRange (NewCorona, 0.0F, 3000.0F, 1);
    }
    

     

    This makes a static "starfield", if you use some kind of star corona dds file.

    The stars are always rotated towards the camera and the FPS drop is minimal if you son't choose to have thousands :D

  8. I just tried out what happens when i run my wip-game over 2 hours. Using the task manager to check the RAM usage, there was no change at all.

    The game uses entity callbacks and messages all the time.

     

    Can't say anything about behaviour of AppSpeed, as i use my own timer :blink:

  9. I use FixedJoints to glue my spaceships together. The spaceship itself can freely rotate in space and i have not encountered

    any type of "child movement" as you described Rick. Maybe it's just because of the character controller.

×
×
  • Create New...