FYI- I've taken the first step towards async multiplayer and successfully got the game to write game records to database. Next step will be retrieving a users game list and the ability to reload games in progress.
Ross, I asked a question earlier up that it seems you did not reply to. I was wondering if, in the mode where you are just playing as the mages without the companions, if you could change it so that you can have more than one summon active at a time. That would go a long way toward giving this game that Chaos feel that it already does a pretty good job of.
Sorry I missed your question, twiccan! Ok, so interesting point you have here. This may be a possibility in the future (once I incorporate character customizations) but in the meantime adding the ability to summon multiple creatures for other mages would detract from the Summoner's primary special ability: the power to have an army of creatures on the board. I apologize as she is not yet available as a playable character for iOS, but rest assured she is coming soon. Based on your request, I can tell she will easily be your favorite mage: http://www.heromages.com/gameInfo/heroesAndCreatures/mages.html#summoner
I could probably code the In-App purchases in a solid day with the ANE's, but I'm tinkering with the async multiplayer at the moment since that's been such a huge request. Was planning for major upgrade with some bug fixes, local play option, In-apps, and async multiplayer all rolled into v1.8. This might all take a month (assuming I can get some solid time to program) plus another week or so to make it through Apple review. I'll keep you updated on my progress her on Touch Arcade as I get pieces complete. As stated above, first step towards async is done: storing game state in database. Next goal: retrieve game list and load em' up. I've been tinkering with Hero Academy to get a feel for how the interface works. They have some solid mechanics: the 5 actions a turn and ability to undo actions is pretty sweet. I don't think this would work for Hero Mages tho because of the dice rolls (hence why I originally thought I'd do a new take on the game for async play). What I'll prob do is let players play async the same way they play live games, with the exception of two player vs. (for the first async update) and the ability to see the opponents last move animate when you rejoin the game. One thing I found missing in Hero Academy is that you can't actually play synchronously. My brother and I tried playing a head to head game in the room together and found that we had to wait for push notifications to go through (or pop out and pop back in game) to see the update. Plus, you have to wait for the opponent's animations to take place instead of seeing them synchronously (inherent in the design of being submitting moves in blocks of 5 instead of 1 at a time). For Hero Mages, I think it would be cool to have the option to play async with the option to "go live" if your opponent happens to be online and wants to join in. This way you could see moves being made as opponent makes them and enjoy realtime play. This might help stimulate the community more to see a higher count of active games.
Ah, sweet! So I will just be able to play with all Summoners and then it will be alot more like Chaos. Awesome, I can't wait for those IAPs!!!
Today's update on async: I've got "game progress" successfully writing to the database as units are issued commands. Additionally, I have a basic game list that allows you to "load" any game you've played in and resume right back where you left off. It's a great start for me to build on that essentially lets you play "crude" async games since any player in the game can reload from the database and continue issuing orders to their units. The "Push" notification is still missing to indicate when you'd take your turn, but I still have a few other challenges to get to first. One very notable feature of what I have working in development now: when a player loads an "async" game, a "live" game room is automatically created. If your opponent then logs in and loads that same game, you can continue playing together as a "live" session and see commands being issued in realtime. If either player leaves, it resumes "async" - allowing a seamless transition between "live" and "async" game play.
For those who want more detail, I've started a blog to chronicle my progress developing async multiplayer for Hero Mages: http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html
Thanks! Interesting news and great read! EDIT: As for reference, I concour with everything James said under the blog post.
I just want to say that I have only recently "discovered" this game, and am very much impressed despite possessing a significant blind spot for the genre.
Thanks for the update - I just subscribed to the blog! Also, I do agree with James' points, he made some very valid points with accurate examples, so hopefully you'll be able to consider them as well Looking forward to learning more about the progress!
For those of you that play Hero Academy or other async games, how is the following situation handled: Player A takes their turn Player B realizes that there is no chance of victory against Player A. Rather than gracefully surrender, they decide to indefinitely refrain from taking their turn to deny Player A the win. From what I could gather online, it seems like Hero Academy does not have any kind of turn-time limit. So this kind of unsportsman-like situation could potentially happen. Thoughts?
If I recall well the by first HA update addressed the problem: if your opponent doesn't take turn in a week, you can claim victory. Ascension let you set a timer so when you do not take the turn your opponent can claim victory (between 30 minutes to 2 weeks). Having played all, your Hero Mages included, I think HM is born to be async because it is fast (so fast that I feel the majority of games will end up to be played almost both online in a short timespan) and turns are auto-conclusive (while there is your turn the opponent is totally passive, unlike Nightfall, another async game). The fact that there isn't an undo button (unlike Hero Academy) will make things even faster. I read your will to seamless integrate both online and async games, but I really do not see what you would gain (other than lots of programming). I mean...when I play Hero Mages now (online) I see the opponent moves and I just wait...a push notification if I'm away or a 'my turn' message (as now) do not change things a bit (or I fail to see how). If I receive a notification...I just want to pop in the game, see the moves of my opponent (like now if they were taken live, maybe just sped up) do my moves and submit. I would retain (as a setting) the possibility of timed turns too. I know it's easier said than done, but I hope it make sense.
Can anyone post screens of what the functionality looks like if your opponent runs out of time and you can claim victory? I'd love to see how this looks- particularly in Hero Academy. I have ideas how I can implement, either way. @Pitta - There's a very good reason to enable "live" play when it's available vs. rely on push notifications: You only want to send Push notification when it's your turn, not each time an opponent moves a unit. There's a benefit to seeing the opponent's moves being made live, vs. waiting to have the database/push send an update. If two players are actively engaged in a game playing head to head, it would cut-away from the experience to have to watch replays of animations after the opponent has issued commands (even if that delay is only by a few seconds). Creating a live-game room when loading game sessions allows spectators and other users to participate- expanding the potential to meet new players and grow the community. Async has great value, but synced gameplay offers a level of connection and communication that async fails to achieve. Consider the difference of playing "Halo" with your friends in the same room vs. playing over Xbox live. OR talking with a friend on the phone vs. texting. I perceive a similar value in playing async vs. synced. Having a person's immediate attention in a game is much different than not knowing whether they are distracted and/or doing other things. Turn time for async has me totally boggled. Keeping clocks synchronized in realtime play is one of the most irritating programming challenges I've had to deal with- and this becomes even more complicated with async. I'm considering handling the problem by giving async games different properties. For example: Drop timer will not function Turn time will become unlimited Will not show an ongoing game duration. Instead- maybe show creation time and last updated time. A sync game will become async if all players quit the game before its conclusion. The async flag shall be set when a player tries to load an async game from the database whose status is not complete