From a2d1e434bb2130779557b903e2743ee3d7e2da01 Mon Sep 17 00:00:00 2001 From: "Thomas (DJ1TJOO)" <44841260+DJ1TJOO@users.noreply.github.com> Date: Sat, 18 Nov 2023 23:19:43 +0100 Subject: [PATCH] Added information about community edition (#2) * Added information about community edition * Update README.md * README rewrite --------- Co-authored-by: EmeraldBlock --- README.md | 129 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 66 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index 9850227b..46c3f25c 100644 --- a/README.md +++ b/README.md @@ -1,85 +1,88 @@ -## NEW: Shapez 2! +# shapez Community Edition shapez Logo -We are currently working on a successor to shapez, with 3D Graphics, Exploration, Layers, Mass transport, New Shape Mechanics, Research and a lot more! Be sure to check it out: +**shapez Community Edition** (abbreviated as **CE**) is a community-maintained version of [shapez](https://store.steampowered.com/app/1318690/shapez/)! - - shapez 2 Announcement - +CE was created as the tobspr Games team moved away from shapez to work full-time on the upcoming [Shapez 2](https://store.steampowered.com/app/2162800/shapez_2/). +CE aims to: -
+- Continue the development of shapez as guided by the community. +- Allow contributors to continue submitting new features and improvements to the game. +- Provide an experimental and forgiving environment for faster development. -# shapez +> [!IMPORTANT] +> CE is different from the official game published on Steam and other platforms. +> CE was forked off of the official shapez, which has [its own repository](https://github.com/tobspr-games/shapez.io). +> No plans exist to merge the two versions of shapez. - - shapez Logo - - -
-This is the source code for shapez, an open source base building game inspired by Factorio. -Your goal is to produce shapes by cutting, rotating, merging and painting parts of shapes. - -- [Play on Steam](https://get.shapez.io/ghr) -- [Online Demo](https://shapez.io) -- [Official Discord](https://discord.com/invite/HN7EVzV) <- _Highly recommended to join!_ -- [Trello Board & Roadmap](https://trello.com/b/ISQncpJP/shapezio) - -## Reporting issues, suggestions, feedback, bugs - -1. Ask in `#bugs` / `#feedback` / `#questions` on the [Official Discord](https://discord.com/invite/HN7EVzV) if you are not entirely sure if it's a bug -2. Check out the trello board: https://trello.com/b/ISQncpJP/shapezio -3. See if it's already there - If so, vote for it, done. I will see it. (You have to be signed in on trello) -4. If not, check if it's already reported here: https://github.com/tobspr-games/shapez.io/issues -5. If not, file a new issue here: https://github.com/tobspr-games/shapez.io/issues/new -6. I will then have a look (This can take days or weeks) and convert it to trello, and comment with the link. You can then vote there ;) - -## Building - -- Make sure `ffmpeg` is on your path -- Install Node.js 16 and Yarn -- Install Java (required for texture packer) -- Run `yarn` in the root folder -- `cd` into `gulp` folder -- Run `yarn` and then `yarn gulp` - it should now open in your browser - -**Notice**: This will produce a debug build with several debugging flags enabled. If you want to disable them, modify [`src/js/core/config.js`](src/js/core/config.js). - -## Creating Mods - -Mods can be found [here](https://shapez.mod.io). The documentation for creating mods can be found [here](mod_examples/), including a bunch of sample mods. - -## Helping translate - -Please checkout the [Translations readme](translations/). +As of now, CE must be built from source and supports only a standalone build, +with no plans for re-supporting a web version. +In the future, builds of CE may provided for owners of the full version of shapez. ## Contributing -I will only accept pull requests which add a benefit to a large portion of the player base. If the feature is useful but only to a fraction of players, or is controversial, I recommend making a mod instead. +We communicate on the [official shapez Discord server](https://discord.com/invite/HN7EVzV). +For historical reasons, we have communicated in a private channel, +but we are moving to the public `#contributing` channel. +If you would like to contribute to CE, feel free to share your ideas, plans, etc. there. -If you want to add a new feature or in generally contribute I recommend to get in touch on Discord in advance, which largely increases the chance of the PR to get merged: +In our current workflow, we (the "collaborators" of the repository) create internal branches and corresponding pull requests to work on a feature, refactor, etc. +We discuss changes in the Discord, and when 2 collaborators (including the PR creator) approve of a change, it can be merged. +See our existing [pull requests](https://github.com/tobspr-games/shapez-community-edition/pulls?q=) for examples. - -discord logo - +If you are not a collaborator and want to submit a change, +you can fork our repo and make a pull request. +Note that because of plans to overhaul many parts of the game, +unless you are improving translations, you should probably communicate with us on Discord! + +> [!TIP] +> Be aware that [pull requests to the official shapez repository](https://github.com/tobspr-games/shapez.io/pulls) are unlikely to get merged in the near future. Instead, submit them to CE! +> In fact, because the game is licensed under the [GNU GPL v3.0](https://www.gnu.org/licenses/gpl-3.0.html), +> existing pull requests can be resubmitted to CE even if you aren't the author! **This is not legal advice.** ### Code -The game is based on a custom engine which itself is based on the YORG.io 3 game engine (Actually it shares almost the same core). +The game uses a custom engine originally based on the YORG.io 3 game engine. The code within the engine is relatively clean with some code for the actual game on top being hacky. -This project is based on ES5 (If I would develop it again, I would definitely use TypeScript). Some ES2015 features are used but most of them are too slow, especially when polyfilled. For example, `Array.prototype.forEach` is only used within non-critical loops since its slower than a plain for loop. +We are in the process of migrating to TypeScript and JSX/TSX. +New changes should be implemented in TypeScript if possible, +but because we are planning on overhauling many parts of the game, +there is no need to convert existing code to TypeScript. -### Assets +This project is fine with using cutting-edge and bleeding-edge features +and does not intend to provide compatibility for older clients. -You can find most assets here. +## Building -All assets will be automatically rebuilt into the atlas once changed (Thanks to dengr1065!) +### Prerequisites -shapez Screenshot +- [ffmpeg](https://www.ffmpeg.org/download.html) +- [Node.js 16](https://nodejs.org/en/about/previous-releases) + (not 17+, see ) +- [Yarn 1](https://classic.yarnpkg.com/en/docs/install) (not 2, we haven't migrated yet) +- [Java](https://www.oracle.com/java/technologies/downloads/) (or [OpenJDK](https://openjdk.org/)) (to run texture packer) -
+### Development -## Check out our other games! +- Run `yarn` in the root folder and in `electron/`. +- Run `yarn gulp` in the root folder to build and serve files. + Ignore the browser tab that opens. +- Open a new terminal and run `yarn startDev` in `electron/` to open an Electron window. + - Tip: If you open the Electron window too early, you can reload it when focused on DevTools. - -tobspr Games - +### Release + +> [!CAUTION] +> Release steps are currently unchecked and unmaintained and will likely be revised in the future. + +- Run `yarn` in the root folder and in `electron/`. +- In the root folder, run `yarn gulp build.standalone-steam`. +- Run `yarn gulp standalone.standalone-steam.prepare`. +- Run `yarn gulp standalone.standalone-steam.package.$PLATFORM` where `$PLATFORM` is `win64`, `linux64`, or `darwin64` depending on your system. +- The build will be found under `build_output/standalone-steam` as `shapez-...-x64`. + +## Credits + +Thanks to [tobspr](https://tobspr.io) for creating this project! + +[tobspr Games](https://tobspr.io)