PDA

View Full Version : 16: Retro Tank



Evil_Toaster
06-09-2007, 01:43 PM
Retro Tank

v1.0 Release
http://www.retrotoast.com/downloads/RetroTank-v1.0.zip
Changes
- Everything

v1.0b Release
http://www.retrotoast.com/downloads/RetroTank-v1.0b.zip
Changes
- Added new RetroToast logo
- Moved all menus to avoid them showing on top of logo
- Added Readme.txt to zip

Specification Version: 0.1

Overview
This game is a sort of blend between Space Invaders and Tukumi fighters. You control a machine gun turret at the bottom of the screen. Alien ships comprised of multiple letters appear at the top of the screen. You shoot the letters off them to kill them.

Player Controls
- Move Left and Right
- Jump
- Aim with the mouse
- Shoot (Left click)

Gameplay
The alien ships shoot at you, and if you don't want to die, you'll need to dodge their bullets. You kill the alien ships by shooting letters off of them. Aliens can die in two ways:
- If you hit the center 'O' letter of an alien, it explodes.
- If you knock all letters off the ship, leaving only the center remaining, the center drops to the ground and can be picked up for an upgrade.

Upgrades
- Increase turret movement speed
- Increase fire rate
- Increase jump height

Upgrades are limited to 3 levels per category.

Alien Ship AI
- Alien ships move around the top of the screen in circular/ellipse patterns
- They shoot at you
- Nice to have: Alien ships rotate their strongest side (the side with the most letters on it) to face the bottom of the screen.

Alien Ship Generation
The alien ships are built from text characters by a generic algorithm. An example of one could look something like this:


X X
X B X
BOB
X B X
X X


For generation, the grid is considered to be divided into 4 equal size segments:


_________
| | 1 |
| 4 |_____|
|___|_| |
| 3 | 2 |
|_____|___|


A 7x7 array is initialised, and the following steps occur:
- Place an 'O' in the center of the grid. Assign a colour to it. (The colour is important with regards to what upgrade you'll can get)
- Loop X times: (Low X for small ships, High X for large ships)
1: Select random point from segment 1 of grid until an open one is found.
2: Fitness Test: If the selected block has a set block adjacent or diagonal to it within segment 1, or is adjacent or diagonal to the center O, continue. If not, go back to step 1.
3: Select a random capital letter and place one in each segment. The letter is rotated by 90 degrees for each subsequent segment.

Levels
Leveling is done in a non interupted arcade style. Each time you level up:
- Alien ship size increments
- Number of alien ships increment

Scoring
- You receive X score per letter knocked off, and Y score for each upgrade picked up or center point of ship destroyed.

Styling
- Initial break vector (taken from direction the bullet that hit it was heading in) and gravity on letters which are knocked off of ships.
- Spark effect using .'s when letters are knocked off

dislekcia
06-09-2007, 02:30 PM
Procedurally generated letter-ships! Nice :)

-D

edg3
06-09-2007, 02:36 PM
It sounds great and cant wait to play it! :D
I like the idea of Space Invaders with a Tukumi Fighters twist to it!
Im looking forward to playing this :)

Gazza_N
06-09-2007, 08:36 PM
ET strikes again with an awesome game concept. Will it never ceeeeeeease?! ;)

Looks good, ET. Bring it on.

dislekcia
06-09-2007, 08:55 PM
ET strikes again with an awesome game concept. Will it never ceeeeeeease?! ;)

Looks good, ET. Bring it on.

ET is able to come up with at least one game idea an hour. More if fueled by sammiches.

-D

Thaumaturge
06-09-2007, 11:23 PM
I take it from your mention of a fitness function that you meant a genetic algorithm... in which case you very much have my attention!

If you are indeed using a genetic algorithm to design the enemy ships, then I very much want to see the final result.

A very good idea, Evil Toaster - I commend you! ^_^

If you have time, I would recommend allowing the enemy ships to rotate, and to tie their movement and rotation into the genetic algorithm. This way the enemy ships should not only adapt their conformation to the circumstances created by the player's actions, but also their motion...

Evil_Toaster
06-09-2007, 11:52 PM
It sounds great and cant wait to play it! :D
I like the idea of Space Invaders with a Tukumi Fighters twist to it!
Im looking forward to playing this :)

Me too. It's about damn time I made a game purely focused on shooting the crap out of things. ;)

Evil_Toaster
06-09-2007, 11:57 PM
ET strikes again with an awesome game concept. Will it never ceeeeeeease?! ;)

Looks good, ET. Bring it on.

Lol. Uh, eventually perhaps, but until then, you're stuck with the arduous task of having to play these things, or at least be exposed to my overly detailed spec posts. :)

Bring it I shall, I'll be working on it a bit this weekend. I'm very limited on time at the moment, so the goal is to do this game in about 10 hours total, hence the procedural generation and minimalist features. (Which incidentally, should go just fine with the minimalist text based representation)

The name's a bit crappy though, I'm probably going to change it...

Evil_Toaster
06-09-2007, 11:58 PM
ET is able to come up with at least one game idea an hour. More if fueled by sammiches.

-D

