{"id":18822060,"url":"https://github.com/proyecto26/thecryptopurge","last_synced_at":"2025-06-20T03:06:28.015Z","repository":{"id":39891763,"uuid":"420305414","full_name":"proyecto26/thecryptopurge","owner":"proyecto26","description":"A crypto shooter-survival real-time NFT-based game inspired by The Purge 💸 ","archived":false,"fork":false,"pushed_at":"2024-10-27T16:12:03.000Z","size":20320,"stargazers_count":55,"open_issues_count":1,"forks_count":37,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-06-15T23:33:19.805Z","etag":null,"topics":["alchemyapi","blockchain","chainlink","chainlink-hackathon-2021","chainlink-oracle","chainlink-vrf","crypto","cryptocurrency","game","game-development","nft","nft-game","nft-marketplace","nfts","smart-contracts"],"latest_commit_sha":null,"homepage":"https://bio.link/thecryptopurge","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/proyecto26.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"jdnichollsc","patreon":"proyecto26","open_collective":"proyecto26","ko_fi":"proyecto26","liberapay":"proyecto26","donorbox":"proyecto-26","custom":["paypal.me/jdnichollsc","buymeacoffee.com/jdnichollsc","donorbox.org/proyecto-26"]}},"created_at":"2021-10-23T03:40:00.000Z","updated_at":"2025-03-07T16:09:58.000Z","dependencies_parsed_at":"2022-09-16T07:50:25.706Z","dependency_job_id":"d12d0034-533d-430d-bce0-367fa045821b","html_url":"https://github.com/proyecto26/thecryptopurge","commit_stats":{"total_commits":76,"total_committers":2,"mean_commits":38.0,"dds":"0.10526315789473684","last_synced_commit":"a3ced85a2a4ad84cd2ba179f81e055739c8a0850"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/proyecto26/thecryptopurge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proyecto26%2Fthecryptopurge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proyecto26%2Fthecryptopurge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proyecto26%2Fthecryptopurge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proyecto26%2Fthecryptopurge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/proyecto26","download_url":"https://codeload.github.com/proyecto26/thecryptopurge/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proyecto26%2Fthecryptopurge/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260868885,"owners_count":23074960,"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","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":["alchemyapi","blockchain","chainlink","chainlink-hackathon-2021","chainlink-oracle","chainlink-vrf","crypto","cryptocurrency","game","game-development","nft","nft-game","nft-marketplace","nfts","smart-contracts"],"created_at":"2024-11-08T00:47:39.631Z","updated_at":"2025-06-20T03:06:23.000Z","avatar_url":"https://github.com/proyecto26.png","language":"JavaScript","funding_links":["https://github.com/sponsors/jdnichollsc","https://patreon.com/proyecto26","https://opencollective.com/proyecto26","https://ko-fi.com/proyecto26","https://liberapay.com/proyecto26","proyecto-26","paypal.me/jdnichollsc","buymeacoffee.com/jdnichollsc","donorbox.org/proyecto-26","http://www.paypal.me/jdnichollsc/2"],"categories":[],"sub_categories":[],"readme":"# The Crypto Purge 💸\nThe most revolutionary crypto shooter-survival real-time NFT-based game on **Binance Smart Chain**.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://bio.link/thecryptopurge\" target=\"blank\"\u003e\u003cimg src=\"img/thecryptopurge.jpeg\" width=\"680\" alt=\"The Crypto Purge\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e The system controls the prize pool redistribution between winners of each game. The game runs on **WebGL** with a real-time connection using WebSockets and a Server side shooting authority connected to web3.js API to send transactions to smart contracts and back.\n\n## Inspiration\n`The Crypto Purge` is a crypto shooter-survival real-time NFT-based game inspired by [The Purge (an American dystopian action horror film)](https://en.wikipedia.org/wiki/The_Purge).\n\n## What it does\nPlayers will have multiple modes to play the game, `single` and `multiplayer`. **Single mode** includes killing zombies and social ranking with friends for earn prizes, the top scorers on the `leaderboard` will split the prize pool grant. \n**Multiplayer mode** allows players to contribute a certain amount of tokens to the prize pool before each game and the prize pool is split by `Smart Contracts` and a `Server Side authority` between the **winners** of the game.\n\n`The Crypto Purge` has a crypto integrated backend that runs on **Binance Smart Chain**. **Smart contracts** are responsible for prize pool redistribution and **web3.js (Metamask, etc)** takes care of the wallet connection.\n\nThe game allow users to mint custom skins with **NFTs** to be used in the game (**Chainlink VRF** and Oracles to assign provably rare traits). Player will differ in appearance and style, but they will have no effect on the game mode.\nAll players will have an equal change of winning the game.\n\n## Challenges we ran into\nCreating a **decentralized real-time** game that requires a back-end connection using `WebSockets` is the most challenging part of the project, additionally because **\"don’t trust the player. Always assume the worst – that players will try to cheat\"**, so it requires an `authority server` to create a **cheat-proof** architecture as cheating players tends to drive the players away from the game, therefore the core problems are `human nature` and `physics`.\n\nDeveloping an `authoritative server architecture` introduce a whole new class of challenges; `Client-Side Prediction`, `Server Reconciliation`, `Entity Interpolation`, `Lag Compensation` dealing with networks and scaling the system itself.\n\n## Accomplishments that we're proud of\nWe're proud to have created the real-time connection of the game, creating the smart contracts of the platform and the base architecture of the project; **front-end**, **back-end** and the smart contracts development using **Hardhat**.\n\n## What we learned\nWe learned about `Blockchain`, `Smart Contracts`, `Chainlink Oracles`, `2D Games` with `WebGL/Canvas` using Frameworks like `PhaserJS`, `NFTs`, `Physics`, `Real-time` connections with `WebSockets`, `Crypto wallets` and much more!\n\n## What's next for The Crypto Purge\n\n- Define a `System Design` for Cloud platforms like **AWS** that can scale easily.\n- Apply to **Y Combinator** to get funding.\n- Migrate the back-end to use a microservices architecture and use a language like **Go** with better benchmarks in terms of scalability as required by the system.\n- Allow users to have an inventory.\n- Allow users to take inventory of dead users.\n- Allow players to edit their profile.\n- Allow players to select their gender (female, male).\n- Allow players to mint weapons.\n- Open Marketplace to buy or mint their own skins.\n- Ranking for rounds.\n- Support Internationalization and localization (i18n).\n\n## Intructions to run the projects\n- **FrontEnd:**\n```\ncd app\nyarn start\n```\n- **BackEnd:**\n```\ncd server\nyarn start\n```\n- **Blockchain:**\n```\ncd smartcontracts\nyarn start\nyarn start:portal\nyarn test\nyarn deploy\nyarn deploy:portal\n```\n\n## Contributing ✨\nWhen contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.  \nContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated** ❤️.  \nYou can learn more about how you can contribute to this project in the [contribution guide](CONTRIBUTING.md).\n\n## Supporting 🍻\nI believe in Unicorns 🦄\nSupport [me](http://www.paypal.me/jdnichollsc/2), if you do too.\n\nDonate **Ethereum**, **ADA**, **BNB**, **SHIBA**, **USDT/USDC**, **DOGE**, etc:\n\n\u003e Wallet address: jdnichollsc.eth\n\nPlease let us know your contributions! 🙏\n\n## Happy coding 💯\nMade with ❤️\n\n\u003cimg width=\"150px\" src=\"https://avatars0.githubusercontent.com/u/28855608?s=200\u0026v=4\" align=\"right\"\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproyecto26%2Fthecryptopurge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproyecto26%2Fthecryptopurge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproyecto26%2Fthecryptopurge/lists"}