Releases: play-co/devkit-core
Version 4.0.0
Change Log
This version overhauls the devkit-core build system to use node-js streams. It also replaces the java spriter with a pure-js implementation.
All Builds
- spriter uses a pure-js implementation (https://github.com/gameclosure/devkit-spriter)
--sprite-images
/--no-sprite-images
enable or disable spriting (requires latest devkit cli)- simulator builds default to no spritesheets
- image compression provided by
imagemin
in release builds--[no]-compress
toggles compression of both js and image compression--[no]-compress-images
toggles compression of image compression
- spriting and image compression now use extra cpu cores (if available)
- builds preserve modified timestamps of copied files
- cache directories are now in
build/cache
rather than in the output directory to make it easier to use the output directory without cleaning it first
Browser Builds
--application-cache
: html5 application cache disabled by default, use this flag to enable--no-web-app-manifest
: html5 web app manifest enabled by default, use this flag to disable- spritesheets no longer forced to power-of-two sizes
Android Builds
--install
and--open
now operate on all connected android devices--min-sdk-version VERSION
and--target-sdk-version VERSION
let you increase the min/target sdk versions from the default that devkit uses
Module Authors
Modules may modify the build process and create new build targets.
- bootstrap code updated for browser builds
- new
GC_LOADER
object controls the loading of the page with a pipeline of functions that execute before the main script payload executes - modules can insert code using
config.browser.footerHTML
to block the load of the page usingGC_LOADER.addStep(name, cb)
or modify theGC_LOADER.pipeline
directly.cb
functions may return aPromise
to block the call of the next item in the pipeline.
- new
- new streaming api is documented here 81795ab
Release v3.1.0
- WebGL support is now available in desktop and mobile browser builds. To enable it, update your
manifest.json
with:
"browser": {
"canvas": {
"useWebGL": true
}
},
- Filtered images on browser canvas are now cached for better performance
- ui.resource.loader now has a progress property for preloading progress updates
- Preloading audio is now supported in browser, by providing an array of individual mp3 urls to the preloader
- Preloading sounds by directory to be supported in a future release
- Rendering logic has been overhauled, using matrix transform objects for optimization
- Splash screens now show properly in the browser during game load
- Hyphenated font names now load correctly in browser
Windows fixes
Fixes windows path issues in the jsio module.
Fixes native-ios garbage collection crash
This patch fixes a crash in native-ios
that was caused by garbage collecting views with animators. This was already being handled in native-android
properly.
Animate Refactor and Fixes
This release improves timestep's animate
by adding functionality and fixing small behavior differences between animate in the browser and the accelerated animate implementation in native. It also includes changes from v3.0.0-rc1
tag. See release notes from v3.0.0-rc1 for the rest of the updates.
Major changes
- The
Animator
class returned by theanimate
API is now created once persubject
andgroupID
pair. - Animators are now cached on the subject, in an
__anims
object, so that they only get garbage collected when the subject is garbage collected - The
Group
class returned by theanimate.getGroup
API has new functionalitypause
,resume
,clear
, andcommit
functions now exist on groups of animators
- Also exposed subject-specific and global functions for
pause
,resume
,clear
, andcommit
animate.pauseAllAnimations
animate.resumeAllAnimations
animate.clearAllAnimations
animate.commitAllAnimations
animate.pauseSubjectAnimations
animate.resumeSubjectAnimations
animate.clearSubjectAnimations
animate.commitSubjectAnimations
- Fixed a bug with
commit
that allowed multiple instance ofAnimator
to fight for precedence, on native builds only - Fixed a bug with
then
that wasn't properly settingelapsed
to 0 on native builds only; the behavior now matches the browser JavaScript - Fixed a bug where instances of
Animator
only inheritedEmitter
(PubSub
) functionality in browser; they now always also work as event emitters in native commit
now also callsresume
on paused animations so that they finish instantly
Breaking changes
- The
Group
class returned byanimate.getGroup
no longer has aget
function; it was redundant, since it returned the same thing asanimate(subject, groupID)
- Group's
add
function behavior changed, and should still be used primarily internally by theAnimator
class
v3.0.0-rc1
Release Candidate 1 for devkit-core
v3.0.0.
This release improves the build process and debugging APIs for devkit games. Specifically:
- build code migrated from
ff
to bluebirdPromise
s +vinyl-fs
for better error handling and parallelization - adds support for ES6
Promise
in the browser and native with bluebird - adds basic support for app manifests in mobile browser builds (https://developer.mozilla.org/en-US/Apps/Build/Manifest)
- adds basic support for caching through html5 service workers, improving offline functionality in browser-based games
- adds
devkit.photos
API for retrieving photos from the user's camera or gallery on native or in a browser (desktop browsers fall back to image file upload) - introduces a
Channel
API for communicating with a simulated game from inside a devkit extension - fixes various game startup and loading bugs
Recommended changes
- Upgrade
devkit
to v3.0.0 - Rename
addons
key inmanifest.json
tomodules
- either is allowed, butmodules
is preferred
Breaking changes
These changes should not affect most users, unless you have custom devkit modules that integrate deeply with the previous devkit build phase.
CONFIG.addons
renamed toCONFIG.modules
- module resources path renamed from
addons/[module-name]/
tomodules/[module-name]/
- removed
devkit.debugging.conn
in favor ofimport devkit.debugging; devkit.debugging.getChannel(channelName : string)
Additional Module Build Options
Android
- Restore
copyGameFiles
functionality for module builds - Allow module library includes in nested directories
iOS
- Add
additionalLinkerFlags
opts to module builds
v2.3.4: Native Android Fullscreen
Native Android now supports Google's recommended behavior for games, full screen "sticky" immersive mode, by default.
Fix plugin response parsing, stop asking for notification permissions
- Removes the automatic asking for notification permissions at startup (which was incorrect for ios 8+). Now permission should be requested when desired, using the correct api for the current ios version. This has been updated in the latest version of the localNotify plugin.
- Fixes a crash parsing JSON from plugin events
Remove live-edit cdn check
v2.3.2 partial revert of c60199792f83166834ea8321c05dd44b7185b3b6 for launch…