JSRL Version 1.3

Previously I had mentioned that my game JSRL did not work right under the Google Chrome browser. Yes it was true. But all that is a thing of the past. I just released JSRL version 1.3. And I fixed the Chrome bugs.

The layout of the game did not look well in the Chrome browser either. That got fixed as well. Functionally I added a bunch of different monsters in the game. I have not rebalanced the game as a result yet.

Here are some tough monsters I added to the game: basilisks, minotaurs, rocs, vampires, beholders, golems, liches, and nagas. There are also some other new monsters that are easy to beat like skeletons, orcs, and ogres. Next time I want to try to add a town level to the game.

Chromed

I had a friend do some testing on the latest version of my roguelike JSRL. She said some of the new graphics looked good. But the functionality of the game was broken. That was strange.

I did a quick test using Internet Explorer. The game mechanics worked fine. Then I tried Firefox which gave me problem before. It worked good there. That's when I found out my friend was running Google Chrome.

After downloaded Google Chrome, I found my game was all messed up. I fixed some of the screen layout. However the JavaScript controlling play was just not functional. Great. I got some real work to do here. I will release an update in version 1.3 of the code soon.

JSRL Version 1.2

A friend wanted to see the latest developments in my JSRL roguelike game. So here is version 1.2 of JSRL. The main addition is this version is better handling of messages to the user. I have a vertical scroller to handle that. You can see the last three lines of message on the screen. You can also scroll back to the last 10 messages.

I also redesigned the top potion of the screen. The dungeon level, gold amount, and hit points have been arranged vertically. They have also been lined up to look cleaner. All this work was for a secret new addition I am working on to put in the upper right hand corner of the screen. You will have to wait until version 1.3 to see what I have in store for you.

JSRL Version 1.1

I have released version 1.1 of my roguelike game JSRL. You can now use your keyboard for player navigation. The screen now has full information on the commands you can use. I also added an intro screen graphic.

Now I plan to concentrate on making the game more playable. I need to add Angband-like features. Definitely need a whole lot more types of monsters. I also want to add different items you can find like weapons and armor.

For now I plan to continue improvement on my game. Let's see how far I can take this.

More work on JSRL

After a short hiatus, I have started development on JSRL again. This is the roguelike I entered into the 2011 7DRL competition. Now it is time to complete version 1.1.

At first I am going to go after some low hanging fruit. I will start by allowing navigation with the number pad. That will involve new diagonal moves as well. Then I might internally redo how I draw the maze to the screen. Right now it is very inefficient. I redraw the whole darn thing when something changes. An incremental change will be to redraw the line that got changed.

If I get ambitious, I might try to add an intro screen. Sure I could put some lame text intro screen in there. But I hear you should really rock your user with a cool graphic intro. So let's see how far I get. I will post a link to the new version of the game as soon as I code and test it out.

Building a Roguelike

I skimmed through a book on building your own roguelike game. It was free so I thought what the heck. The book covers programming in the BASIC programming language. It also goes into detail of the code for a specific game.

The book recommends you do a nice graphic intro screen. It also states you should use a graphic screen for your game, even if you are displaying ASCII symbols. Here is an idea. Put an easter egg or two in your game.

There are many methods for dungeon generation. You could start with one room, draw a corridor, then draw the next room. Or you could split the screen into quadrants, draw rooms in the quadrants, then connect the rooms with corridors. You could also use a perfect maze algorithm. Look it up.

I had some insights for my own roguelike game while reading the book. For line of sight issues, you can use Bresenham's algorithm. Once again look it up. You can also use the numeric keypad with Numlock turned on for character movement. That way you only need to detect the "1", "2", ... "9" keys for movement. I need to also implement monsters running away when they give up on battle.

Defender of the Deep

I am checking out other early finishes in the 2011 7DRL contest. Next up is Defender of the Deep. The actual graphics for the dungeon maze are simple but good. I like that empty spaces in the dungeon are just plain black.

