danzel Posted May 31, 2016 Share Posted May 31, 2016 Hi All! I've made a Match 3 game where everyone is playing on the same board. It's crazy and fun https://massivematch.io There are currently 5 level types, 4 cooperative and 1 team based. I'll definitely be adding more in the future - any suggestions for these are very welcome. All of the art is from http://emojione.com - I'm no artist, I'm very grateful to have use of this. I might look at offering private servers in the future, or the ability to customize your cursor. I'm not totally sure what players will want. Player feedback is always helpful here! There are definitely some lag issues. I know how I'm going to improve this, hoping to get it done during the next week. Right now the game is running on a 0.25 CPU Azure instance, it looks like it'll comfortably get to 100 simultaneous players before I need to do some work on performance or upgrade the machine. Tech Used: Phaser, Primus, Typescript, NodeJS azzz and jkenlooper 2 Quote Link to comment Share on other sites More sharing options...
rich Posted May 31, 2016 Share Posted May 31, 2016 Wow, that's insane! Quote Link to comment Share on other sites More sharing options...
Rudrabhoj Bhati Posted June 1, 2016 Share Posted June 1, 2016 Really fun Quote Link to comment Share on other sites More sharing options...
AzraelTycka Posted June 1, 2016 Share Posted June 1, 2016 Love it, no idea what is going on around me :-). Quote Link to comment Share on other sites More sharing options...
General Posted June 1, 2016 Share Posted June 1, 2016 Great concept! So, you made a server on NodeJS and you are hosting it on Azure, right? Quote Link to comment Share on other sites More sharing options...
danzel Posted June 1, 2016 Author Share Posted June 1, 2016 Yeah, the server is TypeScript (cross compiled to JS) running on Node JS on Azure. I'm using Azure as microsoft gives some free time through bizspark https://www.microsoft.com/bizspark/ Quote Link to comment Share on other sites More sharing options...
Randito Posted June 1, 2016 Share Posted June 1, 2016 Fantastic job! I see a bundle.js -- did you use webpack to bundle and cross-compile the typescript? What about the server? My guess is you're using websockets or some equivalent for the communication with the server, right? Still, keeping all that in sync sounds challenging. Especially for a player who is currently trying to make a move while everything is still falling down from a previous match made by another player. Fantastic work. Would love to hear some of the technical details. Quote Link to comment Share on other sites More sharing options...
Neoprofessor Posted June 2, 2016 Share Posted June 2, 2016 This gives a whole new meaning to match 3. Sweet! Quote Link to comment Share on other sites More sharing options...
danzel Posted June 2, 2016 Author Share Posted June 2, 2016 @Randito - Yep typescript and cross compiling using webpack. I did a post on some of the stack over here: http://www.gamasutra.com/blogs/DaveLeaver/20160531/273235/Modern_HTML5_game_tech_stack.php The Server and Client share as much code as possible, and yes websockets are used. The network protocol is done using deterministic lockstep (ref http://gafferongames.com/networked-physics/deterministic-lockstep/ ). The server runs the simulation and sends down "at frame 9 player one started swapping these two matchables". Clients can then run the simulation exactly the same, but only after hearing what inputs happened in each frame from the server (there is some latency here) When a player does a swap on their client, it doesn't actually happen locally until it is sent up to the server and the server sends it back down (as above). As we are using Websockets our data transmission is TCP, which means that massive match can have the jerkiness shown in that article. Currently the game will shudder like this if you are having packet loss or fluctuating latency. I have a plan to tackle this by having the client play forward the simulation even when they don't know what inputs happened, then fixing it back up when the inputs arrive. I think this will look better than the current errors as most of the simulation will continue correctly. This will make everything a bit more complicated, but I think it will be worth it. Hope that answers a few questions Quote Link to comment Share on other sites More sharing options...
Umz Posted June 3, 2016 Share Posted June 3, 2016 Really cool idea. Not exactly sure what's earning me points, but I just like playing on such a huge map, constantly shifting with so many others! Quote Link to comment Share on other sites More sharing options...
enriqueto Posted June 8, 2016 Share Posted June 8, 2016 wow! I loved the idea Quote Link to comment Share on other sites More sharing options...
kevdude Posted June 8, 2016 Share Posted June 8, 2016 This game really gets crazy when there are lots of players! Congrats on the game! Quote Link to comment Share on other sites More sharing options...
WombatTurkey Posted June 9, 2016 Share Posted June 9, 2016 5 hours ago, kevdude said: This game really gets crazy when there are lots of players! Congrats on the game! Can confirm. Lots of fun, great work danzel Quote Link to comment Share on other sites More sharing options...
enriqueto Posted June 9, 2016 Share Posted June 9, 2016 how long did the development take? Quote Link to comment Share on other sites More sharing options...
danzel Posted June 10, 2016 Author Share Posted June 10, 2016 I started at the end of last year and have been working on it part time since. Part time being maybe on average 2 hours a day? Still lots of work to do on it yet though! It's not near finished Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.