Replies: 9 comments 12 replies
-
Godot's core is supposed to be lean. ANY AI model is HUGE, on the order of GBs. Something for an addon, possibly, and even still doubtful due to unclear copyright status of AI generated stuff |
Beta Was this translation helpful? Give feedback.
-
I believe you severely underestimate the volume of material required to build an AI model, the time and effort required to train it, and the capabilities of such a model |
Beta Was this translation helpful? Give feedback.
-
I can see it working as a W4Games plugin for the engine. Furthermore, game developers might prefer to be able to choose different tooling (e.g. Facebook Llama or OpenChatKit), which also supports the idea of making it using plugins. But not as part of the engine itself. As such, I don't think it is something to handle by the Godot project. The things I could see the Godot side doing are:
Which are training data. I want to point out that there is another interested group which is the people making and monetizing Godot learning material, as integrating AI based code generation on the engine might impact their revenue. Similarly, I feel the AI integration would also impact the promised asset store. |
Beta Was this translation helpful? Give feedback.
-
🐑 |
Beta Was this translation helpful? Give feedback.
-
in the future when AI is more polished will have stuff like that, it will come eventually by itself, its too soon rn in any case the thing would ideally be using an open-source model that is maintained by a third party, to dont overload the Godot project with such complex task. Also fixing bugs and all that, its too much. btw the best you can do is instead of don't knowing coding and try to do whatever you can by intuition, actually learn how to code the problem here is that there's much people that want to make games, without having enough knowledge to do it, the fast and effortless way |
Beta Was this translation helpful? Give feedback.
-
I think this is a fantastic idea. For example, the GPT4-Turbo release has 128k context, I believe that's enough for most projects to live in. This is just the beginning, as well, and we may have plenty of context to store all Godot docs + your project + your plugins + ... Not sure there will be a need fine tuning or anything? |
Beta Was this translation helpful? Give feedback.
-
AI is an extremely powerful tool that, if not utilized, will put all Godot users at a huge disadvantage to other game engines and tools. I'm a huge advocate for not taking shortcuts to learning, but even though I might like walking, I don't think it's fair to expect the same of the next person. We can all sit idle, waiting to find out that @RabbitB was right, or embrace what is inevitable if we want to stay relevant. |
Beta Was this translation helpful? Give feedback.
-
Could we implement https://codeium.com/ ? |
Beta Was this translation helpful? Give feedback.
-
What about https://github.com/janhq/jan? It can run 100% offline (and even works well without a GPU), has a simple REST API, and includes a super easy way to download/use models (Llama 3 support was added very recently). (not an ad, I just really like this project) Perhaps we could hook Godot up with it with a simple UI tab somewhere. Example use case: a game development team can host a server running Jan, and each could interface with it in their own network, letting them use the AI without needing very powerful development workstations. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
AI generated source-code isn't quite there yet, but it is coming and we would be wise to at least acknowledge that our development process as programmers is going to change as AI progresses further. Given the current state of AI generated source-code, we're unlikely to find much use for the end-product in our projects, but something I have realized from experimenting, is that there is value in using generated source as a guide for writing our own. Even code that may not compile/run, often is structurally sound or makes use of concepts/designs that are outside our personal toolbox. That is to say, we all have our way of writing code that we're comfortable with, but doesn't always encompass the best way to organize or structure that particular code.
Infrastructure Requirements
AI models are not cheap to use and actively expensive to train. This will change in the future as AI dedicated hardware continues to advance and develop, but we aren't quite there yet. This means that the Godot Foundation would need to actively manage funds to procure and operate the model. Actively funding such an endeavor today, entirely through donations is untenable. I do however see three ways in which we could go about this:
Training the Model
This would be an opt-in procedure. As users write code, they can submit a script, method, or even a highlighted selection of GDScript to be used in training the model. The submission would require a brief description of what the code does, and optionally a longer description of how it works (or does not work). The natural inclination is to only train on working code, but it would be just as valuable to submit bugged code, along with a description of what the bug is and why it doesn't work.
Training Feedback
As code is generated, users should be able to provide feedback to the model. Is it actually valid code; does it run without errors; does it actually do what you want it to do? The beauty of language models is that we don't need to be shy about providing feedback. The more we write and describe what's happening, the better the model will become, as long as the given information is accurate.
Using the Model
There are many ways to go about this and it would absolutely change over-time, but short-term I envision it as a diff-like helper. As you're writing a script, you open a prompt within the script editor that asks you to submit a request.
When you make a request, your script is submitted as part of the prompt, as a baseline to build from. Not much different from how you can generate AI images using an existing image as part of your prompt to direct the AI in what you expect to see it generate.
This would split the editor, the left-side being your actual script and the right being the generated code superimposed over your script, and the editor providing a diff-like view allowing you to see what was actually added, removed or modified. From there, you can make manual changes, accept changes or reject them. Alternatively, you can submit a follow-up prompt on a portion (or all) of the generated code, which details the issue and the model will attempt to regenerate the resubmitted section.
How it Works
If implemented today, we would likely use an older model, but realistically if such a system was implemented in Godot, there would be enough time passed that the newer model designs will be available to us. Newer designs differ from older designs in that they don't just have a fixed data-set they were trained from, but instead are continuously trained from feedback to their generated output. Every time a user accepts, rejects or requests changes to the output, especially when given a brief description of why, the model learns from that interaction. As more users interact, the better our model will be and the more likely users will continue to interact and at increasing rates. This will generate a feedback loop that hopefully will accelerate substantially the capabilities of our model.
Opportunities Within Godot
Godot and its community is facing, if not unique, certainly an uncommon opportunity. That is, Godot is a self-contained development environment; with its own language; particular/preferred ways of implementing various functionality; strong community support and a fleet of built-in tools that can be automated on the backend to provide additional information to train the model. These are all boons to training.
Legality (and why we lucked out)
There's a lot of questions regarding the legality of generated output from different models, as they're almost universally trained on datasets that include proprietary or copyrighted information. Our model would be opt-in and thus trained wholly on a dataset that has been provided for explicitly such a task. Thus a 'Terms of Service' can be written that directly addresses this issue, and certifies that anyone to have opted-in has authorized their code for both training and generation purposes, while protecting end-users and the Godot community as a whole from any legal issues that potentially could arise with traditionally trained models.
The Future is Bright
For now we're just looking at bolstering our own code development with AI support, but a day will come where the majority of our code can simply be generated and hand-editing is only required for edge and outlying cases. Beyond that, given our self-contained development environment as stated above regarding opportunities open to us, we could potentially see a point where our AI model is capable of understanding our scenes, our resources and everything else involved in the development of our projects. If, as a community we play our cards right and invest ourselves into this project, we could stand to see ourselves as a platform from which anyone can develop games and see their ideas come to fruition. Unconstrained by their technical and artistic abilities and to be only limited by their imagination.
Bright indeed. You better wear sunglasses 😎
Beta Was this translation helpful? Give feedback.
All reactions