Official Codex Discord Server

  1. Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.
    Dismiss Notice

Development Info H-World and The Jungle up to 0.1.6

Discussion in 'RPG Codex News & Content Comments' started by Saint_Proverbius, May 14, 2003.

  1. Saint_Proverbius Arcane Patron

    Saint_Proverbius
    Joined:
    Jun 16, 2002
    Messages:
    11,190
    Location:
    Behind you.
    Tags: H-World

    <a href="http://h-world.simugraph.com/">H-World</a>, the <i>create your own rogue-like CRPG isometric engine</i> has been updated to <A href="http://h-world.simugraph.com/download.html">version 0.1.6</a> for those interested in checking it out. Of course, the package includes <i>The Jungle</i>, which is his test rogue-like for the engine itself - and it's pretty nifty. Here's a partial list of changes:
    <br>
    <br>
    <ul><li>Window size can be given by the -screensize WxH command line option (see readme.txt for details)</li><li>Improved handling of user-defined images. Now includes recolorable images and image overlays (http://h-world.simugraph.com/manual/gfx.html)</li><li>Created a simple dialog system to talk to NPC</li><li>There are now temporary effects (i.e. being poisoned) (this is fully scripted, see scripts/effects.lua for details)</li><li>Stats panel (left side panel) is now user-configureable (see data/player.tab)</li><li>A simple dialog system (just approach a potion traderess to trigger it).</li><li>UI to interface with items that contain things but cannot be picked up (i.e. treasure pits - no examples for this are included in "The Jungle" yet, this was made for the experimental space exploration game.)</li><li>Simple realtime/animation support is now included. ("The Jungle" does not make use of that feature. It was designed as turn based game, but the H-World engine now supports realtime games, too)</li><li>New, larger fonts. I hope they improve readability.</li><li>Limbs can now have overlay offsets, i.e. to show a weapon being held with left or right hand.</li></ul>
    <br>
    <br>
    Mmmm.. Dialogue.. Unfortunately, the page for his <A href="http://h-world.simugraph.com/space/">space exploration CRPG</a> using the <a href="http://h-world.simugraph.com/">H-World Engine</a> hasn't been updated since I posted about it in March.
    <br>
    <br>
    Spotted this at <A href="http://yarns.felis7.civ.pl/index.php">YARNS</a>.
     
    ^ Top  
  2. Hajo Liturgist

    Hajo
    Joined:
    May 19, 2003
    Messages:
    283
    Location:
    Between now and then
    Hi,

    I'm sorry for the slow progress with the space exploration game. The core problem is that the design and planning isn't yet finished, so I can't really proceed with coding.

    I.e. I had planned to use several map scales for space, planet surface and indoor levels, but it is yet unclear exactly when and how the map scale transitions should be triggered. Until this issue is solved I cannot really link the different parts of the game together.

    Then there had been some issues about space flight: The options seem to be using a real 3D engine and kind of 1st person or 3rd person view or using a grid like map and move the ship on that grid (I think MOO 2 did that too).

    A while I was experimenting with the 3D option, but ATM it seems to be better to use a gridded map, even in space. This is more consistent with the other parts of the game even if probably less immersive.

    Also the games plot isn't fully clear and well defined yet.

    So the screenshots just show what currently fairly certain to be in the game, and how it will appear, but there is a lot of planning and design to be done yet.

    c.u.
    Hajo
     
    ^ Top  
  3. Saint_Proverbius Arcane Patron

    Saint_Proverbius
    Joined:
    Jun 16, 2002
    Messages:
    11,190
    Location:
    Behind you.
    Howdy!

    Well, as long as it's still in the works. I'm pretty happy someone is working on a space exploration CRPG, even if it's a side project. I've been wanting one of those for a while now, since no one seems to be making any these days. :D

    You lost me. You mean like Space is a BIG WORLD MAP, Planets are smaller world maps, and locations are just normal locals? Or are you refering to time compression?

    You could try something like Imperium did with a "3D", rotatable universe. Just click on the destination world, and set the little travel button.

    Would it really need to have one? Elite didn't really have one, and it was a fantastic game.

    PS. You might want to check out this thread. It's about another space CRPG, but you might pick up some ideas about it.
     
    ^ Top  
  4. Hajo Liturgist

    Hajo
    Joined:
    May 19, 2003
    Messages:
    283
    Location:
    Between now and then
    I mean distance scales, yes. I.e. if you are inside a building/space station/space ship the map has a scale of roughly one meter per map square, allowing you to interact with furniture, items and NPCs. Outside buildings the scale will be 5-10 meters per square. If you leave a city, the map will jump to scales of 100 and 1000 meters per square.

    Space will be a map with an even larger scale. I guess a heavy distortion on the distance/size relation must be made to create a playable map, but I think it's doable.

    Maybe I'm completely wrong with this map scale thing. Most other RPG seems to employ only two scales, a local scale and a world map scale.

    I'm also worried about the idea to implement cities with possibly hundreds or thousands of buildings ... maybe my dreams carry me to far in this respect. OTOH empty planets are really boring.

    This is about what I've currently implemented. Space travel is only virtual. You select a destination and then click the 'go to' button and you're there.

    The reason to change this is i.e. the option to be ambushed by space pirates. For battles I need a map anyways, and so a complete solar system could be a map.

    Again, this is just an idea ATM, and surely must be tested to see if it works.

    Elite had a very simple world. Each solar system had one sun, one planet and one space station. You couldn't land on the planet. The space stations were actually all the same,except for the different goods and prices.

    Maybe I expressed myslef wrong. I meant to define a consistent and seamless game world. Elite was simple enough not to need much thought about that. But a world that has more interactive components needs more thought, I think.

    ATM I'm still in the stage to think about the interaction between the player and the game world. I.e. if the player can make maps, maps must have a use. If the player can take ground samples, there must be some use for them. I want a more complex interaction than elite offered (fighting, collecting 'treasure', and buying/selling goods and equipment.

    You see this is all pretty unclear yet, that's why there is no visible progress. I'm still researching the why's and how's of the game, the options that I have and how they could be used. Briefly I'm still in the early design stage.

    I came across that last saturday. There are some nice ideas in that, indeed. I particularly lie the idea of founding a new colony. Also the distress missions will make the games world more lively. Just hop, that if the players ship is broken down, some NPC will come and help :)
     
    ^ Top  
  5. Saint_Proverbius Arcane Patron

    Saint_Proverbius
    Joined:
    Jun 16, 2002
    Messages:
    11,190
    Location:
    Behind you.
    I'd probably just scale time with both distance and the rate of travel on that map. Depending on how fast the vehicle went versus the grid size per each grid. Unless time isn't a factor at all, then I'd leave it abstract.

    A lot of these could be random, couldn't they? The only problem I'd see is if you wanted to maintain persistance on each of them.
     
    ^ Top  
  6. Hajo Liturgist

    Hajo
    Joined:
    May 19, 2003
    Messages:
    283
    Location:
    Between now and then
    The H-World engine has quite a strict timing scheme (actions have durations and the next action of a object is scheduled on abse of current time and duration of the current action.) So you're right, time must be scaled, too.

    I'd like to get as much randomness in there as possible. If there is a big universe with thousand of solar systems, different planets shoudl have different cities. Pre-made maps will be too limited I think. So if possible I'd like to create the cities much an a random base.

    Persistent world? I'd like to make most parts of the world persistent. ATM the saved files are fairly small, i.e. less than 100KB for 10000 map sqares. Considering todays hard disc capacities, it seems that large areas can be held persistently.
     
    ^ Top  
  7. Saint_Proverbius Arcane Patron

    Saint_Proverbius
    Joined:
    Jun 16, 2002
    Messages:
    11,190
    Location:
    Behind you.
    Depends on the level of persistence you want as to how large that file is. How many things you want to keep track of, new identification tags for each, where they're located and so on. Who has and hasn't been killed is another concern. Who's been talked to and what level of talking you're currently on can make things hairy.

    How are you handling it so far? Storing the seed and then the changes to what's gone on?
     
    ^ Top  
  8. Hajo Liturgist

    Hajo
    Joined:
    May 19, 2003
    Messages:
    283
    Location:
    Between now and then
    H-World is designed as object oriented system. A map is just a network of objects. H-World goes the simple way and writes the complete object network to disk. Loading means reading the object nework. So every tin detail is saved an resitored.

    The drawback is that the amount of data being written is rather large.

    ATM the social interaction of the PC are fairly limited. But since the NPCs are saved with their full state they remember the PC persitently - I want to include some NPC-NPC interaction, i.e. to spread good or bad PC attitude among NPCs, but that is is just a plan ATM.

    I've planned to implement a few levels of persitency. Here's a snippet from my docs:

    Persistence
    --------------

    Levels may be persistent. It seems to be a good idea to have several
    levels of persistence. This means persistence decreases if the player
    did not visit that level for a while.

    - Level layout (and changes to the layout) will be persistent for the
    complete game
    - Items (stuff) will be persistent for a long time
    - Monsters (beings) will be persistent for a short time

    Idea: if the player left the level and reeenters it immediately the
    level should be the same as when the player left it. But the longer the
    time the more changes should occur.

    Possible solution:

    Everything has a persistence rating from 0.0 .. 1.0
    The time is counted in intervals.

    (Items may have in general higher persistence ratings than monsters.
    Exceptions may be food which will surely not longly persist in the
    dungeon.)

    If the level gets loaded after n time intervals, the RNG makes
    n rolls for each thing. If one roll is above the persistence rating
    of that thing, it will be removed from that level.

    In addition, some things need to be added to that level. A level may
    have a default item and monster density. If during loading too many
    things (items/monsters) were removed so that the actual density dropped
    below the default density, new items and monsters are generated until
    the default density is met again.

    The item and monster density for a level might decrease every time the
    player clears that level.


    So far, the described effects are not yet implemented. Levels in H-World/The Jungle are completely transient and recreated every time the player enters them. The object network reading/writing facility is only used to save and load games. What's missing is that a level is saved if the the player leaves, and if the player enters it again, the above described scheme to load and update the contents is employed.

    For the space exploration game I definitely need persistent levels. I.e. the players ship is just a game level, and surely the player expects to find his possions again after leaving the ship and coming back to it - unless someone's broken in and stolen them :)
     
    ^ Top  
  9. Jed Cipher

    Jed
    Joined:
    Nov 3, 2002
    Messages:
    3,287
    Location:
    Tech Bro Hell
    Not to suggest that you should do this with H-World, but this particular problem seems like one where the open source concept could really shine: imagine having hundreds of participating OS developers writing their own detailed planets and/or cities. Just a few each would be easy for the participating individuals, and yet would create an immense amount unique content. Obviously there would need to be a lot of logistical considerations, like creating a standardized template of some sort for the solar systems, planets, and cities, and probably some sort of thematic agreement among the devs, but it seems there's a lot of possibilities there...
     
    ^ Top  
  10. Saint_Proverbius Arcane Patron

    Saint_Proverbius
    Joined:
    Jun 16, 2002
    Messages:
    11,190
    Location:
    Behind you.
    Depending on how big space is, then yeah, it could get quite large. Of course, it also depends on how much data you can cram in to as little space as possible.

    Well, one problem that you might run in to is hand writing dialogue for them, which can get tricky in something as large as a space exploration CRPG. It might be better to have several lines of similar dialogue that it selects from a data file based on what species you're talking to and what your standing is with that species.

    For example, if you're highly friendly with them, you might have a few lines when you meet one like, "Greetings, honored <name>", "Always a pleasure, <name>.", and so on. Just expand that idea to fit most everything you might need. the player to be able to do with an NPC, such as trade, give info, and so forth.

    Add another level on that and have the NPC have stats which determine what they say, by checking theirs relative to the player. A high player Charisma versus a low NPC mental stat might allow the player to get more information from that NPC than an NPC that's wiser or smarter.

    Another solution might be, while loading, determining the value of items relative to the world versus intelligent beings on it. If you drop $50,000 on the ground in the middle of a busy street, it's going to be gone in no time. However, if you drop a pile of sand in the middle of a town surrounded by desert, people probably won't care enough to snag it.

    Dropping food, water, or something that anything would care about would most likely vanish as well.

    For monsters, a predator/prey scale would be interesting. Of course, that would also depend on the ability of the predator to eat the prey. A planet with garder snakes and elephants would result in a small population of garder snakes, if any at all. ;)
     
    ^ Top  
  11. Hajo Liturgist

    Hajo
    Joined:
    May 19, 2003
    Messages:
    283
    Location:
    Between now and then
    There is an open source project called Worldforge. AFAIK it aims right in this direction. Also Crossfire and its offspring Daimonin which are both open source. So far the imagined 'hundreds' of developers are still missing, although crossfire is available since 1992. I'm not sure if this idea really catches, althoug I tend to agree that is has great potential.

    OTOH you could do this with the H-World engine, too. There is a file format for predefined levels (i.e. see data/castle_boss.props and data/castle_boss.lvl which are both text files describing the 'boss' level of the castle basement dungeon from the example game "The Jungle").

    The H-World engine shall be open enough to allow users to create their own games and games worlds. ATM this goal isn't fully accomplished, but the random level generators are paramterized by editable text files (i.e. data/level001.props) and there are those predefined levels, which can be edited by everyone, too. You can easily add new levels or maps.

    Monster and item graphics can be user-supplied too (well, in 0.1.6 some fo this code is broken, so that they don't work after loading a saved game - will be fixed in next version). Graphics for the level structures (walls, trees) are not user-replaceable ATM, this needs to be done. You can replace some of the floor textures, though.

    Many gameplay effects (i.e. using items, wearing items, fighting, being affected by poison or some otther ongoing effect ...) can be scripted.

    There is some documentation for the config files, level templates scripts etc. on this page:
    http://h-world.simugraph.com/docs.html

    Overall my goal is to have small core engine, that is closed source, and the games built with it shall fully editable and defineable by the user. This is still a long way to go, but I think the project is on a good path.

    Getting back to the idea of hundreds of developers creating a world: I think there are too many games and engines, so the community is split into too many projects. I suppose it won't be possible to create something that pleases all. So the idea of a big RPG project with hundreds of developers might stay a dream.
     
    ^ Top  
  12. Hajo Liturgist

    Hajo
    Joined:
    May 19, 2003
    Messages:
    283
    Location:
    Between now and then
    Predefined content tends to get boring at some point. Replayability is low, becasue you know all the palces and all the NPCs.

    Random maps help to keep the game interesting for a longer time. Actually they are the only way to keep thegame intersting to the developers. If you know every detail of your self created map, it's no fun exploring it. If the map is created by (controlled) randomness, you never know what will wait behind that unexpected bend of the corridor ;)

    Games like Angband and NetHack draw a lot of their pupularity from this feature, at least according to the players.

    I'm not quite sure to which extend the above is correct, but I tend to think that random based level generators can keep a game interesting for a longer time. OTOH a carefully hand made level most certainly will exceed the quality of any randomly created level, regardless how sophisticated that generator is.

    Thus I offer both, random level generators of several types (forest/wilderness, rooms/buildings, dungeons, caves ... more to be added) along with predefined levels.
     
    ^ Top  
  13. Hajo Liturgist

    Hajo
    Joined:
    May 19, 2003
    Messages:
    283
    Location:
    Between now and then
    Right. A while ago I've discussed this with another hobby game developer, Josef Hewitt, who is working on a Battle-Tech/Mechwarrior like CRPG. He's done that quite in depth for his game, and I kind of admire him for the work.

    I'll definitely keep this in mind for the further development of H-World.

    Right. I'll add that to my design docs :)
    Saint Proverbius, I've also added a few of your ideas from other threads. Once I'm going to use them, I'd like to give credit and add your name on this page, with a small description what you've contributed:

    http://h-world.simugraph.com/thanks.html

    I can just list you as "Saint Proverbius" and link to rpgcodex but if you send me your real name and email address I'll list those as well. Just let me know what you prefer.

    Predator/prey systems can behave chaotically, they are non-linear systems. Theory says that such systems are difficult to predict. Examples of chaotic behaviour exiuts for two species and a third component of influence, i.e. changing tempereture.

    Even if this'd be intersting to simulate, I think pure randomness (within some constraints) reflects the chaotic behaviour of such systems best.
     
    ^ Top  

(buying stuff via the above buttons helps us pay the hosting bills, thanks!)