Help! Game ideas

Well, in about a week I am heading into my senior year of high school, taking higher level IB Computer Science. We basically spend the first half of the year working on one project, the full design process from planning to testing. Well, last year in standard level I just did a simple pseudo-database program that was pretty boring (but I did learn a lot).

This year I want to have a lot more fun with the project, that is, make a game. I have worked on a few games in my spare time, but I would like a cool idea for this one and thats why I’m posting this. I am up for almost any genre (probably not a FPS or RTS because they would take a lot more time) or posssibly fusion of genres.

Please post your ideas, help me JGO ;D

Here are the mastery factors that the program must meet:

Almost any significant program you make would satisfy most of those criteria. If it didn’t, you could just add a couple.

1-3 are pretty much irrellevant.

To implement 4 AND 5, just write a merge sort method and find something to sort.

6-8 are pretty much standard in any Java program.

For 9, just store configuration information in a text file that you parse at startup.

For 10, I’m not entirely sure what they mean by “record-style”.

Obviously, I can’t say anything about 11-15 since it doesn’t say exactly what these options are.

If it were me, I’d just write some quick and easy program that satisfied the first 10 things on the list and then use my free time to program a game.

True, just showing I can’t do something trivial like pong

Its not really a “quick and easy” thing, last year my dossier was a bit under 80 pages (including code printout), and what better way to spend class time then making a game?

You’d be better to pick a game you’d like to write (that you think fits your timescales) then add features for anything you don’t cover in the your required “learning experiences” :slight_smile:

Something level based seems to fit the bill (due to the need to read/write configurations). Maybe something like a Bubble Bobble clone could be quite fun and easily scaleable. Sorting for sprites, hiearchy for AI and/or collision.

Re-theme it. Add features as time permits.

Kev

1 - 3 RandomAccessFile
Cant tell exactly. You could make some sick serialization / persistance for saving or for game data and read from a file. Maybe you have like 10 different enemies and read the values from a binary file. You use byte, integer and fixed length strings and write them. Each enemy might have a name of 10 chars (fill with space if name is shorter), hitpoints and armor as integers, etc. You need to read data in chunks, interprete it, seek for certain enemies, read only names, get hp from enemy XY. Unusual actions but might do it. But I dont know that much about Random Access File.

  1. Recursion
    A tree needs recursion. Trees can be used for collision detection, more precisely for space partitioning. Or pathfinding based on depth / breadth first search use recursion, or can use it. Planning multiple game steps can need recursion. You make a decision based on a current situation and give the new situation to the function, which takes this as new current situation.

  2. Merging two or more sorted data structures
    hmm, a hard one…
    One idea I have is some kind of decision making. You can match patterns and current situation to check for similarity. You can check goals against options to see what to do next. This is basically simple ANDing of bitarrays. Where situation is 1 and pattern / goal is 1, you get a 1 for a match.
    I just cant think of a typical application in general game progamming. I think it depends on details.

  3. Inheritance
    Have a general Game Actor class for all moving entities, and develop a player class and an enemy class based on Game Actor.

  4. Polymorphism
    Would be the same. When drawing the screen, you take everything as game entity, be it player, enemy, obstacle, etc
    But right now I am not 100% sure about what polymorphism really is by the book.

  5. Encapsulation
    I think this comes with good softwaredesign. Anything will do.

  6. Parsing a text file or other data stream
    Textfile Parsing often does it for saving levels in jump n runs or tile based levels. Just have chars for tiles.
    You can also read options or other configuration or ingame values in a key = value manner

  7. Implementing a hierarchical composite data structure.
    Best thing I can think of right now is a graph of complex elements. A precomputed navigation would be a graph where each node contains a navigation table, that could be a linked lists of target node and adjacent node that leads to the target node. A routing table. Can be implemented as graph of linkedlists. Building the routing table can use recursion.

  8. The use of any five standard level mastery factors—this can be applied only once
    I dont know this

