ComigoViaGithub

  • Jul 10, 2024
  • Joined Apr 2, 2021
  • Just lookin'

  • If you think you can do this better than me, go ahead and frickin' do it instead of questioning my work. You are not a patron, nor a contributor, not even a helpful user that supports others on Discord or on this forum, you get my work and work of other people for free, yet you think you have rights to shame me for doing the right thing. You could've just picked another tool instead of continuing being a dick.

    Why is CT so excellent in other aspects of design, but it has removed the previously included bone animation function?

    Because DragonBones is DEAD. It's dead, its runtime is not supported by modern tools. I had to remove it in order to upgrade pixi.js and make other new features on top of it.

    • How pretentious.  ๐Ÿ‘Ž๏ธ

      I have plans to add support for a runtime of a japanese skeletal animation editor, but I also have other tasks on hand.

      If you want it to appear quicker, you can make a catmod that integrates your runtime of choice and make a PR to the repository. Quick note that I will not add support for Spine directly in the engine as it is not compatible with FOSS licenses.

    • No shortcuts as changes are saved/discarded on asset level, and events are stored inside scriptable assets like templates or rooms.

      • Visual programming language Catnip! Plus better bitmap font support, Typeface asset type, and more!

        The main feature of ct.js v5 is Catnip โ€” a block-based visual scripting language, made specifically for ct.js. It functions similarly to Google Blockly or Scratch, but better, and can do everything other languages can do! Documentation received a new section called Learn Catnip, and tutorials have Catnip code blocks alongside JS and CoffeeScript ones, too.

        Besides that, we updated the way ct.js handles fonts โ€” Font assets turned into Typefaces, and Typefaces can house several font files for different weights and styles in one asset for easier programmatic use. Issues with bitmap fonts rendering was fixed, and buttons and textboxes can now use bitmap fonts instead of canvas-based labels, which provides pixel-perfect rendering for pixelart projects. For individual labels, a new base class was introduced.

        Ct.js v4 projects can be safely migrated to v5 โ€” but make sure to update your text styles according to our migration guide: https://docs.ctjs.rocks/troubleshooting/migration-4to5.html

        Changelog

        โœจ New Features

        • Add a custom error display in games so players can more easily report failures. Add a toggle to disable error reporting in-game and a field to specify a custom repor link.
        • Add a method tween.value to the tween catmod, and add a Catnip block to animate arbitrary computed values.
        • Add an option to main menu to autoapply asset changes before launching a game
        • Add community's learning resources and games to the starting screen
        • Allow using bitmap labels in buttons and textboxes, and introduce a new base class for Bitmap Text labels. Add an option to increase bitmap font rendering that fixes issues with bitmap fonts
        • Behaviors: add Behavior added and Behavior removed events
        • Context menu item for styles to create a template with a Text base class from it
        • Customize debugger's layout: split-screen, multi-windowed, and automatic (based on the screen count)
        • New programming language: Catnip
        • New UI themes:
          • Alma Sakura
          • Golden Eye
          • One Dark Pro
          • Synthwave '84
        • room.makeCopyAligned and room.makeCopyAlignedRef methods to dynamically add copies that align to camera's boundaries, in the same way you set up them in room editor's UI tools.
        • Specify additional typedefs for JS properties of behaviors, templates, and rooms. Available for JavaScript projects only.

        โšก๏ธ General Improvements

        • ๐Ÿฑ Update the light catmod for ct.js v5
        • Add 'neutralino' case to u.getEnvironment (Closes #517)
        • Add additional checks for extended fields and fields in asset types. Fixes not being able to use array fields for asset types in content schemas
        • Align table cells to the top
        • Improve layout of project scripts
        • Improve performance of afterDraw injection of matter.js catmod
        • Internal: 'always strict' on ct.IDE's compiled TS files
        • Internal: Enforce stricter type checks in ct.js client library
        • Internal: Bundle most node_modules and ct.IDE's scripts into one file. This makes loading ct.IDE faster, as well as reduces the bundle size and install time. It also drops --mixed-context nw.js flag.
        • Internal: Update nw-builder to v4.7.4
        • Limit max project name length
        • Relayout the debugger screen to open the console in another window. Solves issues with JS breakpoints and "stop on exception" button
        • Remember opened assets when a project is saved, and reopen them when a project is loaded
        • Rename "editor" to "engine" in the ct.js' devtools banner
        • Replace resedit-cli with resedit for ct.IDE: removes dependency for node.js in desktop exporter.
        • Rework ct.js games' CSS to be less invasive to 3rd-party widgets and such
        • Rework font asset type into typefaces
        • Update patrons screen and move its logic into a module
        • Update QR code generator for game debugger

        ๐Ÿ› Bug Fixes

        • Add a safeguard to tween.add to not update values if the animated object was killed.
        • Add proper handling of missing event declaration. Warn user about events that use missing catmods when exporting a project and in a template editro
        • Fix updateWindowMenu error appearing on non-MacOS devices
        • Fix ancient settings for monaco editor that showed errors on ES5+ features
        • Fix being able to get several context menus by right-clicking other stuff with an already opened menu
        • Fix being able to select game canvas on iOS browsers
        • Fix built-in asset gallery not being accessible on Mac
        • Fix canvases and code editors in tandem, style, room and scriptable editors disappearing after opening a tab -> switching to another one -> resizing window -> going back to the tab with a code editor or a pixi.js canvas.
        • Fix cases when content types' typedefs were not updated
        • Fix copy alignment being bound to copy-pasted copies in the room editor
        • Fix copy rearrangement effects resetting upon reopening a room.
        • Fix emitter's rectangular shapes being misaligned
        • Fix error spam about uninicialized position and scale changes in room-entities-properties
        • Fix monaco-editors hotkeys for changing font size
        • Fix old current room name in templates.copy documentation
        • Fix SnapTarget in room editor interfering with clicks on canvas
        • Fix templates.each method. It can also be used with arrow function now, too, as it passes a copy to the first argument of your function.
        • Fix textboxes' html inputs remaining on screen when a room changes
        • Fix the tween catmods throwing errors despite using the silent: true option or .catch handlers
        • Internal: Fix gulp docs failing on windows with new node.js versions
        • Internal: Fix context-menu tags overwriting their ref attribute with "root"
        • Internal: Fix devSetup.gulpfile.js failing on Node.js v20.13+ and Windows
        • Internal: Rename properties of context-menu tag so it doesn't pull in global values
        • Make monaco-editor pass Ctrl+S, F5 & Alt+F5 hotkeys to ct.IDE so you can save/launch projects while in a code editor
        • Minor visual fixes for tabs
        • Prevent dragging sound thumbnails in the sound editor

        ๐Ÿฑ Demos, Dependencies and Stuff

        • Gallery: Add textures for buttons and panels
        • Add tutorial projects ported to Catnip by @firecakes
        • Add a Catnip example of LabRaid
        • Pull the latest docs
        • Rename examples by tagging them with used language, remove two unsupported examples
        • Update Comments and Debug translation files
        • Update the list of boosters

        ๐Ÿ“ Docs

        • ๐Ÿ› Example code error (Follow a copy of a template called "Character") Fixes #133
        • ๐Ÿ› Grammar fixes on homepage
        • ๐Ÿ› Make the patrons list centered
        • Add a patron list to README.md
        • Add Catnip examples to ct.js tutorials
        • Add Learn Catnip category
        • 100% russian documentation translation
        • Move a couple comments in catnip's declarationExtractor to a proper place

        ๐ŸŒ Website

        • ๐Ÿ› Fix the broken "games made with ct.js section", put a button to submit a game
        • ๐Ÿ› Set unique names for forms
        • ๐Ÿšง I may have summoned demons
        • ๐ŸŒ Add Chinese Simplified translation (#44 by @emaoshushu)
        • ๐ŸŒ Add Japanese translation (#45 by @taxi13245)
        • โœจ Add forms for submitting games and learning resources
        • โœจ Create an embeddable widget with supporters
        • โšก Add a honeypot for all the fields
        • โšก Add patrons panel to homepage
        • โšก Update wording on the homepage
        • Add a nice language comparison thingie

        ๐Ÿ‘พ Misc

        • ๐Ÿ”ฅ Internal: Delete now unused app/projects folder from the repo
        • ๐Ÿ”ฅ Internal: Remove the DragonBones submodule
        • ๐ŸŒ Update Russian UI translation file

        Ct.js is a free and open-source game engine supported by you. Consider supporting us on Boosty or contributing to the project directly by adding new features, improvements, and bugfixes to our repository.

        Join our Discord server
        Send a donation at Telegram
        Support ct.js on Boosty
        Contribute to ct.js on GitHub

      • It depends on which particular effect you want.

        If you want instant snapping, you can do something like this:

        var hero = templates.list['Hero'][0];
        if (templates.isValid(hero)) {
          this.x = hero.x + 32; // move to hero by X and shift to right by 32 pixels
          this.y = hero.y - 64; // same for Y, move a bit higher
        }

        Or you can make a copy gradually move towards another copy:

        var hero = templates.list['Hero'][0];
        if (templates.isValid(hero)) {
          // calculates direction from our position to hero's
          this.direction = u.pointDirection(this.x, this.y, hero.x, hero.y);
          this.move(); // movement method of your choice.
        }
        • This release addresses issues found in v4 and also adds some QoL features like exporting particle systems.

          Changelog

          โœจ New Features

          • Add a menu item to duplicate emitter tandems. Closes #498
          • Export and import emitter tandems from files
          • Now you can change the background color in the style editor

          โšก๏ธ General Improvements

          • ๐ŸŒ Update Chinese Simplified translations (#500 by @emaoshushu)
          • Behaviors will now have an additional icon in the asset viewer showing the asset type it was created for
          • Do update checks at max once in an hour if it was successfully requested before
          • Emitter editors will now show a (?) image instead of a blank broken image if no texture was set
          • (Internal) Move properties assignment for AnimatedSprite from the Copy mixin into the pixi.js-based class.
          • Now line height in style editors will scale with the font size when you change the latter
          • (Internal) Refactor copy creation off base classes, move CopyAnimatedSprite, CopyText, CopyContainer prototypes into separate pixi.js-based classes.
          • Remember whether the grid was disabled in a specific room
          • Transparent background in style editor. Make the preview occupy the available space in the editor.

          ๐Ÿ› Bug Fixes

          • Fix broken QWERTY and Shift+S hotkeys in room editors
          • Fix buttons skipping their pointer events after being disabled and enabled back
          • Fix discardio not removing old keys from asset object before assigning new ones, which led, for example, to not being able to disable stroke/fill/shadow settings of style assets
          • Fix double caching of tile layers that breaks rooms.merge call. Closes #501
          • Fix fs catmod failing when run in node.js context and trying to work with relative paths
          • Fix hotkeys being ignored if non-english keyboard layout was in use
          • Fix nine slice panes' tint being reset on click and not saved in the room-editor
          • Fix not being able to deselect items after sorting and moving them
          • Fix not being able to set tint with this.tint or the room editor to buttons.
          • Fix scripts sometimes having blank screen when switching back and forth tabs
          • Remove deleted behaviors from opened template editors, and deleted behaviors and templates links from rooms' properties panel
          • Sound assets should prompt for a name when created

          ๐Ÿ“ Docs

          • ๐Ÿ› Fix movement by a grid (#132 by @0xFFAAF)

          ๐ŸŒ Website

          • โšก๏ธ Update wording on essentials on the homepage

          Ct.js is a free and open-source game engine supported by you. Consider supporting us on Patreon or contributing to the project directly by adding new features, improvements, and bugfixes to our repository.

          Join our Discord server
          Send a donation at Telegram
          Support ct.js on Boosty
          Contribute to ct.js on GitHub

          • Ct.js v4.0.1 is out! ๐ŸŽ‰

            Minor improvements and bug fixes

            This update addresses issues found in the newly released ct.js v4.0.0.

            Changelog

            โšก๏ธ General Improvements

            • Changed button text from Save to Apply (#495 by @AnukratiMehta)
            • Improve migration script for v4 to handle cases when assets had broken references to groups

            ๐Ÿ› Bug Fixes

            • Fix migration code for v4 throwing an error if a project did not use fittoscreen catmod.
            • Fix pointer.collides method
            • Tabs of deleted assets must automatically close. Closes #491
            • Update copies in room editors if their linked text style has changed. Closes #493

            ๐Ÿฑ Demos, Dependencies and Stuff

            • โšก๏ธJettyCat's example project should use a text base class for its highscore label in the defeat screen
            • ๐Ÿ› Fix fullscreen switcher in Catformer example(#490 by @sk757a)

            ๐Ÿ“ Docs

            • ๐Ÿ’ฉ Use a vanilla document search
            • Drop ct. prefix in catmod docs (#494 by @ehanahamed)

            Ct.js is a free and open-source game engine supported by you. Consider supporting us on Patreon or contributing to the project directly by adding new features, improvements, and bugfixes to our repository.

            Support ct.js on Boosty
            Join our Discord server
            Contribute to ct.js on GitHub

            • You don't have emulator devices, you need to add at least one in Android Studio

              • Ct.js v4.0.0 is out! ๐ŸŽ‰

                Behaviors, base classes, UI tools, new sound engine, asset folders, settings API, update to pixi.js v7, and much, much more

                After more than a year the day has finally come: ct.js v4 is officially released! :tada: The engine endured many architectural changes, breaking changes in dependencies, got stronger and more reliable, and received many, many juicy features.

                Before looking at the new features and massive changes, I would like to thank all the people that participated in development of ct.js this year:

                • GambleBranch, Sarpmanon, Henrique, Wesamdev, and aymennasri at Github for translating ct.js and its websites and making it more accessible for people.
                • markmehere for being an invisible shadow that suddenly slaps great features and massive architectural improvements to the engine.
                • Tho_mas for implementing most of the new sound engine and sound editor.
                • Firecakes for once again updating tutorials for the new engine version.
                • Russian ct.js fans for testing the heck out of the nightly builds and recording and reporting many issues โ€” that are now fixed and won't be bothering anyone anymore.
                • Ehan Ahamed for occasionally making completely random but needed contributions to the engine.
                • My Boosters for financial support โ€” GAKONS, myOmochi, Alexandr Chubutkin, and Dฤ“mฤ“trius ille. You make gear updates more affordable and include more sweet treats into my ration, ehehe
                • Everyone I forgot to mention. Sorry!

                These people make 2D game development available for anyone and enjoyable โ€” as it should be.

                Now, what did change in ct.js?

                • Ct.js updated its graphics engine to pixi.js v7, which means for you that the games made for ct.js are now faster. It also had some architectural and build pipeline changes that allowed implementing new features. As an unexpected consequence, ct.js dropped its ct. prefix in code, but hey, now you can code even faster ๐Ÿ˜ƒ
                • Interface was reworked to have one unified Assets tab and allow opening several rooms, templates, sounds and such at once in a neat tabbed interface. The Assets tab now also supports nested folders and mass actions on selected items.
                • Templates can now be based on various base classes. Previously everything was extending PIXI.AnimatedSprite, a class that displays all our copies in ct.js v3 and uses framed animations. And now templates can be text labels, UI buttons and textboxes, 9-patch slices to create stretchy panels, or on empty containers that can have other child elements.
                • Base classes allowed introducing a new room editor tool โ€” the UI tool. It can add JS bindings to dynamically change text, textures and such without making separate templates, change properties of text templates to better align them in interface, and also has an autolayout tool that makes it easier to adapt UIs to viewports of various aspect ratios.
                • A new asset type has landed โ€” Behaviors. These contain events and custom fields to describe reusable logic you can add and combine in rooms and templates. Fields you describe in a behavior then appear in room properties and templates that use this behavior, allowing programmers to design flexible tools for designers โ€” and themselves.
                • Content Subsystem and modded fields were updated to support all the asset types the engine has.
                • A new Script asset type is now an alternative way to add code that is not directly linked to templates or rooms. Scripts are available as scripts.yourScript(options) methods in your code, can be set to run automatically, and also can be linked in Content Subsystem.
                • A new sound engine based on pixi-sound package is now a part of the core ct.js library and is accompanied with a new sound editor. With them, you can quickly design randomized and/or 3D sounds without any additional code!
                • Desktop games now run on Neutralino.js framework instead of Electron.js, which makes builds extra small, extra fast (two clicks and 5-second wait!), and having only node.js installed as its optional dependency to bake.
                • settings API appeared with properties to change rendering settings on the fly, allowing you to make games that support wider range of devices.

                Beware, breaking changes!

                Ct.js v4 is a major update that got some stuff replaced or removed altogether, and some methods which were not removed are now deprecated โ€” meaning that they are not recommended to use anymore.

                To see the list of breaking changes, visit our migration guide.

                Found bugs? Report them!

                You can report issues at Github issues in our repo.

                Changelog

                Sat Feb 10 2024

                โœจ New Features

                • Add a flag in main app menu -> Troubleshooting section to disable Vulkan support. This allows SteamDeck users to fix webgl issues with ease.
                • Add a random.text method
                • Add an option to disable caching of a tile layer
                • Add context menu options in a room editor to sort copies and tiles by their X or Y coordinate
                • Add context menu options in a room editor to send copies or tiles to back/to front
                • App Blur and Focus events for rooms
                • Asset confirmation popup when running a game without applying assets
                • Asset folder tree with D&D support.
                • Asset sorting by type.
                • Base classes. A framework for adding new base classes templates are built upon and UIs for users to make templates that behave differently from regular animated sprites. Includes:
                  • Ye old Animated Sprite.
                  • Repeating texture and Sprited counter base classes.
                  • Containers.
                  • Nine-patch panels.
                  • Buttons.
                  • TextBoxes.
                • Bindings for copies' properties in the room editor
                • Branding options to switch "Made with ct.js" to the regular logo + to replace loading text
                • Ct.js now adds hash sums of exported files' names to textures, icons, and your game's source code. It makes it easier to update your games on your own servers and prevents the usage of outdated assets for your players. Note that index.html file should never be cached โ€” the other assets can now be cached.
                • Ct.js will now backup your project's .ict file versions in addition to making recovery files. Amount of backups can be configured in main project's settings (old Authoring tab)
                • Drop assets onto breadcrumbs.
                • In the room editor, copies now show their templates' names when you hover them.
                • Mass operations on assets in the asset browser
                • Multiple asset dragging into folders
                • New Behavior asset type
                • New event "On app exit" for desktop catmod.
                • New previewing engine (#441 by @markmehere). Co-authored by @CosmoMyzrailGorynych to adapt it for ct.js v4
                • New Scripts assets and extended support for asset references in content editors and catmods
                • New sound editor and sound engine (by @Atavismus with @CosmoMyzrailGorynych mentorship). Effects on API: ct.sound is now sounds, ct.sound.spawn is now sounds.play, 3D sounds are now in much higher quality and are run with sounds.playAt method. Effects on UI: it's dope.
                • Now folders can be dragged around, too! Plus colored folder icons in the sidebar
                • Optionally exportable project structure as res.tree and methods for browsing it.
                • Set a fixed array length in array-editor and extensions-editor
                • Support for TypeScript in custom scripts
                • Typescript definitions for project's content types
                • UI tools for the room editor

                โšก๏ธ General Improvements

                • Emitter editor was updated to support pixi.js v7. Some features were added, removed, or transformed.
                • "Duplicate" context menu options for templates, rooms, behaviors, and styles
                • Add a 'disabled' binding to TextBoxes
                • Add a filler for empty "Latest Projects" list
                • Add a pointer polyfill catmod to support pointer catmod in Safari browser
                • Add a prompt for new asset's name
                • Add label to the notepad panel's show button
                • Add methods to convert UI and game coordinates to coordinates in DOM space
                • Add the "New Asset" button to asset browser's filler
                • Add titles for longer settings items in the main app menu
                • Add u.time, u.timeUi. Deprecate u.delta, u.deltaUi.
                • Adds a transparent PIXI.js canvas option (#437 by @markmehere). Upgraded for pixi-v7 by CoMiGo
                • Adds alpha setting for vkeys (#435 by @markmehere)
                • Automatically open devtools in build environment
                • Better compact layout for asset-browser
                • Better handling of project scripts by keeping them as monaco models in memory. Solves errors about duplicate definitions and allows editing scripts by peeking into them from other code editors.
                • Better tabs' widths on smaller screeens
                • Bundle both PNG and WebP images on production. Let Pixi.js pick the supported format automatically.
                • Capture pointer events in the pointer catmod so the listeners fire before Pixi's built-in pointer events
                • Clamp zoom value in the room editor
                • Convert textures to PNG on import
                • Copies now have a proper hitarea for pointer events that matches the collision shape
                • Display room events in a modal window. Children were confused and lost their rooms.
                • Drop ct., make all the namespaces global objects
                • Exclude blank textures from export and retain shape (#433 by @markmehere)
                • Improve line height in modal menus (e.g. event selection menu)
                • Improve the visuals of launch confirmation window
                • Make sure every copy has at least a basic collision shape
                • Maximize window on start
                • Minor style improvement for compact asset-browser
                • New room previewer (#439 by @markmehere). Co-authored by @CosmoMyzrailGorynych for pixi v7 upgrade
                • Pug files must use LF (internal)
                • Remove extra padding in behavior lists
                • Rename ct.random catmod into random
                • Rename settings.speed to targetFPS
                • Rename some i18n keys in non-english translation files
                • Rename tween.add option useUiDelta to isUi to be in-line with ct.js API. Change transition catmod to use UI time for transitions
                • Rework project creation form in a separate tab
                • Riot mixins are now ESM modules in node_requires/riotMixins. languageJSON can now only be accessed through node_requires/i18n. (internal)
                • Set icons and metadata for ct.js' Windows executables and sign them.
                • Simplify the use of wire mixin for riot tags by removing the mandatory this in the beginning of the property path. (internal)
                • Skip texture atlas packing if no changes to textures were made.
                • Start copying sounds earlier in the exporter.
                • Sticky headers for .aNiceTable CSS class. (UI)
                • Support for base class capabilities in the exporter
                • The exporter is definitely typed now (internal)
                • Tighter layout of room editor -> room properties panel
                • Update Dutch translation (#405 by @GambleBranch)
                • Update Japanese translation (#404 by @taxi13245)
                • Update the capture catmod for v4 (#477 by @Atavismus)
                • Update the code for adding styled text labels in style-editor
                • Update the desktop catmod for Neutralino.js
                • Update the link for JDK download, so it shows exactly v17
                • Update the skeletal-animation icon
                • Updated lib.es5.d.ts (internal, #432 by @markmehere)
                • Use a locally installed node.js for setting icons on Windows executables baked from project export for desktop. Propose users to download Node.js if it is not present in the system.
                • Use simpler icons in array-editor, as icons overuse in content editors cause lagging

                ๐Ÿ› Bug Fixes

                • Add the missing Promise typings
                • Allow setting scale value with plain numbers, like this.scale = 5.
                • Asset references should be updated in content types when deleted
                • Fix "Cannot read properties of undefined" when caching tilemaps with funky positions, which led to rounding errors and negative indices.
                • Fix a minor error in tween.add
                • Fix a mostly harmless error in event-list-scriptable
                • Fix an unbreaked case in emitter-editor switch statement
                • Fix android builds. Fix capacitor-cli, it is now used from the bundled package
                • Fix any type in imageUtils.ts (internal)
                • Fix asset-selector, new-asset-prompt, exporter-error closing themselves when a click starts on one element and ends on another, mainly during text selection
                • Fix broken hotkeys in the room editor
                • Fix cached tilesets having terrible, terrible render in pixelart mode
                • Fix copy system info menu, add a line about WebGPU
                • Fix Ctrl + Shift + C hotkey for devtools
                • Fix deleting tiles on a hidden tile layer
                • Fix desktop exports
                • Fix double retinization of drawing canvas that led to absurd canvas dimensions on mobile devices (and squishing of viewport)
                • Fix event list not refreshing after a catmod was enabled/disabled
                • Fix long-press events
                • Fix memory leak with deleted tilemaps hanging in templates.list.TILEMAP
                • Fix memory leak with undeleted backgrounds hanging in main copy stack and templates.list.BACKGROUND
                • Fix missing field in tile layer when pasting in a room editor with no suitable tile layer
                • Fix missing type definitions for random.from
                • Fix nudging copies with arrows in a room editor resetting copies' positions after selecting anything else
                • Fix random.coord method
                • Fix sounds', tandems', and rooms' IDs not being unwrapped for the content system
                • Fix templates.isCopy throwing errors when passed a constant value
                • Fix textures not being properly removed from linked assets
                • Fix the tiny black gap when a game is fully covering the screen
                • Fix the Translate icon
                • Fix tween catmod's typedefs
                • Fix typo in translation (Ukranian -> Ukrainian) (#459 by @sk757a)
                • Fix values in room editor tools reset when clicking on a different copy
                • Fixed Android export issue (#444 by @omkarpattanaik)
                • Ignore attempts to export mac builds on Windows
                • In texture context menu -> Create template, create a template without asking for its name; prompt for a name if already occupied
                • No texture must be texture: -1 in exporter's templates output
                • Projects' fonts must load into ct.js when opening a project
                • Remove expandViewport view mode (not needed now, use "expand")
                • Room.merge() must preserve scale, rotation, and alpha properties for copies (#457 by @winterstein)
                • Update Discord invite links (#427 by @cemalgnlts)
                • Update fs catmod to support Neutralino
                • Use collision shape from a texture set in the extensions parameter of templates.copy method

                ๐Ÿฑ Demos, Dependencies and Stuff

                • Pull the latest asset packs
                • Pull the latest docs
                • Update examples and templates
                • Update ESlint for typescript. Fix linter issues.
                • Update nw.js to v0.72.0 (last to support windows 7)
                • Update the list of boosters

                ๐Ÿ“ Docs

                • Fix typo in example code (#108 by @GambleBranch)
                • ๐Ÿ› Change a single spelling error in docs/ct.md (#110 by @FlyingPig525)
                • ๐Ÿ› Fix a typo created in sound.howler's docs (#430 by @blueloveTH)
                • ๐Ÿ› Fix broken links on the homepage
                • ๐Ÿ› ru/README.md fix links (#106 by @progzone122)
                • โœจ Add Giscus commenting service
                • โšก๏ธ Update Vuepress and its theme
                • ๐Ÿ› Fix links in fields-declaration
                • ๐Ÿ› Fix links in input-methods
                • ๐Ÿ› Fix links in settings-and-extensions
                • ๐Ÿ“ Docs: Fix typo in docs/modding-ctjs/fields-declaration.md
                • ๐Ÿ“ Fix old injects folder name in other languages
                • ๐Ÿ“ Fix wrong injects folder name in events-and-injections.md
                • ๐Ÿ“ Fix wrong/outdated injects folder name in mod-structure.md
                • Update README.md
                • Update the changelog

                ๐ŸŒ Website

                • ๐Ÿ› Fix links to Discord server
                • ๐Ÿ“ Update changelog
                • โšก๏ธ A little refactor
                • โšก๏ธ Add a line about "broken" files in MacOS to the download page
                • โšก๏ธ Add a line about CoffeeScript into the presskit
                • โšก๏ธ Add Dutch translation (#38 by @GambleBranch)
                • โšก๏ธ Replace AppImage installer with an .sh one (for Linux platform)
                • โšก๏ธ Update homepage and the changelog
                • ๐Ÿ“ Fix wording for footer license info
                • ๐Ÿ“ Fix wording for macDamangedWarning
                • ๐Ÿ“ Fix wording on homepage

                โœŒ๏ธ Misc

                • ๐Ÿ”ฅ Nuke app tour
                • ๐Ÿ”ฅ Nuke the old asset viewer
                • ๐Ÿ”ฅ Remove a non-existent method call
                • ๐Ÿ”ฅ Remove ancient ct.3d catmod
                • ๐Ÿ”ฅ Remove broken or deprecated catmods
                • ๐Ÿ”ฅ Remove ct.eqs, PIXI.MultistyleText (use PIXI.HTMLText), ct.ulid (use nanoid) catmods
                • ๐Ÿ”ฅ Remove discord-rpc, at least for now
                • ๐Ÿ”ฅ Remove google-closure-compiler (unused package)
                • ๐Ÿ”ฅ Remove old unused lines from i18n files
                • ๐Ÿ”ฅ Remove pointer.permitDefault and keyboard.permitDefault (use settings.preventDefault field)
                • ๐Ÿ”ฅ Remove remnants of old debugger versions
                • ๐Ÿ”ฅ Remove settings.width, settings.height, as they are not used anywhere and have no effect
                • ๐Ÿ”ฅ Remove the deprecated Room.addTileLayer method
                • ๐Ÿ”ฅ Remove the old debugger-toolbar
                • ๐Ÿ”ฅ Throw burst-mode of particle system into a dumpster, I'm quacking done
                • ๐ŸŒ Update Russian i18n file
                • ๐ŸŒ Update Brazilian Portuguese translation, by hlbarone at Discord
                • ๐ŸŒ Update Dutch translation (#485 by @GambleBranch)
                • ๐ŸŒ Update the debug translation file
                • ๐ŸŒ Update Turkish translation, by @Sarpmanon
                • ๐Ÿ’ฉ Add a temporary band-aid for "t.isInteractive is not a function"
                  See pixijs/pixijs#9495 for root issue tracking
                • ๐Ÿ’ฉ Add band-aids for @pixi/particle-emitter
                  See pixijs/particle-emitter#209
                • ๐Ÿ› Replace this.depth with this.zIndex (#429 by @Piyush-Deshmukh)
                • ๐Ÿ“ Fix type definitions for ct.backgrounds & gamepad module (#443 by @ehanahamed)
                  • Update ct.backgrounds typedef
                  • Update ct.backgrounds.list type
                  • Added d.ts for gamepad catmod
                • ๐Ÿ“ Update Discord Links
                • ๐Ÿงน Annotate TODOs in code with issue numbers, remove obsolete TODOs

                Ct.js is a free and open-source game engine supported by you. Consider supporting us on Patreon or contributing to the project directly by adding new features, improvements, and bugfixes to our repository.

                Support ct.js on Boosty
                Join our Discord server
                Contribute to ct.js on GitHub