Jump to content

Aily

Members
  • Posts

    465
  • Joined

  • Last visited

Posts posted by Aily

  1. ' declare some type with object as field
    Type sometype
    Field name:String
    End Type
    
    ' clear memory to clean test
    GCCollect()
    
    
    ' used memory at start
    Print GCMemAlloced() ' --- 17210
    
    ' creating object and putting in it some string
    Local t:sometype=New sometype
    t.name="some string"
    
    
    ' memory incrased, all cool
    Print GCMemAlloced() ' --- 17244
    
    ' seems like t is not need anymore - make it null
    t=Null
    
    
    ' clearing memory
    GCCollect()
    
    ' o_O something do not deleted
    Print GCMemAlloced() ' --- 17222
    

     

    Result of this example is

    17210

    17244

    17222

     

    I tried to remove string

    t.name=null

    t=Null

     

    ...same results

     

    tried like this

    t.name=""

    t.name=null

    t=null

     

    :( same result.

     

    I'm writing some text parser and it eats memory - and don't free it. Maybe i can't use bMax, does anybody has same trouble?

  2. Metatron suggestion is nice and it can do very well..Only issue is if you wanna use it over animated characters having skin naturally..so, good way would be to store vertices position and just update vertices for each frame, but thats already done and its called MD2/MD3. It will be great addition to LE..

    Yeah, want same too.

  3. Is there any sense - to make game for MacOS too?

     

    Here, in Russia, Mac is not popular. So how things are going in other countries with it?

     

    Or it's only loosing time work? How do you think?

  4. What do you talking about? :) Hide..code..password. Ok, seems like Quake3 code are shared, which one of you all see it? I think is code doesn't need anyone. Need ready product. And if some peace of my code will have somebody - he's welcome (after project release). Because next code - is always better than previouse.

  5. hey, i dont think its possible but i just try to ask =)

     

    I wanted to use my little old laptop with that intel gma chipset for testing my character network synchronisation and stuff with a real network connection (not just 127.0.0.1).

     

    But i cant start my game.exe since this thingie dont got that shader stuff.

     

    Is it anyhow possible to run it anyway? even when it looks like crappy **** i just want to test that network stuff =)

     

    has same trouble with old notebook. You can try to update latest drivers for video, remove skinned meshes, cubemap reflections, terrain, all lights and buffer work from code - and Leadwerks maybe runs then.

  6. Ok, it was long time ago when i start my gamedev playing with Blitz3D.

    It have very simple commands, and make casual game on it very easy.

     

    When i bought Leadwerks it was very cool that it's handle most Blitz3D commands, and same handy for me.

     

    But...

     

    Collisions system some confused me. But nothing was to do - i start to use Leadwerks Newton based collisions.

     

    It realy rocks! Anyone want to have realistic physics in personal project.

     

    But Newton have some complexity in charachter controls, that's why Josh maked his own. All cool, Leadwerks controller very good for FPS games, or strategy, RPG - where charachter must walk on ground and be realistic.

     

    Working with Last Chapter and couple external projects i was found some complex places in charachter controller:

     

    1. Swept collisions doesn't working

     

    a: If i will make game where my hero can fall from high places - he will fly by through florground (someone here saw this bug when robot in Last Chapter stacking in blocks)

     

    b: If enemy can punch player - it make very much velocity to push charachter controller, and player can just fly through thinn wall behind him.

     

    2. If geometry of stair vertical faces will be not 90 degrees (0,1,0 vector), controller can handle it as heavy slope, and don't want to walk there

     

    You can put small boxes (bricks) to ground, and little turn it randomly - controller will stacking in it, and "step height" value doesn't matter to him.

     

    3. Casual games need casual charachter, and in 2.5D jump'n'run platformer - some complex to stay controller on one value by axis, but leave physics responce to it.

     

    If geometry of physics world in such game will be not perpendicular each other - it make controller slide to leftright, and put it to z=0 value not be so handy.

     

    Or lets say it will by TDS when you fly by helicopter on one height from earth - collision with ground mountains will slide controller topdown. Same problem.

     

    4. Controller have rectangle form by side

     

    Ok, we making RPG for example, and our hero walk little out platform, as i expecting - it slide down from it, but default controller will still stay over platform break. (Seems like Quake2 known bug)

     

    Ufff... it's harder on not native languge when i thinking in top of text smile.png

     

    What can i say, minib3d (Blitz3D) collisions not so powerfull as Newton system, but, as answers on my notes:

     

    1. minib3d collisions always swept

    2. Moveble body in minib3d is sphere or egg, so it good working with rough geometry

    3. Wee simple PositionEntity body,entityx(body),entityy(body),0 and it never go anyway from z=0

    4. Egg form, do you remember wink.png

     

    ....

     

    At last i connected minib3d and Leadwerks, it have same commands and conflict with each other, so i little rewrote minib3d library. Now there each command have "bb" prefix, and types too

     

    Like

     

    cam=bbCreateCamera()
    bbMoveEntity cam,0,0,-10
    

     

    or

     

     

    ent:bbtEntity=bbCreateCube()
    

     

    Leadwerks as you guess can be any version.

     

    So code to connect them is very simple - i calculating moving of minib3d bodies, next set Leadwerks meshes to minib3d bodies positions.. and i have Blitz3D with full Leadwerks featurestongue.png

     

    tiny example

     

    ' init both Leadwerks and minib3d
    Framework leadwerks.engine
    Import sidesign.minib3d
    
    registerabstractpath AppDir	   ' Leadwerks
    
    ' Helper function to get position/rotation of minib3d tEntity and set it to Leadwerks tEntity
    Global tmp:tvec3=vec3()
    Function align_as(lw_entity:tentity,bb_entity:bbtentity)
    
    tmp.x=bbentityx(bb_entity)
    tmp.y=bbentityy(bb_entity)
    tmp.z=bbentityz(bb_entity)
    PositionEntity lw_entity,tmp
    
    tmp.x=bbentitypitch(bb_entity)
    tmp.y=bbentityyaw(bb_entity)
    tmp.z=bbentityroll(bb_entity)
    RotateEntity lw_entity,tmp
    End Function
    
    ' basic inits
    Graphics 800,600		 ' Leadwerks
    createworld		   ' Leadwerks
    
    lw_cam=CreateCamera()		' Leadwerks
    MoveEntity lw_cam,vec3(0,0,-2)	  ' Leadwerks
    
    ' createing minib3d pivot and Leadwerks cube, in main loop we will rotate minib3d pivot, and set Leadwerks cube to this pivot orientation
    bb_body=bbCreatePivot()		' minib3d
    lw_cube=CreateCube()		' Leadwerks
    
    Repeat
    If KeyHit(key_escape) Or AppTerminate() End
    
    bbturnentity bb_body,1,2,3	  ' minib3d
    align_as lw_cube,bb_body
    
    RenderWorld		  ' Leadwerks
    
    Flip 1
    Forever
    

     

    complied minib3d module - just unpack to mod folder (ahh, known minib3d bug with TurnEntity there fixed wink.png)

     

    To see minib3d API - just look at Blitz3D online help

    sidesign.mod.rar

    • Upvote 1
  7. oppsie, just been playing with it as it happens.

     

     

    luastate.L is the Leadwerks Lua state

     

    Thanks, it realy works.

     

    ....
    Include "lua-gluefunctions.bmx"
    .....
    
    Function run(fullpath$)
    Print "Run script: "+fullpath
    If luaL_dofile(luastate.L,fullpath)
     Notify "Error in script: "+fullpath+Chr(13)+lua_tostring( luastate.L, lua_gettop(luastate.L) )
     End
    End If
    End Function
    run "index.lua"
    

  8. Thank you all! most likely I will choose Xors3d.

     

    Select careful. Xors3D still doesn't have good shadow system. It shadows are deferred, so it impossible to use with FSAA (will be artefacts at edges). At the end you probaly will inable shadows in, it and disable FSAA. And you will get same render picture as Leadwerks, but - all shaders you will need to write yourself for it. There are couple examples in SDK, but most thing you will need to write yourself.

     

    Leadwerks have ready to use shaders. And here it rocks.

  9. I was worked with Xors3D some time. Leadwers is much handy to work with shaders. Lights system in Leadwerks is much easier to use.

     

    Best things in Xors - is possibility to make games for very old PC, with forward rendering and vertex attenuation. Real FSAA.

     

    In Xors3D you can use BMP,TGA,PNG,JPG as textures without conversation it to DDS as it in Leadwerks done. In this place Xors3d better.

     

    Language is very similar (b3d based).

  10. Culling = determining what objects need to be rendered.

     

    I hope it runs like this:

     

    in render loop for each entity make frustum, distance and occlusion culling

    if all Ok - render

     

    If i turn back from scene, and don't see it - my FPS became up to 300(!), so i think frustum culling still working for each entity and after it - do not renders entities because it out of camera frustum. So it's very fast, and it's great.

     

    But when i turn to scene (with many-many entities) - frustum culling still there, but added distance+occlusion culling.

     

    (i have tested single mesh renders extreme fast)

     

    So i think distance and occlusion culling - is EVIL.

     

    Can i ask about feature for LE2.x - disable any culling per entity? Think it's very simple to implement :)

     

    Your numbers there look like you are trying to break the engine. 1.8 million polys before shadows? 10,000 entities? Really? We had 10,000 entities in the Zone concept scene, but they were distance culled.

     

    I can't open cards right now, but it something realy amazing ;)

  11. Seems like 2 parameters in info affects render speed, it's

     

    Entity cull time

    and

    Entity draw time

     

    Scene have no any lights (for clean testing)

     

    I can decrase Entity draw time by attaching separate material chanels (surfaces) to one texture on whole mesh, and then Entity draw time will be very little. But Entity cull time will be at the same value.

     

    I don't think that Entity cull time is frustum culling time, because when i'm turn away from scene - this value droped to zero (in this way frustum culling always pass throw all entities in scene)

     

    What is Entity cull time? May be will be better tu turn (somehow) off entity culling?

    post-260-0-91189400-1331438051_thumb.jpg

×
×
  • Create New...