RPGDXThe center of Indie-RPG gaming
Not logged in. [log in] [register]
 
H-World/The Jungle CRPG engine and example game
 
Post new topic Reply to topic Goto page 1, 2  Next 
View previous topic - View next topic  
Author Message
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Tue Sep 30, 2003 9:41 am    Post subject: H-World/The Jungle CRPG engine and example game [quote]

Hi, this is my first post to this forum. About two years ago, I've started to create a simple, scriptable CRPG engine, and an example game for this engine.

In the meantime the project reached a playable state, but I'm lacking player/user feedback. Thus I decided to announce it here and ask for feedback:

The project overview page is here:
http://h-world.simugraph.com

Screenshots:
http://h-world.simugraph.com/screens.html

Downloads:
http://h-world.simugraph.com/downloads.html


The engine currently features a simple isometric display and only very limited animation support. The example game "The Jungle" doesn't use the animation support at all.


Documentation of the scripting interface and user configuration is here:
http://h-world.simugraph.com/docs.html

One of my goals is to keep things simple, yet 'good enough' for most needs. Although the engine can be used for realtime games, it's actually focused on turn-based games with a gridded/tiled world and simple, mostly static graphics. Emphasis for future development will be put on the scripting interface, which is currently too limited, I think.

Maybe you can take a look and let me know what think about the project?

Kind regards,
Hajo
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Wed Oct 08, 2003 9:08 am    Post subject: [quote]

Umm, no feedback?

Is it too bad to be worth an answer?
Or is it just ok, so no feedback needed?

Too off topic? Uninteresting? Yet another wannabe RPG engine?

Or did I offend you somehow and you're all ignoring me?
Back to top  
BigManJones
Scholar


Joined: 22 Mar 2003
Posts: 196

PostPosted: Wed Oct 08, 2003 11:00 am    Post subject: [quote]

I tried it but I forgot to post about it. Its very nice. Obviously the gfx need work and I didn't like the way the walls were always invisible. Also the skeleton pathfinding needs some refinement. But the lighting effect was very smoot and all the features are there for a complete game. Good job!
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Wed Oct 08, 2003 11:45 am    Post subject: [quote]

Thank you for the feedback. I guess a real artist can create better graphics, I'm more the programmer type :)

Invisible walls? I'm not quite sure what you mean. I've tested semitransparent walls first, but still found that they still obstruct the view strongly. Becuase of this I decided to display only the lowermost part of the wall - to let the player know there is a wall, but to let him see as much of the ground as possible.

ATM I know about two 'must have' features for an RPG engine that are missing: spell magic, and traps.

I think I'll work on traps next.
Back to top  
Bjorn
Demon Hunter


Joined: 29 May 2002
Posts: 1425
Location: Germany

PostPosted: Wed Oct 08, 2003 11:45 am    Post subject: [quote]

I liked to see you're using Lua as your scripting library, but prefer a more Object Oriented approach myself. This does tend make life a lot more complicated though, I'm currently still having problems with un-globalizing my sequence handler and multilanguage support. Also, when implementing the GUI I really wanted to seperate the style from the widget implementation, but haven't been able to setup a nice structure yet. Also, using Lua as an OO language does introduce a lot of limitations and doesn't feature all that you'd want an OO language to feature.

Anyway, compliments on your elaborate documentation! It's not often that I see an engine so well documented.
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Wed Oct 08, 2003 11:56 am    Post subject: [quote]

Although the scripts don't use the OOP syntax that Lua provides, the interface itself is quite object oriented.

I.e. items are objects of class 'thing' and there is a set of methods that works on them, i.e. thing_set_value(thing, key, value)

This is just another way to say thing->set_value(key, value) :)

I try to keep things simple. Inheritance isn't really needed for the scripts I guess, and so the hybrid interface - objetcs + procedures that work on them - seemed to be appropriate.

Nowadays lots of people know OOP so the former argument procedural code is easier for most people doesn't hodl anymore, I think.

Apropos multilanguage support: how did you solve the grammar issues?

I mean in english is quite simple to create a sentance

subject - verb - object

"The jackal" - "bites" - "you"

But in languages like german, its quite difficiult because the "the" in "the jackal" depends on the gender of the subject (der, die, das) and some verbs change strongly "I hit" -> "Ich treffe", "He hits" -> "Er trifft". The whole verb changes, unlike in english where it's sufficient to append a "s".

This means that the object/item data needs to hold gender information as well, and a dictionary with all flexions of the verbs is needed.

I've mostly given up to support several languages by now because of the grammar problems :(
Back to top  
Bjorn
Demon Hunter


Joined: 29 May 2002
Posts: 1425
Location: Germany

PostPosted: Wed Oct 08, 2003 12:43 pm    Post subject: [quote]

I can see your point about OOP, a hibrid might just prove to be simple as well as powerfull.

