 |
Castle Paradox
|
View previous topic :: View next topic |
Author |
Message |
Camdog
Joined: 08 Aug 2003 Posts: 606
|
Posted: Mon Nov 19, 2007 8:46 am Post subject: Roguelike RPG in the OHR? |
|
|
[Reposted from Slime Salad.]
So, I've noticed that a few folks in the community are interested in roguelike games. I've dinked around a bit with Nethack and Angband, both of which I enjoyed (though I've gotten nowhere near beating either of them), and I thought it might be a cool experiment to see if I could do something similar with the OHR.
I've put together some basic scripts for creating random dungeons, creating random treasures, and fighting different enemy formations based on what dungeon level the player is on. The scripts are a little rough around the edges, but they all work as intended. At this point, the game isn't too tough or extensive, but it will give you an idea of what is possible with the engine.
Since most current roguelikes are community projects, I thought at this point it might be fun to expose the engine to the public. The scripts are written in such a way that anyone with a little hamsterspeak knowledge should be able to elaborate on them. And of course anyone could contribute new graphics or ideas for enemies, items, quests, etc.
I don't know the best way to handle a collaborative OHR projects. The tactic of emailing from one author to the next that's been used on previous collaboration projects obviously won't work here. Perhaps we could set up a subversion repository of the unlumped game and have authors check in the relevant unlumped files for inclusion? I've never used subversion, and I don't know how much leeway we have messing with unlumped files, but it's the only idea I have so far. Let me know if you have any better ideas.
So, the basic question is, would anyone be interested in working on this? What's uploaded right now has no documentation for working with the script framework, but the basics should be pretty obvious if you look at it. If a bunch of people are into this, I'll probably write up some documentation as well.
Get the game here.
If you don't know what I mean when I say "roguelike", go here. |
|
Back to top |
|
 |
TMC On the Verge of Insanity
Joined: 05 Apr 2003 Posts: 3240 Location: Matakana
|
Posted: Tue Nov 20, 2007 5:25 am Post subject: |
|
|
!
Neat, I've been obsessed with RLs for the past several months (still no code), and I think I've decided to turn my isometric Gamethon contest game into a RL. Maybe I'll leave in real-time mode as a totally separate game. However I'm going a different route: I'm not even going to use the standard item system. Crazy, yes, but script "threads", arrays and script-manipulatable sprites will make the scripting significantly easier.
Quote: | Since most current roguelikes are community projects, I thought at this point it might be fun to expose the engine to the public. |
Not really true, it's mostly only some of the bigger ones that have multi-person teams. Of course open-sourcing is pretty common.
The dungeon generator is interesting, giving complex (but messy) dungeons most of the time, but sometimes doesn't yield nice results. Besides chests outside of rooms, one time I got a whole long series of rooms linked together in a totally linear fashion. I'm not so sure that letting rooms overlap is a good idea. I suppose it could be used to give cave-like levels, when it gets messy.
However, using the battle system and random battles makes it pretty easy to run away from enemies, which would really detract from the tactics. Assuming you switch to wandering NPCs as enemies, you could have the NPCs not disappear if you ran away. (Being adjacent to multiple enemies at once could trigger a multiple enemy formation)
--
Wow, that's the most arguments to a script I've ever seen. Umm, you do realise that default values are optional?
Quote: | I don't know the best way to handle a collaborative OHR projects. The tactic of emailing from one author to the next that's been used on previous collaboration projects obviously won't work here. Perhaps we could set up a subversion repository of the unlumped game and have authors check in the relevant unlumped files for inclusion? I've never used subversion, and I don't know how much leeway we have messing with unlumped files, but it's the only idea I have so far. Let me know if you have any better ideas. |
Neo is working on a textualizer for RPG files: it will convert RPG files to and from a human readable text format. It should be great for diffing and patching RPG files. But it looks like he is a long way off completing it. Today I was discussing with IM how it would be useful for group projects for the planned CP upgrade, once completed it should be possible to write a wrapper and compare and merge RPG files using svn or a client like TortoiseSVN as normal.
As long as nothing conflicts you could use svn on RPG lumps, but it would be best to coordinate changes. SVN would be good for the scripts, especially since you've put them all in one file and are expecting contributions there. _________________ "It is so great it is insanely great." |
|
Back to top |
|
 |
Camdog
Joined: 08 Aug 2003 Posts: 606
|
Posted: Tue Nov 20, 2007 6:16 am Post subject: |
|
|
The Mad Cacti wrote: | However I'm going a different route: I'm not even going to use the standard item system. Crazy, yes, but script "threads", arrays and script-manipulatable sprites will make the scripting significantly easier. |
Arrays? Are you talking about referencing global variables as an array, or is there a new feature I'm not familiar with? (Man, real array support would totally ROCK)
The Mad Cacti wrote: | The dungeon generator is interesting, giving complex (but messy) dungeons most of the time, but sometimes doesn't yield nice results. Besides chests outside of rooms, one time I got a whole long series of rooms linked together in a totally linear fashion. I'm not so sure that letting rooms overlap is a good idea. I suppose it could be used to give cave-like levels, when it gets messy. |
I like allowing room overlap, because it creates rooms of non-standard shapes, and can create very different feels to different levels (ie a bunch of small rooms connected by twisty passages or a large, sprawling cavern).
As far as the chests outside of rooms, do you mean in the hallway or in the walls? If it's in the hallway, I don't really see too much of a problem, but if it's in the walls, that's a bug I haven't seen before.
The Mad Cacti wrote: | However, using the battle system and random battles makes it pretty easy to run away from enemies, which would really detract from the tactics. Assuming you switch to wandering NPCs as enemies, you could have the NPCs not disappear if you ran away. (Being adjacent to multiple enemies at once could trigger a multiple enemy formation) |
Yeah, this is definitely a problem. I'd love to see a feature that would allow the user to set escape difficulty (I've noticed there's been some talk about that on the developer's mailing list). In the mean time, perhaps a solution would be to make some enemies unescapeable, with their frequency increasing as the player descended in the dungeon?
I like your idea of npcs triggering battle, but in the case of multiple npcs triggering a fight with a formation of multiple enemies, wouldn't that mean we'd have to manually construct a formation for every possible enemy combination on a given level? I'd hate to do that.
The Mad Cacti wrote: | Wow, that's the most arguments to a script I've ever seen. Umm, you do realise that default values are optional? |
Heh, yeah. Most of those arguments are maptile numbers, which are negative by default (which the script interprets as "use the default tile"). I guess my original idea was to release the random map generator script for general use, so I tried to build in as much custom functionality as possible without requiring it.
The Mad Cacti wrote: | As long as nothing conflicts you could use svn on RPG lumps, but it would be best to coordinate changes. SVN would be good for the scripts, especially since you've put them all in one file and are expecting contributions there. |
Isn't coordinating the changes exactly what svn is good for? (Sorry, haven't used it and I just have a basic idea of how it works) |
|
Back to top |
|
 |
