Skip to content

Releases: Planimeter/game-engine-2d

v9.0.1

21 Dec 22:15
Compare
Choose a tag to compare
  • Fix crash in map:initializePhysics()

v9.0.0

23 Nov 22:25
Compare
Choose a tag to compare
  • 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 new gui.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(), and fullscreencanvas:__gc() to fix
    memory leaks with canvas wrapper
  • Update documentation for GUI autoloader
  • All internal references to framebuffers have been refactored to canvases
  • Add gui.createElement()
  • Refactor gui.panel size accessor to dimensions
  • 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 and panel._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 to tick
  • 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() and entity:endTouch() callbacks
  • Update default player moveSpeed network variable
  • Add player._idle
  • Update player input handling
  • Add player:keypressed() and player: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 to usercmd 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

03 Mar 20:32
Compare
Choose a tag to compare
  • Added canvas and fullscreencanvas 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 a gui.box alternative to the Win32-styled gui.label class
  • sound is now source to align more closely to LÖVE's API naming conventions
  • region is now map 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 of gui.panel
  • gui._blurFramebuffer is now gui._translucencyFramebuffer
  • Added gui.accessor()
  • Added a High-DPI option in the video options panel
  • Grid no longer sets the default filter to nearest, nearest on load
  • Added sprite:setFilter()
  • Added console variable fps_max defaulted to 300
  • Console variables no longer automatically save by default
  • Added convar flag archive to save console variables
  • Added convar:isFlagSet( flag )
  • Optimized entity shadow rendering
  • Added entity:setDrawShadow( drawShadow ) and entity:shouldDrawShadow()
  • Added player:isKeyPressed( button ) and player:isKeyReleased( button ) which detect IN_* enumerations in multiplayer
  • Added payload:sendToServer() and payload: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 the localplayer, initially spawned
  • Added onPlayerUse game callback
  • Improved performance of gaussianblur shader

v7.4.0

09 May 00:54
Compare
Choose a tag to compare
  • 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() and entity:setPredicted( predicted ) to enable positional history tracking for future client-side prediction reconciliation
  • Added entity:isOnTile() to determine if entitys are in-between tiles or not
  • Added region.pointinrect( px, py, x, y, width, height ) which is bottom-left inclusive to distinguish between math.pointinrect()'s top-left inclusive implementation for GUI usage
  • Fixed entitys not updating their region 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() to region.getWorld()
  • Refactored region:cleanUp() to region:cleanup()
  • Fixed region:getFilename() not referring to the appropriate path
  • Fixed region:getGidsAtPosition( position ) not converting positions to local region space
  • Refactored region:initializeWorld() to region.initializeWorld()
  • region:isTileWalkableAtPosition( position ) now checks nearby regions if the tile is not walkable
  • walkable tile properties are now booleans 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

05 Nov 17:21
Compare
Choose a tag to compare
  • Added player._commandNumber for client-side prediction server reconciliation
  • player:onMoveTo() behavior is now predicted
  • Added commandNumber to userCmd payload

v7.3.0

07 Oct 17:56
Compare
Choose a tag to compare
  • Fix bind.keypressed() and bind.keyreleased() passing nil localplayer
  • 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 with drawPath
  • Change default pathfinding heuristic from to euclidean to manhattan

v7.2.0

30 Aug 03:16
Compare
Choose a tag to compare
  • Replaced all instances of not with == nil where performing lookups for nil 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 to accessor()
  • 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()
  • regions 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 in config.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 of require() 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

09 Jun 18:53
Compare
Choose a tag to compare
  • Code cleanup
  • Removed point() in favor of love.window.toPixels() and love.window.getPixelScale()
  • Fixed crash with debugoverlay.rectangle() not accepting a worldIndex
  • Fixed duplicate entries in console command history
  • Removed deprecated interfaces

v7.0.1

23 May 16:12
Compare
Choose a tag to compare
  • Update love-package

v7.0.0

16 Jul 16:40
Compare
Choose a tag to compare
  • 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()