funded
NMKR SDK for Godot
Current Project Status
In Progress
Amount
Received
₳56,000
Amount
Requested
₳80,000
Percentage
Received
70.00%
Solution

We will create a Godot plugin that is a wrapper of the NMKR API, to create more integrated minting experiences and to take advantage of the multi-asset ledger to easily implement digital collectibles.

Problem

While Cardano is the ideal platform for web3 indie game developers, there are currently no tools for the Godot game engine that provide easy access to minting functions and using digital collectibles.

Value for Money
Feasibility
Impact Alignment

Team

2 members

NMKR SDK for Godot

Please describe your proposed solution

Our proposal involves developing a Godot plugin that interfaces with NMKR's API so that game developers can take advantage of the multi-asset ledger feature of the Cardano blockchain and just use digital collectibles in their games.

Logo

The open-source Godot game engine is increasingly becoming the popular choice for indie game developers. By creating this SDK, we can help these developers integrate Cardano-based web3 gaming experiences more easily into their productions.

The NMKR Studio API is an enormously powerful tool that is designed not only for easy NFT minting and payment processing, but also for wallet verification, access, and management. Using our plugin, Godot developers have easy access to all the endpoints provided by the NMKR Studio API: <https://studio-api.nmkr.io/swagger/index.html>

We will also build open-source demos to show how to use the SDK, including an example game. This ensures we support a collaborative environment where developers can work together and contribute.

Example Flow

Credits to <span class="mention" data-denotation-char="" data-id="178365" data-index="0" data-value="<member id='178365' communityId='163'>futurefest</member>"><span contenteditable="false"><span class="ql-mention-denotation-char"></span><member communityid="163" id="178365">futurefest</member></span></span> for the original "Sample Flow" image and a lot of the inspiration that went into writing this document. We have the same goal: help Cardano become the go-to blockchain for game developers. We aim to follow the same path you traced with your successfully funded proposal.

We want to have the plugin available both on GitHub and on the Godot assets library, making it more accessible to developers. We aim to work with NMKR to achieve this. In doing so, we'll make the "Building on Cardano" process simpler for developers and improve the overall usability of the Cardano ecosystem.

The project already went through an in-depth briefing and planning phase, where we conducted a comprehensive review of NMKR's API and Godot's specific requirements. Using this information, we developed a detailed project timeline, identifying key deliverables and deadlines.

Compatibility

The NMKR SDK for Godot plugin will be written using Godot's main scripting language, GDScript. This will ensure full compatibility for every user, as GDScript is always available with any Godot build. This means that users developing with different languages, like C#, can still use the plugin in their projects.

We aim to achieve full compatibility with all Godot versions from 4.x and above.

Ease of use

Once the plugin is activated, a new custom node named "NMKR" will be available everywhere in your projects. Just reference it in your script to access all of its features, as you do for any other internal Godot nodes.

Image file

Flexibility

To maximize the consistency of the NMKR SDK for Godot, all the required data are passed with function parameters, and the result will always be provided as a dictionary. However, depending on the developer's needs, there are several different ways to use the functions provided by the plugin:

1) Async method

Example 1

Each function will emit a specific signal on completion. For async access, the developer will simply connect a callback to the signal.

2) Sync method "A"

Example 2

Most scenarios will require accessing several NMKR endpoints in sequence. Developers will use the desired function as a coroutine and await its completion, assigning the result to a variable.

3) Sync method "B"

Example 3

The developer can also call the desired function and await either its specific signal (see method 1) or the generic signal emitted on completion of any function, and then retrieve the result.

Documentation

Godot's internal documentation system is extremely powerful and always available directly inside the editor, without the need to look up on the Internet what you need to know about a specific component or function: just CTRL (or CMD on Mac) + click on a function name, and the corresponding documentation will be opened in the editor.

We want to leverage this system to provide clear, correct, and concise documentation for every aspect of the NMKR SDK for Godot. While all the documentation will be redacted by the main developer while building the plugin, we will ensure that the quality will be top-notch by asking a professional to review all the written text.

Example applications

