{"id":14964049,"url":"https://github.com/jerenaux/westward","last_synced_at":"2025-09-30T19:31:07.212Z","repository":{"id":37769929,"uuid":"230427517","full_name":"Jerenaux/westward","owner":"Jerenaux","description":"A collaborative MMORPG made in Javascript","archived":false,"fork":false,"pushed_at":"2022-07-23T16:01:20.000Z","size":315581,"stargazers_count":129,"open_issues_count":14,"forks_count":41,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-07T05:06:45.023Z","etag":null,"topics":["game","javascript","mmorpg","nodejs","online-game","phaser3","phaserjs"],"latest_commit_sha":null,"homepage":"http://www.westward-online.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jerenaux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-27T10:55:09.000Z","updated_at":"2025-03-27T12:37:22.000Z","dependencies_parsed_at":"2022-08-18T22:31:26.008Z","dependency_job_id":null,"html_url":"https://github.com/Jerenaux/westward","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Jerenaux/westward","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerenaux%2Fwestward","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerenaux%2Fwestward/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerenaux%2Fwestward/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerenaux%2Fwestward/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jerenaux","download_url":"https://codeload.github.com/Jerenaux/westward/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerenaux%2Fwestward/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277746958,"owners_count":25870057,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-30T02:00:09.208Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game","javascript","mmorpg","nodejs","online-game","phaser3","phaserjs"],"created_at":"2024-09-24T13:32:31.137Z","updated_at":"2025-09-30T19:31:02.462Z","avatar_url":"https://github.com/Jerenaux.png","language":"JavaScript","funding_links":["https://www.patreon.com/jeromerenaux"],"categories":[],"sub_categories":[],"readme":"# Westward\n\nWestward is an open-source aspiring MMORPG written in Javascript. The game is not online at the moment as the project is not actively maintained anymore.\n\n**Disclaimer**: Westward began as a closed-source project, and has grown that way for more than 2 years. As a result, the current codebase\nis messy and not very collaboration-friendly. Documentation is sorely missing, the tests are a mess, and the code itself looks like\nwhat a 2+ years codebase maintained by one guy can look like. You can make that change! I invite you to point out where the code is particularly \nunclear and where the lack of documentation is particularly painful. I will give top priority to addressing these feedbacks. \n\n## Vision\n\nAs a **game**, Westward aims to be a collaborative MMORPG where the players have to build a nation, starting from scratch and progressively\nsettling a large continent. A more lengthy description can be found on the [description page of the game](https://www.dynetisgames.com/2018/03/04/westward/).\n\nAs an **open-source project**, Westward aims to be a great collaborative experience for contributors of all sorts. The goal is also\nto be a learning experience, for me as well as for developpers interested in gamedev. I hope the contributions and the community will grow into\na space for us to learn and have fun improving that game.\n\nFor more insight into the evolution of the project, check out the [dev logs](https://www.dynetisgames.com/category/dev-blog/).\n\n## Community\n\n- [Twitter (@jerome_renaux)](https://twitter.com/jerome_renaux)\n- [Slack](https://join.slack.com/t/dynetisgames/shared_invite/enQtMTc0NzU2MjgzNDExLTNiMTMwNDJmMGQ1Y2FjM2ZhYTFhMGYzNWEyYmE3MjQ2YzAyNzYwYjQyODllZTZlYzM3ZDM0MGRiMGQyNjIxNWM)\n- [Discord](https://discord.gg/NzUnS7F)\n- [Stomt](https://www.stomt.com/westward)\n- :rocket: [The Wiki](https://github.com/Jerenaux/westward/wiki)\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes.\nAt some point a Docker image should be rolled out to facilitate that process (feel free to contribute on that front if that's your area of expertise!)\n\n### Prerequisites\n\n- A recent version of Node.js\n- A MongoDB instance listening on port `27017`\n\n### Installing\n\nClone this repository, then navigate to it and install the dependencies:\n\n```\nnpm install\n```\n\nYou should also create a file called `.env` at the root of the directory. This is where the `dotenv` package will be looking for\nenvironment variables. Your local version doesn't need to define any environment variables, but `dotenv` will complain if that\nfile is missing. \n\n```\ntouch .env\n```\n\n## Running the game\n\nThe most straightforward way ton run the game server is to do:\n\n```\nnode dist/server.js\n```\n\nThen navigate to `localhost:8081` to play the game.\n\nIf you make modifications to the game, don't forget to rebuild it using webpack, which you can do by running:\n\n```\nnpm run webpack\n```\n\nAlternatively you can run `webpack-dev-server` to automatically watch for changes and rebuild when changes are detected. You can do so by running:\n\n```\nnpm run watch:webpack\n```\n\nThe file `package.json` defines all the `npm run ...` commands that are available. Feel free to add more if you think that would be useful!\n\n## Using Docker\n\nAlternatively, you can use the Dockerfile to create a container with all the necessary components already installed. You need to have [Docker](https://www.docker.com) installed. Then, in the directory where you clones the project, run:\n\n```\ndocker-compose build\n```\n```\ndocker-compose up -d\n```\n\nThe default port when using the Docker way is `80`, so you need to navigate to `\u003cIP_of_your_Docker_machine\u003e:80` to be able to access the game (e.g. 192.168.99.100:80). \n\n## Running the tests\n\nSome tests have been set up, mainly focusing on testing the client/server API and some internal server functions. They can be run as follows:\n\n```\nnpm run test\n```\n\nThese tests could be improved in a million ways, by being better documented, being more clean, or simply by adding more tests. In\nan ideal world, the tests could act as a gateway to the codebase, providing a clear view of what is going on and helping contributors\ndive in. It's not the case yet, but feel free to contribute on that front!\n\n## Deployment\n\nThe master branch of this repository is deployed on an AWS EC2 instance maintained by myself. I will not elaborate too\nmuch on that aspect since it doesn't impact contributions, but I can provide more information if there is demand for it.\n\n## Built With\n\n* [Phaser 3](https://github.com/photonstorm/phaser) on the client side - The best Javascript game engine\n* [Node.js](https://nodejs.org/en/) on the server side \n* [MongoDB](https://www.mongodb.com/) for the database\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on the process for submitting contributions.\n\n## Authors\n\n* **[Jérôme Renaux](https://github.com/Jerenaux)** - *Initial work, project maintainer* \n\nSee also the list of [contributors](https://github.com/Jerenaux/westward/graphs/contributors) who participated in this project.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n## Thanks\n\nMany thanks to the following people for supporting Westward on [Patreon](https://www.patreon.com/jeromerenaux):\n- Sean Pope\n- Flavius Poenaru, currently working on [Kaetram](https://github.com/Veradictus/Kaetram-Open), an open-source 2D HTML5 adventure \n\n## Donate\n\nIf you are interested in Westward and want to see it grow, I invite you have a look at my [Patreon page](https://www.patreon.com/jeromerenaux)\nwhere you can find a listing of rewards for various levels of recurring contributions. Even the smallest contributions can go a\nlong way as a signal of your interest and your support.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerenaux%2Fwestward","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjerenaux%2Fwestward","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerenaux%2Fwestward/lists"}