Skip to content
A desktop game editor that makes learning programming fun and game development easy by its visual editors and well-documented code library
JavaScript HTML CSS
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github 📝 Update issue templates, and add an informal one Aug 17, 2019
DragonBonesJS @ 4f7a64a 🍱 Pull the latest dependencies Sep 1, 2019
SSCD.js @ 3c63e32 🍱 Pull the latest dependencies Sep 1, 2019
app 📝 🐛 Update parameter names in ct.sprite's readme Sep 8, 2019
branding 🍱 Better github header Aug 15, 2019
docs @ d940bee 🍱 Pull the latest docs Sep 1, 2019
misc 💄 (icons) add align-left, align-center, align-right icons Oct 24, 2017
node_requires 🐛 Fix broken packages for MacOS Aug 26, 2019
projects 🚚 Move jam games to the folder for such games Mar 30, 2019
src ⚡️ Add support for OGG audio files Sep 5, 2019
.eslintrc.json 🐛 Fix mac access issues (#110) Aug 23, 2019
.gitmodules 🐛 Fix an old link to a git submodule (to Aug 15, 2019
.pug-lintrc chore: cleaning a mess in the repository Oct 4, 2017
.stylintrc 🚧 Fix stylint warnings, and add a new one for travis-testing purposes Aug 15, 2019
.travis.yml ⚡️ Make packages and itch releases on tags only Sep 4, 2019 ⬆️ Update butler Mar 31, 2019 📝 More relevant for ct.js, better contribution guides and templates Aug 15, 2019
LICENSE 📝 Release ct.js under MIT license Aug 17, 2019 📝 Make badges in clickable Sep 4, 2019
butler ⬆️ Update butler Mar 31, 2019
cat.png initial commit Aug 15, 2017
data ⚡️ Add a symlink for an ./app/data folder, so editors can follow path… Aug 26, 2019
devSetup.gulpfile.js ⚡️ Add a gulpfile for setting up the repository Aug 26, 2019
error.png initial commit Aug 15, 2017
gulpfile.js ⚡️ Lint node_requires Sep 4, 2019
itchPage.css 🍱 Sources of itch pages Aug 15, 2019
itchPage.html 🍱 Sources of itch pages Aug 15, 2019 ⬆️ Update butler Mar 31, 2019
package-lock.json ⚡️ Produce zip packages from gulp Aug 29, 2019
package.json 🔖 Bump the version Sep 4, 2019 📝 More relevant for ct.js, better contribution guides and templates Aug 15, 2019

GitHub tag (latest by date) Travis (.org) master branch Travis (.org) develop branch

GitHub issues by-label GitHub issues by-label GitHub issues by-label

Ct.js is a 2D game editor that makes its bet on good documentation, visual tools and smooth workflow.

For bugs, feature requests, developing questions, please use GitHub issues so we can better track them. For general support about making games, ask a question at our discord server.

Repo structure & tools

  • app — an NW.js app, with its configs and static files.
    • data
      • ct.release — the ct.js game library, aka its "core"
      • ct.libs — catmods (modules) that ship with ct.js. Feel free to create a pull request with your module!
      • i18n — UI language schemes. Open for pull requests! :)
  • src — a source folder that compile into /app folder at a build time.
    • js — different top-level scripts, including 3rd-party libraries.
    • node_requires — these are copied as is to the /app directory upon building ct.js, contain reusable code, and are meant to be used by require('./data/node_requires/…').
    • pug — HTML sources of editor's windows, written in Pug.
    • riotTags — components that drive all the logic in ct.js. Written in Pug and Riot.js v3.
    • styl — style sheets, written in Stylus.
  • branding — logos and icons belong here.
  • docs — official docs of ct.js. Edit them here.
  • DragonBonesJS — a dependency for enabling DragonBones' skeletal animation support in ct.js.
  • SSCD.jsa fork of a collision library for

Forking and installing the dev environment

Building ct.js requires Node and npm installed on your machine.

git clone ctjs
cd ./ctjs
npm install gulp-cli -g
gulp -f devSetup.gulpfile.js

Running ct.js from sources


Releasing ct.js

# Builds docs and adds them to ct.js app
gulp docs
# Recompiles source files, bundles docs, and bakes binaries
gulp packages

# Publishes prebuilt binaries to
# This assumes that you have an access to ct.js at :)
gulp deployOnly
gulp deployOnly --channel next # deploy to a specific channel

# Combines `gulp packages` and `gulp deployOnly`
gulp deploy

The first run will be slow as it will download nw.js binaries. Next runs will use cached files.

Naming conventions for commits

Use Gitmoji-flavored Comigoji for naming your commits.

You can’t perform that action at this time.