Create a WebSocket Server Using AWS Lambda for Your Godot 4 Multiplayer Game!

Поделиться
HTML-код
  • Опубликовано: 8 ноя 2024

Комментарии • 28

  • @bierkules2608
    @bierkules2608 11 месяцев назад +4

    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!

    • @BatteryAcidDev
      @BatteryAcidDev  11 месяцев назад +1

      I appreciate the kind words and the sub! I too believe I deserve more clicks 🤣 - Yea Godot is pretty awesome!

  • @DrPol1
    @DrPol1 9 месяцев назад +1

    Your channel is awesome, instant subscribe.

  • @XiamJoy
    @XiamJoy 10 месяцев назад +1

    Godot and AWS? Man I like this

  • @ColladoG
    @ColladoG 11 месяцев назад +1

    I really needed this! Thank you

    • @BatteryAcidDev
      @BatteryAcidDev  11 месяцев назад

      You're welcome! Also part 2 is coming out today, where I go over the Godot WebSocket client side of things! Stay tuned!

  • @aaronking8706
    @aaronking8706 11 месяцев назад +2

    love your content, I would love to see the backend stuff as one docker ecosystem. deploy from home or cloud.

    • @BatteryAcidDev
      @BatteryAcidDev  11 месяцев назад

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

  • @alexleonardkrea
    @alexleonardkrea 11 месяцев назад +2

    Very cool! Are you planning on passing you lobby implementation to high level networking?
    If so would this expost host/clients public ip's?

    • @BatteryAcidDev
      @BatteryAcidDev  11 месяцев назад +2

      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!

    • @alexleonardkrea
      @alexleonardkrea 11 месяцев назад

      @@BatteryAcidDev That's exciting, Thanks!

  • @MarcoVanali-y7b
    @MarcoVanali-y7b Месяц назад

    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.

  • @literallyruben6214
    @literallyruben6214 9 месяцев назад +1

    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?

    • @BatteryAcidDev
      @BatteryAcidDev  9 месяцев назад +1

      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.

    • @literallyruben6214
      @literallyruben6214 9 месяцев назад +1

      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

    • @BatteryAcidDev
      @BatteryAcidDev  9 месяцев назад

      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!

  • @3db-
    @3db- 11 месяцев назад +1

    Could this be used as a signalling server for a P2P game? I'm interested in learning about that and hole punching / NAT traversal.

    • @BatteryAcidDev
      @BatteryAcidDev  11 месяцев назад +1

      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.

  • @scotmcpherson
    @scotmcpherson 11 месяцев назад +2

    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.

    • @BatteryAcidDev
      @BatteryAcidDev  11 месяцев назад +3

      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.

  • @pythonfish
    @pythonfish 11 месяцев назад

    fell off

  • @adamagueye9260
    @adamagueye9260 11 месяцев назад +1

    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 ?

    • @BatteryAcidDev
      @BatteryAcidDev  11 месяцев назад +1

      I think you spelt management wrong :D
      @aws-sdk/client-apigatewaymanagEmentapi

    • @adamagueye9260
      @adamagueye9260 11 месяцев назад +1

      You're right! Thank you@@BatteryAcidDev

    • @BatteryAcidDev
      @BatteryAcidDev  11 месяцев назад

      This happens to me all the time... 🤣@@adamagueye9260