Moogle1 Scourge of the Seas Halloween 2006 Creativity Winner


Joined: 15 Jul 2004 Posts: 3377 Location: Seattle, WA
|
Posted: Tue Nov 20, 2007 7:56 am Post subject: |
|
|
Camdog wrote: | As far as the chests outside of rooms, do you mean in the hallway or in the walls? If it's in the hallway, I don't really see too much of a problem, but if it's in the walls, that's a bug I haven't seen before. |
In the walls. This is pretty common.
Quote: | I like your idea of npcs triggering battle, but in the case of multiple npcs triggering a fight with a formation of multiple enemies, wouldn't that mean we'd have to manually construct a formation for every possible enemy combination on a given level? I'd hate to do that. |
Earthbound does this in a limited fashion: enemies who are nearby when battle is triggered will join, but there are exceptions. In areas that are very dense with enemies, it seems like there are preset formations that will join the battle whereas other onscreen enemies will not attempt to join even if they're closer than the ones that do. It wouldn't be nearly as tedious to do it this way.
That said, I'd love to see plotscripting commands for tweaking enemy formations. _________________
|
|
Back to top |
|
 |
msw188
Joined: 02 Jul 2003 Posts: 1041
|
Posted: Tue Nov 20, 2007 12:51 pm Post subject: |
|
|
You're not using the standard item system? I've been trying to work out a method for individualized item menus, so I'd be very much interested in some of your ideas involved. Especially concerning how items are used and consumed correctly in battle, and how you can gain items from battles.
PS: I am almost done figuring out the general framework for my system, but it depends on several bugs (features) being resolved, so I'd be very interested in getting some implementation ideas from the master. _________________ My first completed OHR game, Tales of the New World:
http://castleparadox.com/gamelist-display.php?game=161
This website link is for my funk/rock band, Euphonic Brew:
www.euphonicbrew.com |
|
Back to top |
|
 |