Actually, I recommend Wimpy breakfasts as an excellent game design tool. You can even order them in the evenings if you like. :)

Evil_Toaster
07-09-2007, 12:17 AM
I take it from your mention of a fitness function that you meant a genetic algorithm... in which case you very much have my attention!

If you are indeed using a genetic algorithm to design the enemy ships, then I very much want to see the final result.

A very good idea, Evil Toaster - I commend you! ^_^

If you have time, I would recommend allowing the enemy ships to rotate, and to tie their movement and rotation into the genetic algorithm. This way the enemy ships should not only adapt their conformation to the circumstances created by the player's actions, but also their motion...

I'm not wanting to disappoint you, but no, it's not a genetic algorithm. It's more like a random directed brute force algorithm. (Or at best, an extremely rudimentary genetic algorithm) A fitness test is however one of the components of a genetic algorithm. Basically, you're testing certain criteria to see if it fits within predefined boundaries. So, I don't see that I used the term out of context. It's making sure that any new character will be next to at least one existing character, so that you don't get floating/disconnected pieces on the ship. Lastly, I'm sure I could work out a genetic alg to generate the ships, but considering the 7x7 resolution, and my chronic free time issues, it's not worth doing when the brute force one will generate ships which look just fine.

The algorithm described in my first post will generate ships with 4 identical sides, and the pattern per 90 degree segment should be quite random.

P.S. You can get pretty far with well thought out brute force algs. I used a similar technique to generate the line formulas in Cartesian Chaos. I.e. Randomly choose 2 grid points, generate formula, and keep doing this until the slope and y-intercept are within acceptable bounds. (This avoided equations like y = 29/13x + 69/9 being thrown at you. And yes, I had one just like that thrown at me by the game)

The ideas in your final paragraph are pretty damn cool though. I quite like the idea of making the ship's surrounding letters a swarm of reactive armor which moves to block your attacks. I might consider putting that feature in at a later date. :)

edg3
07-09-2007, 06:37 AM
Actually, I recommend Wimpy breakfasts as an excellent game design tool. You can even order them in the evenings if you like.
I agree completely!

So when do we get to play? :D

I had one just like that thrown at me by the game
sounds playable... :P

Gazza_N
07-09-2007, 06:04 PM
The name's a bit crappy though, I'm probably going to change it...
Is that a tactful request I see? Sadly I can only come up with about one decent game name a month. More if fueled by sammiches (EPIC HIIIIIIIIIIIIIIIIIIIIIIIIIIIIINT!).

Thaumaturge
07-09-2007, 09:14 PM
I'm not wanting to disappoint you, but no, it's not a genetic algorithm.

Aw - ah well, fair enough. The idea remains cool, I maintain, even without the addition of genetically-adapting enemies. ^_^

As to a name... Hmm... what about Character of the Alien? Font of Destruction, perhaps?

ShadowMaster
07-09-2007, 10:06 PM
As to a name... Hmm... what about Character of the Alien? Font of Destruction, perhaps?

Or the uber cheesy Text Invaders... ;)

CiNiMoDZA
10-09-2007, 10:57 AM
The Final Fontier :P

Gazza_N
10-09-2007, 08:13 PM
The Final Fontier :P
One million Internets for that. :D

Evil_Toaster
13-09-2007, 09:22 PM
@Gazza: I am willing to exchange sammiches for game names. We should deal.

Thanks for the name suggestions guys. :) I like "The Final Fontier" the most, but as with CC, I'll only finalise the name later on.

As for how the game's going, I've managed to put in about 6 hours on the project so far, and it's looking good. The turret is happily bouncing around and shooting bullets, I've texterised the button controls, and the alien random generation is working. However, since you can't shoot anything yet (no collision detection), I am not releasing anything just yet. I'm hoping to have it playable by the end of this coming weekend.

Evil_Toaster
17-09-2007, 01:20 AM
Alright, the time budget is completely blown, but progress has been going well regardless.

You can shoot the hell out of the letter ships now, and they can mission around. They are however, defenceless, and can't shoot back just yet. So in order to give them a fighting chance, no release as yet. ;)

Here's a screenshot of how it's looking:

http://www.retrotoast.com/downloads/ED-SS1.png

Thaumaturge
17-09-2007, 02:33 AM
That looks so cool, Evil_Toaster! I'm looking forward to the final product. ^_^


So in order to give them a fighting chance, no release as yet.

Aaw... what's wrong with shooting them while they're defenceless? I don't mind it not being a fair fight... ;P

Cyberninja
17-09-2007, 08:45 AM
Wow E.T. That looks really cool. We want demo! ^_^ *Cyber starts banging table...

dislekcia
17-09-2007, 03:06 PM
You should totally be shooting exclamation marks.

I would have thought this would be obvious?

-D

Light
18-09-2007, 01:04 PM
The screen shot looked great. When do I get to see it animated?!?

FuzzYspo0N
18-09-2007, 02:23 PM
its looking good toaster, along with the others LETS SEE ;p

Evil_Toaster
18-09-2007, 02:42 PM
Awesome, I'm glad you guys like the look of it. :)

