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

 I made a flickr account. It is here:
http://www.flickr.com/photos/26996118@N06/

No new photos yet as I am taking a break from coding right now.

May 26th Posts
Okay so the basic map generator is fully working now. What I mean by that is that it will randomly generate rooms, doorways, and pathways. Some of the layouts it can come up with are fairly interesting:
http://www.flickr.com/photos/26996118@N06/2523982511/sizes/o/
http://www.flickr.com/photos/26996118@N06/2524806194/sizes/o/
http://www.flickr.com/photos/26996118@N06/2524806278/sizes/o/

I ran about 30 tests with it and didn't see any bugs so I think it should be fine, although I do need to check my code for a very rare case which might occasionally produce a bug. I already know how to fix it though so it shouldn't be a problem. If I find in actual testing that the levels produced don't work all that well I can easily(somewhat) change how my generator function works by changing a few values. So if that proves to be necessary in the future I'll tweak as needed.

Next step:
1. Implement hidden doorway(really easy).
2. Implement dead end pathways(a bit more difficult).

Divider
Ok well it turns out there are a few bugs with my hallway algorithm. 95% of the time it works fine, which is why I didn't see them earlier. They only appeared after a couple hundred tests. So I'll need to get to work on fixing them.

Divider
I believe I have squashed all of the bugs that I know about. If there are any other bugs they only happen extremely rarely because in several hundred tests I only saw these 3 bugs which I do believe I have managed to fix.

Here is an example of one of the bugs for the curious: http://www.flickr.com/photos/26996118@N06/2525016262/sizes/o/

Bug Free(hopefully), Yay!: http://www.flickr.com/photos/26996118@N06/2525016350/sizes/o/

To Do:
1.Ok now I can work on hidden doors. This should probably only be a few lines of code.
2. Dead end pathways(I'll probably push this back for later as it isn't that important and I'd rather get other things up and running first.
3. Continue implementing more dungeon features in the random map generator.


Divider
Took a little break to eat. Then implemented hidden doors. Everything went smoothly as expected.

Hidden Doors: http://www.flickr.com/photos/26996118@N06/2524293191/sizes/o/

Next To Do(In no particular order):

Map Generator:
1. Stairways.
2. Other dungeon features.
3. Dead end pathways.
4. Start thinking up traps -> implement.

Further on down the line:
1.Start implementing interactivity. In other words allow the player to move around the maps and implement the rules that govern the world(i.e. no moving through walls under normal cirumstances, etc.)
2. Start thinking up ideas for monsters/races. Class ideas. Other gameplay ideas. Etc.

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

 Put in stairs.
Link: http://www.flickr.com/photos/26996118@N06/2524376841/

I think I'm going to start working on the classes(programming classes not classes like a wizard) necessary for the player and for monsters.

Divider
Pic of what I am coding right now:
http://www.flickr.com/photos/26996118@N06/2525292142/

Its just a pic of the "being" class. Basically every creature and probably the player will inherit its variables and methods. Right now I'm just putting in as many methods and variables as I can think of. I may not use all of them and I'm sure I'll probably have to add a bunch more later.


Divider
I probably won't be able to get much more done for a while, unfortunately. I have a midterm this week. Then next week is the week before finals. Then finals week. After that I should be able to work on it a lot. I'll try to do what I can in between studying/attending class but don't expect much progress.

May 27th Posts
The birds outside woke me up very early today and since I couldn't get back to sleep I figured I would code for a bit. I've been fiddling around with a possible GUI. Nothing too exciting.
Link anyway: http://www.flickr.com/photos/26996118@N06/2528500326/sizes/o/

That big black area is the "play window". Basically the map and any menus you open will display there. I'm not sure what its final size will be, whatever ends up looking the best. I'm thinking that most controls will be done in the same was as Nethack, where pressing a button corresponds to a specific action.

However, I think that little text area I have at the bottom right now might be useful for "extended" commands. Anyways, right now I'm just fiddling with the appearance and not functionality as I have to do a bit of reading before I can start coding in commands to correspond to keypresses(I have very limited experience with event driven programming, and that was with menu items and virtual button presses not keyboard presses).

Also in the future I think I might have another larger text window either at the top or bottom of the screen that displays messages from the game(i.e. You found a +42 Sword of Gnome Kicking).

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

I have the map output into the gui interface functioning properly now. Previously the "map" was merely outputting text to the console via System.out. Now I'll need to play around with the sizing of course and eventually I'll need to implement a line of sight method that gradually reveals the map as the player moves around it but for now I'm satisfied with how its working.

Link: http://www.flickr.com/photos/26996118@N06/2528008777/sizes/o/

Next step:
Implement keyboard response. I've been doing a bit of reading on how to do this but I'll still need to do some more research before I can start implementing this. I've never programmed anything that responds to a key press(Other than using the scanner class to read text input from the console but that is completely different).

Divider
What do you guys think about having randomly generated hidden stashes? Basically there would be a very small chance for a wall segment to be generated with a stash of hidden items. It would increase the importance of searching and lend use to spells/abilities that help the player locate such stashes

Divider
Another idea: Unique Deities. Basically you would be able to choose what deity your character follows depending on your alignment. Each deity would have different benefits. Perhaps each deity will rule over a specific "field", for example a deity of healing or a deity of death. And each one can grant you different powers/spells/other bonuses. Some deities might have better bonuses than others but they might also be harder to please.

Also each deity would punish you in different ways if you angered them. Perhaps the deity of death would convey very powerful benefits when he was pleased with you but just outright kill you if you ever piss him off. While the deity of water might punish you by turning all of your equipment into a pile of rust or the deity of wealth might make it so you are unable to hold any gold or even funnier punish you by giving you gold lust. In other words you would need to regularly pick up gold otherwise you die(it would have to be new gold, you couldn't just drop the gold you are carrying and then pick it up again).

Anyways the examples I gave above are just that they won't necessarily be used. I think having unique deities would be really fun and add lots of replay value. Also for those who like a challenge maybe there could be really crappy deities or sadistic deities or the ability to be an atheist.

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

Divider
Also I'm considering a crafting system. I'm thinking things like alchemy, enchanting, trap making, blacksmithing, poison making(maybe included as part of alchemy), etc. Some of them would be restricted to certain types of chars. Enchanting would only be available to magic users for example while poison making would only be available to rogues or assassins. While others would be available to everyone.

It would probably be limited to one crafting skill per character. I'm thinking with enchanting items can have the standard +-# enchantments along with a second "slot" for other enchantments via the enchantment trade skill. Such as fire, ice, earth, polymorph, life drain, etc.

I'm thinking with alchemy you would use components dropped by monsters. Killing say a bat would have a chance of dropping a bat heart which you could mix with the eyes of a newt to produce some kind of poisonous/curse potion.


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