Another important aspect of any high-quality developer tool is the inclusion of tools and easy-to-understand examples built with it. For this reason, we decided to include three different example applications:

  • A very basic use case, that implements a single endpoint in the NMKR API to show the user how to access them all. With just a few lines of code, the developer will learn the basic concepts that apply to all the available functions, which are built around the very same logic.
  • A test framework. It will be an easy GUI where the developer can just insert the values for any endpoint they want to access and display the result of the API call.
  • A simple but complete game, to show how to access many different endpoints logically, to solve concrete and common issues that many developers need to face when approaching a new web3 project.

Conclusions

As the blockchain gaming space evolves, the need for robust and accessible tools becomes increasingly evident. Our project, a Godot plugin for the NMKR API, is designed to bridge this gap, offering Godot developers a seamless integration with the Cardano blockchain through NMKR’s powerful services.

Previously, Project Catalyst Fund 10 recognized the potential of blockchain integration in gaming by funding a similar project for the Unity engine. This initiative paved the way for Unity developers to engage with blockchain technology, demonstrating the demand for such tools within the gaming community.

Building on this momentum, our project aims to extend these capabilities to the Godot community. Godot’s open-source nature aligns perfectly with the decentralized ethos of blockchain, making it an ideal platform for this endeavor. The engine’s flexibility, coupled with its community-driven development model, ensures that the plugin can be refined and expanded to meet the evolving needs of developers. By developing the NMKR SDK for Godot, we aim to lower the barrier to entry for game developers looking to incorporate blockchain elements into their games. This plugin will enable Godot developers to access NMKR’s services directly within the engine, streamlining the development process. Also, we can foster an inclusive environment where more developers can participate in the burgeoning blockchain gaming market.

For those reasons, the NMKR SDK for Godot represents a significant step towards democratizing blockchain game development. It embodies the principles of open-source collaboration and innovation, which are at the core of both Godot and Cardano.

Please define the positive impact your project will have on the wider Cardano community

Our solution addresses the need for seamless integration of Cardano's capabilities in the gaming industry, particularly targeting indie game developers using the open-source Godot game engine. By developing a Godot plugin for NMKR's API, we facilitate easier Cardano adoption, potentially increasing both the number of NFTs minted and the transactions within the Cardano network.

Video gaming is a booming billion-dollar industry that is expected to grow enormously in the following decade. A tool like this could attract new developers and users to the Cardano ecosystem, broadening its user base: the multi-asset ledger feature of the Cardano blockchain allows developers to easily integrate and use digital assets in their games, without the need to deploy complicated smart contracts, which is often seen as a barrier also by experienced developers who are approaching their first web3 projects.

What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

I'm an IT professional with more than 25 years of experience as a developer and systems engineer, and I started to focus on game development 5 years ago. In late 2019, I released my first commercial game, Wood 'n Stones, now available for free on Steam.

I fell in love with the Cardano technology about 3 years ago. During the spring of 2022, I started the European Cardano Community together with my teammates: Marcus, Mauro, and Ricardo. We host regular town halls/fireside chats to present the latest projects building on Cardano, and we host X spaces in several different languages spoken in Europe and have also started focusing on in-person events.

During the development of my previous project, to facilitate the integration with the Unity game engine, I released an open-source component, which is still available to everybody who wants to create NFT games. During Fund 10 a proposal for creating an official Unity component was funded, but that project gave me the necessary experience to build a very professional alternative for Godot, which is an open-source project, just like Cardano.

What are the key milestones you need to achieve in order to complete your project successfully?

Milestone 1: The goal of our first milestone, which will be achieved in the first month, is to provide a version of the plugin with all the needed fundamental functions. This will allow us to include functions for accessing the first subset of the NMKR API endpoints.

The provided example application will show the users how to access the API wrapper: the same criteria will apply to all current and to-be-implemented functions.

Milestone outputs

  • The first version of the NMKR plugin for Godot released
  • Minimal example application implemented using at least one of the available endpoint wrapper functions
  • Full documentation for the NMKR SDK will be available directly in the Godot game engine as soon as the plugin is activated for all the implemented functions

Acceptance criteria

  • The minimal example application works and shows actual data, retrieved using the NMKR API
  • Correct integration with the Godot game engine internal documentation system

Evidence of milestone completion

  • Source code available on the GitHub repository

