A role-playing game for developers.
Coding is inherently fun — it's an act of creation that yields visible results. However, it can also become repetitive and laborious. That's why I created Arccode: to bring joy to your day and shield you from monotony. By incorporating variable rewards and a sense of progress into coding, I believe we can make the experience even more enjoyable. So, have fun coding!
The VSCode extension collects keyword metadata when the content of a file of a supported language is changed. This metadata is used to calculate the player's progress and to generate the game's content.
Here is an example of such data:
{
"javascript": {
"function": 4,
"const": 12
},
"ruby": {
"def": 3,
"class": 1
}
}
As you can see, the original code is not stored, only the keywords and their counts.
To install the dependencies run:
npm run install:all
To start the development server for the web app:
cd arccode.dev
In one terminal run:
npm run emulators
In another run:
npm run dev
To develop on the extension open the packages/arccode-vscode-extension
directory in a separate VSCode window (it's important).
Watch for changes:
npm run watch
Then open src/extension.ts
and press F5 to launch another VSCode window with the extension loaded in development mode.
Additionally, you can edit any package under packages/
and run npm test
to test it.
Pull requests, issues and feedback are welcome!
You can add an unlockable reward to the game by submitting a PR.
It must include a 256x256 PNG image under /arccode.dev/public/images/gears
and a new entry in the array in /arccode.dev/src/data/gears.ts
.