About the multilanguage support, I'm not trying to implement it using a translator. Rather, the translations are done by humans and input into subclasses of a string/conversation provider class. Like:

class Game -> MyGame
class Lang -> MyLang -> MyLangEn
class Lang -> MyLang -> MyLangFr

Once MyGame is instaniated, the idea is that it creates an instance of a subclass of MyLang according to user settings and assigns it to myGame.lang. Then, during the game when objects want to put text on the screen, they'd use myGame.lang:getText("REFERENCE").

I'm not satisfied with the way it currently works though. I'm thinking about introducing variables in the strings but am not sure how. Like, the player name might change and at present time you'd need to edit all the occurances of the name in the text. Also, when NPCs would be addressing multiple player characters, they'd need to be able to insert the right name into the sentence.

Sorry about the long message, maybe you'd like to keep this thread more related to H-World. :-)
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Wed Oct 08, 2003 1:10 pm    Post subject: [quote]

Bjørn wrote:

About the multilanguage support, I'm not trying to implement it using a translator. Rather, the translations are done by humans and input into subclasses of a string/conversation provider class.


I've done that for another project. It works very well.

In case of an rpg engine, I'm afraid it won't be flexible enough.

OTOH it all depends on how much textual output there is. I.e. H-World has only little animation capabilities, so most of whats happending is described by messages. This is conjunction that items are highly configureable leads to some problems, particularly if trhe grammer shall be correct.


Bjørn wrote:
Sorry about the long message, maybe you'd like to keep this thread more related to H-World. :-)


No worries, since the H-World engine suffers from missing internationalization, this is very interesting for me :)
Back to top  
Rainer Deyke
Demon Hunter


Joined: 05 Jun 2002
Posts: 672

PostPosted: Wed Oct 08, 2003 6:53 pm    Post subject: [quote]

If I was writing a multi-lingual rouge-like, I would use sentence templates and dictionaries (where the dictionaries can contain phrases, not just words. A dictionary could contain multiple forms for the same phrase, which are selected by the setence template. For example:

Sentence template: subject-with-definite-article singular-present-tense-verb object-with-definite-article.

Noun forms:
"jackal" (no article)
"the jackal" (definite article)
"a jackal" (indefinite article)
Back to top  
Guest






PostPosted: Thu Oct 09, 2003 8:04 am    Post subject: [quote]

Thanks, Rainer, this will simplify a lot of things.

Sometimes the simplest solutions are the most difficult to find :)
Back to top  
Bjorn
Demon Hunter


Joined: 29 May 2002
Posts: 1425
Location: Germany

PostPosted: Fri Oct 10, 2003 10:04 pm    Post subject: [quote]

As for sentence building, I remember learning about Prolog and how it could be used for this purpose. I don't remember forgetting it, but I forgot most of it. There is libraries available for embedding Prolog in your application though.
_________________
If we could navigate in the physical world by hyperlinks, we wouldn't bother with walking, driving, flying... so why should we do it in a virtual world? - KDE User Interface Guidelines
Back to top  
Mandrake
elementry school minded asshole


Joined: 28 May 2002
Posts: 1341
Location: GNARR!

PostPosted: Wed Oct 29, 2003 2:59 pm    Post subject: [quote]

actually, i learned how to do that with C++ when I was working on an AI for my last job (well not really an AI per se, but a sort of intellegant search and find database tool- long story. But it used AI stuff in it)....it's just programming sentance diagramming. From what I've heard Lisp can also be very good at this.
_________________
"Well, last time I flicked on a lighter, I'm pretty sure I didn't create a black hole."-
Xmark

http://pauljessup.com
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Thu Sep 23, 2004 11:23 am    Post subject: [quote]

It's been a while that I was here. I just thought I'd post an update. The projects needs a little advertisment :)
The original announcement message and download links are over there:

http://www.simugraph.com/forum/viewtopic.php?id=11&t_id=26


Release notes for H-World 0.3.10

New features

H-World got a simple, non-combat AI. AI controlled beings know about 7 possible tasks:

1) Eat/Drink
2) Sleep
3) Wash/bath
4) Play/Training
5) Learn
6) Work
7) Meet other beings

A being can have its own locations ("my sleeping room") assigned or can use public facilities to perform a task.

The current implementation chooses tasks randomly. Future versions will choose tasks in a more sensible manner. After choosing a task, an AI controlled being will look for a location (public or private) to perform the task. It will search a path there, go there and perform the task. After that, the AI will switch to idle state, and after a while will choose another task.

In H-World/The Jungle 0.3.10 the player starts in a small village. The village people have places to sleep (each one has a home with a bed), to work (they work at home, but in a different room than the sleep room), meeting people (the marketplace), and getting water from the well. This works quite nicely already, you can watch the village people walk around, and do what they want to do. Their mind bubbles will give a clue what they ar doing currently.

