filecoin-project / devgrants

👟 Apply for a Filecoin devgrant. Help build the Filecoin ecosystem!
Other
372 stars 308 forks source link

Unreal Engine Filecoin Integration Plugin #510

Closed VenomekPL closed 2 years ago

VenomekPL commented 2 years ago

Open Grant Proposal: Unreal Engine Support Plugin

Unreal Engine Filecoin IPFS Plugin

Proposal Category: integration-adoption

Proposer: VenomekPL

(Optional) Technical Sponsor: jnthnvctr Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?: No.

Project Description

Unreal Engine [UE] is the biggest game engine on the market right now. More than half of the top 200 selling games on the Steam platform are created with the Unreal Engine! The UE has a community of indie and professional developers via the launcher and UE marketplace of approximately 20 million Accounts. It includes solo users, studios, and teams. We Aim to bring a simple use integration plugin to the UE Marketplace, allowing those developers to start using IPFS and Filecoin infrastructure directly from wrapped functions. Both are usable in C++ as well as directly in Unreal Engine Blueprints. Blueprint is an asset that allows content creators to add functionality on top of existing gameplay classes easily. Blueprints are created visually inside the Unreal Editor instead of typing code and saved as assets in a content package. We have a team of expert coders with already successfully shipping plugins on the marketplace. Currently, we are finishing work on a Blockchain integration plugin for Ethereum, with Solana and others in the line.

Value

Challenges:

Deliverables

We intend to ship the plugin with both editor and runtime modules and compatibility with PC and all new-gen consoles, including switch. All functions would be wrapped to run natively inside Unreal Engine, with exposition to Blueprints. It does not require to run 3rd party software or running an integration server in the background. Learning materials and example content. We would also provide a full document showing a clear value proposition, and examples for developers as an incentive to jump into IPFS technology. A full tech breakdown, workflow, development process, and encouragement for other devs.

Development Roadmap

  1. Planning & Research Deliverables: the Agile plan backlog has been built accordingly to research and development conducted before and during the project. A preproduction stage is to avoid dead ends and wasted effort. Staff: 4 programmers. Cost: 15000 Euro. Time: 3 weeks.

  2. Building a Prototype Deliverables: this milestone aims to build a working prototype with exposed functions to blueprints, working on a PC environment only in the editor, allowing to run functional tests proving that the concept is viable. Staff: 4 programmers. Cost: 30000 Euro. Time: 6 weeks.

  3. Release Candidate 1 Deliverables: the final version of the basic functionality is ready to release. At this stage, it could go public on the Marketplace and has full basic functionality ready. It might require feedback to remove any unforeseen bugs or use cases we have not expected from users. Staff: 4 programmers. Cost: 15000 Euro. Time: 3 weeks.

  4. Release Version Deliverables: compatibility with all required platforms and environments, additional extended example content, and tutorials. Staff: 4 programmers. Cost: 10000 Euro. Time: 2 weeks.

  5. Final Version Deliverables: any further bug removal and polishing cases. Staff: 4 programmers. Cost: 10000 Euro. Time: 2 weeks.

After this period we would keep the plugin updated perpetually, as it would be used by our own project that we have planned for 4 years of development ahead.

Total Budget Requested

80 000 Euro over the span of 16 weeks - approximately 4 months. All funds go as salary for Software Engineers.

Maintenance and Upgrade Plans

At least 4 years of continuous support and updates, as well as updates to new features for the plugin.

Team

Team Members

Adam Grodzki Andreas Oehlke Manuel Noltorp Mohamad Al Moussawi

Team Member LinkedIn Profiles

https://www.linkedin.com/in/adam-grodzki-2a7504181/ https://www.linkedin.com/in/andreas-oehlke-91062467/ https://www.linkedin.com/in/manuel-noltorp-5871011a9/ https://www.linkedin.com/in/mohamad-al-moussawi-88319730/

Team Website

No website. We have a community Discord.

Relevant Experience

Personally, I have been in the blockchain space since 2011 - its origin. Andreas, the project's CTO, is a C++ wizard with experience in vast commercial projects and the Unreal Engine. Our team members have experience in game development for three to seven years. Therefore, we understand new technologies and are enthusiasts of Web3. We already delivered a plugin with over 60 000 downloads with a community built around it. Our achievements are recognizable in the Unreal Engine developers' space. Currently, we are about to publish the Blockchain Ethereum integration plugin we developed. We are an official partner of Polygon.