Looking at the scrolling messages at the bottom of the screen, I realized how I should have coded up messages in my game. It was nice that some messages were color coded too. I did notice a lot of attacks in the game came with the message that no damage was done. Dang.

One weird thing about the game is that a DOS style box comes up, but you play the game in a second DOS style window that is a bit bigger. The menu system in this game is top notch. It presents you with a list, you press one key, and the choice is made. I am used to Angband where I need to select an item, then press another key to confirm the selection,.

My first attempt at playing the game was somewhat successful. Nice game balance. I don't like games that are too hard. There were many healing potions on dungeon level 1. I picked up a club on dungeon level 2 briefly. It got quickly replaced with a glowing broad sword. Woo hoo. Have not died yet. Now back to the game.

Vicious Orcs

There were a couple 7DRL entries done and posted to the announcement group before I completed my JSRL game. A nice one I tried was Vicious Orcs. Initially the game was very small in a DOS box style window. The maximize button on the window did not work. Later I found an option to toggle full screen which was better.

Some things in Vicious Orcs puzzled me a bit. At times, locations in the dungeon diagonal to you were not visible. I tried to go in those diagonal directions. But I was prevented. Every time I picked up gold, yellow squares would fall down the left side of the screen and pile like a Tetris.

There were also some cool effects in Vicious Orcs. The screen would slowly fade to black on your death. The app would also move in a direction it thought you might want to go. I would try to go left. It was blocked by a wall, but the app would move me left and down. Sweet.

Introducing my Roguelike JSRL

I have completed development on my 7DRL entry JSRL. The game is actually not complete. But I have run out of time. The entry should be a win since it was done within 7 days, is similar to Rogue, and is playable.

Today I tested the game with Firefox. It did not work. However I kept at the code until it worked in Firefox. The colors actually look better in Firefox than in Internet Explorer. I also made the message box a horizontally scrolling one.

A major addition I put in tonight was the Big Boss on the bottom level. Well he is actually not that big. He is a giant beetle. But his has a lot of hit points, and can do as much damage as you.

The majority of drive for this game from entering the 7DRL contest. I would like to refine the game, improving it, and continuing to learn more JavaScript. We shall see how much time I can spare for this effort.

Monsters

The last item I had to add to my JSRL roguelike game was monsters. This proved to be a challenging task. It was easy to randomly place monster characters in the dungeon. But then I needed to code the monsters to become aware of the player. Then the monster needed to chase the player.

The addition of monsters also required battles. I added the ability for the player to attack the monsters. The monsters needed to be able to attack the player as well. This required me to track the hit points of the player and all monsters. It also required me to start providing messages to the user based on the results of the fight.

There is not much functionality to add. I should test the game in browsers other than Internet Explorer such as Firefox. Then I would like to put a title screen in there. Finally I shall upload the game to a site where everyone can access it. Get ready for some fun.

Stairways


One of the last features to add in my JSRL roguelike game is multiple levels. I implemented this feature today. You need stairs up and down. Of course the topmost level should not have a stairway leading up. And the lowest level should not have a stairway going down.

I wanted to make the stairway movement logical. That means if you go down a stairway to get to a lower level, then you should be right at the location in the lower level where the reverse stairway exists. It was a little tricky, but I got that right. You walk down the stairs to find yourself standing on the stairway that leads back up to the higher dungeon level.

The final major feature I need to add is monsters. I am saving that task for tomorrow.

Gold in the Hills

I need something to give the players of my JSRL roguelike a score. One part will be how much gold they collect. Today I implemented placing random amounts of gold in the dungeon. Then I had to implement a gold display that shows how much you have collected so far. This display will be part of the main player stats line.

There are only two more ideas I want to implement before I call this 7DRL a success. They are multiple dungeon levels and monsters. I think I will tackle the multiple dungeon levels issue next. I want the whole game to be 10 levels. I just need to add some staircases up (and down if you are lower than dungeon level 1). Then I want to make sure the lower levels have more gold.

