[Prototype][Android] TapDefence
This is a real-time mutliplayer defence game. (Tug-of-war maybe?) You purchase monsters which go to one of the other players in the game. You have to tap on the monsters that appear on your screen before they reach the bottom, or you lose health. At zero health, you die, of course. Each monster you buy, increases an "income" value, which is added to your money every 30 seconds. There are four monsters in the prototype, each being more expensive than the last and each being able to withstand more taps from a player and dealing more damage to a player should they escape. There is are blue buttons at the top of the screen with which to buy each the monsters.
I was inspired by the custom Warcraft 3 maps, "Line Wars" and "Tower Wars". I have a few other ideas that I want to throw in, for example; a bomb-type power-up which would do splash damage to multiple monsters, or a totem which could slow down monsters within range. I'd like to add some upgrades which could be bought to buff your monsters during a play session. Later down the line, I'm thinking of letting players choose which monsters they want to play with, akin to building a deck in a collectible card game. Currently there is no way of knowing how well you are doing, compared to the other players, so I need to figure out a way of indicating this (suggestions welcome).
Here's a screenshot:
You can download it here: https://drive.google.com/file/d/0B0LFbdi2dq1-TmNYR1Y5VXlxcnc/view
Keep in mind that since this doesn't come off the Play Store, you will have to change your phone's settings to allow installation of software from unknown sources.
When you start up the game, you will be asked to enter a lobby name. I did not bother building a proper lobby user interface yet. So long as you and other players enter the same lobby name, you will all play against each other in the same game. I would suggest something like "MGSA1", "MGSA2", "MGSA3", ect., just to keep people in the same rooms. Once you've joined a room, you can sit and wait for players, and the game should display how many players are waiting in the lobby. Everyone has to tap the "ready" button for the game to start.
This is my first proper game that I'm attempting to make, and a multiplayer game at that. I am aware that it is not coded well, but this is a prototype. If you experience any strange behaviour, just relaunch the game.
I'd like some general feedback on the idea. Suggestions are welcome! I would also like feedback on how your device performs during gameplay along with what device you have. Your internet connection might affect your gameplay experience.
This was built using JavaScipt - the Phaser framework for the game, NodeJS for the server, and WebSockets for communication. This is packaged in Ludei's CocoonJS wrapper. I have no experience with iOS whatsoever, but if I'm not mistaken, there is no way to test apps on iOS the same way you can on Android, by just copying an installer file onto the device? If anyone could shed some light on this, I would really appreciate that!
Assets are from KennyNL and Opengameart.org.
For those wondering what the yellow text to the right-hand side of the monster buttons are:
The first line has FPS followed in brackets by an FPS threshold used to keep the game running well (monster spawns are throttled to keep device performance at a playable level).
The middle line has two values indicating the number of visible monsters on screen, followed by the number of invisible (dead) monsters that are kept in a recycling pool for performance purposes.
The last line is the number of monsters sitting in the buffer, waiting to be spawned on your screen. This is the part of the monster spawn throttling.
If your FPS drops below the threshold, the game stops spawning monsters until the FPS goes back up again. If the buffer value climbs, but you don't see monsters spawning, then after 40 seconds, the game will lower the FPS threshold by 20%. If you still don't get monster spawns, then your device has become too slow. If you read this far down, and this happens to you, please let me know :)
I was inspired by the custom Warcraft 3 maps, "Line Wars" and "Tower Wars". I have a few other ideas that I want to throw in, for example; a bomb-type power-up which would do splash damage to multiple monsters, or a totem which could slow down monsters within range. I'd like to add some upgrades which could be bought to buff your monsters during a play session. Later down the line, I'm thinking of letting players choose which monsters they want to play with, akin to building a deck in a collectible card game. Currently there is no way of knowing how well you are doing, compared to the other players, so I need to figure out a way of indicating this (suggestions welcome).
Here's a screenshot:
You can download it here: https://drive.google.com/file/d/0B0LFbdi2dq1-TmNYR1Y5VXlxcnc/view
Keep in mind that since this doesn't come off the Play Store, you will have to change your phone's settings to allow installation of software from unknown sources.
When you start up the game, you will be asked to enter a lobby name. I did not bother building a proper lobby user interface yet. So long as you and other players enter the same lobby name, you will all play against each other in the same game. I would suggest something like "MGSA1", "MGSA2", "MGSA3", ect., just to keep people in the same rooms. Once you've joined a room, you can sit and wait for players, and the game should display how many players are waiting in the lobby. Everyone has to tap the "ready" button for the game to start.
This is my first proper game that I'm attempting to make, and a multiplayer game at that. I am aware that it is not coded well, but this is a prototype. If you experience any strange behaviour, just relaunch the game.
I'd like some general feedback on the idea. Suggestions are welcome! I would also like feedback on how your device performs during gameplay along with what device you have. Your internet connection might affect your gameplay experience.
This was built using JavaScipt - the Phaser framework for the game, NodeJS for the server, and WebSockets for communication. This is packaged in Ludei's CocoonJS wrapper. I have no experience with iOS whatsoever, but if I'm not mistaken, there is no way to test apps on iOS the same way you can on Android, by just copying an installer file onto the device? If anyone could shed some light on this, I would really appreciate that!
Assets are from KennyNL and Opengameart.org.
For those wondering what the yellow text to the right-hand side of the monster buttons are:
The first line has FPS followed in brackets by an FPS threshold used to keep the game running well (monster spawns are throttled to keep device performance at a playable level).
The middle line has two values indicating the number of visible monsters on screen, followed by the number of invisible (dead) monsters that are kept in a recycling pool for performance purposes.
The last line is the number of monsters sitting in the buffer, waiting to be spawned on your screen. This is the part of the monster spawn throttling.
If your FPS drops below the threshold, the game stops spawning monsters until the FPS goes back up again. If the buffer value climbs, but you don't see monsters spawning, then after 40 seconds, the game will lower the FPS threshold by 20%. If you still don't get monster spawns, then your device has become too slow. If you read this far down, and this happens to you, please let me know :)
Screenshot_2015-04-26-13-33-43.png
480 x 800 - 113K
Comments
1. Multiplayer-only... It seems like this is a game that you can build a pseudo-AI for relatively easily. You should really try that. Getting people online at the same time is hard.
2. Device-only build... Android is easier to get working than iOS, but nothing beats a web build or a standalone for Win/Mac/Linux. If you can output those, that'd be great. As for iOS builds, no, you'll need to build from Xcode, then TestFlight and distribute keys or something to test on device. That's hard.
I do like the idea, but haven't tried it yet. I only have iOS. But from looking:
1. It seems like you don't see the soldiers you buy? That seems really strange because seeing the stuff that comes out from my actions is a big part of a game. If I can't see my own army I'm just tapping things blindly?
2. Tapping makes this a dexterity game... The player that taps faster wins, all other things being equal. That's kinda counter-intuitive to what's supposed to be a strategy game. If you give players a limited resource to their attacks (mana, whatever) that recharges over time and depletes per tap, that'd make it more than faster tapper wins.
3. It seems like all your purchases give you a soldier and money, and they're all worth more the more they cost. That surely means I just have to find the one with the most value/cost and just spam that? If you have a resource-type, a combat type, maybe even a defence-type, etc, they'll compliment each other and give rise to different tactics... Like some really expensive ones that does nothing but give you tons of cash, so you'll gain a long-term advantage by sacrificing short-term benefits, etc. Having multiple strategies is very important in a game like this.
Good luck :)
The reason I didn't add any AI is because I wanted it to be an online game, in the same vein as Clash of Clans. Although, it might be a good idea to have AI in the case where a player can't be online.
It's a pity about iOS being so difficult to get into. I'll have to wait and see about that then.
1. I did sort-of think about this. Part of the fun about the Warcraft maps, for me, was that I could see how far my monsters are progressing through the other players' defences. I could instead add a wall or structure at the bottom of the screen, representing your base, from which your monsters could appear and run up and off the screen to the other players screen. Currently, every player has to defend their own screen space, and there could be, say 10 players, all going against each other. The server just sends your monsters to the next player in the game.
2. This is a good idea. I would have to make each monster play more of a strategic role then, exactly like you mention in point 3.
3. You're right, it does become a spamming game in the end. I didn't think this through properly yet. :) So back to the drawing board I go on the strategy part.
Thanks again! :)
1. TONS OF MONEY (marketing)
2. TONS OF TIME (marketing)
Neither of which are what you have, nor is it important right now, which is playtesting. Prioritise on what's important now rather than what's important maybe perhaps later. Saying "no AI now because the game is meant to be like Clash of Titans" is putting the cart WAY before the horse.
iOS is not difficult to get into, it's just much more difficult than getting a playable on a website or a downloadable win/mac/linux. Getting those can get you plays at a fraction of the effort it takes to get an iOS testflight thing going. Get them done if you want plays.
If all I ever get are monsters marching down my screen, I don't know how my opponent's doing, I don't know how I'm doing. It sounds really, really boring. There's no context. PVP is about playing against humans and seeing how they react to you and how you react to them. In your current setup you can tell people there are 10000 players and randomly generate monsters and noone would know the difference. That's not a good thing.
Good luck, yeah :)