dojoengine / dojo

Dojo is a toolchain for building provable games and applications
https://dojoengine.org
Apache License 2.0
421 stars 176 forks source link

Integration of ML models to Dojo by using Giza Platform #2404

Open MahmoudMohajer opened 2 months ago

MahmoudMohajer commented 2 months ago

Is your feature request related to a problem? Please describe. No, the feature is about enabling ML models to work with Dojo.

Describe the solution you'd like The idea is to integrate verifiable ML models or Agents to work in Dojo Game engine. for example ML model / Agent can help an NPC to navigate in the game in a desired manner.

Describe alternatives you've considered Currently nothing specific is in reach.

Additional context I presented this Idea for further discussion here.

glihm commented 2 months ago

Hey @MahmoudMohajer thank you for this issue.

Do you have some specific idea in mind additionally to the example you've given? Are you willing to work on this or it was more like an idea that requires some research?

Sravya-212 commented 2 months ago

@glihm Hey! I am new to this can you please tell me where I can find the applications that they have created, I have commented on other issue and they have responded with the same message saying they have created an application, but I cannot find it neither the code to that issue.

MahmoudMohajer commented 2 months ago

@glihm I'm not familiar with the dojo stack, I wanted to design a solution to integrate with Giza. What are your thoughts on this?

bitfalt commented 2 months ago

Hey! I’d love to jump on this, as it could further develop the concepts of Autonomous Worlds on Blockchain. I’ve already mentioned this idea to @dbejarano820, about creating a tool (or something similar) for intelligent NPCs that can perform their own actions independently of players' activity.

@glihm, do you know if there are any devs implementing a feature or something related to Giza within the Dojo Game Engine? If so, it would be great to hear how they've been integrating Giza into their projects.

raphaelDkhn commented 2 months ago

Hi guys, I'm Raphael from Giza and appreciate you raising this issue @MahmoudMohajer!

I've been thinking about integrating Giza into Dojo for some time, as it would enrich the Dojo stack with verifiable intelligence components. I've not delved too much into this, perhaps because gaming isn't my forte. However, I'm sure you could help!

Imo, before we consider how to integrate Giza with Dojo, we need to address a few key questions:

  1. What specific interactions within an onchain-game would benefit from AI?
  2. Is it essential for this AI to be verifiable? For instance, if the AI's role in the game is passive and simply aimed at enhancing the UX, verifiability might not be necessary. However, if the AI actively interacts within the game (such as an AI chess agent that plays against the player), then ensuring its verifiability becomes crucial.
  3. What types of AI would be most beneficial for these interactions?

Once we have answers to these questions, we can better understand the needs and potential implementations.

bitfalt commented 2 months ago

Hi Raphael! This is what I think about your key questions, I'd love to hear what others think as well :D.

NPC = Non Player Character

  1. I think some specific interactions that would benefit from AI could be the following:
    • NPC interacting with the game economy (think auction houses, NPC trading with another player, NPC buying in-game assets such as weapons, armor, houses. The complexity of the game economy would be different depending on the complexity of the game so these are just a few ideas.)
    • PvE (Player vs Environment, were the environment would be NPC or NPCs. I'll explain different cases regarding both.
    • NPC could be a player fighting against an AI in a card game, think Yu-Gi-Oh, Magic The Gathering or Heartstone, in a turn-based game or even in an RTS (Real Time Strategy) game, think Starcraft II or Warcraft 3, however RTS games might be a bit different due to the time necessary to verify actions and these games rely a lot on fast player decisions which could be affected due to AI verification/wait for confirmed transactions.
    • Multiple NPCs could be a wave game, think something like Left 4 Dead 2 or Risk of Rain 2.
  2. imo depending on the type of game it might essential for the AI to be verifiable, so maybe having both solutions would be a good idea. For example, a card game or a turn-based game the AI actions must be verifiable to ensure legitimacy. However, a game were the NPCs just help give ambience to the world to, like you said, enhance the UX it won't be necessary to verify the AI actions.
  3. I don't really understand the question regarding types of AI, but my answer would be RL. This is the main type of AI that comes to mind when talking about games, they (NPCs) would learn from the environment and start developing a kind of "knowledge", then they will start taking actions based of the knowledge. However, due to the how Giza works (as I understand it) the model would need to be created already with the dataset, my solution would be to have a way to "upgrade" the NPCs model, so that their inference would get better as the game ages.