Skip to content

Latest commit

 

History

History
574 lines (332 loc) · 20.1 KB

CHANGELOG.md

File metadata and controls

574 lines (332 loc) · 20.1 KB

Version 0.6.36

Version 0.6.35

  • fix various bugs

Version 0.6.34

  • rename SharedAssetManager into Asset

Version 0.6.33

  • [#224] introduce @AssetSource annotation

Version 0.6.32

  • simplify screens by making generic arguments optional

Version 0.6.31

  • expose screen shake value
  • add option to define custom game context

Version 0.6.30

  • add camera zoom tweening

Version 0.6.29

  • add additional constructors to AnimationSpritesheet

Version 0.6.28

  • fix random animation offset

Version 0.6.27

  • improve animation rendering and add offset option

Version 0.6.26

  • add fps and particle count metrics

Version 0.6.25

  • [#189] remove attached particle effects while their owner is not updateable

Version 0.6.24

This version removes ArrayList from the GameWorld contract to boost performance and replaced it with the libgdx version of Array.

  • introduce Array as return type to retrieve game objects
  • [#17] when reaching over 50 game objects, a new QuadTree algorithm is used to temporarily disable not visible game objects. This should boost performance significantly.
  • [#80] introduce debug UI. Enable it by setting a LabelStyle on BrainGdxDebug as well as using setDebug on GameContext

Version 0.6.23

  • add the option to delete game objects by id to prevent race conditions

Version 0.6.22

  • add rotational offset to SpriteRenderer

Version 0.6.21

  • make animations more flexible by allowing to set a default animation
  • add size option to various animation and sprite renderers
  • add option to clear inputs

Version 0.6.20

  • fix PointLight2DTween

Version 0.6.19

  • override physics body in case it is inactive to keep syncing with the game object

Version 0.6.18

  • make physics faster by adding a scale

Version 0.6.17

  • add lighting.offset.x and lighting.offset.y option for Tiled
  • add Body to game object attributes when physics are attached
  • add T getAttribute(Class<T> key) to GameObject

Version 0.6.16

  • add option to set a custom render order comparator through setRenderOrderComparator()

Version 0.6.15

  • more improvements to NavigationMenu implementation

Version 0.6.14

  • vastly improve NavigationMenu implementation to support colour fading and animations

Version 0.6.13

  • [#212] introduce new setZoom method to calculate camera zoom automatically
  • fixed an issue regarding screen transitions

Version 0.6.12

  • always set collisions to false when not defined within Tiled
  • [#210] do not expose internal vector on getPosition()

Version 0.6.11

  • fix NullPointerException in tiledmap context
  • fix screen transition overlay positioning

Version 0.6.10

  • minor API improvements around font baking

Version 0.6.9

  • fixed a positioning issue when centering rectangular box2d objects

Version 0.6.8

  • [#130] introduce box2d support for tiled

Version 0.6.7

  • fix ScreenTransitions color issue

Version 0.6.6

  • [#207] introduce enteronly property for event router

Version 0.6.5

  • fixed NullPointerException on GameObject::getOrSetAttribute

Version 0.6.4

  • [#174] allow 3D sound creation through Tiled
  • lighting and sounds are now automatically created through tiled via properties

Version 0.6.3

  • [#183] improve lighting manager API
  • [#203] make loading of tiled map more consistent
  • [#204] return already loaded context when trying to load again
  • [#205] add support for registering updateables to the game context
  • [#206] inject map properties directly as attributes

Version 0.6.2

Fix rotations for physics bodies.

Version 0.6.1

Fixed a small issue which caused physics to get positioned wrongly.

Version 0.6.0

Disclaimer! this version introduces major API refactoring and will produce compilation errors before migration!

This update changes the entire architecture of this framework by separating reponsibilities into submodules:

  • braingdx-core the core dependency now contains only generic core logic and boilerplate
  • braingdx-2d the 2D dependency provides features such as 2D lighting and 2D physics support as well as tiledmap support

Later on, a new braingdx-3d module will be added which provides a different kind of feature set such as Blender support.

Features

  • [#95] added pause game functionality
  • [#144] replace TiledMapAPI with TiledMapContext
  • [#186] drastically improved performance on mobile devices
  • [#193] added color manipulation utility
  • [#194] added point light tween
  • [#202] infer MapType from TiledMap orientation property

Bugfixes

  • [#103] resolved an issue where global behaviours could not be loaded globally within a loop
  • [#197] drastically reduce memory footprint
  • [#199] fixing camera position setting

Version 0.5.17

  • [#98] only remove relevant objects from the world when disposing the tiled manager

Version 0.5.16

  • remove Iterable interface from GameWorld
  • add new Group utility
  • [#96] introduce game object groups accessible via GameWorld

Version 0.5.15

  • reduce memory footprint by only calling GameObject.toString() when debug level is active

Version 0.5.14

Further improvements on memory heap footprint:

  • remove BigDecimalVector2
  • add DoubleVector2
  • replace BigDecimal with double for camera tracking and camera alignment

Version 0.5.13

  • only create animation states dynamically whenever they are required
  • only compute tmx layer indices whenever they are required

Version 0.5.12

  • only create AStarPathFinder when it is actually used to reduce memory footprint
  • significantly reduce memory footprint of TiledMapManager by dynamically creating cell states at runtime
  • implement toString() method of CombinedRenderPipe

Version 0.5.11

  • add new particleMultiplier to GraphicsSettings in order to dynamically control the amount of all particles

Version 0.5.10

  • add additional constructor to StringRandomizer in order to provide a fixed seed

Version 0.5.9

This version introduces string manipulation with additional tween engine support:

  • [#196] implement StringRandomizer
  • implement StringRandomizerTween

Version 0.5.8

  • add new getObjects method to GameWorld

Version 0.5.7

  • deleted GameInputAdaptr - use GestureListener via libgdx instead
  • implemented additional input variations for Navigateable

Version 0.5.6

  • [#190] fix a crash due to box2dlights ray handler not being disposed

Version 0.5.5

  • [#187] do not create frame buffers when no shaders are being used
  • removed RenderPipeline.getPipe method
  • added RenderPipeline.addEffects method
  • added RenderPipe.hasEffects method

Version 0.5.4

  • [#185] added new setDistanceStoppingThreshold method to GameCamera which allows defining a threshold to avoid flickering
  • added a new overloaded setAmbientLight method to LightingManager which allows fading the ambient light

Version 0.5.3

  • added sound styles to NavigationMenu

Version 0.5.2

  • fixed an issue where behaviours would not get removed on attached particle effects which are not continuous.

Version 0.5.1

  • [#184] implement concept of vertical and horizontal camera speed

Version 0.5.0

The physics update - this update introduces a brand newPhysicsManager which Box2D integration out-of-the-box. Additionally, this update fixes some older bugs as well, such as particle emission issues.

  • [#70] integrate Box2D support via PhysicsManager accessible via GameContext
  • [#131] fix IllegalStateException when window size is scaled down to 0
  • [#152] extend RenderPipeline API by new methods
  • [#153] fix an issue where particle effects where emitted twice
  • [#182] fix collision bug within SimpleWorldBounds

Version 0.4.11

  • improve API around NavigationMenu

Version 0.4.10

  • [#178] add shake() method to GameCamera to shake the screen
  • [#179] implement NavigationMenu class, including controller and keyboard handlers
  • [#180] add controller support to InputManager
  • cleaning up ActorTween API

Version 0.4.9

  • [#175] remove MovementController API
  • [#176] improve deferred loading and unloading of behaviors and game objects
  • [#177] introduce new Updateable interface which can be applied on Behavior and InputProcessor implementations

Version 0.4.8

  • add setAlpha to AnimationDrawable

Version 0.4.7

  • add offset to AnimationRenderer

Version 0.4.6

  • add new utility class GameObjectUtils

Version 0.4.5

  • spawnEffect now returns an ParticleEffect object respectively

Version 0.4.4.1

  • fix a bug within ColouredRenderLayer so it resizes correctly

Version 0.4.4

  • [#172] fix NullPointerException in GameEventRouter
  • removed internalId and previousId from GameObject

Version 0.4.3

  • [#171] make animation API independent of GameObject class
  • [#170] introduce AnimationDrawable class

Version 0.4.2

  • [#168] introduce scaling by GameObject origin
  • changed method signatures of GameObject getters and added additional getters
  • AnimationRenderer now uses Sprite to render TextureRegion frames

Version 0.4.1

  • fix rendering of animations on negative scaling

Version 0.4.0

  • [#46] rewrote the entire animation API. It is now much more straight forward to define animations within braingdx

Version 0.3.8

  • [#161] add GameObject.removeAttribute method. Additionally, setAttribute(key, null) will remove the attribute entirely now.

Version 0.3.7

  • [#159] origin of Zoomer now applies correctly independent of render scale

Version 0.3.6

  • [#158] simplify shader manager API

Version 0.3.5

  • ColorTransition now properly applies custom colors
  • [#135] implement GameInputAdapter
  • [#155] introduced Settings and GraphicsSettings
  • [#156] created GameInputAdapter for better input handling
  • [#157] added ShaderManager

Version 0.3.4.1

  • add GameCameraTween

Version 0.3.4

  • [#132] fix NumberFormatException in VectorGameCamera
  • [#153] do not reset the particle emitter before start()

Version 0.3.3

  • [#107] introduce TiledMap animations

Version 0.3.2

  • [#151] GameObject scaling does now affect animation rendering

Version 0.3.1

  • [#150] changing world bounds should now reset camera stickiness

Version 0.3.0

This release brings major improvements to the GameCamera logic and API within braingdx.

  • [#102] fixing stickiness of GameCamera
  • [#129] setting game camera attributes works now without a target attached
  • [#145] improve GameCamera API with additional methods to retrieve dimensions and position
  • [#146] introduced GWT math
  • [#147] introduced BigDecimalVector2 math component

Other fixes

  • improve precision of GameCamera object tracking

Version 0.2.17

  • [#140] fix issue where tiled collisions were overriden and removed by other game objects
  • [#141] improve collision API for tiled maps. Introduce isExclusiveCollision and isInclusiveCollision methods to TiledMapAPI

Version 0.2.16

This release fixes collision removal for tiled maps.

  • [#136] fix issue where moving game objects leave collisions behind
  • add new method to GameObject::getOrSetAttribute which retrieves or sets an attribute, depending on its existence

Version 0.2.15

This release fixes various issues around tiled map support within braingdx.

  • [#133] Introduce TiledMapAPI.setEventFactory(GameEventFactory)
  • [#135] Game objects with a collision now have an indexed initial position
  • fixed a bug where sticky events would be accidentally deleted
  • added a GameEventRouter class which publishes game events when game objects collide with event objects

Version 0.2.14

  • [#134] extend TiledCollisionResolver

Version 0.2.13

  • [#127] fix initial project setup

Version 0.2.12

  • [#118] replace listeners with TiledMap events
  • do not log an error message when no event listeners are defined for a published event

Version 0.2.11.2

  • introduce box2dlights 1.5-SNAPSHOT

Version 0.2.11.1

  • [#124] introduce new deployment flow

Version 0.2.11

  • [#123] introduce Maven Central only-dependencies

Version 0.2.10

  • [#113] implement advanced collision detection for larger object
  • [#120] add fingerprints to collisions
  • [#121] include object collisions for path finding

Version 0.2.9

  • add method to AudioManager to directly attach sounds to game objects

Version 0.2.8

  • [#119] hide invisible tiledmap layers

Version 0.2.7

  • [#116] set object color correctly on animations
  • [#117] add support to TMX to disable collisions for game objects

Version 0.2.6

  • [#114] integrate path finder
  • [#115] improved particle management
  • fix a bug where onEnterCell had been called before collisions were updated

Version 0.2.5.2

  • Introduce SpriteSheet scaling

Version 0.2.5.1

  • Fix audio issues

Version 0.2.5

  • [#112] 2D audio support: rewritten AudioManager for better audio handling. Also supporting 2D sound.

Version 0.2.4

  • fix class cast exception for collisions

Version 0.2.3

  • [#110] bugfix: TiledMap collisions become sticky on non-collision game objects

Version 0.2.2

  • [#80] Introduce collision debug mode for tiled maps
  • [#105] bugfix: NumberFormatException when resizing window
  • [#109] LightingManager: clear all lights

Version 0.2.1

  • [#101] Make camera optionally sticky to world bounds

Version 0.2.0

This version introduces new features such as better event handling and general bug fixes.

  • [#12] implemented ParallaxMap
  • [#39] upgraded ParticleManager codebase
  • [#90] use 'Fonts' to load ttf fonts instead of BitmapFont
  • [#91] introduced BitmapFontBaker 🍞
  • [#94] it is now possible to append or prepend additional render pipes
  • [#97] implemented Simple Event System

Version 0.1.9

  • reset music position on play

Version 0.1.8

  • global behaviors can now be used to compare two objects on update

Version 0.1.7

  • BehaviorManager: map behaviors via game object id to prevent race conditions
  • introduced DEBUG logging for GameWorld
  • rewrote the ID system - now a UUID is being used
  • GameObject: added internal id which does not change, even after re-obtaining from the pool
  • GameObject: added previous id from a previous pooling iteration

Version 0.1.6

  • GameCamera: add 'focus(GameObject)' method
  • bugfix: remove objects which are outside of the world, even if they are inactive

Version 0.1.5

  • do not set center on sprite rotation

Version 0.1.4

  • added rotation to SpriteRenderer

Version 0.1.3

  • added rotation attribute to game objects
  • add 'scale' method to game objects
  • introduced lazy behavior creation/deletion

Version 0.1.2

  • added partial support for viewports
  • introduced lazy object creation for game worlds

Version 0.1.1

Added offset attribute to AnimationRenderer class.

Version 0.1.0

This version improves braingdx and comes with the following highlights:

  • [#84] introduced new UI stage which works on the world render level
  • [#83] game objects can now be retrieved via their respective ID
  • [#76] added various shader tweens
  • [#79] added a new assetloader which uses reflection to load assets
  • [#81] introduce mutator pattern for game object initialisation

Version 0.0.1

  • render pipeline
  • lighting pipeline
  • basic behaviors