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

Mobile game “must-dos” for beginners?

Discussion in 'Getting Started' started by zoudarren7, Oct 22, 2020.

  1. zoudarren7

    zoudarren7

    Joined:
    Jul 24, 2019
    Posts:
    11
    Hello. I want to make a mobile iOS game like summoners war but more PvP focused and you can loot players. So it’s not full on mmo but still have player to player interactions. What are some must dos for mobile app development and can you point to some resources such as frameworks/ libraries that can help get me off the ground ASAP?


    What should I use for my backend ? I am experienced with firebase but if that’s not good enough I’ll learn sql.


    I’ve read to do everything on the backend. So if a player clicks fight, I’ll calculate the result then send back instructions for animation either win or lose and allocate/ take away items or rewards from losers/winners all in the back end. For example when they click fight, instead of using client incoming data, I fetch data from the backend first. Essentially, user doesn’t send much information other than an action trigger.


    Should I do SSL pinning?


    Should response from my server be encrypted ?


    Should I implemented encryption on all sever communications ? Even when client clicks fight?


    What database or backend do you recommend to me get started asap? I may use firebase cloud functions for my APIs.
     
  2. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Unity beginner and pvp focused multiplayer game should not really go together. These are very complex and time consuming projects even for experienced Unity developers. (but everyone ignores that advice, so I'll continue)
    You need to first figure out exactly what your networking and database requirements are. If you were having real time pvp combat you'd need a real time networking API to connect the players in combat, rather than just a database. So figure out what your requirements are, and look at all the available solutions assuming you aren't going to roll your own solutions. Then investigate some candidate solutions that look like they will be a good fit.

    These finer details on client/server encryption are all downstream, as they depend on what is supported by the network/database solutions you choose. And whether your communication should be encrypted depends on what that data actually is. There's lots of data sent in a real time networked game that probably isn't that important to encrypt, and some which may be a good idea to. Sending username/password? Probably a good idea. Sending a message that just says to start the fight? What information in that message needs to be guarded from prying eyes? You could just encrypt everything, but encryption doesn't mean it is actually protected, just that you raise the bar on the skill level needed to view it, and there's a non-zero impact on performance for doing so. You'll want to test what that performance impact is on your target device if you're considering encrypting everything.
     
  3. zoudarren7

    zoudarren7

    Joined:
    Jul 24, 2019
    Posts:
    11
    Hey thanks for the response. So I decided to cut down on the multiplayer feature being live, essentially it’ll match players and the backend will calculate who wins. Each skill of monsters have a chance of procing so rng will be a factor. By doing this I assume I don’t need a very complicated multiplayer system? It seems more like a pseudo multiplayer and I like it like that better
     
  4. zoudarren7

    zoudarren7

    Joined:
    Jul 24, 2019
    Posts:
    11
    I think a better way to say it is a turn based automated rpg mmo.
     
  5. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    That certainly sounds simpler. One big question I would have is what this backend needs. A database stores and updates data, but it doesn't on its own simulate matches. For example, you may want some server running which watches for pending matches, gets necessary info from the DB to resolve the match, does the actual match simulation, and then updates the DB with the results of the match.