When making a project you should first start by thinking about your assets and tools.
If I’m going to make a wooden book case I need materials (assets) and tools.
In that case I need wood and nails. I need a hammer (for hammering nails) and a saw (for cutting wood). If I don’t have a hammer I could use wood glue instead, it wouldn’t be as strong but it would still work.
If I’m going to make the above game I need the following assets:
- Blocks (For building my minecraft-like environment)
- Non-block objects (like a crown, doors, gates windows etc…)
- agents (like zombies, robots, humans, etc… for doing combat)
You’ve already got the blocks, or some of them… They look pretty good but I’d avoid making them too minecraft like, people will say you’re ripping off someone else’s game when really you’re not. Your game idea is completely different but people only care about appearances.
Anyway, for agents; Can you rig and animate characters? If not how about using just placeholders for now. Maybe a 2d picture of a monster or whatever set to billboard so it always faces the camera. You can go back and change them later when you’ve got the skills you need.
Next you need the game engine tools.
A project like this would need:
A block placing tool.
Either with python or logic bricks, it is possible either way. With logic bricks I’d make the player a non-collision object which you can move around the map. When you click the mouse or press a number button the player will drop a type of tile. If you have the tile placer set well above the player’s head you could stack blocks vertically too. With python you could have a point and click placer which places the right tile just where you want it.
An AI block placing tool.
If you’re not playing against another human player you’ll need to find a way of getting the enemy AI to build its base. You could either use pre-designed levels, or randomly generate an enemy base if you’ve got some python knowledge.
An agent AI.
Blender has a good navmesh AI which you can use. It’s fast and effective and it’s perfect for this situation. Make sure the blocks, when added have the “obstacle” setting so the AI knows to avoid walking in to them. Your agents can start near your base and work their way towards the enemy.
A combat tool.
When your agents meet the enemy what will happen? You need some kind of setup where two agents will fight if they are touching. Maybe they will lose a certain amount of hps every second until they die. That would be a good idea, then you could win a combat by making sure you have more agents in combat than the enemy. If I have two agents in contact with an enemy agent, mine will both be at 1/2 health when the enemy agent dies. If you have python knowledge you could change this to include random amounts of damage.
A block destroying tool.
If your agents can’t reach the enemy the game would be over, so you need some way of changing the battlefield. Maybe your base has a cannon that can destroy blocks, or maybe the hero agent (controlled by the player) can destroy blocks. Here you need a tool for destroying the blocks (maybe a simple bullet launch and a collision check to see if a block has been hit) and also a tool for making the blocks explode or whatever so they don’t just disappear.
Another idea would be if some agents can destroy blocks too, maybe they damage blocks by touching them and after a few seconds the block is destroyed). These agents would need a different kind of AI, maybe just a track to actuator so they track to the nearest enemy block and try to destroy it. You’d need a simple python script to find the nearest block from a list of blocks.
A Victory tool.
If the crown is touched by an agent which has a different property from your own team (“team_2” = True) The game is over. Either you won or you lost but you need to go to a different scene to show either a victory message or a defeat message.
Next I would start making small test blends, try to get each tool or system working on its own first. If you can get your agents to navigate a map towards a goal then you can recreate that system in your main game. If you can get a system where you can place blocks it’s easy to build on that foundation.
If you can’t get a system working it’s easier to get feedback and help from Blender Artists if you have a simple blend which you can upload. If you have lots of stuff in the blend it can be hard for other people to understand what’s going on.
When you have each system working, then start to put the game together.
Finally you can start to polish the game by adding better art, animated characters, explosions, skyboxes, more complex scripts for block placing, better AI, better combat etc…
Anyway, good luck with the project. I’ll be interested to see if you follow through on the idea. It seems like a great self teaching project.
Happy Blending!