New defense game

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
I'm currently in the process of making a defense game (like this one). However, since I know no flash and the only program language that I'm fairly fluent in is Java, it may take awhile (Especially if I can't find f*cking world.jar!). With all the hard work that I'll be putting into this, I'd like to see that it has as many maps/monsters as possible. That's where you come in!

I need people to do some maps, monsters (stats and such), structures, traps, and all "models" that they need. (Models will probably just be simple shapes for monsters and simple shapes with lines for structures, but I need someone to get the exact points [based on center] and radii)

Maps:
I'm going to have a very easy mapping system set up. To make a map, just make a text file that looks something like this:
Code:
1111*11&111
1B00A110111
10111110111
1C00000D111
11111111111
1: Where you can build structures
0: Where the enemy walks
Letters: Waypoints - These basically just let the enemy know which way to go next. They should be at all 0 corners. They also need to progress normally (A for the first corner, B for the second, etc).
*: Spawn - Enemy start
&: Final destination - the enemies die and do damage to your health

I don't know what the grid for maps is going to be, so I may have to expand/reduce your map.

If you do childish things like not put waypoints at corners or not put a final destination, I won't accept any map from you.

Now, I'm sure those wonderful graphics entice you, but the program just eats the text file and generates the CORRECT map based on what you have in the file.

I MAY add a way to control the monster spawns from the map file..

Monsters
(I may add more variables, I may take some out):
Health:
Speed:
Money:
Points: (I don't know if you will get points for getting money, or just do it like this)
Special abilities: (Such as the ability to jump over traps or can't be slowed)
Land/Air/Both: (possibly)

Structures
Rate of fire:
Damage:
Range:
AOE:
Enemy Speed Percent: 100% = keep enemy speed the same, 50% = half their speed, 200% = double their speed. I figure some very powerful weapons could be balanced by making the enemy quicker. The above percents are examples, anything from 50-200 should work.
Element: (Maybe)
Land/Air/Both: (Maybe)

Traps
Damage:
Enemy Speed Percent:
Element: (Maybe)
Land/Air/Both: (Maybe)
 

Humming Bird

New Adventurer
Joined
Feb 16, 2007
Messages
233
Reaction score
0
Good luck on this :) What's nice is, the models won't be too hard, because they're flat, overlayed, 2d textures.
 

Shurik3n

New Adventurer
MSC Developer
RiP
Joined
Aug 15, 2006
Messages
1,357
Reaction score
0
Age
34
This sounds pretty cool, I see what I can do to help out.
 
  • Thread starter
  • Admin
  • #4

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
Another note: I think I will add friendly creatures that go along with the enemies. Your guns don't target them, your traps don't hit them (Don't ask why!), and you lose money if they die by AOE. Keep that in mind if you're designing waves >_>
 
  • Thread starter
  • Admin
  • #5

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
Update:

I have the pseudo code for map converting as well as the "code" for wave making.

./map_name.txt
./map_name_waves.txt

map_name should contain the map, preferably with no extra lines, spaces, or anything like that

map_name_waves.txt should have the waves with this format:

Code:
NUM_WAVES #
NEW_ENEMY ENAME HEALTH SPEED MONEY POINTS
NEW_PACK PNAME ENAME #
NEW_WAVE # P_NAME/E_NAME P_NAME/E_NAME .....

Those are the commands, and I think you should be able to figure out how to use them (Note: the wave can have pack params and/or enemy params, and as many as you want). Names are just for the association in the file, not for ingame names.

I'm going to check here in a sec if Java allows ".\map_name.txt" file systems or if I have to use absolute path file names... If I can do ".\" types, I will also be adding the following commands

Code:
NEW_ENEMY_FILE ENAME FILENAME
NEW_PACK_FILE PNAME FILENAME
NEW_WAVE_FILE # FILENAME

This will allow you to use pre-constructed waves, if you want. I'm also considering adding a "DELAY" command that you could use in place of an ENAME to make a space in your wave. I figure it would be useful for:

[monster][monster][____][Friendly][____][monster]

But I may end up not adding it.

EDIT: Alright, Java allows for the relative file system, so those commands will be in and I will release some filenames that you can use for pre-made waves/packs/monsters. Just a note, don't include the ".\" or ".\\" for file names.

EDIT2: To make it easier on me, here are a few other notes about the compiler for waves:

1. I'm not going to put in a bunch of "make sure that this and this are right" in the compiler. It's a very simple code, so if the compiler freaks out and dies, I blame you.
2. Spaces are my buffer, don't use them for names or anything
3. Put semicolons at the end of lines
4. And to make it easier than doing a lot of loops to figure out the number of params..

Code:
NEW_WAVE #

is now

Code:
NEW_WAVE WAVENUM NUM_OF_PARAMS
 

Shurik3n

New Adventurer
MSC Developer
RiP
Joined
Aug 15, 2006
Messages
1,357
Reaction score
0
Age
34
Whats the dimensions on the maps going to be?

And do wave numbers start at 0 or 1.
 
  • Thread starter
  • Admin
  • #7

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
I'll figure out the dimensions when I actually get to making the GUI. I'm only starting the backbone, right now, so it may take awhile.

Waves start at 0, thanks for asking :p I have a feeling that would have gotten pretty annoying with 0 index arrays if people started at 1 XD
 

Shurik3n

New Adventurer
MSC Developer
RiP
Joined
Aug 15, 2006
Messages
1,357
Reaction score
0
Age
34
Ok, and also shouldn't you have a param for the model the enemy uses?
 
  • Thread starter
  • Admin
  • #9

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
I suppose I should have that... For now, just give them give a description and I'll match it best with what models I end up having (ie "RED_SQUARE_WITH_X_IN_IT")
 

Shurik3n

New Adventurer
MSC Developer
RiP
Joined
Aug 15, 2006
Messages
1,357
Reaction score
0
Age
34
Code:
1111E0F111M0N11111
111101GH1KL101111
111CD11I0J111OP111
111011111111110111
11AB1111111111QR11
11*111111111111&11

So I guess thats a map right there...

Code:
NUM_WAVES 3;
NEW_ENEMY GOLBINS 25 100 1 5;
NEW_ENEMY ORCS 80 100 2 10;
NEW_ENEMY BOSS 500 150 25 200
NEW_PACK PORCS ORCS 15;
NEW_PACK PORCS2 ORCS 30;
NEW_PACK PGOBLINS GOBLINS 10;
NEW_WAVE 0 2 PGOBLINS ORCS;
NEW_WAVE 1 1 PORCS;
NEW_WAVE 2 4 PORCS2 BOSS BOSS BOSS;

Thar ye go. Would this wave file work so far? I plan to add more before the boss wave.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
There are some typos and things I've changed with input variables to monsters, but yeah, that looks right. I'll fix typos and such and add the other variables as soon as I get the compiler. Once the compiler is done, I'll also send it along to you as long as an "interpretor" that will tell you if it compiles and possibly some other things.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
Update:

The wave compiler is "Completed". I have not tested it or added readouts for people who will be compiling themselves, but everything should be ready.

Code:
List of commands:

NEW_ENEMY ENAME HP SPEED MONEY POINTS
NEW_PACK PNAME ENAME #
NEW_DELAY NAME NUM_OF_SPACES
NEW_WAVE NUM_OF_PARAMS P_/E_NAME P_/E_NAME ...

NEW_ENEMY_FILE ENAME FILE
NEW_ENEMY_FILE_SPECIFY ENAME FILE MONS_NAME_IN_FILE
NEW_PACK_FILE PNAME FILE
NEW_WAVE_FILE FILE

NEW_ENEMY_FILE_SPECIFY will be used for a file full of monsters and nothing more. You input the monsters "name" and it finds it in the file.

All other _FILEs will find and "pack up" the first instance of what it's looking for, so you COULD turn them loose on real wave files and they would come back with the first monster, first pack, or first wave ( I THINK ).

NEW_DELAY: A space is the equivalent of a blank monster, so if you want 2 monster lengths of a delay, you input 2.

Some other variables that will eventually come:
Friendly
Trap_avoider (MAYBE)
123 LAND|AIR|BOTH

That's all I can think of now, really tired. I'm going to bed >_>
[/code]
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
Another update:

The entire compiler is complete. I just have to test 1 error-proofing (making sure maps are the correct size) and test the commands for waves that I haven't checked, yet. Oh, and keep updating it everytime I add a new Monster Paramater >_<

For now, you can use 3 maps sizes: 12x12, 16x16, or 20x20. I'm still not sure about the grid, yet.

I also have to go look up how to make executable .jar files, so I'm not just distributing my code for people to figure out how to use(/steal).
 

Jelly

Adventurer
MSC Developer
RiP
Joined
Nov 25, 2005
Messages
1,909
Reaction score
15
Age
32
Location
You are here --> X
Suggestion: Gamemodes. I suggest three game modes.
1) Defence (like that game you showed)
2) Maul (as in wintermaul, where you have to build your own maze of towers)
3) Survival (creeps don't give you time to build new towers, cause they spawn all the time, with a 2 seconds delay)
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
Jelly said:
Suggestion: Gamemodes. I suggest three game modes.
1) Defence (like that game you showed)
2) Maul (as in wintermaul, where you have to build your own maze of towers)
3) Survival (creeps don't give you time to build new towers, cause they spawn all the time, with a 2 seconds delay)

1 and 3 should be easy, but I'm not sure what you mean by 2. Do you have a link to the game and I'll see if I can pull it off?

On another, more exciting note: Executable JARs are INCREDIBLY easy to make ^_^ The compiler is working and ready to be packed up, I'm just going to create more libraries of monsters/pakcs/waves to make it easier for people before packing it up for the last time. Anyone interested in Beta Testing it? I've never been good at destroying my own work, just the work of others >_>

I'm also gonna need a file hosting site.. Suggests on sites that don't involve a lot, if any, signing up and jumping through hoops?
 

Jelly

Adventurer
MSC Developer
RiP
Joined
Nov 25, 2005
Messages
1,909
Reaction score
15
Age
32
Location
You are here --> X
:oldshock: I'll betatest for ya ^_^ And about the maul thing. Wintermaul is a map for warcraft 3. It looks like this:
wintermaul.jpg
Monsters come down from the top and sides and will try to get to the bottom. The objective is to destroy them before they reach the bottom. You do that by building towers (which you can only build on the ground, the monsters walk at). If you maze a lot you'll be succesful.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
Hmm.. Don't quite understand without seeing the game in action, but I don't think I could do it. The game design has 2 different types of base grounds: Enemy Walk Space and Building Ground. You can build traps on EWS and buildings on BG, but you can't swap them, and I wouldn't want to DEAL with swapping them ;-)

I'll put together a few libraries, pack it up, and find some way of getting it to you. Bit busy atm, but I'll get it to ya soon ;-)
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
Er.. FYI guys, I'm not talking about betatesting the game. I'm talking about testing the compiler o_O
 
Top