I am still going to be bastardly and not release anything yet though. My reason is that I have a personal rule to not release a game until the overall goals have been established. In this case, it's 'Kill the letter ships, and don't die'. Only the first of the two is in. If goals are absent, you don't have a game, you have a tech demo which will only be interesting for a couple of minutes. Louis was playing the game for a bit, and since there was no goal, he came up with the goal of trying to knock of all letters except the central O. So, goals first, release later.

I got ship bullets flying around last night, and will hopefully have the collisions worked out in the next couple of days. So the wait shouldn't be too much longer.

FuzzYspo0N
18-09-2007, 03:02 PM
i totally agree with your policy :) hence the taking longer with my game.

Its looking good tho, i cant wait to see

Gazza_N
18-09-2007, 07:49 PM
That looks really tasty, ET. I'd count down the days until you release the demo, except... well... you know. ;)

Evil_Toaster
26-09-2007, 11:20 PM
Righto, after continually lying about release dates, the Retro Tank is finally done... It starts off a little too slow, and goes mindbogglingly insane a little too quickly, but all in all, it's quite fun. :)

Grab it from:
http://www.retrotoast.com/downloads/RetroTank-v1.0.zip

Evil_Toaster
26-09-2007, 11:32 PM
Oh, also, a few final notes. If I'd had more time, I probably would have put a system in for buying upgrades between levels rather than them being dropped by random chance. I expect it would have been a bit easier to balance. Difficulty levels would also have been good, as well as a few other unlockable mode types, such as insanity mode where it starts you at the highest level, and possibly makes things even more crazy, and maybe a chill mode where you have huge amounts of health, or possibly invincibility. (For when you want to sit and watch the letters fly)

It's been a fun little project. I finally got round to doing a proper collision detection system, and went nuts with the particle effects. :)

Evil_Toaster
27-09-2007, 09:26 AM
Note: I just uploaded an updated version (@9:25am) with some better music.

Light
27-09-2007, 10:52 AM
Woohoo! A jumping tank :D

I also enjoy the bouncing barrel at when you die.

Looking good!

(I downloaded early this morning, when I hit the link again to get the new music I'm still getting the old version. It's probably caching, but I thought I should moan about it just so you're aware of it happening.)

Cyberninja
27-09-2007, 11:41 AM
You ,Sir, rock. The amount of polish you put in your games is absolutely amazing. Seriously. Awesome work! You are soooo signing my Game.Dev poster! ;)

Evil_Toaster
27-09-2007, 05:10 PM
Woohoo! A jumping tank :D

I also enjoy the bouncing barrel at when you die.

Looking good!

(I downloaded early this morning, when I hit the link again to get the new music I'm still getting the old version. It's probably caching, but I thought I should moan about it just so you're aware of it happening.)

Thanks. ;)

The bouncing barrel was actually a coincidence, where I forgot to limit the tank's turret from shooting up randomly when it's hit, and the tank is on 0 health. Obviously once I saw it in action, I just -had- to leave it in. (And add the *boing* sound ;) )

Could you check if the new version you d/l'd is the same size as the old one? I only replaced 2 of the 4 music tracks in the game.

Evil_Toaster
27-09-2007, 05:18 PM
You ,Sir, rock. The amount of polish you put in your games is absolutely amazing. Seriously. Awesome work! You are soooo signing my Game.Dev poster! ;)

Thank you, and other things you're meant to say when given Uber compliments! ;)

I guess that's why Dislekcia has threatened to kick me in the balls if I don't do the talk on game polish at Rage this saturday. ;p

My personal signature is pretty ugly... perhaps I should come up with an ET signature?

I'm afraid I have nothing to say about your game as yet, or anyone elses for that matter. I was too busy making Retro Tank. I shall be checking em out soon though!

Tr00jg
27-09-2007, 06:50 PM
I envy you... You are consistently good. >.<

Kudos!

Evil_Toaster
27-09-2007, 10:55 PM
I envy you... You are consistently good. >.<

Kudos!

Thanks. I'm not sure you'd envy my hours though. Besides, I've been programming for about 10 years... just keep at it, and each game you make shall kick more rocks than the one before it. :) Also, I advocate creating reusable code for common functionality. You may notice RetroTank's interface looks suspiciously similar to Cartesian Chaos's one.

Evil_Toaster
27-09-2007, 10:59 PM
Ok, I've uploaded a new version with a few minor updates:
- New RetroToast logo
- Repositioned interfaces to accomodate logo
- Added the Readme.txt to the zip. (I forgot to put it in the previous release... -slaps self-)

The link is:
http://www.retrotoast.com/downloads/RetroTank-v1.0b.zip

Thaumaturge
28-09-2007, 01:07 AM
That. Is. Incredibly. Cool.

I suspect that if you do not win (which you very well may), then you will most probably at least be one of the runners-up.

This game is very fun, and looks great too! ^_^

UntouchableOne
28-09-2007, 01:11 AM
This is schweet. Mindless shooting as you said...great fun :P

d-_-b
24-11-2007, 02:10 AM
*wow* I want whatever your drinking, smoking or using! Because *wow* that creativity juices are really following.

Congrats,