jsge
Version:
Javascript Game Engine
436 lines (363 loc) • 14.6 kB
Plain Text
# Map
r: code refactoring
+ added new functionality/classes
f: fixed defects
# History
1.5.9:
r: test workflow name
r: fixed Readme
r: fixed docs
+: primitive objects draw merge (adr#9)
1.5.897:
+: test workflow
r: regression test: process.exit(1), headless: "shell", --disable-gpu
1.5.83 - 1.5.896:
+: build pipeline fixes
1.5.82 - :
f: removed console.log #isCircleToCircleCollision()
f: ended, non repeated animation(AnimationEvent.isActive = false), continue to process with ImageDrawObject._processActiveAnimations()
r: added npm upload through GitHub Actions
1.5.81:
r: isObjectsCollision() returns Array<Object>(adr#15)
f: removed objects merge issue
1.5.8:
+: tileset.tileoffset property support
r: assetsm updated to 0.2.0:
.tmx tilemaps support (adr#13)
internal and .tsx tilesets support (adr#13)
r: removed tileset.data level
f: fixed y shift for tiles different than the tilemap cells height
1.5.71:
f: tile layer merge empty data issue
f: incorrect jsdoc get parameters
f: System.registerStage() jsdoc issue
1.5.7
+: stageData.cleanUp() added (adr#8)
r: Assetsm added as a submodule dependency (adr#7)
r: updated to assetsm@0.1.8
r: Readme file fixes
r: jsdoc tutorials fixes
r: jsdoc src fixes
f: fixed DRAW_TYPE jsdoc
1.5.6:
+: multiple tileset images warning
+: mat3MultiplyPosCoords(), (transform matrix) * (pos coords)
r: adding renderObjects refactored (adr#12)
r: merge tilesets draws (adr#9)
f: tileset attach issue
1.5.5:
+: GameStageData.#debugObjectBoundaries for debug draw image boundaries
+: 3x3 Matrices multiplication methods
+: webgl ImagesDrawProgramM program
+: DrawImageObject draw calls merge
r: _bindRenderObject refactored, removed workaround
r: webgl images draw program refactored according (adr#9)
f: examples strategy build unit, if already in progress resources are taken away
f: examples strategy build building, resources are taken after building complete
1.5.4:
+: debug - vertices drawn added
r: examples big_map 800x800 map added
f: examples strategy house/barracks build done
f: fixed fps slowdown bug on maps with different tilesets(strategy, dungeon)
f: fixed big maps processing issue (with TiledLayerTempStorage() from 1.5.0)
1.5.3:
+: RenderLoop and RenderLoopDebug classes
+: Counting the number of draw calls
+: two stages start throws an exception
r: FPS count
r: #registeredRenderObjects moved down to WebGlEngine
r: _bindRenderObject() moved down to WebGlEngine
r: removed optional render control time
f: stage restart rendering issue
f: examples/big_map issue
1.5.2:
+: regression testing
+: support tileset.margin property
+: support image.margin property
1.5.1:
r: refactor render time calculations
r: refactor triangulation method
r: refactor primitives examples page
1.5.0:
r: refactor according adr#4
r: refactor folder structure: draw objects moved to ./base/2d, temp objects to ./base/temp
r: scheme supplemented
r: TextureStorage -> ImageTempStorage
+: introduced TiledLayerTempStorage() to store temp calculations data
+: _initiateJsRender() introduced, method is used to precalculate and initiate boundaries arrays
+: getRawBoundaries() returns Float32Array boundaries
+: getEllipseBoundaries() returns Float32Array ellipse tiledLayer boundaries
+: getPointBoundaries() returns Float32Array point tiledLayer boundaries
1.4.4:
r: disable iNetwork interface by default
1.4.32:
f: Mobile Chrome@125.0.6422.147 issue: "Name conflicts between an uniform and an attribute: a_position"
f: registerStage() type issue
f: System() htmlContainer param type issue
+: DrawTextObject methods description
1.4.31:
r: ADR(Architecture Design Records) moved to the separate folder
+: Added discord channel for feedback and questions
1.4.3:
r: refactor class scheme
r: refactor image animation behavior, added activeAnimation property
+: units.randomFromArray()
+: example/strategy game
1.4.2:
r: updated assetsm to version 0.1.7
r: refactored class scheme according uml rules
1.4.1:
f: fixed texts box size measurements
f: texts artifacts
f: textures images and tiles filtering NEAREST -> LINEAR
1.4.0:
+: Tiled Editor: added animated tiles support
+: Examples: setting options switch screen
r: addAnimation(), removed cyclesPerFrame,
r: addAnimation(), animationSpriteIndexes is now Array<number> | Array<{duration:number, id:number}>
f: tilesets.tiles property which has mix of animated and boundaries tiles
f: drawing layers, which use multiple different tilesets
f: world size infinite set for wasm and not optimized render
1.3.1:
r: isEllipseCircleIntersect() return type
1.3.0:
f: iRender error handling
f: Autofixing world size for maps without boundaries
f: iRender "reject is not defined"
f: text artifacts in Chrome
+: Tiled collision support: custom rects, polygons, ellipses, dots
+: AtlasXML support
+: Tanks game
1.2.2:
f: Infinity message for 0 milliseconds render cycles
r: fps averages calculations
r: fps output count
1.2.1:
f: fix default draw config
1.2.0:
f: first fps calculation
r: refactored DrawObjectFactory registering new objects and adding them to stageData
r: refactored spine module for apply new objects adding to stageData
r: all debug options moved to gameOptions.debug section
+: added custom webgl program example
1.1.3:
f: typos
f: render errors catch
f: eslint issues
1.1.2:
r: increased Memory for WebAssembly methods from 10 to 500
+: added BigMap example for test big maps processing
1.1.1:
+: added tileset.spacing > 0 support for NOT_OPTIMIZED and WEB_ASSEMBLY versions
r: renamed WASM -> NATIVE_WAT
f: fixed centerCameraPosition() for NOT_OPTIMIZED and WEB_ASSEMBLY versions
f: fixed multiple tilesets in tilemap for NOT_OPTIMIZED and WEB_ASSEMBLY versions
f: fixed ASSEMBLY_SCRIPT version
1.1.0:
f: fixed npm registry issue
r: GameStage.system -> GameStage.iSystem
r: SystemSettings is now a class
1.0.0:
r: Classes names and properties renamed and refactored, interface -> i, ScreenPage -> GameStage, screenPageData -> stageData
0.3.8:
f: eslint issues
f: mask._isMask = true doesn't set tiledLayer objects
f: textures edges on rotate issue
f: examples dungeon ghosts edges artifacts
f: examples dungeon player - light overlay color artifact
r: examples dungeon map rebuilt
r: increase default canvas size
+: added tileset.spacing > 0 support
+: images spaces property
0.3.7:
+: addAnimation() cyclesPerFrame parameter
f: spineModule registerObjectRender() parameters fixed
r: tutorials updated, live examples added
0.3.6:
f: webpack min rendering issue
f: examples: nav back button offset issue
0.3.5:
f: webpack builds
r: updated assetsm to 0.1.3
0.3.4:
f: fixed textures overflow
f: fixed executing init methods
r: refactored texture binding
+: TextureStorage introduced
+: examples added "main menu" button
+: DrawSpineObject and DrawSpineTexture .sortIndex property
0.3.3:
f: fixed world boundaries calculations
f: fixed examples/dungeon decs
f: tiled layers textures temp saving
r: change enableBoundariesCalculations option check
r: moved text texture calculations inside text object
r: refactored text texture calculations
+: added current cycles time calculations
0.3.2:
f: circle-polygon collision
f: sort by sortIndex
f: removed setting stensil id for non mask objects
+: introduced DrawShapeObject.#isMask property
+: setting isMask property if object used as a mask
+: setting stensil id only for mask and filtered by mask objects
+: sortIndex added to DrawTiledLayer
+: drawObjectFactory will now add items to the stageData
+: draw circle boundaries
0.3.1:
+: introduced IExtension
r: removed spine module 3 parameter
r: fixed jsdocs according last changes
r: fixed jsdocs schemes
r: added jsdoc switcher for prev versions
0.3.0:
r: CanvasView -> IRender
r: removed multiple layers and layers create
r: IRender is now part of the ISystem
r: render() itself moved to the IRender
r: removed IRender.#renderLayers, any draw object will be added to #renderObjects array now
r: IRender.#renderObjects moved to GameStage.GameStageData.#renderObjects
r: RenderLayer -> DrawTiledLayer
+: drawMasks introduced
+: DrawShapeObject.setMask(), DrawShapeObject.removeMask()
+: DrawTiledLayer.setMask(), DrawTiledLayer.removeMask()
+: ISystem.registerDrawObject() for add new drawObjects
+: new methods introduced: IRender.registerRenderInit() for register init drawing methods
+: ISystem.registerDrawObject() for register new types of drawing objects
+: IRender.registerObjectRender() for register object drawing methods
0.2.3
+: circle boundaries
+: circle/circle/polygon/boundaries collisions
+: spine-animation tutorial
0.2.21
f: fixed removing drawObjects
0.2.2:
+: added system class types
r: spine module design updated
+: introduced spineModule.activateSpineRender()
0.2.12:
f: fixed boundaries drawing
f: left and bottom map boundaries count
0.2.11:
f: fixed dependency issue
0.2.1:
+: web assembly experiments
0.2.0:
+: modules installing with system.installModule(key, moduleClass, ...params)
+: spine module, integration spine runtimes
r: rendering pipeline now use public, overwritable methods view.initiateContext() and view.render()
r: GameStage.createCanvasView is now returns a CanvasView instance
0.1.24:
f: updated tutorials
0.1.23:
f: updated readme
f: updated tutorials
+: added config.modules.spineAnimations
+: stage stages scheme
0.1.22:
f: updated readme and tutorials
+: added jsge name on loading screen
0.1.21:
f: eslint issues
+: package.json keywords
0.1.2:
f: jsdocs
+: ship sails state
+: ship speed calculation depends on ship direction, wind direction and wind strength
+: DrawImageObject set imageIndex()
0.1.1:
+: loading progress bar
f: jsdocs cleanup
0.1.0:
+: tutorial How to add and use audio
+: dungeon: default audio, ghost and fireball audio
+: dungeon: enemy - player detect
+: dungeon: enemy - player move
+: utils.countDistance()
+: DrawConusObject.fade_min
+: DrawConusObject ability to draw fade effect, using fade_min property
+: WebGL fade count, depends on fade_min and radius properties
r: iLoader moved to the system class level
r: updated scheme
0.0.9:
f: draw object boundaries
f: jsdoc: subtractProgram string -> cut boolean
+: wholeWorldPrecalculations boundaries option and calculations
+: stageData.getWholeWorldBoundaries()
0.0.8:
r: changed main file to src/index.js
r: added /modules, fixed modules imports
r: changed socket.io to dynamic import
f: fixed jsdocs
f: fixed eslint issues
0.0.7:
r: CanvasView.#webGlInterface._drawLines() accepts rotation and x, y params
r: DrawObjectFactory jsdoc fix
+: DrawImageObject.addAnimation isRepeated parameter
+: DrawImageObject.stopRepeatedAnimation()
f: repeated animation indexes processing
r: types replaced with lowercase equivalents
r: DrawImageObject.boundaries -> vertices, boundaries marked as deprecated
r: vertices is now used to check collisions
r: vertices are now Array<Array<number>> (Array of x,y coords )
+: GameStage.isObjectsCollision()
+: DrawCircleObject, DRAW_TYPE.CIRCLE
+: Examples: dungeon, added casting fireballs, added enemies
f: fixed animations cycles
+: addAnimation() isRepeated and isReturnToBeginning parameters
+: stopRepeatedAnimation()
0.0.6:
f: examples: pirates fixed top white line
r: CanvasView.isStatic -> isOffsetTurnedOff
r: _bindRenderLayer() cut right/bottom offscreen tiles
0.0.52:
f: CanvasView and GameStage issues
f: examples/dungeon overlay size
0.0.51:
r: changed setting world detentions behavior
r: refactored encapsulation
r: refactored classes
r: refactored docs
r: refactored scheme
0.0.5:
r: changed mapBoundariesEnabled option behavior
f: fixed setMapBoundaries() call
+: fixed GameStage.createCanvasView() and CanvasView.#isStatic parameter
f: removed centerCameraPosition() debug output
0.0.46:
f: isPolygonLineIntersect() issue
0.0.45:
f: countClosestTraversal2() issues
r: isPointOnTheLine() added a measurement error parameter
0.0.42-0.0.44:
f: fixed text and images transparency
f: isPolygonLineIntersect() fixed polygon boundaries collision corner cases calculations
f: GameStage public functions changed to arrow functions
f: #triangulate() fix
+: "prepare-to-push" npm task
+: examples/racing car boundaries added
0.0.41:
f: added build files, fixed jsdoc
0.0.4:
r: Refactor triangulate() method
r: webgl render methods refactor
r: removed default blendFunc for primitives
r: DrawShapeObject width, height, boundaries properties and methods moved to DrawImageObject
+: DrawObjectFactory.circle()
+: drawConusObject.#calculateConusVertices()
+: GameStage.isBoundariesCollision() to detect object(xy/mapBoundaries) and object(boundaries/mapBoundaries) collisions
+: webGl.blendFunc parameters are added to the DrawShapeObject
+: examples: pirates - added wind direction icon, added wind direction change
f: fixed utils.isPointOnTheLine() and utils.countClosestTraversal2() issues
0.0.3:
r: Fixed drawLines() position shift
r: Removed drawLines() premultiply alpha
r: Point() renamed to Vertex()
r: fix isServerConnected check before network.init() runs
+: polygon.triangulation algorithm
+: polygon drawing
+: object boundaries drawing
0.0.2:
r: Fixed changing text properties render
0.0.1:
+: Javascript Game Engine introduced