We Have a Player

I sneaked in a little development on my JSRL roguelike today. Got the player character to display (the great "@" symbol). I even implemented character movement.

Unfortunately I do not have a keyboard with a number keypad. So I had to remap movement keys to alphabetic characters. I think that's how the original Rogue handled movement.

It should be trivial to map the movement back to a real keypad once I test with a standard keyboard. Now I am deliberating on what to add next? Some gold? Stairs to a lower level? Whatever I choose, I will do that work tomorrow.

The Competition

I am keeping an eye on the roguelike development newsgroup to see what others are up to. There were a lot of other people starting up their 7DRL entries after I announced mine.

Some developers are making great progress. It looks as though Stygia has navigational directions implemented already. And I am not sure, but Gnomes might already be done.

Luckily you are only competing against yourself and the clock in this contest. Everyone has the ability to win if you can produce a playable game within the one week time period.

Arrival of the Maze

Made some progress on the JSRL roguelike game. Now I have drawn some rooms in the dungeon. They are of random size and in random locations. Sometimes the rooms are not connected. But it is good enough for now.

Next step is to get the adventurer displayed using the "@" sign. Then I have to process commands from the user. Specifically I want to start with navigational commands. You know. If the user presses up, the symbol moves up one position on the screen unless there is some obstruction.

I am optimistic that the resulting game after a week will be marginally playable.

Pablo is Moving Forward

I had previously played PabloQuest and had some problems with it. Turns out I did not fully understand how the game worked. Once I figured that out, the game did not seem to freeze.

I heard from the author of PabloQuest. Apparently he has a new version out. I downloaded and played this new version. Immediately I saw some new stuff. You start out a new game by stating how many levels you want to play.

This time around I paid more attention to your companion Quest. I guess he is a dog or something. Quest will go into a room and kill the monsters for you. Works for me.

There are still questions I have. For example my hit points don't seem to regenerate by themselves. I tried reading a scroll of heal, but got only 1HP of health back. Also I found it strange that I would walk right over top of gold. I got to press a key to grab it. Look here. I am always going to want to grab the gold. Why wouldn't I?

Finally I must have gained a character level, because I was asked what I want to increase. I answered "life". Not sure what that did. Maybe in the end, when the game is finished, I can read the manual.

The First Screen

I started writing my Angband clone for the Seven Day Roguelike Challenge. It was a rough start. I had programming problems getting the screen to display. There were a lot of errors. I googled the web for some help. Found a technique that works.

Now I got a screen with all dungeon wall characters. However I got some code that backs a general dungeon in memory. That dungeon is being transposed onto the screen. I guess the next step would be to carve out rooms and corridors in the dungeon.

Yeah the screen does not look sexy. But it actually displays something. That is a start. I think I will call it quits for the night. A good night sleep should put me in position to knock out some more code tomorrow. It is still the weekend.

Seven Day Roguelike

It is official. I am going to write an Angband like game in the next 7 days, or die trying. I posted my announcement as a reply in the rec games roguelike development USENET newgroup.

My game will be written in the JavaScript programming language. That means you will be able to run it in your web browser. It will be a challenge as I am learning JavaScript right now.

The goal will be to get anything running. I will be happy if I get some dungeons walls up, an "@" symbol running around, and some gold and monsters. The eventual goal is to have 10 dungeon levels and a big boss to fight at the end. But let's not get ahead of ourselves. Time to start coding.

Going Rogue

Normally I play a mage in Angband. I love the ability to identify things I find in the dungeon for profit. Magic missile and stinking cloud are great weapons. Once in a while I play a fighter. However the lack of any spell casting gets annoying.

Now I am trying out a rogue character. I just started out. The best thing I have so far is a lantern. I pretty much just duke it out with monsters like a fighter. I both a strength and dexterity of at least 18. That gives me some nice bonus to hit and damage.

I do not think this character will get far. But I bet it will be a whole lot of fun. As usual, I just need to resist the urge to dive too far.