onflow / developer-grants

Grants for developers that contribute to the broader developer ecosystem
Apache License 2.0
50 stars 18 forks source link

Voxel Robot NFT Unity Tutorial #161

Closed Codie-Petersen closed 1 year ago

Codie-Petersen commented 1 year ago

Voxel Robot NFT Unity Tutorial

Grant category

Description

This project is an example of a full stack dApp that integrates smart contracts into a Unity application. It involves creating approximately 150 unique robot art assets, an NFT smart contract, a marketplace smart contract, and a Unity application to facilitate user actions. The Unity application allows users to view, buy, sell, and mint these NFTs.

In addition to the creation of the assets and smart contracts, the project will include comprehensive tutorials for each contract (NFT and Marketplace) as well as how the Unity components were developed for each robot feature in the NFT. The tutorials will also specifically cover how to integrate the smart contracts into your Unity application using the Flow Unity SDK.

Overall, this project aims to be an informative and practical guide for those interested in building dApps with Unity and smart contracts for Flow.

Problem statement

Flow provides an extensive collection of educational material and developer examples that make onboarding simple and straightforward. This wealth of content helps to smooth the learning curve, spark excitement, and inspire ambitious developers.

Despite the abundance of tutorials and solid examples for web-based smart contract integration, there is currently a lack of resources for Unity-based dApps and smart contract integration. This gap in the educational material can be a challenge for developers who are interested in developing smart contracts for use in Unity.

While Flow provides an incredible number of resources and support for developers, there is an opportunity to expand the educational material to include more content with a focus on Unity support. This would enable developers to fully leverage the capabilities of Flow and create even more innovative dApps.

Example of Flow Educational Samples

Target Audience

Evidence For Need

Proposed Solution

Our proposal builds upon the successful patterns used by Flow in the past. Flow has a proven track record of creating NFT and Marketplace tutorials, and we take inspiration from their existing examples. For instance, the Kitty Item example showcases how users can create item NFTs that can be used as accessories for Crypto Kitties. This example comes equipped with artwork, smart contracts (NFT and Marketplace), relevant scripts, and all project files required to launch it locally. By providing a thorough onboarding experience, this example familiarizes developers with the entire development cycle without requiring them to invest weeks of experimentation.

Our solution aims to achieve a similar effect. We will provide a complete project that can be downloaded and pieced together while following our tutorials step-by-step. By the end of the experience, readers will have successfully launched smart contracts and interacted with them on the blockchain through a Unity application.

The project will include:

Midjourney Inspiration

MagicaVoxel Alpha Iteration

MagicaVoxel Beta Iteration

Impact

The most significant impact our proposal can have on the developer community is by providing a clear roadmap and how-to guide on creating NFTs and marketplaces in Unity. Indie Unity developers are always on the lookout for untapped markets, and we believe that by showcasing the possibilities of breaking into the Web3 space, we can excite them. The only thing currently holding them back is the time investment required to explore these new concepts and developer environment. However, by presenting a comprehensive guide on how blockchain games/dApps on Flow work, within the context of Unity, we can provide developers with the necessary knowledge to expand their ideas into blockchain gaming.

By offering a concise and accessible experience, we hope to inspire developers to apply their creativity to blockchain gaming. Once they have a clear understanding of the concepts involved, their minds will undoubtedly start wandering to past ideas that they can now bring to Flow. Our proposal aims to bridge the gap between traditional game development and the emerging blockchain space, unlocking new possibilities for indie developers.

Milestones and Funding

It is important to note that our project comprises two distinct tracks that will run in parallel. Our team will be working on location and collaborating in real-time on all aspects of design, development, and merging efforts. It is also worth mentioning that we aim to create all content in an open-source manner, allowing the public to benefit from our work without any legal concerns. To achieve this goal, we will only use custom software, scripts, art, and sounds, making every effort to limit the use of third-party plugins or libraries unique to Unity 3D. We will include Unity-specific third-party plugins only if it is Flow authored content or plugins provided by Unity to everyone for free. Lastly, the ownership of the content will ultimately be determined by the reviewers. We do not have any strong opinions regarding the ownership or rights of the content at the end of the project.

Programming and Game Design Milestones and Budget

We recognize that there are several potential risks that could derail our efforts. To mitigate these risks, we have identified some critical factors based on our experience. While some risks may seem minor, we have still included them in our list as they could have a cumulative impact on the project's success. Our goal is to be as transparent as possible and ensure that we have taken all necessary precautions to ensure a successful outcome.

