Last night I sat down with the white board and decided to brainstorm some ideas.
Style
First I listed the type or style of games that I am interested in making. I narrowed it down to 4 types.
- Tower / city defense (Command and Conquer / Clash of Clans style)
- infinite or dungeon runner (Sonic / Flappy bird style)
- 3d open world (Minecraft style)
- top down (Zelda / Final Fantasy / Diablo style)
Genres
- Midevil
- Space / futuristic
- horror (Zombie, Vampire, Ghosts, etc)
Multiplayer
Every game or project I create, I like to add more features, and one that I’ve never worked with is multiplayer support. I thought of ways to do this. I thought of 2 obvious methods. The player goes to a list of available users in area and can challenge them, or the server auto assigns a match. This would probably work the best in a tower defense or runner game the best as the game won’t have a in game avatar to display on screen. Which brings me to my second method. Either in the 3d open world, or Zelda style graphics, it could show all the players in the area of the map on screen. There could be some fighting mechanism to attack or start a battle by tapping on them.
Regarding the battle mode, I haven’t decided if I like alternating turns or just striking whenever the player commands should be better. I am leaning toward alternating turns, like a typical RPG.
Graphics
A couple ideas I’ve been throwing around are making a 3d game. I don’t think I want to model any artwork though. That is quite a bit to learn how to do. However if I do go down this path, I may go with the blocky voxel art which brings the retro look and is also easier to do.
With 2d graphics, I’d probably draw graphics with my iPad Pro and Apple Pencil and bring them in to animate using something like Spine. I could also use voxels or pixel art for a retro look. Pixel art is something I’ve always kind of wanted to get into, but it looks like it may be pretty time consuming.
Another option I thought of was doing something like I did with Lumps of Clay. That app was completely made with stop motion animation and Play-doh. I could go the same route, and try construction paper, something like the first episodes of South Park. However, that sounds like a nightmare, and I really don’t want to go through editing that many photos again.
Level Style
Next I thought about how the graphics should best be rendered for the world itself. Lumps of Clay was tilemap based and it was pretty easy to do. This of course wouldn’t work with a 3d game. This would require 3d or voxel models of everything. The other option is to have large sprites for everything. I think this would only really be needed in something like an infinite runner for the platforms etc.
Platform
Moving on, which platform or engine do I want to develop this for? Obviously I want it to run on iOS and I know Swift pretty well at this point. However, it would be pretty nice to be able to build it for other systems like Android, XBox, Wii, PS4, etc. For this solution I’d need to learn Unity. Unity seems really cool, however it basically requires me to learn a whole complete new scripting language, and programming interface. A benefit though, is that a lot of companies are looking for experience in Unity. For Lumps of Clay, I used Cocos2d and I liked it a lot. However, the project is barely alive any more and is an uncertainty that it will survive much longer as a viable solution. Spritekit seems to be a pretty good alternative if I want to stay exclusive to iOS.
Revenue
Money! Everyone loves it. Everyone wants it. The question is, how to get it?! With Lumps of Clay, I made 2 versions. Premium with no ads, but still had in app purchases. Also a Free version with ads and in app purchases. No one has ever made an in app purchase. Most people have downloaded the free version, with a handful of people on the premium.
For this reason, I will only focus on one version. I want to decide this early because I want to incorporate it better in the game play. For instance, if I make it freemium, I will want to make a game mechanic which limits them from doing certain actions so many times in a period of time. They would then be able to make purchases to skip this time for example. I’d probably sneak ads in as well.
Database
The last big topic I have on the list is the server side database for multiplayer game play. I’ve been doing a bit of research on which type may be best to create. I have a lot of experience in MySQL and it seems pretty basic to me. However I am told that it isn’t scale-able across many servers if the app blows up big. Also with large databases it is supposed to be “expensive” on processing.
On the app I am working on for IMVD, the API utilizes REST and JSON commands. It is pretty simple and seems like something I’d like to implement.
The API also uses noSQL. I wasn’t involved in setting it up or creating that side, but I am told it is scale-able to multiple servers and is pretty quick with large databases. This may be the solution I need – but yet again something else I’d need to learn how to create.
The last solution would be to find a 3rd party service that is meant for this. The downside to this is that I would then be reliant upon them. If they ever chose to change payment plans, or go out of business, I’d be kind of out of luck.
Final thoughts
Those were my initial brain storming thoughts. I still have a lot of thinking to do about it. I think my next steps are going to be to investigate the graphics side of things and make some prototypes. I’ll go from there and decide what I like best or what will be the easiest for me to proceed. That should help me decide the style of game.