Mr B
Joined: 20 Mar 2003 Posts: 382
|
Posted: Tue Nov 20, 2007 1:22 pm Post subject: |
|
|
Oh cool.
I think you could have randomly-generated battles by having each of the enemy slots in the battle be an unique enemy ID. When you decide which enemies to have in the battle, copy the enemy data from the enemy data ID to the unique ID that is displayed in battle.
You could have 8 different battles for 1-8 enemies, or certain battles that have the unique enemies placed for flying critters. |
|
Back to top |
|
 |
Inferior Minion Metric Ruler

Joined: 03 Jan 2003 Posts: 741 Location: Santa Barbara, CA
|
Posted: Tue Nov 20, 2007 7:04 pm Post subject: |
|
|
Camdog wrote: | The Mad Cacti wrote: | As long as nothing conflicts you could use svn on RPG lumps, but it would be best to coordinate changes. SVN would be good for the scripts, especially since you've put them all in one file and are expecting contributions there. |
Isn't coordinating the changes exactly what svn is good for? (Sorry, haven't used it and I just have a basic idea of how it works) |
That's exactly what SVN, or any other concurrent version system, is for. However, when a conflict arises, it is up to the user to resolve said conflict. The system will identify a conflicting change then present the user with as much information as it can. For instance, if you and I are simultaneously working on the same HS file and we edit the same line, upon check-in one of us will be flagged as conflicting and we will be presented with the original line, our changed line, and the newly modified line within the repository. Normal conflict resolution calls for using theirs, using yours, or combining the two in some way.
In the case of an RPG file, when a line isn't necessarily human readable, how would one resolve a conflict? You either use your changes or you use the other person's changes. This can get even more tricky if the repository attempts some form of auto-merging (which is usually desired functionality). Without any feasible way of identifying the changes in a human readable format, corruption can occur very easily without any chance of recovery apart from throwing out the latest changes and reverting the repository.
The possibility of identifying exactly what was changed within a lump in a human readable format makes utilizing SVN a possibility. TMC and I were tossing around ideas on how it would work, what setup would be involved, etc. Neo's converter would be an amazing tool in this regard. _________________
|
|
Back to top |
|
 |
TMC On the Verge of Insanity
Joined: 05 Apr 2003 Posts: 3240 Location: Matakana
|
Posted: Tue Nov 20, 2007 7:17 pm Post subject: |
|
|
Camdog wrote: | Arrays? Are you talking about referencing global variables as an array, or is there a new feature I'm not familiar with? (Man, real array support would totally ROCK) |
It's been a planned (and partially implemented, at times) feature for several years. I was hoping to get it in for Voxhumana, but I have a feeling James will declare a feature freeze first. I'm going to delay the game until I get arrays, though.
Camdog wrote: | The Mad Cacti wrote: | As long as nothing conflicts you could use svn on RPG lumps, but it would be best to coordinate changes. SVN would be good for the scripts, especially since you've put them all in one file and are expecting contributions there. |
Isn't coordinating the changes exactly what svn is good for? (Sorry, haven't used it and I just have a basic idea of how it works) |
Since there's no simple way to merge changes to the same lump (and lots of different changes would affect the 'GEN' and other lumps), you'd basically have to plan who is changing what in the RPG at what time.
On the other hand, for source code SVN lets several people change related things without needing to discuss anything, even the same lines of code, and resolve conflicts as long as they are not totally incompatible (eg. two people trying to implement the same feature at once)
I keep forgetting that we don't have commands to edit formations, but Mr B's idea should work fine, shouldn't it? You wouldn't necessarily need separate formations for different numbers of enemies.
msw188 wrote: | You're not using the standard item system? I've been trying to work out a method for individualized item menus, so I'd be very much interested in some of your ideas involved. Especially concerning how items are used and consumed correctly in battle, and how you can gain items from battles.
PS: I am almost done figuring out the general framework for my system, but it depends on several bugs (features) being resolved, so I'd be very interested in getting some implementation ideas from the master. |
I'm not using the standard battle system either, so I've haven't considered those problems. (You should be wondering what this project is doing on the OHR about now.) What features are you lacking?
EDIT: Oh look, IM beat me. Hey IM, why is your signature so massively blank? _________________ "It is so great it is insanely great." |
|
Back to top |
|
 |
Newbie_Power

