cLevel 50 Ranger

After my last character in Angband died, I was a bit depressed. It had taken a long time to build up that character. I can no longer remember how he died. It was probably some double poison breath from some monster. Whatever the case, I was not in the mood to play Angband for a while.

Then I got a good idea. What not let the Borg build up the next character for me? Then I could choose a race and class which cause a high experience penalty. That's no problem for the Borg. It has unlimited time to knock out experience points galore.

Now the Borg is not perfect. There are times when it causes my characters to die. I have found that the deaths happen quickly. But once a character is a bit established, the Borg is more conservative in the long run. So I let the Borg run for a few times each night. Before long, I had myself a character level 50 High-Elf Ranger with a bunch of goodies to show.

Here is the equipment my character is wearing:

The Lance of Eorlingas (3d8) (+14,+21) (+2)
The Long Bow of Bard (x3) (+17,+19) (+2)
a Malachite Ring of Speed (+5)
a Malachite Ring of Speed (+6)
a Ruby Amulet of Wisdom (+2)
The Star of Elendil
The Full Plate Armour of Isildur [25,+25] (+1)
The Cloak 'Holcolleth' [1,+8] (+2)
The Small Metal Shield of Thorin [3,+25] (+4)
The Hard Leather Cap of Thranduil [2,+15] (+2) {BlndESP}
The Set of Cesti of Fingolfin (+10,+10) [5,+20] (+4)
The Pair of Soft Leather Boots 'Dal-i-thalion' [2,+15] (+5)

A Review of dL1

I was reading the development USENET newsgroup for the 7 day roguelike competition. There was a link to a review site for the games entered. I was curious as to what would be said about my game. So I read the review on dL1.

Here are the things listed that I need to improve:

1. Provide batch file to launch game
2. Prevent inaccessible locations on map
3. Have monsters attack you if you go near
4. Give some progression if you clear the map
5. Make the game winnable

In essence, the reviewer wanted the game improved from the viewpoint of a player. That sounds like a reasonable request. The goal of my entry was to get something that worked. On that I succeeded.

So let's call the version I entered v1. Now it is time to produce some incremental releases that address the concerns of the reviewer that I want to correct.

7DRL Winner's Circle

The results of the Seven Day Roguelike Challenge for this year have been announced. There were a total of 45 challengers (myself included). Of those, 25 were winners. My entry dL1 was listed in the winner's circle. To the left is the challenge medal for this years winners.

It is not impossible to win the 7DRL challenge. You only have one week to code up a game. That part is difficult. But to win you just need to produce a rogue-like game that works and is playable within the week long time period. Don't get me wrong. That is no trivial task. However if you set realistic goals, you can achieve success.

I wonder if I will be around next year to enter again. It is my hope that I would have gained more Java programming skills. Perhaps it is time to study up on different things like level generators, lighting, and monster AI to be prepared. It is all good fun.

Roguelike Challenge Completed

I figured out how to distribute my game including the libraries and run time files it requires. Since I was in the 7 Day Roguelike Challenge, I posted the following declaration on Usenet group rec.games.roguelike.announce:

I completed my 7DRL entry dL1. It was written in Java and made use of libjcsi for input/output. It requires Java 1.6. You can get it at http://h1.ripway.com/gifcom/dL1/dL1.zip

Launch the game by typing "java dL1". Move around with the keypad. Numlock must be on to move diagonally. Press "q" to quit. Grab some gold. Attack young dragons. That's about it.

This is only my second real Java program. I am in a Java programming class at college. Read all about my 7DRL week on my blog http://legend-angband.blogspot.com/

- Legend of Angband

Adding the Credits

I just finished adding the credits to my 7 Day Roguelike "dL1". There was so much more I wanted to implement. But there comes a time you need to turn in your work.

Now I need to figure out how to distribute this application. Being a Java novice, I am not so sure about what you send out. It is not like the Windows world where you ship an EXE and maybe some DLLs.

I will figure this out, post it out there for the world to see, and declare it a success. If nothing else, I learned a lot of Java programming skills. And I think I learned a little of the basic game mechanics at a coding level.

Multi Hued Dragons

I got a little bored always fighting young red dragons. So I decided to add a little color to the mix. It was not hard of a change. Now every monster has a different color. They are all still young dragons. Perhaps I will also try to sneak in some other monster types. Dragons are a bit hard for a first level player.

Another change I recently added was one where the monsters (in my case the dragons) pick up gold. Before they would refuse to even touch the gold. They treated all gold locations as wall. But that is no more. After a dragon moves over some gold, the gold goes away. And unlike other Roguelikes, my monsters do not drop treasures yet. So much to do. So little time.

Monster Movement

Previously my game dL1 had some problems. You could hit monsters and they would hit back. But if you ran away, the monsters would just sit there. That's not too realistic. Now I implemented monster behavior where the hunt you down if you start up a battle with them. I still need to put in some checks to randomly wake up monsters so they engage you.

It is getting about time to wrap up my development. The week long Seven Day Roguelike Challenge is almost over. I really should stop development of the game mechanics, put on a little polish, and package my game for release. But you always want to add a little more. My worry is that if I add something, I might break the working game have have nothing to show.

Here Come the Monsters