This all feels like the game for the algorithm and not the algorithm for the game. For me best would be a simple 2d topdown view action / arcade game.
For example take a hero with a gun, some terrain with obstacles, some enemies. The levels get preprocessed to generate a navigation graph. Enemies use the graph for navigation. Enemies need to find cover behind obstacles and try to sneak upon the player or get him in the back.

At least this sounds like an easy 2d game for me, jump n run is out because it is to simple considering enemy ai and navigation. Space stuff is out due to lack of terrain. A side scroller or topdown shooter could work, or maybe a racing game or more something with driving in a city.

Hope it helps a little

-JAW

Thanks for the information :slight_smile:

Taking it all into account and still thinking of what to do

[quote]11. The use of any five standard level mastery factors—this can be applied only once
I dont know this
[/quote]
Didn’t post these cause they are very trivial things like “methods with proper return values” and “nested loops”

You could just try coming up with a simple gameplay idea and working out how to implement it but it is probably easier to work from an existing template.

Bear in mind that most games need a lot of artwork assets, which can take ages and detract from the time you have to actually develop your code so you probably want to work from something quite artistically simple. In fact, this makes me think you could probably do something quite interesting and worthwhile if you looked at a component rather than a whole game. You could look at content generation- as games grow more complex, any given game will need a lot more scenery in terms of terrain, buildings, furniture and so on- there are a lot of interesting things that could be done towards generating those. Could you make a rock generator that creates realistic rocks, for example? It sounds simple, but once you start thinking about weathering, erosion, generating the object and it’s textures, bump-maps, normal-maps and so on it can become as complex as you want it to.

Maybe some kind of board game. I had one easy idea once, I call it Rock Paper Scissors - “Chess”.
You have a chess board, 8x8 tiles, maybe more or less. You have 3 kind of units, Rocks, Papers, Scissors.
Each can “kill” one type and gets “killed” by the other type and can do nothing against his own type, just
like the Rock Paper Scissors game.
You can move 1 field any of the 8 directions. I dont know if its better to let a player move all units or just 1 per
turn. If 1 per turn, you need to mark moved units and force the player to move all units once before he can move one
for the second time. In other words, every round both players must move all units, but one at a time.

The goal is to kill all enemy units and keep your units alive. You need strategy and formations to
handle the 3 different types.

I have totally no idea if this works or sucks. Its just an idea yet.

-JAW

One of my better friends enjoys messing around with photoshop in his free time, a lot, so I usually get him to do artwork for me :wink:

Sounds like it could be pretty fun, nice twist on the whole checkers/chess board style

Ok, so problem: The IB graders supposedly HATE people who do games for their projects, the reasoning being that they think you are trying to avoid solving a real life problem ::slight_smile: :stuck_out_tongue: (I say I’m solving the problem of peoples boredom). So I don’t think I’m going to do a game for my in-school project, because it would suck to be marked down just for what I chose to make even if it was the best project ever, but I will most likely take some of these ideas and just work on a sweet game outside of school for now.

But they’ve given you the marking criteria right there, if you fulfil them, surely they have to max out all your marks?

In things like this I never trust to hearsay, see if you can get in touch with one of the graders or the board who handles it or whoever and ask them directly. I doubt they’ll have a problem - the vast majority of what they see will be such rubbish code anyways that a well-written and complete game will still be 90% better than most of what they have available to them…

One of the “cheif examiner” people has up on his website that he doesn’t like games (www.ib-computing.com), my teacher also emphasizes that games are not a good idea. The problem is the graders NEVER see an electronic copy of your program, all they have is a copy of the source and whatever screenshots you have in your dossier. I just think its safer to do it in my free time for now, start working on it in school once I get into college.

Doesn’t that imply that it can be buggy as hell and not even slightly work, as long as it’s got no obvious syntax issues? :o

Heh, that would be pretty funny :wink:

Your teacher checks to make sure your program works and they also go through some of your test cases