Pop! Bubble Dragon

A little arcade game about pooltoy animals fighting over the pool. I’m putting this under WIP because there’s still some glaring flaws that need addressing.

Ignoring the ugly title screen and environment I have some questions about working with the game engine:

  1. How does the text resolution work? If I make the text object any reasonable size it’s incredibly pixelated. I haven’t found a way to make it finer either. And should I parent it to the camera when I want to make a HUD or is that usually done differently?
  2. Is there some form of inheritance for game logic? I have multiple enemies and player characters that all share some basic logic but with the copy and paste approach I used I cannot change them all simultaneously. To add strafing I’d need to alter all four character objects in the same way. Can I define a prototype object whose logic applies to all derived objects?
  3. The only way to let the user change the game resolution is to get one of those launcher scripts I see on these forums?

Blend file:
blend.zip (3.22 MB)

Right, instructions for the game…

W/S: Move
Mouse: Turn
LMB: Shoot
RMB: Special
V: Drop pressure to minimum

Most enemies give you pressure when touched, blue enemies take it away. Pressure is indicated visually on the characters, too little = pancake, too much = confetti. Shooting uses pressure.

Hm, no replies. Should I post the questions in another forum or do people just don’t know the answers?

Looking pretty good, I’ll try and answer your questions:

  1. If you download a very recent build of blender then the pixelated text should disappear. I think font anti-aliasing has been implemented in recent versions. Go grab a newer version of blender from graphicall.org. If you want to do it another way, then have a look at bgui, its a python library to handle GUI’s and it deals with fonts very well. You will need some python knowledge to use bgui though.

  2. I’m really not sure about inhertiance for game logic bricks. There is if your coding with python but I get the feeling that your not. I’ve not used logic bricks in ages so someone with more knowledge on them will hopefully chip in with an answer to that. If you are using python then you can easily use inheritance, or multiple objects to have the same(or derived) logic.

  3. I’ve not really tried this, but I think python has some calls to do this. Maybe have a look at bge.render.setWindowSize(), but I’m not too sure about this. I would think there are some python calls for this, but I’m just not sure. It’s something I going to try out in fact. I’ll remember to let you know how it goes if someone else doesn’t have a solution. I’m assuming that the scripts you’ve seen act a launcher that opens the game with some variables added to launch the game at a certain width/height. I don’t think this is the best solution and it would be nice to change this from within the game itself.

Cheers, K

I use mostly logic blocks with Python being used as a logic block for things that I can’t make work in other ways.

The fonts look anti-aliased, the problem is they’re rendered at a very low resolution. They’re text objects I’ve stuck into the environment tho, not something being rendered in screen-space.

Usually people have an extra scene as an overlay where they put text and HUD data.

I’m really very impressed with the game. You’ve made some really lifelike models with very simple techniques, the really characterful animations help with that.
I’d avoid using the skeleton as the player/enemy object though. The best way is to make a cube or capsule and parent the skeleton to the cube. Have the skeleton carry out actions based on the settings of some properties on the cube.

For example if the cube is moving have a property Cube[‘move’] set to 1 else set it to 0 (you can use the property actuator). Have a property sensor on the cube linked to a controller on the skeleton to play the walk animation if Cube[‘move’] ==1.

This way you can have a very similar set up on each cube and you only have to parent the skeleton each time and link the skeleton logic bricks to the cube’s ones.

From a gameplay point of view I could have wished for a more extensive environment, maybe a water park rather than a small kids pool? It felt very cramped with no where to run to and nothing to take cover behind.

Graphically I’d think about working on the explosions, in a way they were a bit of a let down when compared to the ultra realistic looking models. I like the deflating animation though, looked really cool. :slight_smile:

If I were you I’d call this game finished and move on to a new project. Maybe “Airwolf’s Jungle adventure”?


I didn’t even know I could render another scene over stuff.

The armatures are the objects because I figured any object would be as good as any other and they can run the animations directly. I guess a cube could define different collision bounds? Also yeah, probably would make sense to stick the common logic on the cube with the character-specific stuff on the armature or something.

Yeah, the explosion isn’t very realistic but the realistic way would be for some seam to tear open and the animal deflating then. I couldn’t think of anything better.

And yes, I could probably just call it done, I was just looking to do a few minor fixups (namely the pixely text) and then learn how to do things better the next time.

I tried to play this with v2.66 in Win7-64 and on a 64-bit Linux version and I only got a blank, white screen when I hit “play”.

You can fix the text in python, I’m not sure I remember the code, but you should be able to find it with a search of this forum.

With the explosion I was thinking that you could have a very short lived shower of stars or something, some almost transparent objects flying away from the seams. Don’t get me wrong, the explosion does look well done, but just having lots of circles looks wrong (When I think of a “pop” I think all jagged edges, not round circles).