TaivasHippa, my first finished Java game project

This is “TaivasHippa”, a 2D top down plane shooter I made for a software development class in the university of Helsinki. I’m still a novice programmer but learning fast and I already shake my head at some of the code I’ve written for this game but there’s really no time to go back a lot to revisit the code.

I used SpriteLib GPL graphics in lack of better ones and sounds from freesound.org as credited in the game. The starting background is some random stock photo straight from Google image search and ran through some equally random Photoshop filters.

I intend to keep developing the game after the class is done, but the game will get a different name (namely an English one), I will bump the version back to 0.5 and recode it all using libgdx and use it as my first Android project (as well as my first libgdx test).

I know at least one annoying bug with the controls that I noticed on some (but not all!) Windows machines I’ve tested on but haven’t really had the time to take a look at it and I will probably have to leave it to the next iteration of the game.

Anyway, thought I’d let you guys take it for a spin as this is my first project that made it this far.
Download a JAR file (used to have a web start link but I broke it and can’t be bothered to fix it for now).

http://sakus.daug.net/java/img/taivashippa.png

Nice one! I think you should keep the name “TaivasHippa”, even though I don´t know what it means. Sound original… :slight_smile:

I couple of things: The fan on my macbook started up like a jetplane, and that means that the computer is working hard. In my experience it´s often because I haven´t put a limit on my fps, so this could be worth looking into. Should be an easy fix.

I think the plan would feel better it it didn´t break so hard when I release the “up” button. I belive you can loosen up the “damper” on the planes velocity a tad.

Finally, I found myself thinking the classic “Come on! I wasn´t even close” a couple of times when I crashed. :smiley: It´d be great if you fine tuned the collision detection.

Other than that, nice going! Simple and fun to play, that´s what counts! :slight_smile: You say you´re gonna rewrite it using libgdx. What have you been using now?

Thanks for the comments, I do have a timer there trying to limit the FPS but it was scraped together from example and tutorials and might not work correctly… I’ll have to take a look at that.

Plane handling and other such tweaks are probably the only things I’ll have time to go over any more as I’m about to turn the project over for evaluation and I do agree the plane slows down too fast… I’ll probably change that. It will make the game a tad harder as well as then you can’t prevent collisions as easily at the last moment.

Collision detection is a problem, I used to have a debug mode switch on the menu that turned on visual bounding boxes so you could see when you’re gonna collide but it’s disabled now. There’s an ellipse on the planes and collision is checked using those, makes it very inaccurate on the backsides of the planes.

It’s all pure native Java at the moment as I wanted to learn as much as possible by doing everything myself.

A quick thought regarding the collision ellips: How about using two narrow ellipses per plane instead of one? Like, one ellipse for the body and one for the wings? You would of course double the amount of checks, but on the other hand you should get a more precise collision outline… Just a thought. :slight_smile:

ps. What does “TaivasHippa” mean? :slight_smile:

Yep I thought about doing that for collisions, but the game was already starting to feel sluggish at times plus the deadline to get it done complete with full design documents etc etc is approaching fast so I made the choice to go with what I had initially managed to do. Definitely something I’d like to look at though, another item on the to-do list for the next version. Unless libgdx has some better collision detection stuff built in, haven’t really looked into it that much yet.

TaivasHippa is Finnish for “sky tag”… took me all of 45 seconds to come up with that one :slight_smile:

Good job.

Rectangle collision is probably fine.

I like the concept of turning instead of moving side-to-side, good originality. The explosion images should be modified however, right now it looks more like a “pop” than a “boom”. Try adding fire to the image.

Overall, quite good for a first game.

The problem with the explosion animation is that because of how I coded it, it doesn’t get to play fully before the object gets nulled when it’s an enemy plane dying… you can see the full animation when the player plane gets destroyed. It’s still plain though (it’s from SpriteLib GPL like the rest of the graphics).

I uploaded the final 1.0 version… this thing is done (unless I come up with something fancy and quick to implement tonight still as I have a demo session with the game at the uni tomorrow).

I tweaked the plane movement a bit, it’s not as quick to accelerate and slow down now. At the same time I added a slight increase to these values to the speed up bonus item (previously it only affected your maximum speed and rotation speed).

I also made it so that the explosion animation doesn’t cut off prematurely any more when an enemy plane dies.

Last, the high scores list is now actually populated with scores for the player to beat.

Have fun, thanks for the comments and suggestions and I’ll see you when version 2 implemented with libgdx is done 8)