Skip to content

Commit

Permalink
Adding isRenderable param to update and handleEvent
Browse files Browse the repository at this point in the history
  • Loading branch information
aylanonsense committed May 9, 2019
1 parent 6ad5177 commit 20bf775
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 11 deletions.
2 changes: 1 addition & 1 deletion .castle
Expand Up @@ -6,4 +6,4 @@ primaryColor: FF00FF
coverImage: cover-image.png
description: Just testing
multiplayer:
- enabled: true
- enabled: true
11 changes: 9 additions & 2 deletions src/client-server/GameClient.lua
Expand Up @@ -17,10 +17,17 @@ function GameClient:new(params)
-- Create a game for the client and a runner for it
local runner = GameRunner:new({
game = gameDefinition:new(),
isRenderable = true,
allowTimeManipulation = false
})
local runnerWithoutSmoothing = GameRunner:new({ game = gameDefinition:new() })
local runnerWithoutPrediction = GameRunner:new({ game = gameDefinition:new() })
local runnerWithoutSmoothing = GameRunner:new({
game = gameDefinition:new(),
isRenderable = false
})
local runnerWithoutPrediction = GameRunner:new({
game = gameDefinition:new(),
isRenderable = false
})

-- Create offset optimizers to minimize time desync and latency
local timeSyncOptimizer = OffsetOptimizer:new({
Expand Down
8 changes: 4 additions & 4 deletions src/client-server/GameServer.lua
Expand Up @@ -102,10 +102,10 @@ function GameServer:new(params)
local maxClientEventFramesEarly = params.maxClientEventFramesEarly or 45

-- Create the game
local game = gameDefinition:new()
local runner = GameRunner:new({
game = game,
framesOfHistory = maxClientEventFramesLate + 1
game = gameDefinition:new(),
framesOfHistory = maxClientEventFramesLate + 1,
isRenderable = false
})

-- Wrap the listener in a message server to make it easier to work with
Expand All @@ -124,7 +124,7 @@ function GameServer:new(params)
_connectCallbacks = {},

-- Public vars
game = game,
game = runner.game,

-- Public methods
-- Starts the server listening for new client connections
Expand Down
4 changes: 2 additions & 2 deletions src/game/Game.lua
Expand Up @@ -242,8 +242,8 @@ function Game:new(params)
end,

-- Methods to override
update = function(self, dt, inputs, events, isTopFrame) end,
handleEvent = function(self, eventType, eventData) end
update = function(self, dt, isRenderable) end,
handleEvent = function(self, eventType, eventData, isRenderable) end
}

if initialState then
Expand Down
6 changes: 4 additions & 2 deletions src/game/GameRunner.lua
Expand Up @@ -8,6 +8,7 @@ function GameRunner:new(params)
local allowTimeManipulation = params.allowTimeManipulation ~= false
local framesOfHistory = params.framesOfHistory or 30
local framesBetweenStateSnapshots = params.framesBetweenStateSnapshots or 5
local isRenderable = params.isRenderable ~= false

return {
-- Private vars
Expand All @@ -17,6 +18,7 @@ function GameRunner:new(params)
_transformHistory = {},
_allowTimeManipulation = allowTimeManipulation,
_framesBetweenStateSnapshots = framesBetweenStateSnapshots,
_isRenderable = isRenderable,

-- Public vars
game = game,
Expand Down Expand Up @@ -254,13 +256,13 @@ function GameRunner:new(params)
else
table.insert(nonInputEvents, event)
self.game:resetEntityIdGeneration('event-' .. event.id .. '-')
self.game:handleEvent(event.type, event.data)
self.game:handleEvent(event.type, event.data, isTopFrame and self._isRenderable)
end
end
-- Update the game
self.game:resetEntityIdGeneration('frame-' .. self.game.frame .. '-')
self.game:updateEntityMetadata(dt)
self.game:update(dt, self.game.inputs, nonInputEvents, isTopFrame)
self.game:update(dt, isTopFrame and self._isRenderable)
-- Check to see if any scheduled states need to applied now
for i = #self._futureStates, 1, -1 do
if self._futureStates[i].frame == self.game.frame then
Expand Down

0 comments on commit 20bf775

Please sign in to comment.