Castle Paradox Forum Index Castle Paradox

 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 Gamelist   Review List   Song List   All Journals   Site Stats   Search Gamelist   IRC Chat Room

Roguelike RPG in the OHR?
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Castle Paradox Forum Index -> The Arcade
View previous topic :: View next topic  
Author Message
Camdog




Joined: 08 Aug 2003
Posts: 606

PostPosted: Mon Nov 19, 2007 8:46 am    Post subject: Roguelike RPG in the OHR? Reply with quote

[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
View user's profile Send private message
TMC
On the Verge of Insanity




Joined: 05 Apr 2003
Posts: 3240
Location: Matakana

PostPosted: Tue Nov 20, 2007 5:25 am    Post subject: Reply with quote

!
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
View user's profile Send private message Send e-mail
Camdog




Joined: 08 Aug 2003
Posts: 606

PostPosted: Tue Nov 20, 2007 6:16 am    Post subject: Reply with quote

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
View user's profile Send private message
Moogle1
Scourge of the Seas
Halloween 2006 Creativity Winner
Halloween 2006 Creativity Winner



Joined: 15 Jul 2004
Posts: 3377
Location: Seattle, WA

PostPosted: Tue Nov 20, 2007 7:56 am    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website AIM Address
msw188




Joined: 02 Jul 2003
Posts: 1041

PostPosted: Tue Nov 20, 2007 12:51 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
Mr B




Joined: 20 Mar 2003
Posts: 382

PostPosted: Tue Nov 20, 2007 1:22 pm    Post subject: Reply with quote

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
View user's profile Send private message
Inferior Minion
Metric Ruler



Joined: 03 Jan 2003
Posts: 741
Location: Santa Barbara, CA

PostPosted: Tue Nov 20, 2007 7:04 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website AIM Address MSN Messenger
TMC
On the Verge of Insanity




Joined: 05 Apr 2003
Posts: 3240
Location: Matakana

PostPosted: Tue Nov 20, 2007 7:17 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
Newbie_Power




Joined: 04 Sep 2006
Posts: 1762

PostPosted: Tue Nov 20, 2007 8:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
msw188




Joined: 02 Jul 2003
Posts: 1041

PostPosted: Tue Nov 20, 2007 9:12 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
Bob the Hamster
OHRRPGCE Developer




Joined: 22 Feb 2003
Posts: 2526
Location: Hamster Republic (Southern California Enclave)

PostPosted: Wed Nov 21, 2007 7:59 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
TMC
On the Verge of Insanity




Joined: 05 Apr 2003
Posts: 3240
Location: Matakana

PostPosted: Thu Nov 22, 2007 5:40 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
msw188




Joined: 02 Jul 2003
Posts: 1041

PostPosted: Thu Nov 22, 2007 1:47 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
NeoTA
Idiomatic Nomenclature




Joined: 15 Mar 2004
Posts: 165

PostPosted: Wed Dec 19, 2007 3:42 am    Post subject: Reply with quote

Thanks TMC and IM for reminding me of the importance of that project.
*specifically schedules dev time on every Tues/Thur*
Back to top
View user's profile Send private message
Myroc




Joined: 13 Nov 2007
Posts: 13

PostPosted: Wed Dec 19, 2007 7:38 am    Post subject: Re: Roguelike RPG in the OHR? Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Castle Paradox Forum Index -> The Arcade All times are GMT - 8 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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