https://github.com/mikeleo03/metamaker
MetaMaker - A blockchain platform for collaborative game creation, governance, and ownership
https://github.com/mikeleo03/metamaker
blockchain collaborative-development ethereum game smart-contract solana
Last synced: 3 months ago
JSON representation
MetaMaker - A blockchain platform for collaborative game creation, governance, and ownership
- Host: GitHub
- URL: https://github.com/mikeleo03/metamaker
- Owner: mikeleo03
- License: mit
- Created: 2024-12-08T14:48:52.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-12-30T17:52:40.000Z (6 months ago)
- Last Synced: 2025-03-30T04:26:58.371Z (3 months ago)
- Topics: blockchain, collaborative-development, ethereum, game, smart-contract, solana
- Language: TypeScript
- Homepage:
- Size: 12.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
MetaMaker
A blockchain platform for collaborative game creation, governance, and ownership.
MetaMaker

MetaMaker is a blockchain-based decentralized game development platform that allows players and developers to collaboratively create, govern, and own in-game assets and features. This platform would use blockchain to ensure transparent decision-making, reward contributions, and secure ownership of game elements.
## 📝 Table of Contents
- [General Information](#general-information)
- [Tech Stacks and Platforms](#tech-stacks-and-platforms)
- [High Level Design](#high-level-design)
- [Pages and Features](#pages-and-features)
- [How to Run](#how-to-run)
- [Report and Demo](#report-and-demo)
- [Assets](#assets)
- [Contributors](#contributors)## 📢 General Information
Refining Collaborative Application Development with Blockchain
Collaborative application development has become increasingly accessible, particularly with the rise of open-source platforms. These platforms allow anyone to modify an application to meet specific needs. If a modification proves valuable to a broader user base, the original developers can integrate it into the official version of the open-source application.
However, this open-source model still faces several challenges:
1. **Selection Process**: Determining which modifications to include in the official codebase can be subjective and time-consuming.
2. **Component Tracking**: Ensuring transparency and traceability of open-source components in the codebase.
3. **Workflow Automation**: Accelerating integration processes to enhance efficiency.To address these challenges, we propose a **blockchain-based fully public development method**. This method enables anyone to suggest program modifications by submitting them to the blockchain as a linked file (e.g., Google Drive link). Public voting will evaluate these proposals, with the highest-voted modification automatically integrated into the main codebase after a defined voting period.
This blockchain-powered system offers:
- Transparent decision-making through public voting.
- Automated integration of top-voted modifications.
- Enhanced traceability and accountability for submitted changes.Initially, this method is designed for blockchain-based game development, aiming to revolutionize how games are collaboratively developed, governed, and owned by communities.
## 👨🏻💻 Tech Stacks and Platforms
React | Typescript | TailwindCSS | ShadcnUI | Express | NodeJS | Google Drive API | Github API | Solana | Ethereum | MetaMask | Ganache | Oracle
## 🏗️ High Level Design
MetaMaker's system consists of three main components: **Frontend (FE)**, **Backend/Oracle**, and **Smart Contract (SC)**.
1. **Frontend (FE)**:
- Users can connect their wallets directly without involving the Backend.
- Users can view asset data by requesting information from the Backend, which retrieves it from the Smart Contract.
- To vote, users submit their votes via the Frontend, which sends them to the Smart Contract through the Backend/Oracle.
- After the voting period ends, the Frontend calls the Backend to execute the *declare winner* function on the Smart Contract and displays the results.2. **Backend/Oracle**:
- Acts as a bridge between external sources (e.g., Google Drive) and the Smart Contract.
- For asset submissions, the Backend uploads temporary files to Google Drive and stores the file link on the blockchain via the Smart Contract.
- The Backend also forwards user votes to the Smart Contract, retrieves voting results, and uploads the winning asset to a GitHub repository.3. **Smart Contract (SC)**:
- Stores asset data and voting results.
- Provides functions to view assets, cast votes, and declare the winner (*declare winner*).
- Serves as the central logic layer for interactions with the Frontend and Backend.This architecture ensures a transparent, secure, and decentralized workflow from asset submission to winner declaration.
## ⭐ Pages and Features
Here's MetaMaker's features and its interface.
![]()
![]()
Home
About
![]()
![]()
Proposing Game Asset (1)
Proposing Game Asset (2)
![]()
![]()
Vote Asset
Winner Announcement
![]()
![]()
Patch State Management
Some Decoration :D
## ⚙️ How to Run
### General Project
1. **Clone the repository** from the terminal using the following command:
```bash
$ git clone https://github.com/mikeleo03/MetaMaker.git
```
2. **Go to the each directory** one by one (frontend, backend, dApp), by using this command:
```bash
$ cd
```
Using 3 different terminals is recommended.### Frontend Project
1. **Install all the required dependencies** using this following command in the project frontend directory
```bash
$ npm install
```
2. **Run the frontend** using this following command
```bash
$ npm run dev
```
3. The MetaMaker frontend should now be running. You can check the server by opening [http://localhost:3000](http://localhost:3000) in your web browser.### Backend Project
1. **Install all the required dependencies** using this following command in the project backend directory
```bash
$ npm install
```
2. **Create a `.env` file** inside the repository directory using the `env.example` file as the template.
3. **Run the server** using the following command. Make sure you have Docker Desktop installed on your device:
```bash
$ npm run dev
```
4. The MetaMaker backend server should now be running. You can check the server by opening [http://localhost:5000](http://localhost:5000) in your web browser.### dApp Project
1. Ensure that Ganache is installed on your device. For more information, visit [this link](https://archive.trufflesuite.com/ganache/).
2. **Build the smart contract** using this following command
```bash
$ truffle build
```
3. **Deploy the smart contract on private chain** using this following command
```bash
$ truffle deploy
```
3. Finally, do migration using this command
```bash
$ migrate
```
4. The MetaMaker dApp should now be running on [http://127.0.0.1:7545](http://127.0.0.1:7545).## 📌 Report and Demo
Access the **Project Report**: [Project Report Link](/docs/Project%20Report%20Blockchain%20-%20MetaMaker.pdf)Watch the **Video Demo**: [Video Demo Link](https://youtu.be/aDZGzmtYYbQ)
## 📂 Assets
Access the MetaMaker **Google Drive Assets**: [View Google Drive Assets](https://drive.google.com/drive/folders/1YkGAarrMd2N2Mq3jw0PHrRc9eqUql9Fj)Explore the **GitHub Repository Assets**: [View GitHub Repository](https://github.com/Salomo309/Game-Assets)
## 👏 Contributors
|SID|Contributor|
| :---: | --- |
| 13521063 | Salomo Reinhart Gregory Manalu |
| 13521108 | Michael Leon Putra Widhi |
| 13521172 | Nathan Tenka |