Giter Club home page Giter Club logo

plugin-godot's People

Contributors

angelonfira avatar github-actions[bot] avatar houtamelo avatar jog1t avatar nathanflurry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

plugin-godot's Issues

Add food spawning

Add a food scene, make it collidable with the player, and spawn them around the world. When a player runs into them, feed that player.

ClI Godot Error

cli error when you want to deploy the game from godot: [Rivet] Invalid response from the command line tool: 43

to get around the problem, I have to do this line, but it's quite annoying C:\Users\name\bin\rivet.exe sidekick --show-terminal deploy --namespace dev

Cancelling loading when linking leaves CLI thread running

This is an extension from #31

Currently, when you hit cancel when linking your project to Rivet, the thread that is running the Rivet CLI will stay open. It will close when Godot closes, but until then, it's effectively a leak that is endlessly polling for login.

This can be resolved by moving the linking logic into Godot, and allowing it to do the polling instead. If it does it with a n-second timeout, then in between it can check if it should be shut down.

Add player ball scene

This should be represented by a primitive in Godot. Allow the player size to grow and shrink, and add a feed() function that is called when the player interacts with food in the game.

Create Agar.io clone in Godot

We should make a clone of Agar.io in Godot. It doesn't need to be perfect, but it would be a good test to how quickly we can iterate while using Rivet in Godot. This tracking issue will include several sub-tasks to complete, with what I imagine an MVP for Agar.io should include. We might not implement every mechanic, since only a few are really required to get the gist of being able to play with others.

image.png

Add docs for websockets

Currently, websockets need some extra items passed in to properly work when connecting to a server provided by find_lobby. This might include adding ws or wss, as well as some other items.

Incorrect HTTPS status

## The result of the request. 0 is success, 1 is failure.
var result: HTTPClient.Status

The comment here doesn't match the type:

image.png

Change _RivetResponse to class

Regarding rivet_response.gd:

The class _RivetResponse is widely used by the API, including as a return value of functions mentioned in the examples.

I recommend exposing it to the "public namespace" by adding a class_name declaration at the beginning of the file:

class_name RivetResponse

Which allows users to access it directly without having to type on every file:

const RivetResponse = preload("res://addons/rivet/api/rivet_response.gd")

This approach also prevents path changes from breaking user projects (like moving/renaming the rivet_response.gd file)

Scene files leak namespace information

@forest said:

Just came across an interesting issue in our Godot plugin repo, where Godot stores the current selected value in scene files, which means that it leaks some information about the previously-selected namespace. Will look into this.

[node name="DeployNamespaceSelector" parent="Deployment Fieds" instance=ExtResource("2_5hxk2")]
layout_mode = 2
selected = -1
current_value = {
"create_ts": "2023-11-19T05:46:56.378Z",
"display_name": "Production",
"name_id": "prod",
"namespace_id": "215bd313-b4c7-4932-b9bd-64f8f09b7fe8",
"version": {
"create_ts": "2023-11-19T05:46:56.171Z",
"display_name": "0.0.1",
"version_id": "73881376-21fa-4fb2-93f2-2f76fb3bac19"
},
"version_id": "73881376-21fa-4fb2-93f2-2f76fb3bac19"
}

<https://github.com/rivet-gg/plugin-godot/blob/572cf36c1a1cffc44bd81535ca15b8aedf2a9b9c/addons/rivet/devtools/dock/deploy_tab.tscn | deploy_tab.tscn>

Reenable log tailing on Windows

Currently, tail_log is disabled for Windows as it was causing issues with how logs are written to a file at the same time they're being read.

image.png

4.3 Godot Error

The first problem is a token problem, when building the game I noticed that you duplicate the rivet config in the res:// but it doesn't work in 4. 3, which means that the token is not found by the game, so it crashes. To get around this problem, I've forced the return of tokens in rivet_api.gd, but this is rather annoying when I want to build the game on a branch other than prod.

Allow players to kill each other

When players collide, allow the larger one to eat the smaller one. It would be nice if they could run into each other a bit further before one is eaten. This might be possible in a few different ways:

  • Each player has a smaller collision circle in the middle. If a player's model (their visible circle) interacts with another player's smaller circle (invisible, just for collisions), then it would do the eaten check.
  • Godot collisions might have a function for how much overlap there is

Show progress when deploying/running CLI commands.

So usually (for me). When I'm deploying my Rivet game, it'll build a Docker image, This process do take quite some time. Especially with first time build.

I find myself using Rivet CLI instead of Godot Plugin, just because when using the plugin. It doesn't show the progress and the logs. And I do find logs and status indication essential in deployment process, especially when building a Docker image.

P.S. Also Godot 4.3 just introduced OS.execute_with_pipe function. Which does execute program without blocking the main thread. It might be a great start for this feature. (Which also means it could be a Godot 4.3 only thing, unless there's some modification with the toolchain or CLI)

(not really an issue, but rather a suggestion. sorry for bad english)

Invalid return


On rivet_packages.gd, lines 10~11:

func find(body: Dictionary = {}):
  return await Rivet.POST("matchmaker/lobbies/find", body).wait_completed()

The function find is the only one that doesn't have a return type annotation, despite returning a _RivetResponse just like the others

Improve error messages from the CLI

When something goes wrong with the CLI, it prints an ugly error to the Godot terminal that is hard to parse. A good chunk of problems will come from parsing the Rivet config file, so figuring out how to make that work better will likely resolve a lot of the issue.

Changing rivet-cli bin while plugin is running

If the rivet-cli binary is changed while the plugin is running (say from Godot settings), it should bring the plugin back to the login screen. This will reverify that the plugin is compatible with the version that is installed.

Errors when using on 64 bit machine

Upon extracting .zip plugin into /addons folder in godot, it errors saying "Contact software vendor for 64 bit version".

Running on Windows 10 64-bit machine.

Same error pops up upon clicking "Sign in to Rivet" in the FileSystem window

Clicking play button can do nothing

Currently, it's possible to click the play button several times without anything happening. Need to look into what code paths could cause this, or propagate errors to the user better.

[TRACKING] Add buttons to run and test local server

The new version of the plugin doesn't include buttons to start a local Godot server. This means you would need to run a command from the command line, which adds more overhead to the user.

This tracking issue will be up until this feature is implemented.

HTML troubleshooting

Some tool issues are coming up in the browser. More docs around this and websockets is important.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.