Jump to content

Scott Richmond

Members
  • Posts

    422
  • Joined

  • Last visited

Posts posted by Scott Richmond

  1. That bit-tech story is deceiving. Larrabee isn't canceled at all - Intel have a working prototype and according to 'on paper' tests its damn good. But it just isn't as good as the AMD or Nvidia solutions yet, not to mention consumer drivers, etc. So they have decided not to release it. I think many really expected this - Intel are the biggest and best CPU makers in the world, but its going to take them a few goes to think about reaching for the GPU crown, and I think thats where they over-estimated themselves.

    We'll see Larrabee, don't you worry about that. Just expect a few fails first. Good to see Intel had the sense not to release their fail this time around.

  2. There are a great number of ways to do it. Oblivion/Fallout3 uses a 'Cell' system similar to your concept Eternal Crisis, with the exception that it loads the 8 cells around you procedurally and you can therefore roam between the cells without a loading screen. The problem it had, and this is most evident in-game, is that if you get to a position to view several cells ahead (a distant mountain) then it can look quite bad as it is little more than a tiled texture and terrain.

  3. Thanks for the replies guys. I do agree and I'm trying to improve it but I'm still having issues. The current script I have is:

    --Include the base script for all classes
    dofile("Scripts/base.lua")
    
    --This function builds the interface for the properties editor
    function InitDialog(grid)
    
    --Add the base interface for all classes
    base_InitDialog(grid)
    
    --Now we can add our own custom properties
    
    end
    
    --Spawn function for creating new instances
    function Spawn(model)
    entity=base_Spawn(model)
    
    SetKey(entity, "State", "IDLE")
    end
    
    --Update function, called during every UpdateWorld()
    function Update(world)
    currentState = GetKey(entity, "State", "NONE")
    
    -- Animation frames: Idle 0-69 Walk 70-130 Run 131-171
    
    if currentState == "IDLE" then
    	endframe = 69
    	startframe = 0
    	blend = 1.0
    	frame = (AppTime()/100.0) % (endframe-startframe) + startframe
    	entity.model:Animate(frame,blend,0,1)
    end
    end
    
    function SetKey(model,key,value)
    return base_SetKey(model,key,value)
    end
    
    function GetKey(model,key,value)
    return base_GetKey(model,key,value)
    end

     

    Engine.log doesn't report any problems, yet the model doesn't animate which suggests Get/Setkey isn't working as expected. My guess is that I'm not doing those correctly. I'll admit I'm not sure I get the entity and model objects. I'm still confused as to why I have to define the Get/Setkey functions in the first place, aren't they already defined in base.lua? Or are those functions local only?

  4. I guess it really comes down to the paradigm you want to build your game in. Its pretty obvious to me that game engines aren't a one-stop shop. You have to the pick the one that ticks the most boxes for you.

    For me, I picked LE because this is my first foray into C++ and game development, so having an easy to understand and modern OO engine is very important to me. Everything else is just a bonus.

  5. Thanks for your input Rick, but I worked it out a few minutes ago. The reason was that the Update function didn't seem to have access to the entity/model globals (if they are globals?). Either way I took a page out of the Windmill.lua book and its all working fine now. FYI - Simple script to do animation based on an entities 'State' key:

    --Include the base script for all classes
    dofile("Scripts/base.lua")
    
    --This function builds the interface for the properties editor
    function InitDialog(grid)
    
    --Add the base interface for all classes
    base_InitDialog(grid)
    
    --Now we can add our own custom properties
    
    end
    
    --Spawn function for creating new instances
    function Spawn(model)
    local entity=base_Spawn(model)
    
    entity.model:SetKey("State", "IDLE")
    
    --An update function for one instance. Declaring the function as part of the entity table allows us to use "self" for the table
    function entity:Update()
    	currentState = entity.model:GetKey("State")
    
    	-- Animation frames: Idle 0-69 Walk 70-130 Run 131-171
    
    	if currentState == "IDLE" then
    		endframe = 69
    		startframe = 0
    		blend = 1.0
    		frame = (AppTime()/100.0) % (endframe-startframe) + startframe
    		entity.model:Animate(frame,blend,0,1)
    	end
    end
    end
    
    --Update function, called during every UpdateWorld()
    function Update(world)
    if world==world_main then
    	local model,entity
    	for model,entity in pairs(entitytable) do
    		if model.world==world then
    			entity:Update()
    		end
    	end
     end
    end

  6. Still having some through setting and getting keys. Heres my simple code for an animated model:

    --Include the base script for all classes
    dofile("Scripts/base.lua")
    
    --This function builds the interface for the properties editor
    function InitDialog(grid)
    
    --Add the base interface for all classes
    base_InitDialog(grid)
    
    --Now we can add our own custom properties
    
    end
    
    --Spawn function for creating new instances
    function Spawn(model)
    local entity=base_Spawn(model)
    
    entity:SetKey("State", "IDLE")
    
    end
    
    --Update function, called during every UpdateWorld()
    function Update(world)
    currentState = entity:GetKey("State")
    frame = (AppTime()/100.0) % (endframe-startframe) + startframe
    
    if currentState == "IDLE" then
    	endframe = 100
    	startframe = 1
    	frame = (AppTime()/100.0) % (endframe-startframe) + startframe
    	entity.model:Animate(frame,blend,0,1)
    
    end
    
    end

     

    engine.log says:

    Lua error: ...nd keeper/data/models/characters/crawler/crawler.lua:18: attempt to call method 'SetKey' (a nil value)

     

    What am I doing wrong here?

  7. Well to get the most out of it engines generally need to specifically have an option for it. Otherwise you SHOULD be able to just turn it on via the nVidia control panel. Though I hear you can have mixed results.

    FYI - Im not sure if this pertains to the nVidia 3D glasses or monitor.

  8. Thanks for your help everyone. I was a bit worried that I had fried it for a while, because the bios didn't kick over on the first few starts - I didn't bother buying a CD burner, so I had to put the install disk on a USB stick and plug it in before it would go. Anyhow its all working now and I'll be installing Leadwerks later tonight when I can hook it up to the net. ;)

     

    ...wait...what? You don't have a CD/DVD reader in any shape or form?

  9. While C++ can, by nature, do everything under the sun, GUIs aren't the easiest things to code up from scratch. I'd strongly recommend one of the many free widget libraries for whatever programming language you choose. For example I've had great success with wxWidgets. Its very well documented so you should find out pretty quickly how to do what you want.

    • Upvote 1
    • Downvote 1
×
×
  • Create New...