Is it possible, and a good idea?

Thanks for the input on the textures, that is the kind of constructive criticism I was hoping for, I will revise them more to your suggestions.

The blocks that I posted were just placeholders for the textures I made, I was going to resize them once I had some suggestions on the textures

I’m not sure what modifier you’re talking about here but it sounds like it could be useful for many things (I don’t know about using modifiers in real-time like that). The blocks would have to stay individual so that the enemy could destroy them while trying to get the crown.

Thanks for all the input, it helps!
-Tr4nz1uc3nt

I like the ideas here. My first thought was that if all of a teams soldiers were dead then the game would just end and the other team would win, but the idea of different types of soldiers is great!

Thanks for the input!
-Tr4nz1uc3nt

Some modifiers not work in realtime, and other works, but with bad perfomance. So, apply the modifiers.
This is the modifier:


The problem is texture it, is there to texturized it sphere automatically? maybe.
However, you can texture it manually…but it will take time.

I have been using Blender for 3 years and using the game engine for 2, I know several programming languages but haven’t got into Python very much (yet), I have several other friends that have the same experience I do that will help me too.

I hope that I can finish this project and post it here for everyone to enjoy!

If I come to a point in development where I can no longer continue from either lack of knowledge, time, or I cannot get any help here on the forums or research the topic myself I will hand the project over the community here or another Blenderer.

Thanks!
-Tr4nz1uc3nt

That is awesome, I don’t know how a little gem like that has yet to catch my eye all this time! I was looking for this exact thing a couple of months back. But this modifier will only work on an already existent mesh and joining a bunch of objects as one mesh in the BGE is EXTREMELY difficult from what I understand about inquiries I have made here on the forums, and joining all of the blocks into one static mesh would take away the destruction system as well :frowning:

I think he means the world should not be destructable only the bases,

There is the issue of efficent draw batching, culling, etc.

So thousands of cubes and the bge are only friends if you can use instances, and All cubes use 1 uv map etc. I think solarlune made a demo for this…

He made a mesh, that populated cubes with its faces, and grabbed the uv texture from a atlas.

Once again i point to http://solarlune-gameup.blogspot.com/2012/02/voxels-in-bge-demo.html
You can manipulate vertex( face’s~) position and uv coordinates.

I am currently working on this in order to revive my old game, might even show a teaser if you want to see an example for this kind of implementation ^^.

Hah, geez. I thought I knew what I was talking about - those aren’t voxels. They’re just cubes. My approach might work alright (though that script is fairly old), though there are down-sides, as I mentioned. Depending on the complexity, the OP might do better with just plain normal blocks.

So, I’m not sure if this is the same as SolarLune’s demo, but couldn’t I just make one big UV mapped cube as the base and place lots of invisible cubes at positions where the player would assume a block would be, and when the player places a block it aligns to the corresponding invisible block? This would take away world destruction, but world destruction would make the game a little easier to cheat on anyways (dig a hole to the bottom of the world so noone can get the crown)

-Tr4nz1uc3nt

P.S. Then I could even make a wireframe that shows where a block can go

“place lots of invisible cubes”
That is unnecessary. You don’t need helping cubes if you place a block, there is nothing to align.
if you floor ( int() ) the coordinates and keep the rotation unchanged, then everything happens “automagically”.

As for world destruction: make it harder to dig and very hard to mine, but wood gathering would be easier.
So having stone parts would bring a gamble with time to the game.

Wireframe of every spot a block could go,would clutter the screen…
Wireframed cube ( a place holder ) at where you want to place a block, is a matter of spawning a wireframe block before the user has clicked and removing if he’s looking away…

That is what I meant by this, just came out wrong :stuck_out_tongue:

The idea of the game was that the player would have infinite resources for a limited time, not mining to get resources (although that sound like it would add another interesting factor). The main aspect of the game is the building of your base, i don’t want to restrict what the player can build based on how fast they can gather resources.

Also, I am not sure if everyone realized this, but I meant for the world to be limited with a kind of two sides aspect the trees and whatnot would just be in the background in place of empty space.

Alright, that helps, like I said I don’t know much python so I don’t know alot of things like that. So how does the cube that you place know to align to a grid though?

-Tr4nz1uc3nt

P.S. Wow I just realised I typed the wrong thing as the last quote :slight_smile:

    
if left_click.positive: 
        hit_object = sensor.hitObject
        hit_normal = sensor.hitNormal
        hit_position = sensor.hitPosition
        
        
        if  hit_object and hit_object.name=="phys":
            
            RawPosition= hit_object.worldPosition + (hit_normal)  
           
 

Straight from my block placement script.

As i know which face i hit, i can calculate easily on which side of the cube to put the new cube.
RawPosition= hit_object.worldPosition + (hit_normal)
For example:
I hit a block on the grassy side…
So the next (new) block’s coordinate would be one block above as i hit the top face.
I know that hit object location is at integer location coordinates (0,4,1) and the normal is also always a integer coordinate like (0,0,1) (upper face ).

That leads to (0,4,1)+ (0,0,1) = (0,4,2)
The grid emerges because I use integer values, not floats or anything.
I can’t get anything else than integers if i add together integers.

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! :slight_smile:

Ah, I see, that makes sense