Milestone Deliverables Hours Risks USD Proposal
Architecting And Sprint Planning User Stories, Design Document, Storyboard 40 Stakeholder Requires More Features $1000
NFT Robot Contract Smart Contract and Supporting Scripts 56 Randomness Is Bigger Pain Than Expecting $5600
Marketplace Contract Smart Contract and Supporting Scripts 96 State Tracking Gets More Complex Than Anticipated $9600
Wallet Sign-In Scene Unity Scene With GUI, Scripts, and Prefabs for Login 32 Flow SDK Has Bugs or Changes During Development $3200
Main Scene Unity Scene With GUI, Scripts, and Prefabs for Passing, Maintaining, and Listening to User State/Events 16 Flow SDK Not Designed for Typical Developer Flow and Difficult to Implement Conventional Game Patterns $1600
Viewer Scene Unity Scene With GUI, Scripts, and Prefabs for Managing Collection of Owned Robot NFTs 32 Any Upstream Changes in Response to Risks Alters Typical Implementation Method $3200
Minting Scene Unity Scene With GUI, Scripts, and Prefabs for Minting Robot NFT 32 Required Functionality for GUI Might Be Overlooked During Smart Contract Development $3200
Market Scene Unity Scene With GUI, Scripts, and Prefabs for Buying, Selling, and Viewing Listed NFTs 64 Marketplace State Tracking Requires Clever Tricks to Integrate Properly in Unity $6400
Robot System Unity (Test) Scene, Scripts and Prefabs for a Robot Generator Capable of Taking in Traits and Building Modular Robot 112 Problems with Chain Randomness Might Require Creative Solutions That Make Generator Less Straight Forward $11200
Paint Job System Paint Job and Color Scheme Generator That Takes in Trait and Maps a Procedural Color Scheme and Paint Job to A Robot NFT and All of Its Parts in a Clean Way 40 Robot Meshes End Up Being Too Hard to Make Procedural Textures $4000
Environment System Scripts That Take a Trait and Generate a Random Environment for Robots to Be Placed In 40 Smart Contract Traits Are Hard to Track $4000
NFT Trait Reading System Scripts/System That Reads Traits from Blockchain and Passes it To Unity 80 Flow Unity SDK Version is Harder Than Normal Flow JS Scripts $8000
Market Reading System Scripts/System That Reads Market Data from Blockchain and Passes it To Unity 80 Database Requirements Make It Clunky to Stand Up $8000
NFT Contract Tutorial Wiki GitHub Wiki with Detailed Explanation and Instructions on Making the NFT System with a Focus on Unity Planning and the Project Assets 40 $4000
Market Contract Tutorial Wiki GitHub Wiki with Detailed Explanation and Instruction on Making the Market and Key Features Unity Developers Need to Think About 40 $4000
Unity Components Tutorial Wiki GitHub Wiki with an Overview of Procedural Design with NFTs and All of the Bot Components and How They Map to NFT Traits. One Example of Implementing a Trait from Scratch Using the NFT Smart Contract. 60 $6000
Unity Contract Integration Tutorial Wiki GitHub Wiki with Detailed Explanation of Smart Contracts Interact with Unity Applications. Step by Step Guide in Programming Interfaces for the NFT and Market Contracts 60 $6000
Bug Fix Bug Fix and Issues in Unity or Contracts 160 Flow SDK Problems Make Bug Resolution Difficult $2000
Version Support Bug Fix and Issues in Unity or Contracts, Flow Version 160 Flow SDK Problems Make Bug Resolution Difficult $6000

Total Programming Hours: 920 + Optional 320 Billable Support Hours Total Programming Budget: $89000 + Optional Bug Support @ $12.5 Hr. + Optional Version Support @ $25 Hr.

Art Milestones and Budget

All risks in this section are the same. The most significant concern is the possibility of creative burnout and the challenge of generating fresh and distinctive content. To address this challenge, we have decided to incorporate generative AI into our creative process. Specifically, we plan to use AI-powered tools to assist with 2D design concepts, which will help streamline the modeling phase and ensure that we can produce high-quality content without exhausting our creative resources.

Milestone Deliverables Hours USD Proposal
Chassis Modules 20 3D Voxel Robot Chassis, Textures, Materials, Unity Prefabs 123 $9225
Mobility Modules 20 3D Voxel Robot Mobility Attachments, Textures, Materials, Unity Prefabs 123 $9225
Weapon Modules 20 3D Voxel Robot Weapons, Textures, Materials, Unity Prefabs 73 $5475
Equipment Modules 20 3D Voxel Robot Equipment Pieces, Textures, Materials, Unity Prefabs 73 $5475
Buildings 20 3D Voxel Buildings, Textures, Materials, Unity Prefabs 123 $9255
Environment Details 50 Environment Details (Cars, Military Vehicles, Trees, Etc.), Textures, Materials, Unity Prefabs 225 $16875

Total Art Hours: 740 Total Art Budget: $55500

Team

Name Role Bio Contact
Codie Petersen Smart Contracts and Game Developer 14 Programming with Unity codie@asteres-technologies.com
Joshua Torgerson 3D Artist, Game Developer 8 Years 3D Art, 6 Years in Unity codie@asteres-technologies.com
https://asteres-technologies.com/ We develop and research solutions that drive innovation and improve organizations' competitive positions in, Web3, HPC, AI Application, Game Development, Cloud, and Modeling and Simulation. Government Contracting and Science or Technology Hard Research and Development codie@asteres-technologies.com
Codie-Petersen commented 1 year ago

Hey @chrisackermann Just wanted to give a little ping. Looks like there is a bit of a backlog for these proposals, but I wanted to see if there were any immediately glaring issues or suggestions for this proposal you might have. Let me know and my team and I can fix and update anything before you get to reviewing it with your team.

Thanks for your time.

alxflw commented 1 year ago

thanks for the ping @Codie-Petersen. yea, we're currently trying to move through the backlog as fast as we can. please expect a follow up in a weeks time.

Codie-Petersen commented 1 year ago

Sounds good, thanks for the update @alxflw.

alxflw commented 1 year ago

Hey @Codie-Petersen, we reviewed your proposal in detail and decided to pass because it is unclear if the impact on the developer ecosystem will be high enough. While the assets you shared look fantastic, it is not clear if over-indexing on the details that are not unique to Flow will be beneficial. We've also learnt from KittyItems that "production-ready" samples like this are perceived as overly complex by developers who are ramping up on Flow. I'm happy to share more details on Discord if you're interested.

Thanks again for taking the time to submit this detailed proposal. Feel free to reach me directly on Discord: alx-flw.find#6198.