keldaanCommunity / pokemonAutoChess
- вторник, 20 августа 2024 г. в 00:00:02
Pokemon Auto Chess Game. Made by fans for fans. Open source, non profit. All rights to the Pokemon Company.
Non profit game. For fans, by fans.
Play: https://pokemon-auto-chess.com
Source: https://github.com/keldaanCommunity/pokemonAutoChess
Install Node LTS.
Install project dependencies:
npm install
Download and pack all the game assets:
npm run assetpack
npm run download-music
Main libs used
Pokemon Auto Chess use mongoDB to store its data and Firebase for authentication. Those 2 dependencies requires credentials to use. Credentials will be stored in a .env
at the root of the repository.
You can either setup using the cloud based MongoDB Atlas or using the local installation.
In order to play against bots, you will need to load bots data into your newly created database.
In both cases, create a database named dev
with an empty collection named botV2
. Then retrieve de URI connection.
mongodb+srv://admin:<password>@<cluster>.mongodb.net/dev?retryWrites=true&w=majority
.mongodb://localhost:27017/dev
.In MongoDB Compass, import bots data (./db-commmands/botv2.json
) in the botV2
empty collection.
In the .env
at the root repository, add the mongoDB URI:
MONGO_URI=mongodb://localhost:27017/dev
Pokemon Auto Chess use the Firebase authentication module to connect to the game.
First create an account and a firebase project at https://console.firebase.google.com/.
Inside the firebase project, create a web app called for example pokemon-auto-chess-test
.
Add your newly created firebase config in .env
. All those credentials should be available in the "Configure SDK" section.
FIREBASE_API_KEY=<firebase_api_key>
FIREBASE_AUTH_DOMAIN=<firebase_auth_domain>
FIREBASE_PROJECT_ID=<firebase_project_id>
FIREBASE_STORAGE_BUCKET=<firebase_storage_bucket>
FIREBASE_MESSAGING_SENDER_ID=<firebase_messaging_sender_id>
FIREBASE_APP_ID=<firebase_app_id>
Then setup the authentication module. In sign in methods, only choose mail/password and anonymous.
You need to generate a SDK Admin Firebase private key for the server to be able to connect as administrator of the firebase project.
This option is available in parameters project / service account
The private key is a json that contain those informations:
{
"type": "<type>",
"project_id": "<project_id>",
"private_key_id": "<private_key_id>",
"private_key": "<private_key>",
"client_email": "<client_email>",
"client_id": "<client_id>",
"auth_uri": "<auth_uri>",
"token_uri": "<token_uri>",
"auth_provider_x509_cert_url": "<auth_provider_x509_cert_url>",
"client_x509_cert_url": "<client_x509_cert_url>",
"universe_domain": "<universe_domain>"
}
Add those informations to the .env
FIREBASE_CLIENT_EMAIL=<client_email>
FIREBASE_PRIVATE_KEY=<private_key>
And you are done for the configuration part.
To start the development server:
npm run dev
Game runs locally on port http://localhost:9000/
You might want to have full access rights on your local version. To do so, you can set your role to ADMIN
by editing your player rights in the usermetadatas
table.
With VS Code, use Biome for formatting and linting and Inlang for translations management.
public/src/assets
to public/dist/client/assets
with assetpack: npm run assetpack
; You will need to run assetpack everytime you change the assetsapp/models/precomputed
folder ; You will need to run npm run precompute
everytime you change pokemon or synergy dataPlease note that we only support the english language. Other languages are managed by the community.