UNPKG

jsge

Version:

Javascript Game Engine

436 lines (363 loc) 14.6 kB
# 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