PDA

View Full Version : Level Designers needed for Galaga-inspired shooter


ActionSoftGuy
2008.05.14, 05:58 PM
I'm creating a Galaga-inspired shooter, and need quality level designers who have an inherent understanding of what makes games fun, how to balance gameplay, etc.

The levels are written using text-based commands, so this is not for the faint of heart. A few example commands are at the end of this message, so you can see one example of what you'd be getting into. [There are many other types of commands; these commands simply create enemies. Other commands, not shown here, specify how they move.]

If you are interested, contact me at vern AT actionsoft DOT com, and I will send you a build of the game and documentation for how to design levels. It will take a number of hours for you to experiment with it and learn how to make a level. Then you can put together an audition level or two. I can work with you on this to help you make it as good as you can. If I really like your work, I will hire you at the rate of $500 per set of 10 levels. (This is not a lot, as it takes many hours to do just one quality level.) I am looking for the very best designers -- people who truly understand how to make games fun, balanced, etc, so please understand that not everyone who auditions will get a job.

-Vern

Here are some example commands from the 2nd level of the game that create an enemy and specifies its type, its starting location, the path it uses for its movement (this is also created by you, the designer), as well as other values. There are many other types of commands for enemy movement, level behavior, and more.


// delay, "create", enemyType, horizLoc, vertLoc, pathName, startAngle, speed, formationRow, formationCol

45 create redCrestDiver left 35 secondWave 25 1 1.670 30.000 dropsBonus
10 create yellowCrestDecoy left 35 secondWave 25 1 3.573 25.878
10 create redCrestDiver left 35 secondWave 25 1 1.302 26.840
10 create yellowCrestDecoy left 35 secondWave 25 1 3.147 23.090
10 create redCrestDiver left 35 secondWave 25 1 1.076 23.473
10 create redCrestDiver left 35 secondWave 25 1 1.000 20.000
10 create yellowCrestDecoy left 35 secondWave 25 1 3.000 20.000
10 create redCrestDiver left 35 secondWave 25 1 1.076 16.527
10 create redCrestDiver left 35 secondWave 25 1 1.302 13.160
10 create yellowCrestDecoy left 35 secondWave 25 1 3.147 16.910
10 create redCrestDiver left 35 secondWave 25 1 1.670 10.000
10 create yellowCrestDecoy left 35 secondWave 25 1 3.573 14.122

205 create orangeCrestCharger right 20 enterWaveSwirl invert 195 1.5 3.027 30.037
10 create yellowCrestDecoy right 20 enterWaveSwirl invert 195 1.5 6.000 30.000
10 create orangeCrestCharger right 20 enterWaveSwirl invert 195 1.5 2.536 27.500 dropsBonus
10 create yellowCrestDecoy right 20 enterWaveSwirl invert 195 1.5 5.073 29.511
10 create orangeCrestCharger right 20 enterWaveSwirl invert 195 1.5 2.196 24.635
10 create yellowCrestDecoy right 20 enterWaveSwirl invert 195 1.5 4.237 28.090
10 create orangeCrestCharger right 20 enterWaveSwirl invert 195 1.5 2.022 21.568
10 create orangeCrestCharger right 20 enterWaveSwirl invert 195 1.5 2.022 18.432
10 create yellowCrestDecoy right 20 enterWaveSwirl invert 195 1.5 4.237 11.910
10 create orangeCrestCharger right 20 enterWaveSwirl invert 195 1.5 2.196 15.365
10 create yellowCrestDecoy right 20 enterWaveSwirl invert 195 1.5 5.073 10.489
10 create orangeCrestCharger right 20 enterWaveSwirl invert 195 1.5 2.536 12.500
10 create yellowCrestDecoy right 20 enterWaveSwirl invert 195 1.5 6.000 10.000
10 create orangeCrestCharger right 20 enterWaveSwirl invert 195 1.5 3.027 9.963

diordna
2008.05.14, 07:05 PM
Umm, wow. I'll just say it - that is a horrible format. Lazy programming. I'd know, I've done it myself. $500 is tempting, but this format would drive me insane.

Easy way to improve the format:

-Have a keyword at the top to specify which level format it is, since you've obviously already made some levels
-Don't make the designer enter every single parameter for every object. When I'm writing a 'lazy' level loader for a proof of concept game, I use something analogous to an environment variable. For example, the entire first block would convert to the following, assuming that "create [lotsofparameters!!!]" becomes "create formationRow, formationCol":

#These are comment lines
#Set up initial constants:
horzLoc left #text after known parameters is ignored, but I include the # for readability
vertLoc 35 #this line and the previous specify the position of the formation (I assume)
pathName secondWave #enemy types (or images?) will come from this directory in the data folder
startAngle 25 #all enemies will enter at this angle
speed 1 #all enemies will have the same speed

#first enemy drops a bonus item
time 45
dropsBonus on
create redCrestDiver 1.670 30.000
dropsBonus off

#first wave of reds and yellows
time 10
create yellowCrestDecoy 3.573 25.878
create redCrestDiver 1.302 26.840
create yellowCrestDecoy 3.147 23.090
create redCrestDiver 1.076 23.473
create redCrestDiver 1.000 20.000
create yellowCrestDecoy 3.000 20.000
create redCrestDiver 1.076 16.527
create redCrestDiver 1.302 13.160
create yellowCrestDecoy 3.147 16.910
create redCrestDiver 1.670 10.000
create yellowCrestDecoy 1 3.573 14.122

Instead of reading all the parameters in every line, have working variables like "speed" that are set using simple commands and are inserted into enemy creation calls in your code.

If your format were more like that, I would jump on your offer in a second.

igame3d
2008.05.14, 11:03 PM
Seems for Galaga some kind of simply drawing tool would give you the loops and twists needed, except for the part where the galagian turns upside down.

Keep us posted, Alisa is still designing Midnight Mansion levels all these years later, high light of her youth.

ActionSoftGuy
2008.05.19, 09:24 PM
Instead of reading all the parameters in every line, have working variables like "speed" that are set using simple commands and are inserted into enemy creation calls in your code.

Hmm, that's a pretty good idea. Wouldn't be too hard to implement.

But that's only one file out of many that the designer has access to. There are path files too, that dictate ship movement. Below is an example:

------------

// A rapid zig-zag to the bottom.
setSpeed 0.6

right 5 angle 250 accel -0.02
straight frames 5

left 4 angle 140 accel -0.03
straight frames 5

right 4 angle 140 accel -0.03
straight frames 5

repeat 3

------------

There are many different files, each with its own commands. (Most others are just various variables/settings you can change on a per-level basis.) You are welcome to look at the game and experiment with it if you'd like. If you're serious about being interested if the Create commands are changed as per your request, I will certainly consider doing that. But you ought to look at the game first and see if it's something you even want to consider, because the Create commands are just a small part of it all. Email me if you want to have a look.

ActionSoftGuy
2008.05.19, 09:27 PM
Seems for Galaga some kind of simply drawing tool would give you the loops and twists needed, except for the part where the galagian turns upside down.

Keep us posted, Alisa is still designing Midnight Mansion levels all these years later, high light of her youth.

That's awesome, Bill. :-) Glad she has enjoyed it so much.

As for the loops and twists, that's done with the path commands, as per my previous post. Not as easy as a visual tool, but very powerful. There are lots of commands not shown in the short example here.