Dude the video quality is on point. You deserve more clicks! You give a really great presentation and explain everything really well. Clean pronunciation, the editing is also great in the video, you zoom in on certain highlights. It's simply clean! And you use Godot, best engine ever! 🔥 Followed!
😁 yea for sure, I’ll definitely get to that some day!! It’s been a while since I’ve worked with docker but I’ve been thinking about using it as a possible alternative to GameLift, instead I would use AWS ECS, which may be perfect for Godot games.
Yes, the plan is to use the Highlevel websocket APIs but yea, the server's WebSocket IP may be public, but it can be hidden through various means. Client's shouldn't be a problem - Stay tuned for the next video this week!
Exellent video! At which point (please share the conditions) you think using APiGateway websocket + AWS lambda may stop being cost effective and no more efficient? for an IO game.
Let's imagine a typical mmo type game where you need to track player positions and you have several NPCs. Players also have inventories and loot, and there are even several social aspects such as chat and lobbies maybe. In my head, at a high-level, I am trying to visualize the architecture and communication between client and authoritative server. This scenario clearly could make use of Websockets or simple HTTP requests via AWS API Gateway to handle less frequent activity, like loot generation, chat management, or handling player inventory changes, with DynamoDB for example. However, is it possible to have a dedicated server in parallel to all this, i.e. for handling player and npc positions using Godot? Maybe its a dumb question, but can a client connect to a Websocket and dedicated server connection simultaniously or must I chose one or the other?
This is a good question! I actually tested it before and I believe this is a totally acceptable setup to handle your game's ancillary functionalities. I'm not sure you would have both a WebSocket and Server(peer) connection to the same Godot server, that kinda doesn't make sense as you can use RPCs between Godot client/server, but having a WebSocket connection from your game client to a separate server (like in this demo hosted by Lambda) seems like a perfect fit to handle those scenarios you listed. And of course you can use HTTP at anytime to whatever backend you may have.
My main gripe with using wesockets for high frequency data transfer, such as player position, is the cost in AWS since its based on number of packets transferred and the amount of data transferred, which I assume could grow very quickly with just a few players connected. But I am not sure @@BatteryAcidDev
Hmm, yea I don't think I'd recommend using WebSockets for high freq data like player positions. My thing with websockets is focused more on the ancillary functionalities with your game. Oh wait, we were talking today in Discord! Hello again!
By signaling server, if you mean like a way to share the other user's IP or how they should connect P2P, then yea, it can totally be used for that. This would act as the known source of truth that you both talk to, even authenticate or authorize, then could receive whatever necessary connection info about the other peer.
Ooo, technologically this is cool, but I am not sure that AWS lambda is performant enough for anything other than turn based strategy or card games or the like. For things like MMOs and FPSs, nothing is going to beat a piece of baremetal.
I agree, my goal here is mostly to help with ancillary game functionally like lobbies or chat, but also messaging for those slower paced games you mentioned.
Thanks for this tutorial. I have an issue on lambda function when I'm trying to connect to wss because the library is not found: @aws-sdk/client-apigatewaymanagamentapi. Could you help me ?
Dude the video quality is on point. You deserve more clicks! You give a really great presentation and explain everything really well. Clean pronunciation, the editing is also great in the video, you zoom in on certain highlights. It's simply clean! And you use Godot, best engine ever! 🔥
Followed!
I appreciate the kind words and the sub! I too believe I deserve more clicks 🤣 - Yea Godot is pretty awesome!
Your channel is awesome, instant subscribe.
Awesome, thank you!
Godot and AWS? Man I like this
Awesome!
I really needed this! Thank you
You're welcome! Also part 2 is coming out today, where I go over the Godot WebSocket client side of things! Stay tuned!
love your content, I would love to see the backend stuff as one docker ecosystem. deploy from home or cloud.
😁 yea for sure, I’ll definitely get to that some day!! It’s been a while since I’ve worked with docker but I’ve been thinking about using it as a possible alternative to GameLift, instead I would use AWS ECS, which may be perfect for Godot games.
Very cool! Are you planning on passing you lobby implementation to high level networking?
If so would this expost host/clients public ip's?
Yes, the plan is to use the Highlevel websocket APIs but yea, the server's WebSocket IP may be public, but it can be hidden through various means. Client's shouldn't be a problem - Stay tuned for the next video this week!
@@BatteryAcidDev That's exciting, Thanks!
Exellent video! At which point (please share the conditions) you think using APiGateway websocket + AWS lambda may stop being cost effective and no more efficient? for an IO game.
Let's imagine a typical mmo type game where you need to track player positions and you have several NPCs. Players also have inventories and loot, and there are even several social aspects such as chat and lobbies maybe. In my head, at a high-level, I am trying to visualize the architecture and communication between client and authoritative server. This scenario clearly could make use of Websockets or simple HTTP requests via AWS API Gateway to handle less frequent activity, like loot generation, chat management, or handling player inventory changes, with DynamoDB for example. However, is it possible to have a dedicated server in parallel to all this, i.e. for handling player and npc positions using Godot? Maybe its a dumb question, but can a client connect to a Websocket and dedicated server connection simultaniously or must I chose one or the other?
This is a good question! I actually tested it before and I believe this is a totally acceptable setup to handle your game's ancillary functionalities. I'm not sure you would have both a WebSocket and Server(peer) connection to the same Godot server, that kinda doesn't make sense as you can use RPCs between Godot client/server, but having a WebSocket connection from your game client to a separate server (like in this demo hosted by Lambda) seems like a perfect fit to handle those scenarios you listed. And of course you can use HTTP at anytime to whatever backend you may have.
My main gripe with using wesockets for high frequency data transfer, such as player position, is the cost in AWS since its based on number of packets transferred and the amount of data transferred, which I assume could grow very quickly with just a few players connected. But I am not sure
@@BatteryAcidDev
Hmm, yea I don't think I'd recommend using WebSockets for high freq data like player positions. My thing with websockets is focused more on the ancillary functionalities with your game. Oh wait, we were talking today in Discord! Hello again!
Could this be used as a signalling server for a P2P game? I'm interested in learning about that and hole punching / NAT traversal.
By signaling server, if you mean like a way to share the other user's IP or how they should connect P2P, then yea, it can totally be used for that. This would act as the known source of truth that you both talk to, even authenticate or authorize, then could receive whatever necessary connection info about the other peer.
Ooo, technologically this is cool, but I am not sure that AWS lambda is performant enough for anything other than turn based strategy or card games or the like. For things like MMOs and FPSs, nothing is going to beat a piece of baremetal.
I agree, my goal here is mostly to help with ancillary game functionally like lobbies or chat, but also messaging for those slower paced games you mentioned.
fell off
?
Thanks for this tutorial. I have an issue on lambda function when I'm trying to connect to wss because the library is not found: @aws-sdk/client-apigatewaymanagamentapi. Could you help me ?
I think you spelt management wrong :D
@aws-sdk/client-apigatewaymanagEmentapi
You're right! Thank you@@BatteryAcidDev
This happens to me all the time... 🤣@@adamagueye9260