There are a few dungeon inhabitants that are AI controlled, too. Some dungeons offer places to sleep (chambers with beds), and fountains to drink from. This small selection is pretty limiting for the AI. Future releases will offer more options for dungeon inhabitants. Currently a player visiting a dungeon will not see much of the AI controlled beings doing, because they interrupt what they are doing and attack the player as soon as they get aware of him.

Keep in mind, that this is the very first H-World version with this kind of AI support. It is still very primitive. But it seems to be a good base to expand upon.

Most tasks are dummy tasks currently, only sleeping really works. But it should be fairly easy to add the rest of the functions now that the AI framework is done.

Improvements

- None.

Fixed problems

- Silver jellies are no longer sold by traders
- Inventories now overflow properly leaving items on the correct square
- Taking off multi-limb covering items is now more robust (should fix a problem in handling silver jellies)
- Green gems now indeed add 2d3 poison damage to weapons

Downloads

Windows version (~1020KB):
http://h-world.simugraph.com/data/h_world_demo-0_3_10_2.zip

Linux version (~890KB):
http://h-world.simugraph.com/data/h_world_demo-0_3_10_2.tar.gz


Chronological list of changes since the last release

22-Sep-04:
FIX: file based levels work agian
FIX: silver jellies now have a high negative trading value
(= traders don't even offer enchanted jellies for sale
any more)

released H-World 0.3.10.1

21-Sep-04:
FIX: PC and NPCs can enter squares containing items again.

20-Sep-04:
FIX: silver jelly now has a negative trading value (= traders
don't offer them for sale any more)
FIX: fixed a read of unitialized memory in pathfinding code
FIX: pathfinding now properly sets path size to 0 if no path
could be found
FIX: fixed a read of deleted memory in AI code

19-Sep-04:
NEW: AI can now have individual lair and workplace assigned
NEW: started "jungle village" level type
NEW: AI "mind bubble" type status icons
CHANGE: further improved AI
CHANGE: non-endless forest levels now have a border of trees

18-Sep-04:
FIX: tried to fix inventory overflow problem (items
disappear instead of dropping to the ground)
FIX: fixed one more bug in unwielding a multi-limb item
(now is properly removed from all limbs)
FIX: pathfinder omitted last step of path
INTERN: activating a feature now returns a success code
(needed by AI)
CHANGE: forest level "offset.x" and "offset.y" now default to
0 if omitted in level template
CHANGE: "exits" now defaults to 0 if omitted in level template

16-Sep-04:
FIX: fixed green gem effect (now really adds 2d3 poison to
attacks)

15-Sep-04:
CHANGE: moved chambers definition into files (less hardcoded
stuff), adapted all house type levels to use them
FIX: fixed an access to a potentially unitialized variable
in quaffing a poisonous potion

14-Sep-04:
NEW: finetuning for new AI stuff, room hotspot support

13-Sep-04:
NEW: itelligently moving monsters: they can look for rooms,
find a path there, and follow the path. They can open
doors while following the path.

12-Sep-04:
NEW: rooms are now typed
NEW: room names (per type) can now be stored in game.props
NEW: player is told the room name if he enters a typed room
NEW: preparations for being pathfinding (AI)
Back to top  
Bjorn
Demon Hunter


Joined: 29 May 2002
Posts: 1425
Location: Germany

PostPosted: Thu Sep 23, 2004 12:00 pm    Post subject: [quote]

Looks very interesting and runs smoothly. I like the ground isn't even, too. The behaviour thing sounds pretty cool and is already looking quite interesting! Finally some NPCs that don't just wander randomly around in their living room, or even just stand there for hours. The merchants don't seem to be interested in going anywhere though, but I guess that'd be inconvenient.

In a way I like the turn based nethack/rogue/angband kind of style and controls. Still, it might be an interesting game when things were going on in real-time too, with this world actually being alive and stuff.
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Thu Sep 23, 2004 12:38 pm    Post subject: [quote]

Having an 'alive' world is a big challenge. It's kind of a dream of mine :)

Realtime support is almost done. Future version of the engine will be switcheable between realtime and turn based (thus suitable both both styes of game). Animation support exists, but is very primitive yet.

Once there was a demo, how to use the animation support. You can find it hidden in this thread:
http://www.simugraph.com/forum/viewtopic.php?id=5&t_id=23

It was based on an older version of the engine. I assume the data files don't work with the current version (too many changes since then).

I've chosen turn-based for the example game, because drawing animations needs a lot of time, and I need to balance my time between creating artwork and coding. I think turn-based and still images go well. I assume in later stages of the project, I'll look for a graphics artist to help, but currently the future course of the project is too uncertain to craete a lot of content yet.

The merchants should have booths to reason why they don't move. It's meant to be a marketplace. Currently the village is just there to allow a preview of the non-combat AI. Future versions will have a better designed village - I mean I'll try at least :)
Back to top  
Post new topic Reply to topic Page 1 of 2 All times are GMT
Goto page 1, 2  Next 



Display posts from previous:   
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