Joined: 04 Sep 2006 Posts: 1762
|
Posted: Tue Nov 20, 2007 8:04 pm Post subject: |
|
|
Maybe we can rely on making attacks/enemies in the OHR, and if they work out into OHRogue, then we could detail what we actually did in a .txt file and then send the .txt and appropriate images so that they can get imported/made manually, instead of having to deal with discrepancies in lump files that we can't read as humans. We could do this as a hackish way of doing things until proper converters are made to allow handling lump files to be easier. This would be for attacks, enemies, and other things that are hard coded into OHR.
This is very hackish and an oversimplified solution, but it would allow multiple submissions at one time without breaking the .rpg file, and one person can then put in the submissions one by one. Turns can be taken for who actually does the implementation.
For plotscripts, those are lines of human readable text, so can't those be handled by the SVN the way most code is handled? _________________
TheGiz> Am I the only one who likes to imagine that Elijah Wood's character in Back to the Future 2, the kid at the Wild Gunman machine in the Cafe 80's, is some future descendant of the AVGN? |
|
Back to top |
|
 |
msw188
Joined: 02 Jul 2003 Posts: 1041
|
Posted: Tue Nov 20, 2007 9:12 pm Post subject: |
|
|
Quote: | I'm not using the standard battle system either, so I've haven't considered those problems. (You should be wondering what this project is doing on the OHR about now.) |
If you're not using the standard battle system, what are you using battle formations for?
Quote: | What features are you lacking? |
See:
http://www.castleparadox.com/ohr/viewtopic.php?t=5560
This is in addition to a bunch of stuff on bugzilla, notably bug 496. I'm trying to make item menus correspond to level MP menus in battle (generated for each hero before each battle). This seems like it should work fairly well for consumable items, but what about unconsumable ones? That is my problem right now. I can't see a way around it unless bug 286 is finished and level MP is promoted to a regular stat.
I'm also having some difficulty deciding what is the best way for equipment to work (maybe have a custom menu 'equip who' that will populate the real Item menu with all of the chosen hero's items, and then call the regular equipping screen... is there anyway to disable the left/right keys on the equipping screen?... and when finished, populate the hero's item menu with what is in the real Item menu).
Another problem area is using items outside of battle; can be entirely scripted, but I'm looking for a way out, using item definitions in custom. See bug 516, or better yet my question #3 in that other post. _________________ My first completed OHR game, Tales of the New World:
http://castleparadox.com/gamelist-display.php?game=161
This website link is for my funk/rock band, Euphonic Brew:
www.euphonicbrew.com |
|
Back to top |
|
 |
Bob the Hamster OHRRPGCE Developer

Joined: 22 Feb 2003 Posts: 2526 Location: Hamster Republic (Southern California Enclave)
|
Posted: Wed Nov 21, 2007 7:59 am Post subject: |
|
|
The Mad Cacti wrote: | Camdog wrote: | Arrays? Are you talking about referencing global variables as an array, or is there a new feature I'm not familiar with? (Man, real array support would totally ROCK) |
It's been a planned (and partially implemented, at times) feature for several years. I was hoping to get it in for Voxhumana, but I have a feeling James will declare a feature freeze first. I'm going to delay the game until I get arrays, though. |
I still want to release Voxhumana by Christmas if possible, but I think you have time to do arrays, as long as you do it carefully. I am curious on how you plan to implement arrays. Would you mind writing 'Plan for real script arrays'? |
|
Back to top |
|
 |