I stared implementing monster opponents in my game dL1. They are all young red dragons. When you attack them, the take damage and attack you back. However they do nothing if you leave them alone (even after engaging them in a battle).

The next logical step is to get these monsters to fight back once they are disturbed. They should also follow you if you flee from them. If I were to really get cocky, I guess I could let them breath fire on you. However I need to take it one step at a time.

I figure I will need to start wrapping up my week long 7 Day Roguelike development. I need to ensure I know how to deploy this application so others can enjoy it. There needs to be a little more fluff like a splash screen on startup. Maybe I could put an easter egg in there before I release it as well.

Subtle Tweaks

Sometimes a couple small changes can make a big difference. The dungeon maze in my game dL1 shows a lot of walls. That was a little hard on the eyes. I softened that by changing the wall color to gray.

The maze is randomly generated each time. That is normally a good thing. However sometimes that meant the character started out stuck in a wall. This seemed uncivilized. So I made sure to choose a random starting position for the user that was not in a wall.

Finally I had quickly coded up a gold counter on the right of the screen. However it only displayed an amount as soon as you first grabbed some gold. Now at game start I show you have 0 zero pieces. It was not a big deal. But I like to add polish. Time to stop with these baby steps, and figure out how to add monsters that are "smart".

Maze Technology

My new game dL1 is progressing slowly but surely. I was stumped for a while about how to make a maze. Even a simple one seemed difficult to implement. I think my problem was that I was trying to do too much all at once.

So I retreated to a room with just a pad of paper and a pencil. I went through the steps of an algorithm to draw a maze. Then I started implementing the algorithm. I did it one step at a time. And before I even finished, the maze looked good enough to declare that some progress was made.

If I had unlimited time, I would fully implement the complicated maze algorithm that I envisioned. However there are only a couple more days to get this program completed. So I think I had better move on to creating some monster opponents for you to do battle with. That also seems very complicated. Now it is time to start breaking that task down to smaller pieces.

There's Gold in This Dungeon

Now that I am no longer struggling with the user interface, I am adding basic features to my dL1 game. Here is a big one. When you press the directional keys, your guy moves on the screen. And he does not walk through walls. That's a good thing.

I decided to add some gold in the dungeon. It needed something. There really isn't a maze set up yet. Guess what? I colored the gold yellow. Yeah I know. That is just plain crazy. There is even a counter that shows how much gold you have amassed.

The next decision is pretty simple. Do I add some monster enemies first? Or do I try to draw a better maze for the dungeon. The sky is the limit now. There are about 5 days left in the 7 Day Roguelike Challenge. Things are lining up for me to get a game that at least runs.

User Interface Progress

There is some good news. I read a comment or two from my previous blog. The poster recommended I not use an applet to display my dungeon. A recommendation was made to use libjcsi to do my output. In 10 minutes I got a sample demo running.

An hour later, I have my Angband town like perimeter. I also have the user symbol (@) displayed in the middle. It might not look like much progress. However my previous user interface had some subtle problems. There were spacing issues when drawing the user symbol. Now everything is lining up.

The next step is to figure out how to capture input from the keyboard. If I can do that, perhaps I can get the user to actually move. Yeah I know that does not seem impressive. But it is a giant step forward for us beginning Java programmers. Props to "SZDev - Slash" for the helpful hints. Some day I will return the favor.

dL1 Screen Shot

I have started writing some code for my 7 Day Roguelike entry dL1. The outline of the first level of the dungeon is visible. I might have a slight vertical spacing issue to deal with. And I tried making the user appear in the dungeon as an "@", but I had trouble erasing the character. There was also some trouble aligning the symbol at the correct location.

But this is at least a start. Now if I can just solve my spacing issues, and figure out how to erase a character on the screen, we might have a character moving around a little bit. For now I am think I am going to call it a day. I have about 5 days left before the contest is over. That seems a long way to go. At this rate, I will be happy if I get a character running around the dungeon and picking up things.

Challenge Accepted

Good news. I have decided to enter a 7 Day Roguelike game development contest. That means I have 7 days to program a game like Rogue. To make matters more difficult, I am going to write it in the Java programming language, which I am just starting to learn.

This should be good fun. My game is going to be called "dL1". It will be a 1 level dungeon. If I get the basics working, I shall try to get a dungeon level which extends indefinitely in each direction. I also plan to give the player a lot of great artifacts early.

I posted my intention to compete in this contest. You just need to add a post in Usenet group rec.games.roguelike.development. My post is there. The journey now begins. I will post screen shots of my progress here on my blog. Good luck to me. I will need it.

RogueLike Challenge

This Saturday marks the beginning of the 2009 seven day roguelike challenge. This is a contest for programmers to develop a usable Rogue like game in a total of seven days.

That sounds like quite a challenge. It might take junior programmers more than sever days to get the town level working. Forget about a complete game.

Here is the real crazy part. I am thinking about entering this challenge. I love Angband. And I have often thought about writing a version myself. This might be just the spur I need to get things going.

This is a busy week coming up for me. However every week is busy. To add to the insanity, I thought I might try coding the program in Java. I am in the middle of learning the Java programming language through a college class. Good luck to me. I will know whether I will enter this contest by the weekend.