OpenThrone is a community project hoping to recreate the TextBased MMORPG called DarkThrone which has gone dark after almost 20years of service. While we are not affiliated with the original DarkThrone project, our community hopes to be able to deliver a game that can pick up where DT left off and bring forth many of the enhancements and hopes that we were patiently waiting for.
OpenThrone started out as a fork of the Dark Curse project which was originally started by Moppler (Matt Gibney) here: https://github.com/MattGibney/DarkCurse. This project has been archived and is no longer being updated. We've since decided to port it to NextJS/React, while trying to keep a lot of the heavy lift that was already done previously from a design perspective.
There's currently a live server running at OpenThrone.Dev, however it should be noted that at this time, this server is a live development server and will be reset often and sometimes without notice.
Yes, a small group of volunteers have been working to get a working version of the game up and running.
If you have experience with art, NextJS, or Figma please send a message to DasTacoMann.
Currently we are hyper focused on getting the basic mechanics of the game functioning so there will be a time later where ideas can be talked about.
Join us on Discord here: https://discord.gg/j9NYxmBCjA
Contributions are the backbone of OpenThrone. Feel encouraged to report bugs or ask questions by opening an issue. We are open to all suggestions for improvement.
A few notes about how to get the game running locally (for dev work or otherwise):
git clone https://github.com/OpenThrone/OpenThrone && cd OpenThrone
npm install
(you may need to use --legacy-peer-deps for this to complete successfully)cp .env.sample .env.local
and add your configuration to .env.localnpx prisma migrate dev --name init
npm run bun-dev
When you pull the latest updates from the upstream repository, there may be new migrations, dependencies, or configuration changes. Follow these steps to ensure everything runs smoothly:
git pull upstream main
package.json
, you may need to install new dependencies:
npm install
npx prisma migrate dev
npm run build
npm run bun-dev
To facilitate the job of providing a set of scheduled jobs, such as providing turns every 30minutes or new citizens every day, you'll have to use an external scheduler such as Crontab. The following will list out a number of tasks that can be scheduled
0 0 * * * /usr/bin/curl -X POST -H "Authorization: SECRET_KEY_FROM_ENV" https://<url>/api/cronJobs/daily
DO_DAILY_UPDATES=true
0,30 * * * * /usr/bin/curl -X POST -H "Authorization: SECRET_KEY_FROM_ENV" https://<url>/api/cronJobs/turns
DO_DAILY_UPDATES=true
Make sure you update your secret in your .env file
TASK_SECRET="TESTING"
If you are VSCode users, you can have a better integration with VSCode by installing the suggested extension in .vscode/extension.json
. The starter code comes up with Settings for a seamless integration with VSCode. The Debug configuration is also provided for frontend and backend debugging experience.
With the plugins installed on your VSCode, ESLint and Prettier can automatically fix the code and show you the errors. Same goes for testing, you can install VSCode Jest extension to automatically run your tests and it also show the code coverage in context.
Pro tips: if you need a project wide type checking with TypeScript, you can run a build with Cmd + Shift + B on Mac.
Licensed under the MIT License, Copyright © 2023
See LICENSE for more information.