Releases: james7132/DanmakU
Releases · james7132/DanmakU
Alpha v0.7.0
Minimum Unity Version: 2018.1b8
A complete rewrite using Unity 2018.1's new C# job system.
Alpha v0.6.0
Additions:
- Danmaku Colliders is now an open abstract class. IDanmakuCollider still exists for behaviours that want to interact with danmaku, but can't sublcass DanmakuCollider. DanmakuCollider generalizes functionality previously seen in DanmakuBoundary with the addition of regex filtering on the tags.
- Added DeactivationCollider, deactivates all bullets that match it's target tags. Previous functionality seen in Danmaku Boundary has been moved here.
- Added RedirectionCollider, it changes the direction Danmaku travel in based on some parameters. It works only once per danmaku, and it's implemented in a similar fashion to that of DelayedAngleChange Danmaku Controller.
- Added ConstantForceCollider: pushes danmaku in a certain direction so long as it is contacting the collider.
- Added AccelerationCollider: speeds up or slows down danmaku so long as it is contacting the collider.
- Added ReflectionCollider: reflects danmaku using vector reflection.
- Added ColorChangeCollider, makes bullets change color on contact
- Added PrefabChangeCollider, changes the prefab of the bullet on contact.
- Added AddControllerCollider, adds additional Danmaku Controllers to the bullets that come in contact with it.
- Added ClearControllersCollider, clears all Danmaku Controllers from the bullets that come in contact with it.
- Added HomingController, makes bullets home on the player.
- Added AddControllersModifier, adds additional Danmaku Controllers when used to fire bullets.
- Added ClearControllersModifier, clears all Danmaku Controllers used on bullets when used to firing.
- Added ChangePrefabModifier, changes the prefab used when firing.
- Added additional collision types for bullets. Box, Line and Point colliders are now available.
- Added utility functions for easier manipulations of bullets that also make the code a bit easier to read.
Changes:
- Danmaku can now be fired without being bound to a Danmaku Field
- FireBuilder has been completely rewritten to allow for easier use, using a fluent interface design, it makes the code easy to write and easy to read.
- The dependency on UnityUtilLib was removed. Instead a Util package is seperated for utility functions specific to DanmakU.
- DanmakuGroups are not limited to HashSet derivations.
- DanmakuGroup is now an abstract class, and can use any implementation of ICollection as the underlying backing collection. (Note that only HashSets are assured to maintain a no-duplicate property).
- Danmaku Field no longer restricts what can and can't be done with the field's camera.
- Multiple 3D cameras can be attached to the same Danmaku Field. All will share the same viewport on the screen with the 2D camera. Using the depth property on them, the cameras can be used to render different items as needed.
- Danmaku Prefabs can now support MeshRenderers, you can make 3D danmaku with any Mesh/Material combination.
- Changed IDanmakuCollider to pass in a RaycastHit2D parameter as well to provide more information on the collision.
- ColorFadeController is now ColorChangeController, and several additional options for changing the color of the bullets have been added.
- Previous packages have been moved to separate repositories and have separate releases altogether. Releases and code provided in this repository will now be solely for the core DanmakU package.
- Operations that previously allowed mass manipulation of bullets via Danmaku Groups is now generalized as extension methods for any container that extends IEnumerable. This ranges from Lists, to HashSets, to simple arrays of Danmaku.
Alpha v0.5.0
Additions:
- Added DanmakuField.FindClosest as high performance alternative to UnityUtilLib.Util.FindClosest
- Added Vexe Framework as a dependency, allowing serialization of virtually everything.
- Added Tasks as a separate coroutine system, more akin to Danmakufu's tasking system.
- Added correct implementation of Curve Controllers for speed and angular speed.
Removals:
- All wrapper classes for Danmaku Controllers and Modifiers have been removed in favor of using Vexe Framework as a way to serialize the data.
Changes:
- DanmakuFields no longer need colliders to keep players from leaving their movement bounds. Danmaku Playable Characters are automatically restricted to their respective Danmaku Field's movement bounds.
- Danmaku Playable Characters are now Danmaku Triggers, allowing for use of Danmaku Emitters and other NoScript elements to create Player shot patterns
- Danmaku no longer need an underlying GameObject to be rendered/moved. They are instead backed by mesh based particle systems. This has signifigantly cut down on the number of draw calls made.
- Optimized the collision handling on bullets: removed the need to call GetComponents on each collider with each bullet by caching the GetComponents results.
- The Phantasmagoria section will be released as a separate package from now on.
- Renamed Fire Modifiers to Danmaku Modifiers.
- Danmaku Sources have been reimplemented as Danmaku Modifiers to simplify object structure.
- Danmaku.AngularVelocity is now AngularSpeed, as it is a scalar not a vector.
Fixes:
- Fixed bug with expanding the DanmakuPool causing IndexOutOfBoundsException.
Known Issues:
- Danmaku Playable Characters can leave the movement area by moving diagonally into a corner.
- Since old wrapper classes were deleted and the new Danmaku Editor is not complete yet. The NoScript package is currently useless. Will be fixed by Alpha v0.6.0.
Administrative Changes:
- Project and namespaces have been renamed to DanmakU for brevity.
- Project has been moved into Rhythmia, james7132's doujin circle.
Legal Stuff:
- Changed to MIT license, because most game developers would probably not use GPL'd code.
- Added copyright notices at the top of almost all source files for good measure.
Alpha v0.4.0
Required Unity Version: 5.0.0f4
Additions:
- Added DanmakuTriggers as a dynamic way to trigger DanmakuEmitters
Changes:
- Update to the latest UnityUtilLib
- Many of the floating values now use DynamicFloat and DynamicInt for more versatile value definition (allows for variables to be changed from static constants to dynamic randomized variables from the Editor)
- DanmakuEmitters are now a single sealed class and cannot be inherited from.
- Projectile-based classes were renamed to use Danmaku instead to be more apporiate for the kind of game these were to be for. (Projectile was also too verbose).
Alpha v0.3.0
Required Unity Version: 5.0.0f4
Additions
- Added Fire Modifiers.
- Fire Modifiers are used to alter the behaviour of the standard fire functions.
- Fire Modifiers can have Sub-Modifiers that can be apply multiple modifiers in succession to the same fire call.
- Added deltaVelocity and deltaAngularVelocity to Bursts. Changes behaviour of fired bullets along the burst.
- Added Line Modifier
- Line Modifiers fire X bullets in the same position and orientation as a normal bullet fire
- Line Modifiers also have a deltaVelocity and deltaAngularVelocity that change the movement parameters
- Added Support for ProjectileControllers as purely delegates.
- Added AutoDeactivateController as a way to deactivate bullets after a fixed time
- Added Sub-Source functionality to provide more dynamic ProjectileSource generation
- Sub-Source allow ProjectileSources to replace single SourcePoints with the entire pattern of another ProjectileSource
Changes
- Merged Linear/Curved Projectile into Projectile as standard Projectile behaviour.
- ProjectileControllers are now purely for non-standard behaviour.
- Bursts were restructured to be applied as a modifier.
- Replaced Cosine and Sine calls in Projectile with a precomputed cache array. Improves rotation performance.
- Granularity and memory footprint of precomputed cache array can be changed with angleResolution in DanmakuGameController
Removals
- Removed specialized classes related to Linear and Curved controllers.
- Removed specialized burst related classes in favor of the new modifier.
Alpha v0.2.1
Required Unity Version: 5.0.0f4
Additions:
- Added SpawnBurst as a function for high efficency spawning of circularly arranged bullets.
- Added ProjectileSource and ProjectileEmitters as a script-less way to design patterns
- Added a number of implementors of ProjectileSource and ProjectileEmitters for easy use.
Alpha v0.2.0
Required Unity Version: 5.0.0f4
Changes:
- DanmakuField is now a sealed and concrete class.
- No more than one DanmakuField can be attached to a GameObject now.
- DanmakuField does not need an external camera, it now comes with one built in.
- DanmakuField does not need a set of ProjectileBoundaries to rid of out of bounds projectiles.
- DanmakuField now comes with a clipping distance setting that removes all bullets not inside.
- DanmakuField now has two cameras 2D and 3D.
- DanmakuField's 2D camera can only be rotated.
- DanmakuField's 3D camera is external and can be controlled elsewhere.
- DanmakuField is now tied directly to the Z=0 plane and cannot be moved (this is done for optimization's sake).
- IProjectileGroupControllers were merged into IProjectileControllers
Additions:
- Added custom editor for DanmakuField
- Added sorting layers /sorting layer IDs to MeshRenderers
- Added ControlledBurst for a Burst implementation that used a custom ProjectileControlBehavior as it's controller
- [IN PROGRESS] Added AnimationCurveController to see if it was possible to control bullets using Animation Curves.
- Added FireData struct for passing back fired projectiles and their controllers in a strongly typed manner
- Projectile and ProjectileManager optimzied even further.
Removals:
- Removed PhantasmagoriaField.
- Removed Projectile property from IProjectileController, it was not a necessary part of the interface
- Removed ProjectileController class, it was redundant.
Alpha v0.1.1
Required Unity Version: 5.0.0f4
Additions
- Added documentation to the majority of the code.
- Added ProjectileGroup as a dynamic collection for Projectiles. It automatically removes Projectiles from the group when they are deactivated.
- Added IProjectileGroupController as a way to save on garbage collection when creating large groups of similar bullets.
- Added ProjectileControlBehaviors to allow for prefab level behavior definitions
Changes
- More optimizations Can now handle 10k bullets at 60fps in build with proper setup.
- Projectiles are now a sealed class, and cannot be inherited from.
Initial Alpha Release
Required Unity Version: 5.0.0f4
Preliminary release.
Currently undocumented but functional.