Jump to content

Josh

Staff
  • Content Count

    15,672
  • Joined

  • Last visited

Posts posted by Josh


  1. 30 minutes ago, Angelwolf said:

    Leadwerks is the only application which is doing this.

    I remember, however, that I recently installed Windows Blinds given there was a sale and I wanted to treat myself. Perhaps there's a compatibility issue between the two. I'll see if I can do some experimenting to confirm in case there are any other users that have this issue in future.

    I would say this is almost definitely the problem. I used to use some apps like this, but it can be very dangerous to mess around with your Windows theme with unofficial stuff. Once I tried to install some unofficial WinXP theme and the whole thing turned every element in the UI pure black. My computer started and ran but was impossible to use at all because everything was black. XD I had to reformat.

    • Like 1

  2. Reinstalling does not affect your projects but I doubt that would change anything. This sounds like a windows problem. You could delete your config file, but I think the problem lies with your windows updates or drivers.


  3. On ‎7‎/‎2‎/‎2019 at 4:17 PM, Daemoc said:

    The most important thing I learned is that you can have 10,000 lights on your map with no impact as long as they are not all being drawn at the same time. I will try to keep the light's on screen count under 10. I will also have to make sure the "detail" lights can be turned of on low spec machines.

    I think this will be easy to do in a top-down game.

    • Like 1
    • Confused 1

  4. It looks like in the above shot each floor tile could be 1.28 meters wide (the stairs are 2.56 meters wide). That means two tiles high would be enough for the character to walk under. It looks very close to that right now.

    But if you are more particular about the size then I can understand how that would be difficult to settle.


  5. Why would you use an odd number like 192? Why not use a pow2 number like 256 or 128? if you do this then it becomes very easy to line up geometry with textures details, like cutting a window out in the right place inside the outline of a window frame drawn on the wall.


  6. There is a resize tool in the model editor that might be useful.

    the motion looks very natural, especially the jumping. It really looks like a little person is in there running around.

    • Like 1

  7. I wanted to better understand coroutines so I wrote this example. I discovered that Lua errors in coroutine functions do not get caught by the debugger for some reason. The program will just silently close with no error message.

    I am interested in somehow creating a stack of coroutines. Like this:

    self:AddCoroutine(MoveToPoint,10,0,0))
    self:AddCoroutine(TurnToRotation,0,90,0))
    self:AddCoroutine(MoveToPoint,10,0,5))
    self:AddCoroutine(ChangeColor,1,0,0,1))
    self:AddCoroutine(ChangeColor,1,1,1,1))

    When one coroutine is completed, the next one on the stack would begin. So if you called the above code just once, it would cause the object to move to (10,0,0), then slowly rotate it by 90 degrees, then move it again, then fade the color to red, then fade back to white.

    Any ideas on this? I feel like it would be very powerful for games but it's hard to think about abstractly.

    function MoveToPoint(entity, targetpos, speed)
    	
    	while true do
    		coroutine.yield()
    
    		local currentpos = entity:GetPosition()
    		local change = targetpos - currentpos
    		local dist = change:Length()
    		
    		if dist <= speed then
    			
    			--We have reached our target
    			entity:SetPosition(targetpos)
    			break
    			
    		end
    		
    		--Keep moving towards the target
    		currentpos = currentpos + change / dist * speed
    		entity:SetPosition(currentpos)
    		
    	end
    end
    
    window = Window:Create("",0,0,1280,720)
    context=Context:Create(window,0)
    world=World:Create()
    
    local pivot = Pivot:Create()
    local dest = Vec3(10,0,0)
    
    --Create the coroutine
    co = coroutine.create(MoveToPoint)
    
    --Send coroutine parameters in the first call
    --The coroutine yields right away so it won't do anything else yet
    coroutine.resume(co, pivot, dest, 0.5)
    
    while coroutine.status(co) ~= "dead" do
    	System:Print(pivot.position)
    	coroutine.resume(co)
    end

     

    • Confused 1

  8. This conversation right here shows something important. In my quest to make things easy I am trying to simplify complicated things, but this is actually making things harder. Sometimes complicated things are complicated and just have to be explained. Little Timmy may not understand the explanation, but @TheConceptBoy will, even if he has to read it a few times before it makes sense. It would be better to expose the animation stack system even though some people won't understand it, than to say "no, it is too hard for you".

    I think my experience with Vulkan is affecting my thinking. It was a harsh mistress, but it's such an absolutely zero-bullshit API and eliminates so much ambiguity that OpenGL had. Maybe "well-defined complexity" is something I should give more consideration to.

    • Like 2

  9. I think so. People requested the C++ class stuff rather than raw pointers.

    The problem with having a "current" animation and frame is that there isn't really one. The animation system may have a dozen different animations it is blending in between. It may have multiple copies of the same sequence it is blending in between.

    In the future I think adding an animation event feature to call a class method when a specific frame is crossed would be a good idea. That is basically what the EndAnimation() method does, but it only occurs at one position.

×
×
  • Create New...