Noob Projects?

Hey guys

As usual I find its highly recommended/necessary to spend a substantial amount of time programming small and generally pointless things to learn and practice prior to starting anything big and interesting.

Since I am relatively new to Java and fresh off a crash course through the basics, I would really like to know if anyone has some projects they can suggest to me(Not necessarily tutorials, just ideas with a few main goals). Perhaps some things that really make use of everything that makes java unique.

Thanks in advance.

Try creating a simple battle simulator where a ‘good guy’ and a ‘bad guy’ are created, given stats, names, etc… and then forced to fight until one of them reached 0 health. After you get that working then try adding in simple controls for the user so that he/she can decide what the ‘good guy’ should do, then when that is working try and create a simple AI for the ‘bad guy’ so that the battles are a bit more varied and fun.

I’m currently trying this, but the AI is a bit of a pain.

Try making a platformer engine. Or a few.

By only making the engine, you learn how the engine works, but without making a full game and wasting time.

After that you could try again a few more times, adding more features and optimising until you have a good engine for a game.

Making small “useless” games 99% complete is WAY better than to make “engines”.

  1. You practice the art of actually finishing a game/application.
  2. The engines you make will be outdated immediately when you finish them because:
    a) You will have learned how to do something better.
    b) Someone else has made it better AND easier to use.
  3. No-one, not even you, will want to look at your old shitty “engines” or learn how to use them.
  4. Everyone, even you, will want to play your shitty game or at least take a quick look at it.

So, imho, make games/clones.

Making “engines” is premature optimization at its worst!

You fail to see my point.

I do not mean making an engine that can be reused.
I mean just making the engine of the game and a few bits of content to test the engine.

The engine is the easiest part of the game, and the part which is best for getting better at programming.

Making a whole game on your first platform engine is just going to frustrate you.

Worrying about finishing is a bad idea when you are trying to learn game programming.

I have three bits of advice:

  1. Learn stuff.
  2. Screw around.
  3. Have fun.
  1. Join the rest of us who pretend to be awesome while never finishing any games. ::slight_smile:

I highly disagree with that.

You’d rather build a small car that barely moves, than to build 30 car parts without even knowing what exactly a car needs.

You’ll never know what you need in an engine if you have never made a game. Think of when you first tried writing a game, you had no idea what a spritesheet was, nor what a “game tick” was.

My advice is to make small game clones. Pong, then space invaders, then pacman. You will notice that will start reusing some parts, and that might become your engine.

Then make World of Warcraft.

Actually the more you screw around the more you learn.

  1. Have gut to do something
    2-99. Screw around
  2. dance

Thanks for your replys guys, I have a better idea what to do now,

As said above I think I will start with pong, and learn all that business, I think a good short term goal might be to replicate the core gameplay elements of that old game Graal, just the walking around and stuff :slight_smile:

Hah. If you do, don’t make it subscription :wink:
Replicas of old games are a very good idea because the art is usually already online and you have game behavior/rules already defined for you, not to mention a level of polish to compare your own game to.

You are awesome, but I’ve never seen a complete game from you :frowning: Would be cool, since it looks like you could create the next BF3 with your knowledge and skills ::slight_smile:

Take a ready-to-use library like libgdx, set up a game skeleton, put a sprite on the screen and let it move according to key presses.
Then start to make your own clone of any simple game like Tetris or Breakout.
Then go further and do something with a scrolling playground.
Then try something with simple game AI.
Buy good books for the basics of (good) programming.
Learn, learn, learn.
No engine please, a noob just cannot do that, no matter if reusable or not.

BF3? They can’t even get their MSAA right with HDR. Don’t compare me with them! ;D

The Holy Trinity: Tetris, Pacman, Breakout

Substitute any or all by whatever classic game you’d like.

Screw around with Console(as in text-based) Games, just to get the feel of making a game(not concerning yourself about graphics or sound),
then move on to Java2D(or similar, libGDX, slick, etc.),
then you can move on to learning OpenGL and make a OpenGL Accelerated 2D games with basic sound(OpenAL),
and finally move onto 3D(OpenGL).

But don’t get to excited, this is not a small learning curve.
It will take time and dedication to get from start to finish…

Good Luck ;D

I’ve been somewhat successful with making clones of old games to get into Java game programming:

  • Breakout
  • Trailblazer
  • Boulder Dash

Just something simple, which you like(d) to play.

Wait whaaaat?! Explain this now! :o

I think a “true” game engine is something that doesn’t have anything gameplay and game content related, and handles only broad systems(like collision, networking, etc). So, by definition, it would be a pretty dumb idea to create an engine for a noob project. All you want is a small little game.