Jump to content

Einlander

Members
  • Posts

    778
  • Joined

  • Last visited

Blog Comments posted by Einlander

  1. My issue is I need specific animations. If I want to create the next Left 4 Dead or any game with non human characters I will at some point need to get my animations from another source. If it supports importing animations the same way the leadwerks editor does I can use blender to convert them to fbx or directly into mdl format and then import the animations to my character. I just don't want a slightly enhanced Character Shop with an extra export option, I already have Character Shop.

     

    Here's to hoping that it gets kick-started and maybe it gains some extra features. I just backed it and voted on Greenlight.

  2. True, but every animation system that I have seen have some of the most coordinated zombies i have ever seen. Perfect balance and all that. I want to be able to mocap, buy, outsource my animations, maybe create a non human bipedal character where human movements wouldn't work, for example an ostrich which has backwards knees.

  3. YouGroove, it can have uv mapping and it did, 3d world studio (past Leadworks product) has it, Valves Hammer has it, 3d Game Studio has it, Sledge Editor has it (open source), Runtime World editor (open source) has it. So telling me csg cant have uv mapping when it quite obviously has been demonstrated that it can is a blatantly false claim.

     

    Hammer demonstrates that you can indeed manipulate the vertex of a csg to have complex models. You can even export them as a model. I would use Hammer on my Leadworks projects, but there is obviously a file format barrier that takes some effort to go around.

  4. ZioRed, the question then becomes is the pay for asset store ran by steam or leadwerks. If its run by steam, do they allow tiered pricing. If so can you assign an item to multiple users? If leadwerks is running the store will it tie into steam like for example, Perfect Worlds Backlight Retribution game? That games store runs on their server and uses steam to process the payment.

     

    My proposal to solve this would be to sell a single item and to sell a slightly more expensive bundle. The expensive bundle would give the user 1*%quantity% items into their inventory so they can gift it to their team members. This is how the steam store deals with bundles and DLC, so is Josh asks the right people the right questions nicely this might be done. I think tf2 uses a system like this.

  5. Just wondering about complied lua stuff. As of now, I have no good reason to distribute compiled code. But it's going to be a pain to establish ownership of a script, and even more of a pain when updating a script when the end user modified it.

     

    Any chance we can use the workshop to distribute our games free in a non modifiable form like Gamemaker does?

     

    However the workshop turns out, I expect it will be full of awesome stuff within a week.

  6. The collision stuff should be simple enough, my last post has the events needed to code actions for each situation. Ladders on the other hand, imo would require a more robust navmesh. The AI can move around and up and down slopes. But iirc, they cant bridge between separated navmesh areas such as a roof and the ground, unless the slope is gentle enough. So an AI controller would need to be made in conjunction with a compatible ladder script.

     

    So making it work with AI is doable, but you will end up needing to replicate parts and systems more mature engines have.

  7. Thanks for the help, both your solutions are shorter and more elegant than what I came up with. Also less computationally intensive.

     

    I used Ricks code. Here are the changes that i made:

     

    -- this will store all entities that collide with this trigger so we can manage them
    function Script:Start()
    self.entities = {}
    end
    function Script:UpdatePhysics()
    
      for i = 1, #self.entities do --lua indexes start at 1 not 0 - einlander
             if self.entities[i].entered==true then
                   if self.entities[i].hadCollision == false then   
                           if self.entities[i].exited == false then  
                              -- remove this entity from the table because they left the trigger. we can do whatever with the entity here also
         self:CollisionOnExit(self.entities[i].entity) --raise event [einlander]
                              table.remove(self.entities, i)
         break --[einlander for sanity reasons, and not to have to manually incriment the for next loop, finish it on the next run through the function]
                             -- i = i + 1 [commented out - einlander]
                           end
                  end
             end
             self.entities[i].hadCollision = false
      end
    end
    
    function Script:FindEntity(e)
      for i = 1, #self.entities do --lua indexes start at 1 not 0 - einlander
             if self.entities[i].entity == e then
                    return self.entities[i].entity
             end
      end
      return nil
    end
    
    function Script:CreateEntityObject(e)
      local eObject = {}
      eObject.entity = e
      eObject.entered = false
      eObject.hadCollision = true
      eObject.exited = false
      return eObject
    end
    function Script:Collision(entity, position, normal, speed)
      -- see if this entity is already actively colliding and if so get it from our list
      local e = self:FindEntity(entity)
      -- this is a new entity if we can't find it in our list so add it to our list with it's vars
      if e == nil then
             e = entity
             -- this is a new entity so add it to our list
             self.entities[#self.entities + 1] = self:CreateEntityObject(entity)
      self:CollisionOnEnter(entity, position, normal, speed) -- raise event   
      end
    --[[ For what ever reason, this section did not work, I to assumed that lua passed things by reference, the internet supports this and documentation. Well not happening here, see next section.
      e.hadCollision = true
      if e.entered == false then
             e.entered = true
             e.exited = false
      end
    ]]--
    
    -- check the entity that was passed in here which either exists already or is new and we just added it
    for i=1 , #self.entities do -- manually find the object we created and set it's attributes [einlander]
     if self.entities[i].entity==entity then
      self.entities[i].hadCollision = true
      self:CollisionOnStay(entity, position, normal, speed) -- raise event
        if self.entities[i].entered == false then
       self.entities[i].entered = true
       self.entities[i].exited = false
        end
     end
    end
    
    end
    -- Called ONCE when something touches trigger for the first time [einlander]
    function Script:CollisionOnEnter(entity, position, normal, speed)
    self.component:CallOutputs("CollisionOnEnter")
    end
    -- Called CONTINUOUSLY when something is in the trigger [einlander]
    function Script:CollisionOnStay(entity, position, normal, speed)
    self.component:CallOutputs("CollisionOnStay")
    end
    -- Called OONCE AFTER something leaves the trigger [einlander]
    function Script:CollisionOnExit(entity)
    self.component:CallOutputs("CollisionOnExit")
    end
    

  8. That is what I did, but i added all the keycodes so i would never have to look them up again.

     

    So I have a variable, and a function that will look up the keycode for me. and store it in that variable. With the script that I made, I will never have to manually look up the keycodes. I just take the script, assign it to a pivot and everything is finished. If i want to jump i just use window:KeyHit(LW_Jump) and if i want to change the key, i just use the box and change it.

     

    I recommend taking a look at the linked scripts, they are an implementation of the ideas in that thread.

  9. I know about 3d coat, it was in the part of my blog post that got deleted, and cg textures. All the models in the picture were painted in 3d coat. 3d model wise i have HUNDREDS of them, I own fpscreator and tons of model packs. The only problem is that the model quality does not always stand up to scrutiny when placed in a high quality game engine like Leadwerks. I've already spent over $200 USD on model packs and I decided to slow down with my money expenditure on game creation tools before i have a firm idea of what i want to do. The only thing that I would be losing is time. I would gain assets, skills and tools in the process, so there is very little downside to making stuff myself

     

    So I've been just creating 3d models since I have no idea what kind of game I want to make. I might as well be modeling than sitting here doing nothing.

×
×
  • Create New...