Releases: Planimeter/game-engine-2d
Releases · Planimeter/game-engine-2d
v9.0.1
v9.0.0
- Promote
gui.hudframeto engine - Add
gui.hudprofilerfor profiling engine and game performance - Add
gui.hudvoiceHUD indicator - Add multiplayer options panel placeholder
- Add
gui.watchGUI control for watching Lua expressions - Add
gui.boxtest 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
camerazoom behavior - Update
canvasto retain arguments between invalidations - Add
canvas:remove(),canvas:__gc(), andfullscreencanvas:__gc()to fix
memory leaks withcanvaswrapper - Update documentation for GUI autoloader
- All internal references to
framebuffershave been refactored tocanvases - Add
gui.createElement() - Refactor
gui.panelsizeaccessor todimensions - Update
gui.boxadherence 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._drawcallsandpanel._invalidationsfor 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_loopbackconsole variable - Add
engine.client.broadcastVoiceRecording() - Add
engine.client.sendVoiceRecording() - Add
engine.client.startVoiceRecording() - Add
engine.client.stopVoiceRecording() - Add
+voiceand-voiceconsole commands - Refactor
onTickcallback totick - Run console commands from terminal on load using
+prefix - Optimize entity network variable broadcast changes
- Add
toboolean() - Add
lua_watchconsole variable for watching Lua expressions - Update
concommand.run()to set console variables - Update
concommand.run()to return boolean on successful dispatch - Add
r_window_fullscreentypeconsole variable - Update default
charactermovement - Update entity shadow rendering
- Add naïve sprite culling
- Add
velocitynetwork variable to entities - Add
entity:broadcastNetworkVarChanges()(server) - Add
entity:getVelocity() - Add
sv_frictionconsole variable - Add
entity:insertNetworkVarChange() - Add
entity:interpolate() - Add
entityas 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
playermoveSpeednetwork variable - Add
player._idle - Update player input handling
- Add
player:keypressed()andplayer:keyreleased() - Add
player:applyInput() - Add
player:isPredictedPosition() - Update
playerusercmdpayload dispatch - Update default
playermass - Update default
playermovement - Add
player:updatePredictionBuffer() - Add
r_draw_worldconsole variable - Add
map.getGroundBody() - Add
map:initializePhysics() - Create map boundaries automatically if a map doesn't contain a
trigger_transitionentity - Add
math.fepsilon - Add
math.approximately()for floating point equality in multiplayer - Add
math.pointonline() - Add
math.pointonlinesegment() - Remove
numberpayload key type - Add
floatpayload key type - Add
movedata tousercmdpayloads - Add
voicepayload - Add
table.keys() - Reduce multiplayer network requirements
- Add
typelenvalues.bytesToFloat() - Add
typelenvalues.floatToBytes() - Add
typelenvalues.shortToBytes() - Add
shortpayload key type - Update sample gamemode code
- Update default assets
- Update font DPI handling
- Update default shaders
v8.0.0
- Added
canvasandfullscreencanvasclasses which invalidate on window resizing - Added
gui.boxclass based on the CSS box model as defined in "Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification" - Added
gui.textas agui.boxalternative to the Win32-styledgui.labelclass soundis nowsourceto align more closely to LÖVE's API naming conventionsregionis nowmapto 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.boxinstead ofgui.panel gui._blurFramebufferis nowgui._translucencyFramebuffer- Added
gui.accessor() - Added a High-DPI option in the video options panel
- Grid no longer sets the default filter to
nearest,nearestonload - Added
sprite:setFilter() - Added console variable
fps_maxdefaulted to300 - Console variables no longer automatically save by default
- Added
convarflagarchiveto 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
onPlayerInitialSpawncallback in which default panels would be created any time any player, and not just thelocalplayer, initially spawned - Added
onPlayerUsegame callback - Improved performance of
gaussianblurshader
v7.4.0
- Regions now use a single Box2D world instance
- Fix crash in
engine/server/init.luawhen initializing players on maps with no spawnpoints - Code formatting
- Improved
characterclient-side animation prediction handling - Fixed crashes when handling destroyed Box2D bodies
- Improved
charactertile 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 ifentitys 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
entitys not updating theirregionreference when crossing level streaming boundaries - Updated
player:getGraphicsBounds()implementation - Added
player:isMoveKeyDown() - Added
cl_server_reconciliationconsole variable - Updated
trigger_transitionlevel streaming implementation - Improved performance of module hot reloading
- Fixed crash in
pathinterface 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 walkablewalkabletile properties are nowbooleansas defined in newer Tiled versions- Fixed
region.tilesetimage 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._commandNumberfor client-side prediction server reconciliation player:onMoveTo()behavior is now predicted- Added
commandNumbertouserCmdpayload
v7.3.0
- Fix
bind.keypressed()andbind.keyreleased()passing nillocalplayer - Fix crash in
throbber.lua - Fix engine not detecting
_DEDICATED - Add
host_timescaleconsole command - Update engine to 100 tick by default
- Fix crash in
addon.lua - Add input enumeration
- Fix improperly named private members in
character.lua charactermoveSpeednetwork variable is now a representation of pixels per second- Fix
character:move()not integrating timestep - Update
r_draw_positionconsole variable flag to display velocity as well - Add
entity:isMoving() - Add networked
player:isKeyDown( button ) - Add
cl_footstepsconsole variable - Add
usercmdpayload - Fix crash in
pathmodule withdrawPath - Change default pathfinding heuristic from to
euclideantomanhattan
v7.2.0
- Replaced all instances of
notwith== nilwhere performing lookups fornilvalues - Cleaned up
requires - Updated various
accessors - Added
table.tostring( t ) - Added
debugoverlay.line( worldIndex, x, y, points, color, duration ) - Fixed crash in
debugoverlaycalls - Code cleanup
- Added
verbargument toaccessor() - Fixed
toggleconsoleconsole command behavior - Added
perf_draw_net_graphconsole command - Added
panel:isSiblingMousedOver() - Added new
restorePanel()pattern to real-time scripted panels - Fixed multiline
gui.textbox()s not inserting newlines - Exposed
textbox:updateCursor() regions now predictively update on_CLIENT- Fixed
engine.client.onDisconnect()cleanup process - Added
onTick()callback - Added
cl_updaterateconsole command - Added real-time scripting to dedicated servers
- Fixed
engine.server.quit()cleanup process - Updated internal
error_printer() - Added
sv_updaterateconsole command - Updated
convarto sort console variables inconfig.cfg - Updated default
charactermovement - 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
regionposition calculations - Added
region.roundToGrid( x, y ) - Updated
entityregionregistration - Updated
gui.hudchat - Updated Vertex Adventure sample game code
- Added
r_draw_positionconsole command - Updated
gui.hudspeechballoonsto 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()