Releases: Planimeter/game-engine-2d
Releases · Planimeter/game-engine-2d
v9.0.1
v9.0.0
- Promote
gui.hudframe
to engine - Add
gui.hudprofiler
for profiling engine and game performance - Add
gui.hudvoice
HUD indicator - Add multiplayer options panel placeholder
- Add
gui.watch
GUI control for watching Lua expressions - Add
gui.box
test script to show off newgui.createElement()
usage - Add new gaussian blur reference shader from GPU Gems 3
- Add voice chat
- Update
andrewmcwatters/lclass
- Add
vector:approximately()
for floating point equality in multiplayer - Add
vector:dot()
- Fix divide-by-zero error in
vector:normalize()
- Add
vector.__div()
- Update to LÖVE 11.3
- Update default
camera
zoom behavior - Update
canvas
to retain arguments between invalidations - Add
canvas:remove()
,canvas:__gc()
, andfullscreencanvas:__gc()
to fix
memory leaks withcanvas
wrapper - Update documentation for GUI autoloader
- All internal references to
framebuffers
have been refactored tocanvases
- Add
gui.createElement()
- Refactor
gui.panel
size
accessor todimensions
- Update
gui.box
adherence to CSS box model - Update all default panels to use
gui.text
- Limit console suggestions to 5 at a time
- Fix inability to delete console autocomplete items
- Update all default panels to inherit from
gui.box
- Add
panel._drawcalls
andpanel._invalidations
for profiling - Update options menu
- Add
panel:getRootPanel()
- Add
panel:getPrevSibling()
- Add
panel:getNextSibling()
- Add
panel:removeCanvas()
- Improve performance of text renderingin GUI panels
- Update game loop
- Add
voice_loopback
console variable - Add
engine.client.broadcastVoiceRecording()
- Add
engine.client.sendVoiceRecording()
- Add
engine.client.startVoiceRecording()
- Add
engine.client.stopVoiceRecording()
- Add
+voice
and-voice
console commands - Refactor
onTick
callback totick
- Run console commands from terminal on load using
+
prefix - Optimize entity network variable broadcast changes
- Add
toboolean()
- Add
lua_watch
console variable for watching Lua expressions - Update
concommand.run()
to set console variables - Update
concommand.run()
to return boolean on successful dispatch - Add
r_window_fullscreentype
console variable - Update default
character
movement - Update entity shadow rendering
- Add naïve sprite culling
- Add
velocity
network variable to entities - Add
entity:broadcastNetworkVarChanges()
(server) - Add
entity:getVelocity()
- Add
sv_friction
console variable - Add
entity:insertNetworkVarChange()
- Add
entity:interpolate()
- Add
entity
as a networkable variable type - Update client-side prediction
- Add
entity:onNetworkVarReceived()
- Add
entity:onPostWorldUpdate()
- Add
entity:removeInterpolationBuffer()
- Update removal of polygon skins from entities for near pixel-perfect collisions
- Add
entity:startTouch()
andentity:endTouch()
callbacks - Update default
player
moveSpeed
network variable - Add
player._idle
- Update player input handling
- Add
player:keypressed()
andplayer:keyreleased()
- Add
player:applyInput()
- Add
player:isPredictedPosition()
- Update
player
usercmd
payload dispatch - Update default
player
mass
- Update default
player
movement - Add
player:updatePredictionBuffer()
- Add
r_draw_world
console variable - Add
map.getGroundBody()
- Add
map:initializePhysics()
- Create map boundaries automatically if a map doesn't contain a
trigger_transition
entity - Add
math.fepsilon
- Add
math.approximately()
for floating point equality in multiplayer - Add
math.pointonline()
- Add
math.pointonlinesegment()
- Remove
number
payload key type - Add
float
payload key type - Add
move
data tousercmd
payloads - Add
voice
payload - Add
table.keys()
- Reduce multiplayer network requirements
- Add
typelenvalues.bytesToFloat()
- Add
typelenvalues.floatToBytes()
- Add
typelenvalues.shortToBytes()
- Add
short
payload key type - Update sample gamemode code
- Update default assets
- Update font DPI handling
- Update default shaders
v8.0.0
- Added
canvas
andfullscreencanvas
classes which invalidate on window resizing - Added
gui.box
class based on the CSS box model as defined in "Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification" - Added
gui.text
as agui.box
alternative to the Win32-styledgui.label
class sound
is nowsource
to align more closely to LÖVE's API naming conventionsregion
is nowmap
to align more closely to traditional video game level design terminology- Updated Vertex Adventure sample code
- Refactored
game.client.gui.mainmenu
- Updated default shaders
- Updated to LÖVE 11.2
- Fixed a crash with
chat.addText()
that would occur before the chat HUD was available - Refactored various default GUI controls to use
gui.box
instead ofgui.panel
gui._blurFramebuffer
is nowgui._translucencyFramebuffer
- Added
gui.accessor()
- Added a High-DPI option in the video options panel
- Grid no longer sets the default filter to
nearest
,nearest
onload
- Added
sprite:setFilter()
- Added console variable
fps_max
defaulted to300
- Console variables no longer automatically save by default
- Added
convar
flagarchive
to save console variables - Added
convar:isFlagSet( flag )
- Optimized entity shadow rendering
- Added
entity:setDrawShadow( drawShadow )
andentity:shouldDrawShadow()
- Added
player:isKeyPressed( button )
andplayer:isKeyReleased( button )
which detectIN_*
enumerations in multiplayer - Added
payload:sendToServer()
andpayload:broadcast()
- Added
table.map( t, callback )
- Fixed a bug in
onPlayerInitialSpawn
callback in which default panels would be created any time any player, and not just thelocalplayer
, initially spawned - Added
onPlayerUse
game callback - Improved performance of
gaussianblur
shader
v7.4.0
- Regions now use a single Box2D world instance
- Fix crash in
engine/server/init.lua
when initializing players on maps with no spawnpoints - Code formatting
- Improved
character
client-side animation prediction handling - Fixed crashes when handling destroyed Box2D bodies
- Improved
character
tile movement - Fixed crashes when attempting to draw trigger entities
- Added
entity:isPredicted()
andentity:setPredicted( predicted )
to enable positional history tracking for future client-side prediction reconciliation - Added
entity:isOnTile()
to determine ifentity
s are in-between tiles or not - Added
region.pointinrect( px, py, x, y, width, height )
which is bottom-left inclusive to distinguish betweenmath.pointinrect()
's top-left inclusive implementation for GUI usage - Fixed
entity
s not updating theirregion
reference when crossing level streaming boundaries - Updated
player:getGraphicsBounds()
implementation - Added
player:isMoveKeyDown()
- Added
cl_server_reconciliation
console variable - Updated
trigger_transition
level streaming implementation - Improved performance of module hot reloading
- Fixed crash in
path
interface when pathfinding in dedicated servers - Refactored
region:getWorld()
toregion.getWorld()
- Refactored
region:cleanUp()
toregion:cleanup()
- Fixed
region:getFilename()
not referring to the appropriate path - Fixed
region:getGidsAtPosition( position )
not converting positions to local region space - Refactored
region:initializeWorld()
toregion.initializeWorld()
region:isTileWalkableAtPosition( position )
now checks nearby regions if the tile is not walkablewalkable
tile properties are nowbooleans
as defined in newer Tiled versions- Fixed
region.tileset
image loading not referring to relative directories - Added
string.stripdotdir( path )
to convert paths with dot directories to their relative paths - Updated Vertex Adventure sample code
v7.3.1
- Added
player._commandNumber
for client-side prediction server reconciliation player:onMoveTo()
behavior is now predicted- Added
commandNumber
touserCmd
payload
v7.3.0
- Fix
bind.keypressed()
andbind.keyreleased()
passing nillocalplayer
- Fix crash in
throbber.lua
- Fix engine not detecting
_DEDICATED
- Add
host_timescale
console command - Update engine to 100 tick by default
- Fix crash in
addon.lua
- Add input enumeration
- Fix improperly named private members in
character.lua
character
moveSpeed
network variable is now a representation of pixels per second- Fix
character:move()
not integrating timestep - Update
r_draw_position
console variable flag to display velocity as well - Add
entity:isMoving()
- Add networked
player:isKeyDown( button )
- Add
cl_footsteps
console variable - Add
usercmd
payload - Fix crash in
path
module withdrawPath
- Change default pathfinding heuristic from to
euclidean
tomanhattan
v7.2.0
- Replaced all instances of
not
with== nil
where performing lookups fornil
values - Cleaned up
requires
- Updated various
accessors
- Added
table.tostring( t )
- Added
debugoverlay.line( worldIndex, x, y, points, color, duration )
- Fixed crash in
debugoverlay
calls - Code cleanup
- Added
verb
argument toaccessor()
- Fixed
toggleconsole
console command behavior - Added
perf_draw_net_graph
console command - Added
panel:isSiblingMousedOver()
- Added new
restorePanel()
pattern to real-time scripted panels - Fixed multiline
gui.textbox()
s not inserting newlines - Exposed
textbox:updateCursor()
region
s now predictively update on_CLIENT
- Fixed
engine.client.onDisconnect()
cleanup process - Added
onTick()
callback - Added
cl_updaterate
console command - Added real-time scripting to dedicated servers
- Fixed
engine.server.quit()
cleanup process - Updated internal
error_printer()
- Added
sv_updaterate
console command - Updated
convar
to sort console variables inconfig.cfg
- Updated default
character
movement - Updated client-server prediction and entity interpolation
- Added
character:onFinishMove()
- Added
character:onMoveTo( position )
- Updated usage of
entity.requireEntity()
for use in place ofrequire()
when including entity class dependencies - Added
entity.unrequireEntity()
- Added
entity.getAll()
for retrieving all available entity scripts - Fixed footstep sound stuttering
- Fixed real-time scripting not registering all files due to bug in
getModuleFilename()
- Updated pathfinding and walkable
region
position calculations - Added
region.roundToGrid( x, y )
- Updated
entity
region
registration - Updated
gui.hudchat
- Updated Vertex Adventure sample game code
- Added
r_draw_position
console command - Updated
gui.hudspeechballoons
to expire chat messages - Added
item:setCollisionBounds( min, max )
- Added test script for
gui.textbox()
v7.1.0
- Code cleanup
- Removed
point()
in favor oflove.window.toPixels()
andlove.window.getPixelScale()
- Fixed crash with
debugoverlay.rectangle()
not accepting aworldIndex
- Fixed duplicate entries in console command history
- Removed deprecated interfaces
v7.0.1
- Update
love-package
v7.0.0
- Code cleanup
- Decreased engine size
- Updated Vertex Adventure sample code
- Removed
env_soundscape
- Removed
trace
- Fixed various UI controls not using their accessor methods internally
- Updated entity draw loop
- Added
entity:drawBoundingBoxes()
- Added
panel:drawBackground()
- Added
panel:drawForeground()
- Added
mutator()
- Added
accessor()
- Removed
framebuffer:getDesiredWidth()
- Removed
framebuffer:getDesiredHeight()
- Added
panel:preDraw()
- Added
panel:postDraw()