Skip to content

mikeleo03/MetaMaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


MetaMaker Logo

MetaMaker

A blockchain platform for collaborative game creation, governance, and ownership.


MetaMaker

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

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

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:
    $ git clone https://github.com/mikeleo03/MetaMaker.git
  2. Go to the each directory one by one (frontend, backend, dApp), by using this command:
    $ cd <dir>
    Using 3 different terminals is recommended.

Frontend Project

  1. Install all the required dependencies using this following command in the project frontend directory
    $ npm install
  2. Run the frontend using this following command
    $ npm run dev
  3. The MetaMaker frontend should now be running. You can check the server by opening http://localhost:3000 in your web browser.

Backend Project

  1. Install all the required dependencies using this following command in the project backend directory
    $ 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:
    $ npm run dev
  4. The MetaMaker backend server should now be running. You can check the server by opening http://localhost:5000 in your web browser.

dApp Project

  1. Ensure that Ganache is installed on your device. For more information, visit this link.
  2. Build the smart contract using this following command
    $ truffle build
  3. Deploy the smart contract on private chain using this following command
    $ truffle deploy
  4. Finally, do migration using this command
    $ migrate
  5. The MetaMaker dApp should now be running on http://127.0.0.1:7545.

πŸ“Œ Report and Demo

Access the Project Report: Project Report Link

Watch the Video Demo: Video Demo Link

πŸ“‚ Assets

Access the MetaMaker Google Drive Assets: View Google Drive Assets

Explore the GitHub Repository Assets: View GitHub Repository

πŸ‘ Contributors

SID Contributor
13521063 Salomo Reinhart Gregory Manalu
13521108 Michael Leon Putra Widhi
13521172 Nathan Tenka

About

MetaMaker - A blockchain platform for collaborative game creation, governance, and ownership

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •