Game Programming and Development Tools

Try my game – believer

Believer

Member

Posts: 80
From: British Columbia, Canada
Registered: 01-30-2001
I've uploaded an early version (meaning not even BETA quality yet) of my first attempt at writing a game in Java. It's a breakout clone with a "Joshua @ Jericho" theme. This not only my first game in Java, but it's only my second attempt at writing anything in Java (third if you count "Hello World" :-) so please be nice...

From a coding point of view it's mostly finished. Just a couple of tweaks, a handful of additional "goodies" (powerups). Then the bugs that people will no doubt discover...

It needs more/better wall designs, but that part's easy. Currently it has three wall patterns (just test ones). Some bricks take multiple hits, some break with a single hit. If you get to level 3 you'll see steel bricks that can't be broken. Although none of the levels use it yet, bricks can also have armour on one or more sides (meaning you can only take them out from particular angles).

Currently there are three goodies (multiball, +500 points, free life). I have a list of about 15 more I'm adding.

It has sound effects. Some of these I'll keep, some need replacing.

It has a demo mode - when it gets to the title screen just don't do anything. It will (after about 30 seconds) start playing by itself. It will toggle back and forth between demo mode and the title page until you hit a key to start your game.

Press a key/mouse button to launch a ball. Move the paddle with your mouse. Hit 'p' to pause/unpause the game.

The biggest thing it needs is better artwork. The title page is nothing more than text at the moment. It has a single lame backdrop for the levels (there needs to be more of them). The bricks are just rectangles right now, I'd like to replace them with images that look like rocks/bricks/etc. I think the balls are ok (they are music notes). The paddle is a little lame - it's supposed to be the bell of a trumpet. Goodies need tweaking, etc.

Anyway, here's the URL:

http://christian.net/games/jericho

You'll need the Java 1.4.x plugin. Your browser should prompt you to install it if you don't already have it.

Mark

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

InsanePoet

Member

Posts: 638
From: Vermont, USA
Registered: 03-12-2003
Hey, need any help?

------------------
"I find myself a desire which no experience in this world can satisfy, the most probable explanation is that I was made for another world!"
-C. S. Lewis

Believer

Member

Posts: 80
From: British Columbia, Canada
Registered: 01-30-2001
Well, I need more level designs. Those are easy. The walls are 15 bricks wide by 10 bricks high. You can have steel bricks (indestructible), armour-protected bricks (one or more sides are protected), and bricks that take anywhere from 1 to 8 hits before they disappear. Brick colour/image is completely independent of the type of brick.

Or, if you're an artist I could really use a few graphics. Mainly the title screen and a few backdrops. These can optionally have animated parts (like a waving palm tree, moving clouds, whatever).

I'll accept level ideas/designs from anyone, but I want the graphics to have a consistant look to them so I'll probably have to restrict it to a single artist (I haven't got anyone yet though).

And of course I'm interested in ideas (special brick types, ideas for more powerups, etc.).

Mark

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

InsanePoet

Member

Posts: 638
From: Vermont, USA
Registered: 03-12-2003
I can make you some bricks if you need them.

------------------
"I find myself a desire which no experience in this world can satisfy, the most probable explanation is that I was made for another world!"
-C. S. Lewis

Gift
Member

Posts: 85
From: Palatine, IL, USA
Registered: 02-11-2001
Nice Game,
I did a little first game like space invaders, using 1.3 and then stoped using Java for a long time how is 1.4?

How did you do your colision detection? Do you monitor every block or only those that are posible to colide with?

Love in Christ
Gift

Believer

Member

Posts: 80
From: British Columbia, Canada
Registered: 01-30-2001
quote:
Originally posted by Insanepoet:
I can make you some bricks if you need them.



Ack! Thanks for the offer, but I stayed up all night making new bricks myself. Should've waited :-)

I'll be uploading an updated version (better bricks, some more levels, and more powerups) tonight or tomorrow.

Mark

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

InsanePoet

Member

Posts: 638
From: Vermont, USA
Registered: 03-12-2003
Hey, I think i can improve the horn a bit.

------------------
"I find myself a desire which no experience in this world can satisfy, the most probable explanation is that I was made for another world!"
-C. S. Lewis

Believer

Member

Posts: 80
From: British Columbia, Canada
Registered: 01-30-2001
quote:
Originally posted by Insanepoet:
Hey, I think i can improve the horn a bit.



Ok. It needs to be 40 pixels wide by 20 pixels high. There also needs to be a 60x20 and a 20x20 version (for large/small paddle modes). 256 colors,
no antialiasing around the edges (it needs to be displayed over various
backdrops of different colors).

Mark

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

Believer

Member

Posts: 80
From: British Columbia, Canada
Registered: 01-30-2001
quote:
Originally posted by Gift:
how is 1.4?


Wouldn't know what to compare it to since I've never used Java before, but I kind of like it. It's perfect for web games like this. Don't think I'd use it for a "serious" stand-alone game (not one that needed any serious speed that is).

quote:
How did you do your colision detection? Do you monitor every block or only those that are posible to colide with?

When I move a ball, I check to see if it's within the large rectangle that encompasses all the bricks. If it is, then I divide the X by 15 and the Y by 10 to get a specific brick in the 2d array, then I check to see if that brick has any hits left. If it does then it's a hit. Never need to test more than one brick (unless there are multiple balls of course).

Mark

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

InsanePoet

Member

Posts: 638
From: Vermont, USA
Registered: 03-12-2003
1. Ok, i can get you cooler bricks if you'd like
2. Bug #1: if you move the mouse of the game screen, you can't move the paddle until you go back.
3. I'm gonna modify your horn.

------------------
"I find myself a desire which no experience in this world can satisfy, the most probable explanation is that I was made for another world!"
-C. S. Lewis

InsanePoet

Member

Posts: 638
From: Vermont, USA
Registered: 03-12-2003
I can't seem to find the paddle files in my temp folder.
Can you send them to me
InsanePoet01@yahoo.com

------------------
"I find myself a desire which no experience in this world can satisfy, the most probable explanation is that I was made for another world!"
-C. S. Lewis

Believer

Member

Posts: 80
From: British Columbia, Canada
Registered: 01-30-2001
quote:
Originally posted by Insanepoet:
1. Ok, i can get you cooler bricks if you'd like


Sure. They must be 32x16 pixels, 256 colors. I'll consider them, won't
promis I'll use them (but I probably will).

quote:
2. Bug #1: if you move the mouse of the game screen, you can't move the paddle until you go back.

Not a bug. That's the way Java works. If you move your mouse off the applet the mouse events are no longer sent to it.

quote:
3. I'm gonna modify your horn.

I made a mistake. The horn is 50x20 pixels. I also need 70x20 and 30x20
versions.

You can grab the horn at http://christian.net/games/jericho/paddle.gif

Mark

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

Believer

Member

Posts: 80
From: British Columbia, Canada
Registered: 01-30-2001
Ok, I've updated the online copy. This version has my new bricks, more sound effects, more powerups (ball blocker, x2 points, x3 points, and powerball). Also fixed a few bugs, upped the frame rate, and made the balls get faster over time, etc.

Still needs better artwork (including the new powerups, which are just blue squares right now).

Mark

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

InsanePoet

Member

Posts: 638
From: Vermont, USA
Registered: 03-12-2003
i'm still working on the horn.
Maybe the powerups should be in an orb or something.

------------------
"I find myself a desire which no experience in this world can satisfy, the most probable explanation is that I was made for another world!"
-C. S. Lewis

BenjaminBenz

Member

Posts: 15
From: timbuctu, Alberta, Canada
Registered: 12-22-2002
Hey, I thought that JAVA was a Web based thing. Info please!

------------------
:-)Boss Benz:-)

