Skip to content

Latest commit

 

History

History
141 lines (91 loc) · 6.21 KB

README.md

File metadata and controls

141 lines (91 loc) · 6.21 KB

GDevelop IDE

This is a new, revamped editor for GDevelop. It is based on React, Material-UI, Pixi.js and Electron. It uses GDevelop core C++ classes compiled to Javascript to work with GDevelop games.

GDevelop editor

Installation

Make sure to have Git and Node.js installed. Yarn is optional.

git clone https://github.com/4ian/GD.git
cd GD/newIDE/app
yarn #or npm install

Development

yarn start #or npm start

This will open the app in your web browser.

Images resources, GDJS Runtime, extensions will be copied in resources, and libGD.js will be downloaded automatically. If you wish, you can build libGD.js by yourself (useful if you modified GDevelop native code like extensions).

Note for Linux: If you get an error message that looks like this: Error: watch GD/newIDE/app/some/file ENOSPC then follow the instructions here to fix.

Development of the standalone app

You can run the app with Electron. Make sure that you've run yarn start in app folder before (see above).

cd newIDE/electron-app
yarn #or npm install

#For macOS:
./node_modules/electron/dist/Electron.app/Contents/MacOS/Electron app

#For Windows:
node node_modules\electron\cli.js app

#For Linux:
./node_modules/electron/dist/electron app

Development of UI components

You can run a storybook that is used as a playground for rapid UI component development and testing:

cd newIDE/app
yarn storybook #or npm run storybook

Tests

Unit tests and type checking can be launched with this command:

cd newIDE/app
yarn test #or npm run test
yarn flow #or npm run flow

Theming

It's possible to create new themes for the UI. See this file to declare a new theme. You can take a look at the default theme, including the styling of the Events Sheets.

Development of the game engine

Make sure to have the standalone app running with Electron.

The game engine (GDJS) is in GDJS/Runtime folder. If you modify anything, run the import-GDJS-Runtime.js script:

cd newIDE/app
cd scripts
node import-GDJS-Runtime.js

You can then launch a preview in GDevelop (again, be sure to be using the standalone app running with Electron to be sure to have your changes reflected immediately).

If you want to go further and create/modify an extension, check the sources in Extensions folder and install GDevelop.js. You'll then be able to make changes in C++ source files and have this reflected in the editor.

Recommended tools for development

Any text editor is fine, but it's a good idea to have one with Prettier (code formatting), ESLint (code linting) and Flow (type checking) integration.

👉 You can use Visual Studio Code with these extensions: Prettier - Code formatter, ESLint and Flow Language Support.

Building and deploying the standalone app

This section is only for maintainers that want to deploy the "official app" on the GDevelop website. If you're working on contributions for GDevelop, you won't need it.

Desktop version

First, update version number which is read in newIDE/electron-app/app/package.json.

cd newIDE/electron-app
yarn build #or npm run build

This will build and package the Electron app for Windows, macOS and Linux (according to your OS). The output are stored inside newIDE/electron-app/dist.

To build artifacts for all platforms and publish to a draft GitHub release:

GH_TOKEN=xxx yarn build --mac --win --linux tar.gz --publish always

Webapp version

cd newIDE/web-app
yarn deploy #or npm run deploy

Current status and how to contribute

This new editor is still in development and is missing some features:

You can contribute by picking anything here or anything that you think is missing or could be improved in GD5! If you don't know how to start, it's a good idea to play a bit with the editor and see if there is something that is unavailable and that you can add or fix.

See also the roadmap for ideas and features planned.

This project was bootstrapped with Create React App. Check out their documentation for common tasks or help about using it.