JSRL Version 1.3
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 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
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
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
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
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
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
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
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 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
We Have a Player
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
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
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 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
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
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
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.