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.
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.
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.
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
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"
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"
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.