CobraA1

Member

Posts: 926
From: MN
Registered: 02-19-2001
Believer: Looks nice.

Gift: Java 1.4 includes "assertions" that I've yet to try out. They've improved the runtime speed somewhat also. I'm not sure how much faster than 1.3, bit it's defnitely much faster than 1.2 and below! You can probably get a more complete list of changes at java.sun.com .

Unfortunately a lot of people might still be using 1.2 and below and not know it - detecting the Java version is always a good idea for any program.

quote:
Wouldn't know what to compare it to since I've never used Java before, but I kind of like it. It's perfect for web games like this. Don't think I'd use it for a "serious" stand-alone game (not one that needed any serious speed that is).

You'd be surprised. Tried the hotspot VM yet (if you're using JRE 1.3 or above or the Java 2 SDK 1.3 or above, you've got it)? In any case, most of the graphics stuff should be done using hardware if possible. I'm not sure what Java does for 2D, but 3D using Java3D or OpenGL for Java is hardware accelerated. Using threads might help - this way something that's processor intensive need not interfere with something that requires little processor time. You will have to watch for things in one thread that affect the other one, though . . .

Later, after some research:
-Java 2D in 1.4 and above is much faster, and includes hardware acceleration - see http://java.sun.com/j2se/1.4/docs/guide/2d/new_features.html

Sun has a few articles on optimizing Java programs, and other articles are available on the Internet. I forget where they are, though - I'll have to do some more research.

Good programming practices, good data structures, and good algorithms are always better, regardless of programming language! I'd rather use an algorithm that runs O(n) time in BASIC than an algorithm that runs O(n^2) time written in fully-optimized ASM!

quote:
Hey, I thought that JAVA was a Web based thing. Info please!

Java is a full-fledged programming language, just like C/C++. Initially, it was interpreted, but now it's compiled at runtime (static compilers are rare, but available). Modern VMs, such as Sun's hotspot VM, will even do optimizations while the program is running.

Although you see Java in applets a lot, its true power lies in the ability to make standalone applications. With the standard libraries alone, you can easily make any type of application you want.

Applets are limited compared to apps, since they have extra security measures to protect the user's machine from potentially harmful applets.

CobraA1

Member

Posts: 926
From: MN
Registered: 02-19-2001
The first level takes a while to complete - the note moves rather slowly. Pausing the game while the mouse is outside the applet is nice.

. . . although it makes it easier to cheat - you can make the trumpet move instantly by sliding the mouse off the bottom and back on somewhere else . . .

[This message has been edited by CobraA1 (edited December 22, 2002).]

Mack

Administrator

Posts: 2779
From:
Registered: 01-20-2001
Pretty neat little game! I thought it was humourous and tied in well with the Biblical facts your basing the game off of (horn, note, wall, heh ). How about a powerup where you blast off a huge amount of notes, destroying a good section of the wall?

------------------
It's not seeing is believing, it's believing and then seeing.
http://www.twoguyssoftware.ca