TMC On the Verge of Insanity
Joined: 05 Apr 2003 Posts: 3240 Location: Matakana
|
Posted: Thu Nov 22, 2007 5:40 am Post subject: |
|
|
msw188 wrote: | Quote: | I'm not using the standard battle system either, so I've haven't considered those problems. (You should be wondering what this project is doing on the OHR about now.) |
If you're not using the standard battle system, what are you using battle formations for? |
I'm not. I was talking about OHRogue when I mentioned battle formations.
msw188 wrote: | Quote: | What features are you lacking? |
See:
http://www.castleparadox.com/ohr/viewtopic.php?t=5560
This is in addition to a bunch of stuff on bugzilla, notably bug 496. I'm trying to make item menus correspond to level MP menus in battle (generated for each hero before each battle). This seems like it should work fairly well for consumable items, but what about unconsumable ones? That is my problem right now. I can't see a way around it unless bug 286 is finished and level MP is promoted to a regular stat.
I'm also having some difficulty deciding what is the best way for equipment to work (maybe have a custom menu 'equip who' that will populate the real Item menu with all of the chosen hero's items, and then call the regular equipping screen... is there anyway to disable the left/right keys on the equipping screen?... and when finished, populate the hero's item menu with what is in the real Item menu). |
Why don't you just swap out the other heroes? The level MP menu is a pretty startling idea, though it'll mean only using a 3rd of the menu, won't it? You could put items into groups, and use a separate, normal spell, menu for unconsumable items, and set them all to 0MP cost. But wait... how did you get consumable items to work at all if you can't set the level MP amounts?
Allowing custom menues in battles seems especially tricky, but individual inventories might hopefully be implemented some day.
James Paige wrote: | The Mad Cacti wrote: | Camdog wrote: | Arrays? Are you talking about referencing global variables as an array, or is there a new feature I'm not familiar with? (Man, real array support would totally ROCK) |
It's been a planned (and partially implemented, at times) feature for several years. I was hoping to get it in for Voxhumana, but I have a feeling James will declare a feature freeze first. I'm going to delay the game until I get arrays, though. |
I still want to release Voxhumana by Christmas if possible, but I think you have time to do arrays, as long as you do it carefully. I am curious on how you plan to implement arrays. Would you mind writing 'Plan for real script arrays'? |
You want to release by Christmas? That's even sooner than I thought. Before arrays, first I need to finish my rewrite of the script interpreter to implement script threads and speed gains, then we need to rewrite the save format (nobody likes my lazy approach, you seem determined to spend a month on this). But since Mike seems to have done some work on rewriting the graphics interface, the most natural thing would be to work with that instead. I'd like to also improve strings before starting on arrays. Of course, the computer I normally use for OHR development is dead, otherwise I might have made it. _________________ "It is so great it is insanely great." |
|
Back to top |
|
 |
msw188
Joined: 02 Jul 2003 Posts: 1041
|
Posted: Thu Nov 22, 2007 1:47 pm Post subject: |
|
|
See bug 286. PS commands have been recently added to set level MP, so consumable items are doable. It is only the need to restore level MP in battle that I need. I thought about the separate menu, but it seems very counter intuitive to the player (assuming I was the player) that there is a limit of eight just on consumable items, and then a separate limit on non-consumable items. I'd much much rather have a global item limit of eight (or maybe 16).
As for equipment, I should have thought about swapping out the other heroes. I'm still a little hazy on how properly to use the standard equipping system though (and I really want to do so, as it will make certain things a whole lot easier on my part). My initial idea would be to have 'Equip' lead to a hero picker, then we swap out the other heroes like you said, and then populate the real item list using the hero's item list (stored in globals somewhere). The problem is, I want equipment to count as items in the list so that you can use equipment as an item in battle. So when I populate the item list with the hero's globals, I risk having the currently equipped things both in the item list AND already equipped.
Actually, I guess the proper thing to do would be to store what is currently equipped somewhere, then unequip it all and delete it, then populate the item menu from the globals, THEN reequip the proper things before opening the menu to the player... do we have commands to do all that?
Quote: | I'm not. I was talking about OHRogue when I mentioned battle formations. |
Yeah, I'm a dunce. I realized later last night that these were actually two different games being discussed, but didn't bother to log in to edit my post. _________________ My first completed OHR game, Tales of the New World:
http://castleparadox.com/gamelist-display.php?game=161
This website link is for my funk/rock band, Euphonic Brew:
www.euphonicbrew.com |
|
Back to top |
|
 |
NeoTA Idiomatic Nomenclature

Joined: 15 Mar 2004 Posts: 165
|
Posted: Wed Dec 19, 2007 3:42 am Post subject: |
|
|
Thanks TMC and IM for reminding me of the importance of that project.
*specifically schedules dev time on every Tues/Thur* |
|
Back to top |
|
 |
Myroc

Joined: 13 Nov 2007 Posts: 13
|
Posted: Wed Dec 19, 2007 7:38 am Post subject: Re: Roguelike RPG in the OHR? |
|
|
In the first post Camdog wrote: |
So, the basic question is, would anyone be interested in working on this? What's uploaded right now has no documentation for working with the script framework, but the basics should be pretty obvious if you look at it. If a bunch of people are into this, I'll probably write up some documentation as well.
|
I cant see any single person who has answered this question yet.
I know im pretty new to the OHR but i would like to do what i can with OHRogue. Sure, im not great at plotscripting, and i might not be that good with graphics either, but there are many things that need to be fixed, chests appearing in walls, going up changes the entire dungeon (etc.), and i feel that many people are required.
So to answer the question: I am interested. _________________ [insert signature here] |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|