Milestone 2: For the second milestone, which also will take a month to be completed, we will focus exclusively on implementing all the remaining NMKR API endpoints, along with the full documentation correctly implemented in the Godot engine internal documentation system.

We'll also release a second example application that implements a simple GUI frontend for testing all the API endpoints with user-provided data.

Milestone outputs

  • The full version of the NMKR plugin for Godot released
  • The second example application released
  • Bug fixing the "NMKR SDK for Godot" plugin with the implementation of the second example application
  • Full documentation for the NMKR SDK will be available directly in the Godot game engine as soon as the plugin is activated for all the implemented functions

Acceptance criteria

  • The new example GUI frontend works and shows actual data, retrieved using the NMKR API
  • Correct integration with the Godot game engine internal documentation system

Evidence of milestone completion

  • Source code available on the GitHub repository

Milestone 3: Keeping to our planned one-month-milestones schedule, we reserved the third one for building the fundamentals of the full-functioning game that we will release as the final example application.

At least some of the planning game mechanics will be available with this first alpha version of the game, and it will implement some basic interaction with the NMKR plugin.

Milestone outputs

  • The first alpha version of the example game released
  • Bug fixing the "NMKR SDK for Godot" plugin with use-case scenarios

Acceptance criteria

  • The example game can run inside the Godot game engine without crashing

Evidence of milestone completion

  • Source code available on the GitHub repository

Final Milestone: We will finally release the full, playable version of the example game!

It will include all the planned game mechanics and show developers how to achieve more advanced use cases for accessing the NMKR API.

Milestone outputs

  • The full version of the example game released
  • All the found bugs in the "NMKR SDK for Godot" plugin are fixed

Acceptance criteria

  • The example game can be built for multiple platforms and will be also made available for download from a specific web page

Evidence of milestone completion

  • Source code available on the GitHub repository
  • Game availability for download
  • Drafting the required project completion report and promotional video

Please provide a cost breakdown of the proposed work and resources

Development and Management

  • Implementing all the primary development work, including creating the Godot plugin, in-line documentation, example applications, and the fully functioning game
  • Overseeing the project, coordinating with third parties, and ensuring project objectives are met
  • Submitting the results to the public GitHub repository and the Godot Asset Library

1 x Senior Developer / Project Leader, 60$ x hour

  • 7 hours x day, 5 days x week, 16 weeks: 33,600$

Game Assets

  • Graphics for the example game (sprites, environment, etc.)
  • Basic NFT art for the digital collectibles minted for and from the example game
  • Music and special effects

Fixed budget

  • Total: 1,250$

Documentation

  • Revisioning the released guides and the documentation

1 x Professional Reviewer, 30$ x hour

  • 5 hours: 150$

Total: 35,000$

Assuming ~0.437$ x ADA (value at the time of editing this proposal): ~80,000 ADA

No dependencies.

How does the cost of the project represent value for money for the Cardano ecosystem?

Solving a Key Problem

Our project directly addresses a vital need in the gaming and Cardano ecosystem, namely, streamlining the process of NFT minting, accessing assets from a wallet, and generating transactions within game development. The NMKR SDK for Godot we will develop acts as a bridge connecting developers and the Cardano blockchain, simplifying the integration process. This clear-cut solution will encourage more developers to engage with Cardano, thereby enriching the ecosystem with increased activity and innovation.

Budgeting

The reported prices are slightly lower than the European market average, but considering the size of the project and that everything can be built internally without the need to hire any external specialist (apart from the art assets necessary for the example game), we think that the proposed budget aligns with our team's need to maintain a fair standard of living while dedicating our skills and time to the project. This commitment reflects our belief in the transformative potential of our project, and our desire to see Cardano thrive as a platform for game developers.

Long-Term Impact

The scope and budget for our project reflect its significant long-term impact. This four-month timeline will allow us to design, develop, and refine both a Godot plugin that is not only functional but also user-friendly, and a compelling game that will highlight to game developers what is possible to achieve, with ease, and without the need to deploy any smart contract. This duration accounts for thorough testing, community engagement, documentation, and eventual launch.

We're committed to fostering an environment where game asset creation is more accessible and integrated, and help Cardano become the go-to blockchain for game developers.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00