Announcement

Collapse
No announcement yet.

Android -> iOS, please PG!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Android -> iOS, please PG!

    I've invested a lot in my account... but want to switch my tablet to an iOS device. Sick of Android.

    There should be nothing stopping me from migrating my account to an iOS device... I am a game dev myself and unless theres something really warped there should be nothing stopping a migration from one to the other.

    Or, maybe I just stop playing, walk away and PG loses (yet) another paying player?

    Please PG, give me some good news, and help me stay in the game?

  • #2
    I should note, "Starting again" is not an option.
    I'll walk away if I am forced to do that.
    And I am not buying another Android device.

    Comment


    • #3
      Always assumed that's what the pocket id was for. However, they are hiring for a lead designer:

      https://www.sequoiacap.com/jobs/537512/

      Comment


      • #4
        Hi! Thanks for the note. Every time someone requests this, we bump the priority up a lil bit.

        let me be honest with the current status of this: We agree it sucks and it should work. That said, making it work will take us a really long time and it's super dangerous -- there's the potential of "breaking" the games of basically every existing player (iOS & android) if we're not super super super careful. Also, basically only 1-5 people request it every month -- i'd guess 10x that to know the number who aren't saying anything and we're looking at like 10-50x people a month who really want this. This project remains on the todo list, but currently isn't being prioritized until we hear more people asking for it. For the time being we're going to focus on things which impact more users and/or are less timeconsuming/dangerous.


        Details for nerds: The iOS game was developed using the Apple standard SDK called CoreData (https://developer.apple.com/library/...ata/index.html) for saving data to disk. This library is the common choice for high performance disk usage and object serialization on apple devices, but this is a proprietary object serialization library only available on iOS. On android, we had to use something else. The file formats between apple and android devices are not compatible, which implies we can't just easily copy your game data across platforms. For us to make this work, we need to unify the file formats and also write converters from the old fileformats to whatever new unified fileformat we decide to use. We also need to do a bunch of performance tuning to make sure that this new fileformat has performance on par with CoreData. It's definitely possible, but it's a lot of work and it's pretty dangerous that we cause a problem transitioning our millions of player's data on their remote devices across the file format change [and breaking their games].

        also, if you're interested in joining and helping our on developing our products, a better job listing is here: http://pocketgems.com/career-description/
        Last edited by CampusLifer; 12-20-2016, 11:47 AM.

        Comment


        • gaza8143
          gaza8143 commented
          Editing a comment
          CampusLifer - instead of the core data conversion wouldnt it just be easier to store a players data onto a database?

          I.e iOS player had L30 cannon tower, L30 lightning tower, L30 Amarok etc etc, he is L150 with 10k rubies , 20 energy packs etc.

          Then roll out an android account and put all of those items/currencies into the account?

          Then a player switching might just lose runes, armor etc currently equipped onto the dragon but at least they can change platform. They would probably also lose partial levels i.e a dragon at 25.7 would probably map over to 25. The loss of ruins could be offset with 10 silver chests x players level. There might be a nominal 20 fee to transfer accounts to prevent abuse and a 6 month cooldown.

          You must already be storing most of that data since when people claim rewards it syncs to your servers. I guess you dont store what drags we have since many players hack dragons they shouldnt have but that might be a simpler and more cost effective approach.


          I.e iOs ---- Database ----- Android
          As opposed to iOs --- Android
          Last edited by gaza8143; 12-20-2016, 05:25 PM.

        • MareZ
          MareZ commented
          Editing a comment
          Why is the information even stored on the smartphone? That would mean it's client sided and everyone could hack it... ok in fact everyone can from what I see in those reporting posts.
          Anyway I agree with gaza, how can you work without a database? It's an online game. What does the Pocket ID even do if it doesn't backup my files on your database server?
          On the other hand it seems like data that should in fact be on our smartphone is not. The event window seems to constantly load every single picture and button from the server which creates lots of server traffic and a slower game experience for us (atleast it feels like that when I play on my very old second device). Media files should be on the device and only small packages containing info that updates the database files and is needed for multiplayer experience should be communicated with the server.

        • castix
          castix commented
          Editing a comment
          It's stored on the device but not client sided

      • #5
        Isn't there a company out there who specializes in this type of "unification" work? Seems like it'd be worth the cost to assure that the problem is addressed and done in the right way.

        Comment


        • gaza8143
          gaza8143 commented
          Editing a comment
          It isnt actually a wide spread issue. For most simple 2d games you can use the same code base. As soon as you atart talking 3d engines then that is when you need to go down the road of two different code bases to optimize the game.

      • #6
        gaza8143 ​​​​​​​Probably didn't help that the game started as an iOS only game. That's what's probably causing the biggest issue.
        x7DeadlyGoobsx

        Comment


        • #7
          It's kinda like putting a PS3 game into an Xbox, they might both have the same titles, but the 2 aren't compatible.
          x7DeadlyGoobsx

          Comment


          • gaza8143
            gaza8143 commented
            Editing a comment
            Agree - but when 99% of games are compatible between iOS and Android it probably makes sense to add that functionality at some point. I didnt know it was made on iOS first that explains the two code bases.

        • #8
          Gaza: yes, there's also another approach where we basically make the local datastore on the device a "local cache" of the server info and it sorta doesn't matter what format it's saved as long as it properly converts from the (third) format of data on the server. That's still hard and error prone as well, but has some other side benefits. When we've discussed taking on this project of iOS<=>android cross-device-gameplay, the method you described is actually the route we've favored.

          MareZ: "database" can mean a few different things and we're kinda getting loose with the terms here so it's hard to follow the conversation. Our server has a "database" for storing the data of players. Your device also has a sqlite database for storing local data about the game as well (but that database is being used in a very different incompatible way on iOS vs android).

          Gaza: The majority of our codebase is actually shared across operating systems, but there are obvious places where it needs to work differently when it's touching platform-specific SDKs. For instance, anything talking to GameCenter obviously can't have it's code shared to android. CoreData SDK is another example.

          Comment


          • #9
            The mentor becomes the manatee

            Comment


            • #10
              OK so I have some knowledge of this sort of thing... I write server software people use to write API's on. PM if you want me to know more.

              CampusLifer, The approach you mention is sort of half right... and the problem is not as scary as you make it out to be, because at the end of the day it's actually a trivial problem to solve if you know how.

              I am serious about offering dialogue if you want me to help, or at least give some suggestions. If you PM me I can tell you more about who I currently contract to and what I do for a living.

              Comment


              • #11
                Is there a list of Android devices that war dragons/pocket gems supports? I currently play on a samsung galaxy s7. I wanted to play on a tablet so I purchased a Samsung Tab A only to find out that War Dragons isnt supported and won't install. So fine, I returned it and purchased an Ipad 4 mini. Guess what, I cant transfer my account. Really fustrated about now. Before I go any further I want to know what android tablet works with War Dragons/Pocket Gems?

                Comment


                • #12
                  I'm in the same boat. IS there a list of droid tablets that support War Dragons? I've been using my phone, but when I get a phone call, (I have my own business and not about to put phone on airplane mode), it interrupts the game. If I'm in the middle of a war attack...aaarrrggghhh....the frustration here. Please help!

                  Comment


                  • #13
                    So, no response from PG that really makes sense.
                    No "reaching out" to me at all.
                    I'd like to point out that I would love to take up your offer and apply but don't want to move from Toronto. Sorry.

                    Just a "1-5 people every month requesting this"

                    What about all the people that are silent?

                    Does this mean that you have such a small installed base that there are few switchers?
                    That would fly in the face of the stats.

                    We see people flipping from one platform to the other with frequency.

                    Of does it mean that there really are not a lot actually playing the game?

                    I want to keep playing, but if my droid tablet dies finally and I buy an iPad I am NOT starting again.

                    Comment


                    • #14
                      Why not develop a script to serialize the information in CoreData to widely used format (like JSON) first and then transfer to whatever your Android platform?
                      There are lots of open source APIs and libraries can do this: like TouchJSON. Also Apple themselves provide libraries like NSJSONSerialization to help their developers to do this. Even if developers are super busy with other stuff and have no time to develop their own converters, there are still lots of open source codes on Github that have already been developed by other CoreData users.

                      It is true that if transfer millions of files between system in a short period will cause trouble. However, to me it is still confusing that transfer a single user saving file between platform will lead to the crash and stability of the whole system. Maybe there are something very special in the war dragons saving files?

                      Comment


                      • castix
                        castix commented
                        Editing a comment
                        Because .JSON files can be edited with a plain text editor and Hash and SHA can also be changed.

                    • #15
                      Hi DracolichKing. CoreData actually stores binary blobs into the sqlite database columns. You could definitely use a tool to extract those those binary blobs out of the sqlite database on an apple device into a JSON and send them over to an android device and put them back into the sqlite database on the android device.. but that doesn't mean it would work. Because now you just have a sqlite database full of binary data which the android device has no idea how to interpret because it can't deserialize the apple-specific proprietary coredata data format.

                      Comment

                      Working...
                      X