Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Master Server Framework

Discussion in 'Assets and Asset Store' started by alvyxaz, Sep 11, 2016.

  1. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey! It's great to hear that you're interested ;)

    Integrating the framework into result of that tutorial should be easy. Actually, it should be easy to integrate into any game, however, "easy" is relative, haha. There's still room for improvements, so I'll try to make integration even easier on the next update ;)

    And thanks for sharing the link, for some reason, I've never seen this tutorial,. Now that I know about it, I'll probably include a small guide of integration ;)
     
  2. MrGky93

    MrGky93

    Joined:
    Feb 27, 2014
    Posts:
    281
    i already bought it ^^
     
  3. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Oh! For some reason, I thought you were still hesitant, haha. Thanks!

    In that case, feel free to send me a private message if you need any help ;)

    I would recommend you to first try and setup a simple multiplayer game without the framework. For example, try to do this tutorial:
    https://unity3d.com/learn/tutorials/topics/multiplayer-networking

    If you can get this working, next step will be to integrate the framework ;)
     
    MrGky93 likes this.
  4. JosephHK

    JosephHK

    Joined:
    Jan 28, 2015
    Posts:
    40
    Hey. I found an issue in your web demo.
    If you click the create game button multiple times before a game room is actually created, then multiple game rooms will be created at later time.
    It's of course can be fixed using client's UI, but it should be better forbidden in the server side.
     
  5. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey! Thanks, man!

    I was sure this could not happen, but apparently I was wrong. I'll fix this for the next update.

    Do you think you can create an issue in github page? It's easier to track things this way. If not, I'll create one myself ;)
     
  6. JosephHK

    JosephHK

    Joined:
    Jan 28, 2015
    Posts:
    40
    Your asset is still in my wish list as I don't have time to try it in the coming weeks:(
    So please create yourself. I am looking forward to the fix
     
    Last edited: Nov 16, 2016
  7. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    So I just bought this, mostly due to curiosity but I must say I like what I see and wish it had existed a while ago when I was working on some other projects.

    Question though.

    Any idea at what point will a single master server will likely become a bottleneck on a user base? Is there any way to have multiple master servers to distribute load [I'm aware there are all sorts of issues with this] or alternative solutions to bottle-necking.
     
    Last edited: Nov 18, 2016
    Gekigengar likes this.
  8. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey! Great questions!

    I've tested a master server with the same networking API, but it was not running on Unity. I can't remember the exact stats, but Digitalocean's 5$/month VPS could handle 1k connections (I was too lazy to lift the limit of OS file descriptors), sending ~ 5-10 packets (1-10kb) per second back and forth, and it handled that without a problem. If I recall correctly, the bottle neck was the traffic (keeping this up would drain the 1TB/month limit)

    I'm planning to stress test the framework soon, but I don't think the results should differ much.

    At the moment, there's no built-in way to distribute load among multiple master servers, but if such a thing is necessary, the included "Networking API" could be used to create a simple load balancer, which would redirect players to appropriate master servers.

    Or another solution could be to create a standalone proxy server, which would redirect packets to custom "subsystems".

    So to conclude, if master server becomes a bottle-neck, there's always a way to work it out. I imagine that each game will likely require a different solution (depending on what exactly causes the bottleneck), but it's always solvable :)

    And I'll let you know when I have results of a stress test ;).
     
    k1 likes this.
  9. Gunhi

    Gunhi

    Joined:
    Apr 18, 2012
    Posts:
    300
    Can I do fully authoritative server on it? Like All Game logic will be calculated on Game server and Client just like a big UI of the game?
     
  10. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey!

    Yes, you can do fully authoritative, and it's actually what this framework focuses on.

    What you need to understand is that framework is mainly focused on helping you to create the Master Server (a central server), and for game servers - you can do whatever you want.

    Master Server is automatically fully authoritative (all the logic is within server). For game servers, as I understand, you'd be using uNET. It's safe to say that it also focuses on authoritative servers.

    And you should know that all your servers will need to be hosted somewhere (VPS / Dedicated server). :)
     
  11. Gunhi

    Gunhi

    Joined:
    Apr 18, 2012
    Posts:
    300
    Sounds great. You should make a tutorial video or an example using Unet about a simple FPS.
    Can I using other 3rd service like PlayFab or BrainCloud for Users' statistic and using your Framework as game Logic server?
     
  12. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    I think there are already plenty of tutorials online, which cover how to make an FPS game with uNET. For example:


    I have never used PlayFab or BrainCloud, so it's a bit hard to tell. What kind of statistics are we talking about?

    The framework is a lot like a website, you can use it build anything you want. But it depends on what you mean by "game logic". If it's the gameplay itself (like running around and shooting in an FPS game), framework doesn't focus on that. As the name suggests, it's a "Master Server" framework, not "Game server".

    This means that for game server, you'll need to use uNET. So, if you use uNET for game servers, and PlayFab / BrainCloud for users, you might not need the framework ;)
     
  13. Doctor06

    Doctor06

    Joined:
    Nov 1, 2014
    Posts:
    31
    This looks really good. I dont need it but i want. Sure will be a great tool to have in the future. Keep up the good work.
     
  14. kaiC

    kaiC

    Joined:
    Apr 13, 2015
    Posts:
    2
    Hi alvzaxy
    I run the webgl demo you developed and create 10 accounts, then enter the room, click the button“TOGGLE AUTO WALK”. However, around 30 secs later, i find that all the objects can not synchronized normally to each other. Would you mind to let me know why the above situation happened?

    Thank you!
     
  15. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey! I currently have no means to test it (I'm on my phone, and won't be able replicate the test), however, here are my two cents on what might be happening:

    Before I start - gameplay (walking around in a game server) is managed by uNET, so the problems you are seeing are uNET related (not the master server). (possibly WebGL/ websockets / browser related)

    A lot depends on what the "not synchronized" looks in your case. Do the objects stop moving, or do they have a huge delay? :)

    One of the reasons for what you're seeing might be due to the demo not being optimized (specifically - movement, which is usually one of the most network-intensive things in multiplayer games). The demo was intended just to show how game servers fit into the framework. If I recall correctly, I set the player objects to send movement updates 10 times per second (if not more), which, on the rough estimate (ignoring unity's packet aggregation), means that each player receives a 100 packets per second? It's not a big deal for a desktop game, but on webgl, this might clog up the traffic (this would be avoided if packets were send as UDP packets, but browsers only support TCP). Again, I'm not sure how uNET's underlying movement synchronization works and what optimizations it uses, so this may or may not be the case.

    Given that problems start to appear only 30 seconds in, it might have something to do with a browser - some browsers, after leaving a window inactive for some time, reduces FPS drastically, in many cases to 1 FPS (so that you can have many tabs open). Networked games can't work properly with such low FPS (they would gather a huge number of packets, fail to update the state in a single frame, and fail to send their own state to the server)

    So to conclude, the issue has to do with uNET or the browser, and it's highly likely that it wouldn't be replicated if the demo was running on 10 separate computers :)
     
    kaiC likes this.
  16. kaiC

    kaiC

    Joined:
    Apr 13, 2015
    Posts:
    2

    Hi alvzaxy, thank you for the kindly reply! :)
    I think maybe the problem is about the WebGL clog up the traffic . The situation i met is more like all objects were moving with huge delay, when i closed the rest of the 9 accounts. those accounts should be offline immediately, but they all delayed 10~15 secs.
     
  17. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    If problem is the number of packets received, this could be solved by combining the packets

    For example, instead of broadcasting each packet of each player every time a packet is received, game server could just send an array of positions of every player like 5-10 times per second. This way, no matter how many players there are, only 5-10 packets will be sent/received on each client (instead of the 100 (10x10)) :)
     
    kaiC likes this.
  18. Gunhi

    Gunhi

    Joined:
    Apr 18, 2012
    Posts:
    300
    Can I use this FrameWork combine with other assets like uMoba or uNet Tank to create a complete game play that can control Rooms, Lobbies and Game instances like Photon?
    If so, how much additional work does it require to mix?
     
  19. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    could ask to @vis2k not sure about Umoba but would be interested to see it work with Ummorpg which is currently the most advanced mmo kit for unet , database is per unity instance, it would require a remote persistant database or its possible to decide a common folder for the xml database/file to be accessed by whole instances, it could use the zone system of MSF and have an out of the box transition from instance to instance by using portals, i dont think there is other changes required?
     
  20. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    It's really hard to estimate, because there are many factors in play. Framework doesn't care much about how you build your game servers, so I'd want to say that it should not be too difficult to integrate.

    However, I'm not sure how exactly Umoba is made, and what kind of issues you would have with it specifically. Also, a lot depends on your skills. If it uses database per unity instance (as Ummorpg does), you wouldn't be able to scale across multiple machines, unless the Umoba provides an interface for remote databases (or you write one yourself).

    To conclude, it shouldn't be very difficult, but it mostly depends on Umoba, with which I'm not very familiar :)

    Thanks for stepping in!

    Yeah, the main issue with Ummorpg would probably be the database, and everything else should work pretty much out of the box. Oh, and, again, not sure how Ummorpg or Umoba is made, but it would require switching authentication systems (instead of using default Ummorpg auth, you'd probably want to use the one from the framework) :)
     
  21. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    @alvyxaz with MS framework is it possible to share the default DB between multiple instances ?
     
  22. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    It depends on what you want to achieve by sharing the DB.

    The underlying database (LiteDB) does support concurrent access to it, which means it supports accessing db from multiple instances, but only if they are running on the same machine. On mid-December, I'm releasing an update with MongoDB integration, which will make database accessible from anywhere.

    At the moment, I don't think there's a valid reason to share the DB of the framework - master server is designed to be the only access point for centralized resources (database), and if anything wants to get "central data", they have to do it through Master Server.

    If, for example, all game servers need a direct access to database, which has game-specific data, it's better to have another database (regular socket server, file, or a DB server ), which could be fine-tuned for a specific game.

    I'm not sure if I've answered your question, so let me know if I didn't ;)
     
  23. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    oh i didnt understand it correctly i think, could you take the example of let say, we killed a monster on game server which result in events like xp gain / level up / add item, so in final we need the result to be sent back to game server. from where would you save on DB and do the logic ?
     
  24. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Oh, so it's not about sharing the DB, but rather an access to it

    There are two ways to do it:

    First - getting data from master server. This is how MSF demo works, and how "Profiles Module" is implemented. When a player joins the game, master server sends a request to master server to retrieve all of it's profile data. When game server changes it, all the changes are automatically sent to master server where they are saved. So, if you picked up an item in a game server:
    1. Game server makes a change to the players profile
    2. Changes are sent to master server
    3. Master Server saves the changes.
    And when player goes to another game server (which can be running on a different machine), game server again, connects to master, and retrieves updated player data.

    Second - getting data from a remote database (MongoDB, MySQL, or any other database that supports remote access). This way, instead of getting data from master server, it could fetch data directly from the database. It would also need to save it when necessary and etc.

    Both of these methods have their own pros
    • First - a lot easier to work and develop with, more control, can do some fancy stuff (change listeners, two-way bindings, possibility to have 100% reliable updates)
    • Second - reduces network traffic from game server to master (not a big issue), reduces the amount of work that master server has to do (it falls slightly on game server, which may or may not be an issue)
     
    Last edited: Nov 29, 2016
    k1 and Tiny-Tree like this.
  25. achtzwan

    achtzwan

    Joined:
    Jul 7, 2012
    Posts:
    9
    It's nice to see what we can do with the Framework u created. I Buyed it today and its really amazing.

    But when i See the Documation coming with the Package im confused.
    I get the Demo running, there isnt any real Problem.
    But when im trying to setup a new Game it wont work, because of u named some Prefabs in the Documation there i cant find like "Shared" ect.
    So its really hard to unterstand how i get worked it.

    But for this Money and how long u develop its really nice. Thanks for it.
     
  26. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey! Thanks for the compliments ;)

    I'm really sorry about that. The documentation that comes with the package is not full. You should always look here for the latest version:
    https://github.com/alvyxaz/barebones-masterserver/wiki
     
    achtzwan likes this.
  27. sabri2c

    sabri2c

    Joined:
    Nov 25, 2014
    Posts:
    5
    im curious if you still working on standalone master server application and when will it be ready?

    also i have a suggestion:
    if we can have a demo separeted master server, game server and client it will be much more easy to understand and ur asset can be more popular.
    for example we can build master server then buid game server and client.
    btw i dont know if its possible :)
     
  28. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey!

    Nah, sorry - there weren't enough people interested in the standalone, so I decided to not work on it :).

    Separating servers and client into different builds is already possible. The main reason I don't do that in the provided demo is because I wanted to make it so that developer can "just run it". When a tutorial goes like "make new projects, move this code here, this there, build this first, then that, then run this, after it - this...", it feels like too much work to just start the demo.

    Sooner or later, after understanding how it works, people will want to be able to see changes faster, so they will most likely want to skip making builds for servers and clients separately. Current setup is the most efficient setup I can think of, because you don't even have to make a single build to test everything - it works in the editor. In my projects, I would probably separate servers from the client only as the last step before publishing. But you're probably right, the most efficient solution is not the easiest to manage, and makes the framework feel like "a bunch of magic tricks"

    However, with the amount of people interested in separation, I'm thinking that I should probably make a video tutorial on how to achieve it :).

    And, in general, I guess I should "man up" and do video tutorials. I'm delaying that mainly because I'm embarrassed of my english accent, haha
     
  29. sabri2c

    sabri2c

    Joined:
    Nov 25, 2014
    Posts:
    5
    you are fast as always ty for ur answer i think u can do video tutorial only using text too :)
     
  30. Lycanthope

    Lycanthope

    Joined:
    Sep 16, 2015
    Posts:
    2
    Sorry if this question has already been answered, why your asset does not support consoles: PS4, XBOX ..?
     
  31. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey! This is the first time I'm asked about this, haha

    I think it does (at least I'm not aware of any reasons why it shouldn't), but I have none of the consoles to make sure. For the same reason, I can't say it works on iOS, even though it probably does (there's no AOT / reflection code).

    If you're interested, I could arrange a copy for you to check it out

    UI elements would probably need be edited to allow navigation via controller, but other than that, I think it should work fine.
     
    Last edited: Dec 20, 2016
  32. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey guys!

    Although I've promised the release of V1.03 today, I'll be late for 2-3 days.

    While going through the core of the framework, I found a number of snippets that can be further optimized. On top of that, I had a report about a serious issue which I've been trying to pinpoint and fix for a few days without success.

    I'm also doing a lot of refactoring regarding how messages are serialized / deserialized, to allow sending standard uNet messages (which means that on many cases, you won't need to write serialization/deserialization methods manually, and they will be generated for you by unity).

    In the meantime, if you're waiting for the update, use the time to look for Christmas presents - I haven't found mine, and will probably end up buying a bunch of last minute crap - as always. Cheers! ;)

    EDIT: A little sneak-peak of a new feature - spawner inspector, which displays information about all your spawner servers, and what game instances are running within them (+ the ability to kill processes)

     
    Last edited: Dec 20, 2016
  33. Lycanthope

    Lycanthope

    Joined:
    Sep 16, 2015
    Posts:
    2
    Unfortunately i can not test either. xD
     
    alvyxaz likes this.
  34. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    thats a great update, i have tested and can confirm host works on IOS (ipad mini 2) didnt test server mode
     
  35. Cdngater

    Cdngater

    Joined:
    May 29, 2014
    Posts:
    65
    Good morning alvyxaz,

    I purchased your asset a couple of weeks ago! I have to ask you, do you have ESP? As I delve into the code, yes I am a code diver, I see things that make me think, he stole this from my mind! All I can say, dam good job reading my mind! Wonderful asset, exactly what I need!

    I know the discussion of dedicated master keeps cropping up, I can see both sides, but I tend to agree with keeping it inside unity. Mostly for the sake of maintainability. Even in C# having to support unity and a separate native app complicates things for both you as the developer and current/future customers.

    Something that might help is adding a distributed demo. I know you can separate client from master/spawner and game server, but maybe an actual demo would help people's understanding. I know the documentation is being worked on, but I think a demo would explain a lot as well.

    anyway, have a wonderful holiday and keep up with the ESP!
     
  36. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey!

    First of all, let me thank you for your purchase, and I'm sorry for replying so late - this is one of the busiest holiday seasons I've had :)

    On some occasions, I've been known to have ESP... Nah, just kidding. It would be great, though, haha. And thanks a lot for your compliments!

    You're not the first one to ask for a distributed demo, so I guess I'll need to make one soon ;)
     
  37. Cdngater

    Cdngater

    Joined:
    May 29, 2014
    Posts:
    65
    No worries, I'd be surprised if you did answer on Christmas!

    I do have a question, I am looking at the email confirmation. I see the call to RequestEmailConfirmationCode, but that's in the EmailConfirmationView, I don't see anyplace else it gets called in the demo, or anywere the view gets shown. It looks like the view was created, it not actually used for the demo. If you were going to hook it up, were would you do that? I was thinking in the registration process, but then it could go into the login process after the password has been verified.

    Thanks
     
  38. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    When I was working on the whole confirmation / password reset thing, I was aiming for a basic functionality, as it was a request from one of my first customers. I'm surprised no one else wrote me about hooking this up, haha.

    Originally, I didn't want to impose any specific login / registration / confirmation workflows on developers, and just left "the tools" there.

    Do you want the confirmation to be a required step of initial registration, or do you want to do it so that players can confirm an e-mail at some later time (this approach is becoming increasingly popular)
     
  39. Cdngater

    Cdngater

    Joined:
    May 29, 2014
    Posts:
    65
    Oh good, just knowing it was not hooked up is good. Means I didn't miss something obvious. :)

    I was thinking registration more to stop people creating useless accounts. But then, just checking if the flag is set or not and prompting them at login time is just as simple. Either way, it needs them to check their email for a valid code.

    As for imposing specifics, that's understandable. It's just confusing if something is there yet not hooked up, or commented on how to hookup, you spend a lot of time trying understand why it's not hooked up. Is it an uncompleted feature? Is it buggy? Etc.
     
  40. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Yeah, sorry about that. To tell you the truth, I myself forgot that this functionality exists. I'll update the docs to reflect that :)
     
  41. Cdngater

    Cdngater

    Joined:
    May 29, 2014
    Posts:
    65
    Another question, yes I am full of questions. As I go though this learning this asset, and finding concerns with code and wiki, do you want me posting suggestions here or someplace else?

    For instance
    https://github.com/alvyxaz/barebones-masterserver/wiki/Player-Profiles

    Section: Defining a Profile Structure

    You make the comment "This component should be added to all of your scenes (or at least the ones, where client and servers are using profiles)"

    You didn't explain why it should be added to your scenes. You could expand a little. "Profile serialization between client and server uses the ObservableProfile as created/defined in the factory." or in other words, if you don't add this to the client then the client does not know what parameters to be serializing when it received the profile.

    And no need to be Sorry. Every developer falls into the trap when they do their own documentation, we have a level of understanding of our own programs and we just assume everyone should know it.

    Still, I am loving what I am seeing. You done some good work here.
     
  42. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey! I hope you had a great time during the Christmas!

    I'm almost done with the V1.03 update (all that's left is testing if I didn't screw something up).

    From this update, I'm changing the whole development process to be more transparent and agile:
    • Private GitHub repo for development transparency
    • Public tasks list - I want everyone to be able to see what's happening and what things are being implemented
    • Smaller, more frequent updates - these will be made from a snapshot of GitHub repository once a week (or every other week, we'll see how it goes)
    I think most of you should be happy about the changes - it would be great to hear what you think. I'm not sure why I didn't start it this way - probably felt like this whole thing was mine, when in reality - it belongs to all of us.

    The whole V1.03 could have been done in about a week, but while working on it, I felt a huge lack of motivation. My guess is that I fell into trap of giving myself too much time, and giving too many promises to squeeze stuff in. To me, personally, this adds up to a feeling of being "squeezed in the corner" and wanting to run away from everything. I ended up procrastinating and postponing stuff (not just this framework, but every other project I have too).

    This was officially the least productive month I had this year, and I feel like I should apologize to you all. I should have learned from the V1.02 which was very exhausting, but I didn't. Again, I'm really sorry about this

    I hope this new "development process" will fit us better. You live and you learn, eh?

    P.S. If anyone has any self-management tips - this would be a great time to share them, haha
     
    Last edited: Dec 31, 2016
    Tiny-Tree likes this.
  43. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey, lads!

    I've just send the V1.03 for approval - send me an e-mail or a private message to get it earlier ;)

    I wrote a quick list of changes that I've noted, and you can find it here: https://github.com/alvyxaz/barebones-masterserver/wiki/Updates

    There are a few things that I couldn't deliver yet, and they will be pushed to the next update (for example, bidirectional profile updates)

    I'm going to sleep now, tomorrow I'll try to draft things to do for the next update :)

    EDIT: Docs are not yet updated - I'll do that within the coming days
     
    Last edited: Dec 31, 2016
  44. erich202

    erich202

    Joined:
    Sep 24, 2016
    Posts:
    38
    Sounds awesome. How does one get access to the private repo? My GH username is ericmuyser
     
  45. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    I've sent you an invitation. This is my first unity repo, so if you find that .gitignore is missing something, or ignores too much, let me know :)
     
  46. achtzwan

    achtzwan

    Joined:
    Jul 7, 2012
    Posts:
    9
    Did i need for this release an github account or is my email enought?
     
  47. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Private GitHub repo is only for those who are interested in tracking development process or contributing a bit :). To join, you'd need a github account.

    If all you want is the V1.03 before it gets approved, you can send me your invoice number and I'll send you a unitypackage :)
     
  48. KerfuffleMonkeyGames

    KerfuffleMonkeyGames

    Joined:
    Jun 27, 2016
    Posts:
    9
    Hey Alvyxaz,

    (Edit: I read through the wiki, answered my own questions, and bought the framework).

    this framework looks pretty tight!

    I expect I'm going to buy it regardless, but perhaps you could answer a couple questions about it's suitability for my requirements first. I have a CCG already done and working with a persistent store running on a game services company that I don't trust to remain in business much longer. I'm refactoring it to use a less proprietary SDK and came upon yours; I've read through all the comments already.

    In a nutshell:

    - authentication required (you've got that covered). Can Facebook authentication/tokens be used instead of uid / pwd? Edit: I'm revisiting relying on FB as an authentication mechanism. May stick with email / pwd.
    - simple client / server communication is required; essentially an action is passed to the server, work is done, results are stored and passed back to client
    - not realtime multiplayer
    - lobby not required; is it optional with your framework? Edit: optional, yup!
    - card stats are built up as the players play and earn xp and the cards evolve. They battle other players within their abilities range (player matching), but it's not realtime
    - moving away from Windows in$tances to Linux. What does the build/deploy flow look like? Edit: ignore this, I read the noobtuts link in your wiki.

    Also: UDP + MongoDB. I love you, man!

    Thanks for your time!
     
    Last edited: Jan 2, 2017
  49. alvyxaz

    alvyxaz

    Joined:
    Mar 21, 2013
    Posts:
    103
    Hey! Woah, thanks a lot for the purchase!

    - Regarding authentication - I think it shouldn't be too difficult to incorporate facebook login. Current authentication is quite basic, and users are identified by their username. Many games, especially on mobile, first assign player/device a unique ID, to which a non-unique (sometimes) username is then given. There are many ways to do auth, and it would be great to start a discussion with other customers to think of something universal and robust

    For a CCG, you probably won't need UDP, haha
     
  50. KerfuffleMonkeyGames

    KerfuffleMonkeyGames

    Joined:
    Jun 27, 2016
    Posts:
    9
    Thanks for the notes; UDID is something Apple won't let you use anymore (the device UDID anyway) and I'd need to come up with a way(maybe using ODIN) to allow players to play across platforms with the same account.

    UDP interests me more for the lean nature of client/server traffic because the current architecture uses HTTP, which has massive overhead and some players have complained about the amount of data the game generates on their mobile accounts. I was unable to get an answer from the current game engine provider if they use gzip compression with their SDK (and I was too lazy to sniff the traffic ;) ). Part of the problem also was that every transaction between game client and server was stateless, so every action required a new connection to be nailed up and torn down.

    Looking forward to using the framework!