Team code repositories

No public repository as UE Marketplace does not allow open source or MIT licensed projects. The full source code can be reviewed after installing the plugin. Example: https://www.unrealengine.com/marketplace/en-US/product/agr-pro As one could imagine having a perfect 5-star review score is very hard on that many downloads.

Additional Information

For any questions contact me on discord: AngeIV#1632

ErinOCon commented 2 years ago

Hi @VenomekPL, Thank you for your proposal. We will review this and get back to you, on this thread, with a status update or questions.

ErinOCon commented 2 years ago

Hi @VenomekPL! We would like to learn more about this project's technical architecture and how it supports IPFS. Can you provide clarity around content types and which IPFS storage tools you're planning to use?

ErinOCon commented 2 years ago

@mishmosh @jnthnvctr

VenomekPL commented 2 years ago

On the technical side, it would have to run as a runtime module for the unreal engine. Key features would be a subsystem allowing for the definition of the IPFS gateway, and access to the function library dedicated to communication. Key functionalities would be obviously uploading files, checking if file exists and information on them, as well as a get function. It would support the localhost IPFS desktop client. The plugin would not be complete without a JSON constructor, and parser, as well as an image interpretation that could output a usable texture 2D that can be used in a material, dynamic material, or interface material. For data types - the most useful are image, JSON, and bit array - so any binary data, including full save game object, advanced data structures, and while assets (including full geometry). We would wish to allow users to define storage type and IPFS gateway, to extend possible. I would imagine the default would be web3.storage & nft.storage . Like without blockchain plugins we have predefined gateways and networks, but a client can define his own connection string and inject it into the subsystem. We would obviously provide only converters for the specific types, however how you use them to store and restore information would be something for the developers to decide and code in for the specific needs of their game. We would also add a data persistency guarantee by file coin utilization.

In short plugin would have to support IPLD, multiformat datatypes and utilities to parse them. However, games would not function as IPFS nodes, and would NOT directly participate in storing other users' data and exposing them for further download. they could however at runtime diff the IPLD to make sure local loaded data is 100% is reliably the same, like one provided in the IPFS. We would make sure it is easy to use the IPFS and Blockchain plugin together to store IPLD in NFTs. For future updates, we would definitely like to introduce IPNS and the option to update files with access to the file history.

Worth noting is that I can't give a full answer to this question straight up at this point. It requires multiple hours of deep research by me and a number of my peers to gather all necessary information to evaluate the methods we will use and the functions we shall provide. Good research and planning before building the first proof of concept are crucial to success. At this point I can surely say that: IPFS can be used directly from the engine and be part of the final game build without the need for external tools and programs running in the background and can be shipped with both game clients and dedicated servers. It can be beneficial for game developers to store JSON structures as well as even game files that can be at runtime compressed to binary format and decompressed after download and used dynamically. We would write our own c++ library for the sake of the project. The communication to gateways would be sent and received via HTTP protocol I assume.

I would be more than happy to host an online show to tell you more about our blockchain plugin to showcase how it works live in Unreal and what the future of the IPFS plugin could look like.

VenomekPL commented 2 years ago

@ErinOCon

jchris commented 2 years ago

This sounds aligned with NFT.Storage / Web3.Storage roadmap, if you kick off a build effort it'd be great to have a conversation about what we are working on in the next few months.

VenomekPL commented 2 years ago

@jchris I need to know how much of a roadblock not meeting the MIT license is in general? There are questions about it, yet it's not stated as a requirement. We are definitely ready to put on some effort toward research upfront, and I see enormous potential as IPFS in general lines up perfectly with the blockchain functionality were bringing into game dev already. Still - we applied for the grant to see if we can properly partner up, and cover costs until the job is over and we publish the whole thing. The blockchain plugin we just finished was possible thanks to a grant by Polygon Studios. We need to plan the order of our development by what is possible due to the financial situation of our company. I would love to hear more about the web3.storage and nft.storage lineup. As stated before I strongly believe we could deliver fully working and tested version of the Unreal Engine plugin within 16 weeks or less. The sooner we start the sooner we would be able to deliver. We could already take advantage of elements that are lined up, but not officially out yet, but will be when the plugin is completed. Looking forward to hearing more from You.

VenomekPL commented 2 years ago

@jchris Updated the deliverables in the proposal.

ErinOCon commented 2 years ago

Hi @VenomekPL, thank you for the provided updates! Please email devgrants@fil.org to finalize the details for this grant.