v1.5.0 is out with a bunch of new APIs and modules!
Hello, Programmer Cats! A new version of ct.js releases, and it brings tons of goodies…
Let’s highlight a few:
ct.placegot a bunch of tracing functions: you can now check for collisions around objects or at arbitrary locations. They are also displayed in ct.place’s debug mode. Read more at
- Modules can now use table inputs in project settings. It allows describing more complex objects with a repeating structure, and a new catmod
ct.splashscreenuses it nicely!
- Two new APIs appeared that allow for a more dynamic and procedural approach to making rooms:
ct.tilemaps. My latest game Everyone is Afraid to be Forgotten uses the latter intensely, creating an immersive randomly-generated landscape. The new module
ct.noisealso helped a lot with its 2D and 3D Perlin noise.
The game is free, and its source code is open, too! It is not documented, it was made under three days, but feel free to dig into it to see how these features work in action!
- Two new examples are available: Lab Raid, a little 2D shooter, and “Move Blocks” that shows some one-directional DnD and a really, really hard puzzle. I solved it once, somehow, but can’t replicate my success now. Check it out at least to find out whether you’ll crack it or not :)
- Oh, this version also comes with two new themes! One is pitch-black and is aimed for low-light environments, and the other is a grayish green one. These two should also help people with various visual conditions.
✨ New Features
- “Visible” checkbox at a type editor
- A toggle at room’s settings to set a room as a UI layer
silentoption for ct.tween.add to suppress errors on non-vital animations
- Add a main menu entry to change data folder (Closes #238)
- Add basic Discord Rich Presence
- Add diamond-like partitioning for caching tile layers (
- Add high-contrast black theme
- Add histogram, pessimistic and optimistic methods to
- Add minify, obfuscate, and function wrap transforms for exports (#242 by @naturecodevoid)
- Check for ct.js folder write permissions, and show a prompt when it is not writable
ct.camera.containsto check whether a copy (or another displayable object) is potentially visible on a screen
ct.noisemodule for seeded Perlin and Simplex noise funcitons, useful for freeform procedural level generation.
ct.splashscreenmodule (Closes #148)
ct.types.isCopy(obj)method to check whether a variable is a copy
- F11 to toggle fullscreen
- Forest UI theme — an adaptation of https://github.com/sainnhe/forest-night-vscode by @sainnhe
- Jump to a texture from texture inputs
- Solid color fills and cross drawing at placeholder texture generator
- Specify multiple video formats at
- Table inputs for modules — they allow users to create collections of complex objects with specified structure, readable in a module as an array
- Tracing methods for ct.place (Closes #232, #117)
⚡️ General Improvements
- Add preventive checks to
ct.sound.howlerto not throw errors if one tries to manipulate stopped/non-existent sound
- Add typings for
- Allow media access, pointerLock API, and download prompts for games inside the built-in debugger. Makes
ct.capturework inside this debugger.
- Autocompletions for
Background.isUiis now read-only and is calculated based on its parent’s value. Fixes alignment issues for backgrounds that are added to UI layers.
- Controls for texture shape are working similarly to curve editors now: you can press in the middle of a line segment and drag out a new point, and delete points with right click
ct.res.getTexture('Name', null)now returns the whole animation
- Foreign key unwrapping support for modules’ settings and injections, plus recursive unwrapping for arrays
- Improve workflow for creating new theme, generalize theme-related code as a node-require module “themes”.
- Put additional bleeding on transition’s sides from
ct.transitionto mitigate rendering issues due to rounding
- Refurbish project selector and add Examples tab
- Refurbish the exporter
- Return copies in
ct.place.moveByAxes. Fix issues with type definitions.
- Textures: Pressing Fill + To Center now produces the same result as To Center + Fill.
- Tweak typings for
- Vertical and horizontal lines in curve editors display more reliably
🐛 Bug Fixes
- Add a translation key to the english file, for Horizon theme
- At the room editor, fix eraser’s size not falling back to some constant if a grid was disabled
- Don’t show a context menu when right-clicking on curve points
- Fix a bug with replacement of
$&and other special RegExp tokens in injections and user-provided code
- Fix a memory leak that made the whole old IDE set not being freed on project change
- Fix a stupid issue with
- Fix an issue about a timer not being destroyed if a game switched to a room with the same name (restarted a room).
- Fix broken
- Fix horrible memory leak at
- Fix image transforms for thumbnails
- Fix issues with font loading if the project’s full path contain spaces
- Fix issues with non-repeating UI backgrounds
- Fix subsequent
pausecalls on an emitter breaking this emitter entirely
themeSpringSreamin Brazilian Protuguese translation file
- Fix typings for
- Fix usage of
- Fix wrong default folder for the starting project selector
- Focused buttons should be highlighted
- I don’t know what it was, but it is fixed
ct.mouse.yuiwith zero values.
SpringStreamat i18n files
- Submenus should not disappear if their elements are focused by pressing Tab button
- Trim whitespace while creating new projects to avoid problems with build tools and sticky situations because of invisible symbols
- Type’s name should change from default to texture name after texture selection
- Zero parallax value should be a valid one
🍱 Demos, Dependencies and Stuff
- Add a MoveBlocks example
- Add a DungeonCrawler example
- 🐛 Add missing part to platformer tutorial
- 🐛 Explicitly note the removal of
this.move()at platformer’s robot character (Closes #33)
- ⚡️ Add gifs that explain how
ct.camera.realign(room)works (Closes #21)
- ⚡️ Clarification for
- ⚡️ Rename properties at the platformer tutorial to standard names
- Format method names in
ct.placedocs. It looks better this way.
- ⚡️ Update changelog
- :fire: Remove ancient image files that are no longer used by ct.IDE
Get Ct.js game engine
Leave a comment
Log in with itch.io to leave a comment.