Hi guys, just spreading the word about Noobhub, a library Ive built to create network multiplayer games and apps.
I have just ported it from CoronaSDK to Glideros.
There are already dozens of apps from different developers who happily use Noobhub in production.
Code is available on Github:
http://github.com/Overtorment/NoobHub * Connections are routed through socket server with minimum latency, ideal for action games.
* Simple interface. Publish/subscribe paradigm in action.
* Server written on blazing fast Nodejs.
* Socket connections, works great through any NAT (local area network), messages delivery is reliable and fast.
Repo includes server code (so you can use your own server) and CoronaSDK/Gideros client. More clients to come. You can test on my server, credentials are in the repo!
Lua code may serve as an example of how LuaSocket library works.
Comments
Also, I have just ported it to Moai as well. Lua FTW!
And, if anyone has questions or problems setting things up - just ask in this thread, Ill be glad to help!
Cheers!
=D>
Is there anyone here building multiplayer games..?
On CoronaSDK thread there are tons of discussions regarding the matter ;-P
When I finished my game according to my current needs, I'll look this multiplayer game topic again. If someone ??? has a little bit comprehensive similar gideros demo project as mentioned above the link, would be great =:), Sorry for my english
Thanks for this. I took a look last night and this seems to be a pretty nice option for multiplayer. I'll definitely check this out in more depth when I'm in need for multiplayer functionality.
Im happy to announce that latest vershion was recently pushed to Github. Mostly memory leak fixes.
One of Noobhub users reported that Noobhub happily serves 1.1k CCU (concurrent users) utilizing only 6% CPU on only one processor core, and consuming not more than 600 Mb RAM in peak. About 95k multiplayer games runs through this instance daily.
And not a single millisecond of performance degradation (latency) on 1k CCU!
Cheers!
Likes: ar2rsawseen, jdbc, talis
Is there some guide on how to get the demo project running?
My approach is the following:
- Define two channels: public and private.
- Userid is generated using md5 function.
- Public channel is only used to provide user id between the two players. Just subscribe to "public" channel to send one "I am here" message.
- Private channel (two for each players related to user id) is used to sent message from player one to player two and viceversa.
- When player 2 is coming and read "I am here" message from player 1, read player 1 userid, unsubscribes from public channel.
- The player 1 reads "I am here" message from player 2 to read player 2 userid and unsubscribes from public channel.
- At this point both players have the private channels based on userid.
I will submit the source code to Github in a few days
Likes: pie
https://github.com/jdbcdev/noobhub_colors
I have tested with Gideros Player in desktop and mobile and running Noobhub with a simply "nodejs node.js" from my Ubuntu Linux machine.
Private channels will be used to send messages between two players in multiplayer mode.
Likes: keszegh, pie
Likes: totebo
Just pushed some fixes
Likes: pie, ar2rsawseen, antix
html pages are not compatible with sockets, max what they can do are websockets.
That's possible, and it would result in _all_ clients (Lua on any platform) being able to communicate not only with each other, but also with HTML5 clients as well. Quite nice benefit.
Likes: pie
As it stands, would it work on Mac/PC (Steam) <> iOS <> Android?
Whet you want to know the number of clients on certain channel (say, multiplayer lobby), you have to post something like "who_is_here" and everybody should answer.
Also, Noobhub works fine on any directions Mac/PC <> iOS <> Android.
Thanks Overtorment!
i.e. can it do direct connection between apps on a local network (and within one machine?) like unite of ar2rsawseen? if yes, what are the advantages over unite?
Fragmenter - animated loop machine and IKONOMIKON - the memory game
I am still working on it It is not finished yet.
@keszegh
In noobhub, clients can not be server. However, you can merge unite with Noobhub.
Fragmenter - animated loop machine and IKONOMIKON - the memory game
The way I understand it, Noobhub is a messaging system. I suppose this means you're likely to need to ping all other users in the channel regularly, to see if they're still there. Or maybe the other way around; all users send their state regularly, and if they stop it can be assumed they're not there anymore. Is that the right approach/thinking?
https://itunes.apple.com/en/app/saski-elite/id665694824?mt=8
I helped those guys to tune the server to handle >1000 concurrent connections. Users play ~95k multiplayer games per day on this one, and it all works perfectly between users on Apple and Android.
As for game logic, the one who initialises the game (or more generally speaking, first one to enter game-interaction channel) acts as server.
Also, do they run the game on an Amazon EC2 server?
So the first player to initiate a game (create a room, etc) would act as a logical server, which will have all world data and to calculations.
Is it right?