Does anyone have any ideas for an assignment in game programming?
Much li开发者_JS百科ke the author of Give me an assignment in C, I'm looking to learn game programming and I learn best by doing, but I don't have any good ideas for games to program which will teach me the skills and for whom the graphics are freely available.
I have written a basic pacman game but apart from that I haven't done any other games.
Ideally I would like 2-3 or more assignments, each more advanced than the previous one, so perhaps the first game would be something very basic, the next would be more advanced, and the 3rd even more advanced, and so on.
I want to use Java applets as the platform for the games, but that shouldn't matter too much, most games which can be written in C/flash etc should also be translatable to java.
Thanks
Make a basic "run away from the monster for as long as possible" game. Then:
- Add path planning, so the monster can follow you through through a more complex map.
- Add multiple monsters. For bonus points: add swarming behavior, bosses, monster generators, and rival monster clans.
- Add multiple players (and some client bot programs to test things).
- Add power-ups.
- Add guns, so you can fight back.
- Add a plot - you need to collect a number of items to defeat the monster.
- Make the environment modifiable.
- Modify the physics engine (acceleration, etc) - does the monster need better AI?
- Port the graphics to OpenGL, but leave the game mechanics 2D. I hate 3D game mechanics (except simulators and shooters).
- Move the game mechanics to 3D, and destroy the simple game-play. Sigh.
- Add vehicles.
- Add allies.
- Add levels, skills, and other RPG stuff (so the losers who play for 12 hours a day will win).
- Add proceedural content generation.
Just fire up your closest console or handheld game system and open one of your favorite games... inside you'll probably have mini-games, just go ahead and try to duplicate one of those.
In Bioshock there was the "hacking" mini-game, in Phantom Hourglass there was the salvage mini-game, examples are all over.
Most of these mini-games have fairly simple mechanics, you should be able to implement the basic functionality very quickly. Most of them also have a high level of polish, so you can spend time trying to get your copy to behave correctly. For example, a first-pass of the salvage mini-game would have 1:1 control... later you could add physics to make the control be a little sloppier and the game more challenging.
Just look at the games that you enjoy and try to copy, then eventually improve them.
Being a Computer Science Student, we actually were given game creating assignments! :D
You should try implementing features of a game before implementing a game. I spent a lot of time building my own framework before i actually started on a game.
Try things like:
- Making an object fall with increasing speed (Simple physics, enough for a 2d platformer)
- Make a character that can shoot a bullet
Then combine both:
- Make a grenade launcher that shoots grenades affected by your simple physics.
Then get even more advanced:
- Make the grenades detonate. Perhaps after a few bounces? Perhaps using a remote detonation button? Colliding with an enemy?
This is the sort of methodology I use when creating games. Start small, make each feature work with each other, then combine features for the actual game mechanics you want! :D
You can try Game of Life which is a very good example of coding state machines. 3d Rubik's Cube would be fun too!
Since you already wrote pac-man, why not write a 3D multi-player pac-man game.
I Would go for a 2D Platform game, and then for a 3D Game.
In an advanced Functional Programming course we were assigned to write a Rogue-like. The reason for this is that there is a lot of documentation to be found about the algorithms used. You can make it as hard as you want. You'll learn a lot about algorithms, AI writing (again, you can make it as hard as you like) and game rules without being distracted by creation fancy designs for your interface.
Why do you want to learn game programming, if you don't already have games that you want to make?
Other game ideas could include:
- Breakout/Arkanoid
- Tetris
- Space Invaders
- Frogger
- Artillery/Scorched Earth/Worms
But game programming is more than just replicating gameplay. If you want to learn, consider approaching some of the following aspects, whatever game you're making:
- Sound and music
- Pause functionality (including keeping the music playing)
- Discrete game states (eg. loading screen, menu, game play, game over)
- Dynamic resource management (only loading what you need, when you need it)
- 2D GUI with labels and buttons at a minimum
- Reading settings from a data file
- Ability for user to rebind keys to actions
- Save/Load game state
For a starting console game, few things beat Nim. Why? It's basic game strategy + AI programming + math skills
I'm guessing since you already programmed a basic pacman game you already know important things like double buffering. For the next project you could advance to more complex game worlds which require collision detection and simulation of a lot of NPCs. For example, a simple racing game to learn more about handling user input, detecting collisions, a simple AI for the opponents and, of course, a little gaming-physics.
Here's two ideas for basic games:
- The "Memory" Game - tiles of pictures that you turn over to find a pair
- 8 Tile Puzzle Game - the one where you slide tiles around until they make a picture
Write a simple 2d top down view game where you control some aircraft and have to avoid infrared guided missiles by making them collide into each other, shooting them yourself, or using decoys. The missiles (and your aircraft) should go in curvy paths so you'll need to use some trigonometry to make things look nice. You can add all sorts of things like power ups, new types of missiles, other ships, better tracking AI, etc. You could also make it 3D or multiplayer.
Create a little inventory engine. This is a useful bit that is vital to any number of game styles
Space invaders is a good game to go with, that was the first graphic project we coded in my CompSci class.
Design Three Card Game.
A card deck has four types i.e. Spade, Club, Heart & Diamond. Each having 13 values.
Design an algorithm to randomly pick 12 Cards.
Distribute the picked card to 4 Different players.
Display the name of Winning Player
Ranking of the cards from high to low
Aces are ranked the highest and 2's are the lowest
Trail (three of a kind)
Pure Sequence
Sequence
Color
Pair
High Card
精彩评论