Posts from May 25th
Published on June 17, 2008 By Sekerah In Game Development Journals

I've been documenting this game for a while now so all of the following is copy and pasted from the forum I've been posting it on(so the formatting is a bit weird and multiple posts will be lumped together. I'll mention when this is up to date.


May 25 Posts:
Okay so ever since I read Tails3 topic about Nethack and started to play it, I've been hooked. For a few days now I've been toying with the idea of making my own, for the following reasons:
1. It will be fun.
2. I've never programmed anything this big(just little projects for class) and I want to see if I can do it.
3. I want to put my programming knowledge to actual use.

However, I realize this will be a daunting task thus I have created this topic. In this topic I plan to document my progress as well as throw out ideas to get feedback on them. Additionally any ideas or suggestions would be greatly appreciated. Furthermore I tend to not finish what I start so I figure having a topic with people actively discussing ideas, giving feedback and encouragement means that I might actually have a chance of finishing it. So if you like this idea and want a chance to actually play the game when I get that far please be active in posting in this topic. Also your ideas for the game might be implemented.

Mini-FAQ
Q:What language is this game going to be programmed in?
A: Java, since I am the most familiar with that language and it is portable. The Java achieves its portability does mean that code runs slower for programs written in Java compared to a non-portable language but given that a roguelike game does not use up much processing power I don't think it will matter.

Q:What is the name of your game?
A: Don't have one yet.

I still have a few weeks left of school, so I won't be able to work on it as much as I want to but I'll try to fit in what I can around finals. When summer comes I'll have plenty of time to work on it.

Progress So Far:
Random Map Generation: 10% done. Can randomly generate a random number of rooms of random size.
Link to sample floor layout: http://img156.imageshack.us/img156/8863/roguelikeinprogressgm8.jpg

Current Goals:
1. Finish implementing map generation. Also fix sizing(as you can see in the pic there is way too much empty space.

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

Also some of my general ideas for the game(Note I haven't put much thought into these yet, that will come later as my coding progresses).

1. I plan to have this to be around the difficulty of nethack, with the option for harder difficulty modes for people who manage to beat it.

2. I want there to be tons of ways to die(like in Nethack) but implemented in a fair way that allows a player with sufficient knowledge and experience to avoid those deaths. In other words no unavoidable random forms on insta-death. For the record I think Nethack manages to achieve this fairly well. From my limited experience thus far I'd have to say that by far most deaths come from inexperience rather than bad luck.

3. Some class ideas I have(I'll have more classes):
Wizard
Necromancer
Beast Master
Summoner
Archer
Warrior

4. I want all classes to have their own unique skills that they learn through lvling up. Although I think a small percentage of spells and abilities(20-30%) will be able to be learned through spell books and the like.

More ideas to come later.

Post Divider

Oh also while I'll certainly be taking inspiration from Nethack I don't want this to be a mere clone. So while many basic gameplay elements will be similar(as will the interface/"graphics", as I don't see any point in changing what works) I hope to deliver a completely different but still familiar experience from Nethack.

Oh and in case you were wondering this will be free, of course.

Post Divider

Ok so I've been fiddling with my map gen script a bit. It definitely looks a lot better than before in terms of room spacing. What do you guys think? Oh also do you think the floor area for the level needs to be bigger? (The max right now is slightly wider and slightly taller than the spaces the rooms are taking up. I think horizontally the rooms look okay but I still need to work on the vertical spacing a bit.

I think what I will do is reduce the number of rooms that are in a row(and increase the spacing a bit) but introduce a second "row" of rooms near the bottom.

http://img156.imageshack.us/img156/4614/updatedmapgentest1ba1.jpg
http://img156.imageshack.us/img156/9886/updatedmapgentest2ye8.jpg

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

 Fiddled with the spacing a bit. The rooms aren't so cramped together anymore, although I may need to increase it even more.
Link: http://img143.imageshack.us/img143/2866/updatedmapgentest3ok4.jpg

For the time being though I'm going to work on adding another "row" or two of rooms.

Post Divider
Also, are you making it standalone or going to run it as a telnet server?

I don't know the first thing about running a server, so for the time being at least it will be a stand alone. Maybe some time in the future I might host a website you can play it on, since I'm coding it in Java I can make into into an applet without too much difficulty.

Post Divider
Okay so the room spacing is fairly good now I think. It might need some more tweaking but it shouldn't be anything major.
Link: http://img155.imageshack.us/img155/759/updatedmapgentest4nc3.jpg

Next Step: Work on implementing doors and pathways into the map generator.


Post Divider
I have a couple of ideas so far:
1. Besides what is listed above I plan to have classes more specialized than in nethack. In addition to having class specific skills/abilities/spells learned as lvled up(I'm thinking as a tree, so each time you play you can choose to learn different skills) I'm thinking about a Talent system of some sort(like WoWs). So one game your necromancer could take points in talents that let him summon more undead than normal, while in another game your necromancer could be more of a warlock(focusing on curses and damage spells). I'll make it more in depth than that of course but that gives you a general idea.

2. I think a type of weapon skill system, in which you can learn special moves/abilities from using a certain class of weapons would be great fun. So if you decide to use swords the entire game you would learn special moves that can only be used with swords. Each weapon class would have different strengths and weaknesses. So for example swords might have skills that focus on increasing damage against a single target, while axes might focus on aoe dmg skills, and daggers might focus on status inflicting skills(like blind, or cripple).

3. Freedom. Nethack is very deep and complex with the freedom to do lots of things. Hopefully I can increase that even further. What I mean by this is I don't want to restrict players to a single strategy, rather I want to encourage the use of creative and inventive strategies by allowing skills and items to have a multitude of uses that one might now think of at first.

Anyways those are just a few of my ideas. As the coding progresses further I'll start thinking about those things more. For the time being, however, I'm focusing more on implementing the basics of the game.

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

It is taking me a lot longer than I expected to get the random hallway generator up and running properly. It has a few bugs left in it as you can see but I feel like I am close to getting it working properly.
Link: http://img2.freeimagehosting.net/image.php?a21fe13905.jpg

Imageshack seems to be down right now(for uploading new photos, not viewing the ones I already uploaded) so I used this other site instead.

Post Divider

Hallways work!
Link: http://img98.imageshack.us/img98/5302/hallwaysworkingte8.jpg

The sad thing is the error that was preventing it from working was so freaking obvious I think someone who didn't know anything about programming could have spotted it. I think I'm just tired. I've been making a lot of really easy to fix stupid errors which somehow evade my notice for much longer than they should.

Next to do: Copy a few lines of code to get hallways and doors in the second "row", then apply the hallway algorithm so that it connects the two "rows" vertically. The algorithm will work as is given the correct start and exit points but I need to edit some other things first so that I can pass the correct arguments to the method that handles hallways in the case of "vertical" hallways.


Post Divider
Oops messed up bit of code when copying and pasting stuff but I fixed it fairly quickly.
Hallways on the second row: http://img143.imageshack.us/img143/3655/hallwaysworking2ey3.jpg

Next to do:
1. Randomly choose where and how many pathways to connect from top row to bot row.
2. Hidden doors.
3. Dead end pathways.
4. Hidden hallways(like in nethack how sometimes it appears a hallway ends but if you search you can find a tile there).

Post Divider
While I am taking a break from coding I thought I would pose a question to you guys. What kinds of special lvls and sub-dungeons would you like to see? By special levels I mean like Nethack's Big Room level or the Oracle level.

Big Room http://nethack.wikia.com/wiki/Big_room
Oracle: http://nethack.wikia.com/wiki/Oracle

By sub-dungeons I mean like the mines or Sokoban.
http://nethack.wikia.com/wiki/Mines
http://nethack.wikia.com/wiki/Sokoban

Also what kinds of special unique non-enemy characters would you like to see. For instance Nethack's Oracle will tell you things about the game that you really need to learn to survive in exchange for cash. With internet spoilers it greatly reduces player's need for her but even so some people don't like to use spoilers so such an NPC would be useful. What other kinds would you like to see?


Comments
No one has commented on this article. Be the first!