Feel free to Ask a Question at the bottom of this page. I will respond as soon as I can. You are welcome to post anything related to programming, site improvement, or anything else.

Mazes of Misery Java Game (JavaSE-1.7)

I appreciate your patience as I work to release this game (demo) to be played online soon. The Applet is still not working yet. I have uninstalled Java 1.8 and even tried Java 1.6. something is not right. Will be working on this again later. If anyone has any suggestions, I'd be welcome to hear them.

About a month ago I dabbed into learning Java LWJGL, dreaming about a day where I can provide real-time playable online games on this page. I realize I was spending a lot of time talking about code and games, but very little to show for the work. So stayed tuned as I continue to work on the logic and path of this game. The nice thing is though, it was already created before. So all I have to do is transfer those features to this version.

Download Mazes of Misery Free Java Game (jar file)

The game can now be downloaded here as a runnable jar file. You will likely need to install Eclipse to get this working. Please contact me on Youtube or in the Contacts area on this site if you have any difficulty. Finally I'd like to hear your opinion of what you think of it so far. Remember it is not complete yet, so this is a beta version.

The game is also now running a little more smooth (after some revising of the render() method) so I have updated the old jar file with the new one. It is recommended to download it again. The new jar file also contains the water animation.

Download Mazes of Misery

Download Mazes of Misery Java Project (Source)

I have also included the complete project for download below. All credit is going to Indie Developer for such an outstanding engine. Feel free to build your own worlds and lets share ideas together.

Download Mazes of Misery Source code


c# loops

Mazes of Misery (Java LWJGL)

This game was originally developed in Qbasic back in 2005. This game will now utilize full screen scrolling, animation, and a very similar, complex maze. Unlike the Qbasic version, this will will come with it's own sound effects and music.

My goal is to eventually create a runnable Java App where it can be played here on this page and down the road I plan to possible create a Android version for the Google Playstore. Time is everything and we will see what is unveiled later.

Mazes of Misery (Java) (Qbasic version)

Below is a screenshot of the original Qbasic version. c# loops

Mazes of Misery (Java LWJGL)

c# loops

The Java LWJGL learning curve

I've been hard at work on learning Java LWJGL. Consider the fact that I had very little knowledge of Java (besides a course in college) and have been spending a large amount of time learning from online YouTube videos and google searches. Java LWJGL comes pack with quite a large SDK and you can create both 2D and 3D game environments.

Game Update (Mazes of Misery for Java)

I've modified some of the tiles (including the game character) as seen here. Also the player can now pick up key(s). The next goal is to create the ability to unlock doors. To date when the player picks up a key the doors disappear, but the game still thinks a wall exists and won't allow access through that barrier. I will keep working on this.

There is now a display health counter (shows as hearts at the top) and a score keeper.

You will also notice that the game console screen has been minimized. This was done in order to fit it into a webpage Applet. However I have yet to conquer Applets. So that will be later (hopefully). :)

c# loops

Paint.NET (Graphics Editor)

To create the game tiles I use 4.0.2. It allows you to easily draw, color, shape, animate, create effects, etc. The game tiles are recognized by utilizing Java's getSubimage constructor which loads in a BufferedImage (copy of a sprite). When I find time I will try to expand this into a mini tutorial. I learned LWJGL from a YouTube channel called Indie Developer.

Here is his Java/gaming channel


Java Game graphics

Following below is a screenshot of some of the game tiles in use currently. These are 16x16 in size. They are called with a command such as door_1 = blocks.getTile(50, 18, 15, 15). The first 2 numbers (50,18) represent the x,y positions in 2D space. The last two numbers (15,15) represent the size of that tile (15x15 for the width and height).

c# loops

Java Game map

Seen below is the tilemap of the game. It ranges 100x100 in size. Each color represents an area for a different object (door, key, spider, etc). The gray color is for the brick walls as seen in the screenshots above. Collision detection is identified by finding out which color a player is intersecting at a Point (x,y) location.

c# loops

Java Game update - 4/23/15

The game collision detection is now working to a science. I figured out the only way to freeze a Point x,y position and unfreeze it was to set true/false returns in a constructor. I'll talk more about that later, but I'm happy to say that now the player can use keys to open doors and go beyond impended walls in the game. The original concept was for a player to locate a key within a close geographical, cooridate range and that key only will unlock the key in that proximity.

In the revised version, the doors will be numbered by colors and can be unlocked by a key of the same color. This makes it more fun since the game will involve the player searching the correct keys to unlock doors. I think that is which contributed to repeated gameplay when I released it online back in the 90s.

c# loops

Java Detailed graphics - 4/25/15

I realized the game lacked more graphic objects and a darker look so I started working on some more game tiles. The chests now look more 3-dimensional. I also added ladders and stalagmites for the ceilings. The background has also been darkened to create a more gloomy feel. I also created a base around the player game stats to create that Nintendo look.

Stats Update

The game now keeps an accurate score counter, tracks how many keys you are holding, and displays the player's health condition (Player Status).

When you find a treasure chest the game will randomly select from a number of items that are inside such as gold, potions, antidote (for spider bites), health pills (to replinish your health), rusty sword, poison, and a dagger currently. Some of the items are fatal such as the poison. The other items accumulate the player's score.

Java Animation

There is also now animation frames for the dangling spiders. However currently this is really lagging the game. I will continue to work on a solution for this. I am certain it has something to do with the rendering state.

c# loops

Java Color coded doors

The doors are numbered in the game and the color of the number matches that key. In other words if the door has a yellow 1 on it then the yellow key unlocks that door only.

Java New screenshots - graphics detail - 4/26/15

I spent nearly all day adding new graphics such as starry skies, sunny skies, mountains, etc. This has been too much fun.

c# loops

Java Game tiles

Listed below are all of the game tiles I have designed to date. To have a fun game it is necessary to enhance the tile's detail. This is done by altering the color shading. Using the color picker in Paint.NET I am am to quickly locate a color then using the RGB color controls I can change the RGB (Red/Green/Blue) colors to blend a color so it looks better.

A great tip I'd like to share for detailing graphics is to search google for a 2D game image (Nintendo, Commodore 64, etc). Then try to replicate this picture in Paint.NET. This has helped me create some of the game graphics.

c# loops

Object Animation in Java

Animation is performed by drawing tiles side by side and slightly shifting the pixels. The way I did this with Paint.NET was to copy the first drawn image and then paste it slightly to the right. Then copy the other side that contains the missing pixels. Keep doing this until the image is completely redrawn in a new position. This was the effect I used for the water illusion.

c# loops

New title screen

Recently I added a new title screen background and centered the startup menu buttons. There is also a little intro sound effect too (gong sound).

c# loops

New game background

The game now includes a starry, mountaneous background that replaced the old tile starry look. This one provides a better illusion to the game.

c# loops

Comment Box is loading comments...
Privacy Notice: Programmer Mind will not compromise your privacy