Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • 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.

Development Info H-World and The Jungle up to 0.1.6

Saint_Proverbius

Administrator
Staff Member
Joined
Jun 16, 2002
Messages
14,131
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>.
 

Hajo

Liturgist
Joined
May 19, 2003
Messages
283
Location
Between now and then
Saint_Proverbius said:
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.

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
 

Saint_Proverbius

Administrator
Staff Member
Joined
Jun 16, 2002
Messages
14,131
Location
Behind you.
Hajo said:

Howdy!

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.

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

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.

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?

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).

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

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.[/quoite]

Immersion is best handled with presentation rather than what rendering device you chose. Geneforge is probably one of the most immersive CRPGs in recent times, and it's fairly.. ugly.

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

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.
 

Hajo

Liturgist
Joined
May 19, 2003
Messages
283
Location
Between now and then
Saint_Proverbius said:
Hajo said:
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.

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?

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.

Saint_Proverbius said:
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).

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

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.

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

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

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.

Saint_Proverbius said:
PS. You might want to check out this thread. It's about another space CRPG, but you might pick up some ideas about it.

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 :)
 

Saint_Proverbius

Administrator
Staff Member
Joined
Jun 16, 2002
Messages
14,131
Location
Behind you.
Hajo said:
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.

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.

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.

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.
 

Hajo

Liturgist
Joined
May 19, 2003
Messages
283
Location
Between now and then
Saint_Proverbius said:
Hajo said:
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.

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.

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.

Saint_Proverbius said:
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.

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.

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.
 

Saint_Proverbius

Administrator
Staff Member
Joined
Jun 16, 2002
Messages
14,131
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?
 

Hajo

Liturgist
Joined
May 19, 2003
Messages
283
Location
Between now and then
Saint_Proverbius said:
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?

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 :)
 

Jed

Cipher
Joined
Nov 3, 2002
Messages
3,287
Location
Tech Bro Hell
Hajo said:
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.
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...
 

Saint_Proverbius

Administrator
Staff Member
Joined
Jun 16, 2002
Messages
14,131
Location
Behind you.
Hajo said:
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.

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.

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.

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.

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.

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.

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.

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. ;)
 

Hajo

Liturgist
Joined
May 19, 2003
Messages
283
Location
Between now and then
XJEDX said:
Hajo said:
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.
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...

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.
 

Hajo

Liturgist
Joined
May 19, 2003
Messages
283
Location
Between now and then
XJEDX said:
Hajo said:
I'd like to get as much randomness in there as possible.
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.

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.
 

Hajo

Liturgist
Joined
May 19, 2003
Messages
283
Location
Between now and then
Saint_Proverbius said:
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.

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.

Possible solution:

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

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.

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.

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. ;)

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.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom