Difference between revisions of "Multiplayer"

From GiderosMobile
Line 2: Line 2:
 
'''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]][[File:Platform linux.png]]<br/>
 
'''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]][[File:Platform linux.png]]<br/>
  
=== Description ===
+
=== Multiplayer ===
 
There are three ways to implement multiplayer games:
 
There are three ways to implement multiplayer games:
 
* '''Server Mode''': Dedicated server with public IP
 
* '''Server Mode''': Dedicated server with public IP
 
* '''Host Mode''': One player is the host, all other players connect to them
 
* '''Host Mode''': One player is the host, all other players connect to them
 
* '''Shared Mode''': Cloud Room has StateAuthority
 
* '''Shared Mode''': Cloud Room has StateAuthority
 +
  
 
''Server Mode'' and ''Shared Mode'' can be daunting and won't be covered here. Some multiplayer platforms SDK you can check:
 
''Server Mode'' and ''Shared Mode'' can be daunting and won't be covered here. Some multiplayer platforms SDK you can check:
Line 16: Line 17:
 
And to get you started using Noobhub:
 
And to get you started using Noobhub:
 
* https://forum.gideros.rocks/discussion/4293/noobhub-free-opensource-multiplayer-and-network-messaging-for-gideros-coronasdk/p1
 
* https://forum.gideros.rocks/discussion/4293/noobhub-free-opensource-multiplayer-and-network-messaging-for-gideros-coronasdk/p1
 +
  
 
=== Host Mode ===
 
=== Host Mode ===

Revision as of 05:13, 14 December 2023

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.pngPlatform linux.png

Multiplayer

There are three ways to implement multiplayer games:

  • Server Mode: Dedicated server with public IP
  • Host Mode: One player is the host, all other players connect to them
  • Shared Mode: Cloud Room has StateAuthority


Server Mode and Shared Mode can be daunting and won't be covered here. Some multiplayer platforms SDK you can check:

And to get you started using Noobhub:


Host Mode

Host Mode is the easiest way to get started with multiplayer. In order to implement it in Gideros, we will use the Gideros Unite Framework written by Arturs Sosins (@ar2rsawseen).

The Gideros Unite framework allows a host (server) and clients to connect over a Local Area Network.

Gideros Unite Framework

Some demo code:

-- we can get all devices that are connected to our network
local devices = {}
serverlink:addEventListener("device", function(e)
	print(e.data.id, e.data.ip, e.data.host)
	devices[e.data.id] = {}
	devices[e.data.id].ip = e.data.ip
	devices[e.data.id].name = e.data.host
end)

serverlink:getDevices()

-- add some methods, that could be called by other clients or server through network
-- draw something
serverlink:addMethod("draw", self.drawLine, self)
-- end drawing
serverlink:addMethod("end", self.stopDrawing, self)
-- clear drawing
serverlink:addMethod("clear", self.reset, self)

-- then you can call this methods when needed
serverlink:callMethod("clear")
serverlink:callMethod("draw", someX, someY)

-- or call method of specific device using its id
serverlink:callMethodOf("clear", 112233)
serverlink:callMethodOf("draw", someX, someY, 112233)

-- and when game is finished
serverlink:close()