#90 Pets

Open
opened 4 months ago by themightyglider · 12 comments

Today I implemented pets that are able to follow the player. They are just a cosmetic extra, similar to decorative clothing. Maybe the same mechanics could be used later to make quests where you need to guide a NPC from point A to point B. Now we need a way how pets could be obtained. Here is my idea: Inside dungeons you can find monster eggs. You can pick them up and put them into a nest box(craftable item). After a few days a pet monster will hatch. There should be some varity of possible pets (maybe 5 different pets for now and more with later updates). Some pets will be very common, others are rare. A nice addition to this system could be that chickens produce eggs(food item) too. You could hatch this eggs as well and build a chicken farm this way.

Further ideas and comments on this topic are very welcome.

Today I implemented pets that are able to follow the player. They are just a cosmetic extra, similar to decorative clothing. Maybe the same mechanics could be used later to make quests where you need to guide a NPC from point A to point B. Now we need a way how pets could be obtained. Here is my idea: Inside dungeons you can find monster eggs. You can pick them up and put them into a nest box(craftable item). After a few days a pet monster will hatch. There should be some varity of possible pets (maybe 5 different pets for now and more with later updates). Some pets will be very common, others are rare. A nice addition to this system could be that chickens produce eggs(food item) too. You could hatch this eggs as well and build a chicken farm this way. Further ideas and comments on this topic are very welcome.

I haven't tried it yet (still need to test a few high-level things before starting the game over, maybe some cheaty code to gain levels would be nice? So I won't have to replay 3+ hours until lvl.15. and ready to face some hard enemies to test them).

A general remark. It'd be a very good idea if the pet would look different than other monsters. At least in color. So that it is visually distinguishable from the opponents. Not just with green dot.

Maybe, (if such feature is planned) it'd be also nice if they would "morph" as they grow. I.e. becoming bigger and stronger as they gain levels. E.g. starting as a tiny pink slimey almost useless in combat, they grow to a large powerful slimeball, that can crush a dozen slimes of other types.

So the player would need not only to hatch them, but also to train them (and, maybe feed them) with a distinctive visual feedback for the progress. Same with companion NPCs if they'd be implemented.

I haven't tried it yet (still need to test a few high-level things before starting the game over, maybe some cheaty code to gain levels would be nice? So I won't have to replay 3+ hours until lvl.15. and ready to face some hard enemies to test them). A general remark. It'd be a very good idea if the pet would look different than other monsters. At least in color. So that it is visually distinguishable from the opponents. Not just with green dot. Maybe, (if such feature is planned) it'd be also nice if they would "morph" as they grow. I.e. becoming bigger and stronger as they gain levels. E.g. starting as a tiny pink slimey almost useless in combat, they grow to a large powerful slimeball, that can crush a dozen slimes of other types. So the player would need not only to hatch them, but also to train them (and, maybe feed them) with a distinctive visual feedback for the progress. Same with companion NPCs if they'd be implemented.

A very stupid idea, but might actually work. That the pets would run to meet the player, as he/she returns from some distant place (e.g. absent for longer than a day or went down the lowest roguelike dungeon level). Kinda with message %pet* is very glad to see you if its disposition is high (i.e. if player pets/feeds it). It does nothing, but is a very cute emotional moment being waited for and loved :)

This behavior might have several "Stages". E.g. native villagers (kinda Nekos) will be relatively "cold" meeting the player, the villagers who the player rescued would just say I'm glad you're ok close friends would I'm so happy you've made it back safely and best friends (and pets) would run to greet the player and (maybe) give him/her some rather cosmetic buff (e.g. heal if wounded, remove debuff You look tired, let me help you add a short "adrenalized", "light" or something like that - just to make it a bit more than "just happy").

A *very* stupid idea, but might actually work. That the pets would run to meet the player, as he/she returns from some distant place (e.g. absent for longer than a day or went down the lowest roguelike dungeon level). Kinda with message `%pet* is very glad to see you` if its disposition is high (i.e. if player pets/feeds it). It does nothing, but is a very cute emotional moment being waited for and loved :) This behavior might have several "Stages". E.g. native villagers (kinda Nekos) will be relatively "cold" meeting the player, the villagers who the player rescued would just say `I'm glad you're ok` close friends would `I'm so happy you've made it back safely` and best friends (and pets) would run to greet the player and (maybe) give him/her some rather cosmetic buff (e.g. heal if wounded, remove debuff `You look tired, let me help you` add a short "adrenalized", "light" or something like that - just to make it a bit more than "just happy").

If friends/pets are many, they won't all get a chance to interact, but still they may come and stand around as others greet the player (e.g. if somebody is greeting the player within 3x3 or 4x4 area others are also counted as "greeting done"). Moreover, some animals, like chicken will never greet the player.

Hmmm... I wonder, maybe you could find use for my procedural dialogue generation? I've started making it but it became too complex in my game idea :) However, it can be very simplified and would fit that NPCs could actually chat to player for a long time without repeating themselves.

The idea is that there is CONTEXT (day, night, happy, sad) and FACTS (something that happened) and there is a "set of phrases" which are choosen based on the CONTEXT. We don't have much FACTS around, so we should fake them (e.g. someone gone fishing, or hunted a rabbit, or something like that).

However, I'm not sure if that'll be fun in gameplay and easy to do (i.e. worth the effort, I'm certainly won't be able to implement that in Python). I think, I might try to prototype such thing in FreePascal and see how it looks. Actually I've already started implementing something like that two years ago https://gitlab.com/EugeneLoza/genesis but it wasn't my primary project, so it's developing very slowly with me got stuck in children/parents genetics, "syncing facts and actions" and scripting system, rather than the dialogue.

If friends/pets are many, they won't all get a chance to interact, but still they may come and stand around as others greet the player (e.g. if somebody is greeting the player within 3x3 or 4x4 area others are also counted as "greeting done"). Moreover, some animals, like chicken will never greet the player. *Hmmm... I wonder, maybe you could find use for my procedural dialogue generation? I've started making it but it became too complex in my game idea :) However, it can be very simplified and would fit that NPCs could actually chat to player for a long time without repeating themselves.* *The idea is that there is CONTEXT (day, night, happy, sad) and FACTS (something that happened) and there is a "set of phrases" which are choosen based on the CONTEXT. We don't have much FACTS around, so we should fake them (e.g. someone gone fishing, or hunted a rabbit, or something like that).* *However, I'm not sure if that'll be fun in gameplay and easy to do (i.e. worth the effort, I'm certainly won't be able to implement that in Python). I think, I might try to prototype such thing in FreePascal and see how it looks. Actually I've already started implementing something like that two years ago https://gitlab.com/EugeneLoza/genesis but it wasn't my primary project, so it's developing very slowly with me got stuck in children/parents genetics, "syncing facts and actions" and scripting system, rather than the dialogue.*
themightyglider commented 4 months ago
Owner

maybe some cheaty code to gain levels would be nice?

1.) run: "python ~/[PathToRBA]/run.py -c" to activate cheat-mode

2.) press [TAB] inside the game

3.) on the terminal window you should see a ">" now

4.) type: "player.lvl_up()" and press [ENTER]

5.) profit!

This is a special developer console I've added. You can access the whole API of RBA over this console and change almost every aspect of te game.

> maybe some cheaty code to gain levels would be nice? 1.) run: "python ~/[PathToRBA]/run.py -c" to activate cheat-mode 2.) press [TAB] inside the game 3.) on the terminal window you should see a ">" now 4.) type: "player.lvl_up()" and press [ENTER] 5.) profit! This is a special developer console I've added. You can access the whole API of RBA over this console and change almost every aspect of te game.
themightyglider commented 4 months ago
Owner

You gave me a lot of input and I had to think about everything a bit.

If I want to release a new version of RBA anytime soon I shouldn't start such a big project like a dialogue generator now. The idea is very cool but I should do this in a later release and concentrate on pets and the other half done features now.

Here is a idea how pets could work (and be funny):

You will meet a NPC at elfish fortress that explains you how pets work and can sell you bestboxes and pet food (and maybe eggs for a lot of gems. In later versions we could more special NPCs like this one to the fortress to make it a more interesting place.

On the lowest level of the dungeon/tomb you can obtain one monster egg per run. This eggs can be put in a nest box and will hatch after a few days. You can choose if you keep a pet or send it to the pet trader for a few gems and sone extra xp. If you keep a pet you can give it a name and it can follow you on your adventures. You can send it home any time (telepirt it to elysium). As long a pet travels together with you its relation level will raise and if it is high enough the pet will become stronger. Pet food can be used for a little boost in relation level (only once per pet and day).

One example: Lets say the most common pets are blobs. They start as little blob. In this state they will follow you abd rarely attack a hostile monster on a neightbor tile for 1lp damage. If the relation level reaches something like 2000. It will become a blob(recolored version of the already known blob monsters). In this form it will deal up to 2 lp damage and has a chance to slow enemys down. At relation level 5000 it will reach its final form the great blob(reclored mother slime). This form can deal up to 3 lp damage, slow down and reduce physical attack/protection of hitten monsters.

Monsters and traps will ignore pets because I dont want them to die. Never liked this in other roguelikes.

You gave me a lot of input and I had to think about everything a bit. If I want to release a new version of RBA anytime soon I shouldn't start such a big project like a dialogue generator now. The idea is very cool but I should do this in a later release and concentrate on pets and the other half done features now. Here is a idea how pets could work (and be funny): You will meet a NPC at elfish fortress that explains you how pets work and can sell you bestboxes and pet food (and maybe eggs for a lot of gems. In later versions we could more special NPCs like this one to the fortress to make it a more interesting place. On the lowest level of the dungeon/tomb you can obtain one monster egg per run. This eggs can be put in a nest box and will hatch after a few days. You can choose if you keep a pet or send it to the pet trader for a few gems and sone extra xp. If you keep a pet you can give it a name and it can follow you on your adventures. You can send it home any time (telepirt it to elysium). As long a pet travels together with you its relation level will raise and if it is high enough the pet will become stronger. Pet food can be used for a little boost in relation level (only once per pet and day). One example: Lets say the most common pets are blobs. They start as little blob. In this state they will follow you abd rarely attack a hostile monster on a neightbor tile for 1lp damage. If the relation level reaches something like 2000. It will become a blob(recolored version of the already known blob monsters). In this form it will deal up to 2 lp damage and has a chance to slow enemys down. At relation level 5000 it will reach its final form the great blob(reclored mother slime). This form can deal up to 3 lp damage, slow down and reduce physical attack/protection of hitten monsters. Monsters and traps will ignore pets because I dont want them to die. Never liked this in other roguelikes.

I shouldn't start such a big project

Sure, I was just brainstorimg a bit :)

The idea with making Elfish fortress useful is great, because it is really unneeded at the moment.

I really liked the pets idea in Castaway (https://armorgames.com/play/11261/castaway-2). Well, the hatching mechanics was poor, but the pets were really useful.

> I shouldn't start such a big project Sure, I was just brainstorimg a bit :) The idea with making Elfish fortress useful is great, because it is really unneeded at the moment. I really liked the pets idea in Castaway (https://armorgames.com/play/11261/castaway-2). Well, the hatching mechanics was poor, but the pets were really useful.
themightyglider commented 4 months ago
Owner

I think elfish fortress can become a great shoping mall someday.

I will take a look at castaway. Meanwhile we could think about what kind of pets we want to add. Like I already mentioned I would add a blob as most common pet. Furthermore I think about a dragon as very rare variant. We should at least add one more variant between them with the next release. Later we can add one or two more with every update.

I think elfish fortress can become a great shoping mall someday. I will take a look at castaway. Meanwhile we could think about what kind of pets we want to add. Like I already mentioned I would add a blob as most common pet. Furthermore I think about a dragon as very rare variant. We should at least add one more variant between them with the next release. Later we can add one or two more with every update.

I think elfish fortress can become a great shoping mall someday.

Gives me a great idea. Why not some of the saved NPC are actually traders from the Elfish fortress? I.e. the fortress is rather empty at start with just a few relatively useless shops. But as the player saves more NPCs (maybe through quests only, or quests only guarantee that the saved NPC is a trader) there are more and more useful trading stuff to buy there.

E.g. the palayer may get one hatching box, but if he wants more, he should save the trader dealing in hatchboxes and a dwarf craftsman, who actually makes them (only if two are saved, they start selling the hatching boxes).

I will take a look at castaway.

Not sure if it worth it. Just hatching monster eggs in hatching slots of the inventory and going around crushing enemies with your pet - it's just that the pets were really useful in combat and fighing to get a stronger monster egg was a must. Thou the game was fun, when I played it :)

what kind of pets we want to add

I'd try a different approach. What use the pets are? So we may have the following roles:

  1. Decorative (they do nothing, just run around the player's base, maybe being joyful to see him): Puppy, Kitty, Birdy, pet Lizard, pet Bat, pet Chicken, pet Squirrel. Why not some "living" flower too, which won't move, but would be glad (express emotions) to see the character? Those can provide some resources, like pet chicken - eggs.

  2. Battle (they can attack enemies around the player): pet slime (weak attack and slow), pet snake (weak attack and poison), pet scarab (strong attack), pet firebat (can fly over trees and water), pet dragonfly (ranged attack, as it'll be much more useful, then it might be a unique pet), scorpio, spider.

  3. Supporting (they can heal the player or buff him randomly for a short time): (we don't have creatures of that sort yet?, those may be kinda turqoise - buff defence, faerie (butterfly) - heal? buffs, walking shroom - healing, magic cookpot - food and thirst, mimic - carry several items while following the player, vase monster - debuff enemies, frog - increase luck, airfish - grants waterwalking and flying, forgeworm - buffs smelting/crafting, woodworm - boost woodworking, wisp - can teleport the player home once a few days (but then is tired and needs to rest), crow - prevents other crows from stealing items), shadow - can "hide" the player for a few turns which stops enemies from attacking him/her giving ability to run away or heal, the invisibility is broken when the player attacks a creature or breaks a vase.

  4. Unique (those are strong pets (not always in combat), have very useful skills - can be found only on quest). They should also have unique look. Like the Dragon you've told about (combat: ranged/melee), Hydra (grants a serious regeneration buff), Werecub (buffs defence and has a decent melee), Wooddoll (boosts relations with NPCs), angelic chest (gives a useful item once a day), Spirit of Life (prevents character death, but only once, and then vanishes), Enchanter's shroom (enchants a single item placed inside), Tuto (tutorial bug, that follows the player until he/she finishes the tutorial), Elfish guide (will show the player Elfish fortress once he gains access). Maybe, not all of those, e.g. there may be a magic mirror, which just makes a copy of the player walking around the base (with some NPC noting, that tame magic mirrors reflect only those they like).

> I think elfish fortress can become a great shoping mall someday. Gives me a great idea. Why not some of the saved NPC are actually traders from the Elfish fortress? I.e. the fortress is rather empty at start with just a few relatively useless shops. But as the player saves more NPCs (maybe through quests only, or quests only guarantee that the saved NPC is a trader) there are more and more useful trading stuff to buy there. E.g. the palayer may get one hatching box, but if he wants more, he should save the trader dealing in hatchboxes and a dwarf craftsman, who actually makes them (only if two are saved, they start selling the hatching boxes). > I will take a look at castaway. Not sure if it worth it. Just hatching monster eggs in hatching slots of the inventory and going around crushing enemies with your pet - it's just that the pets were really useful in combat and fighing to get a stronger monster egg was a must. Thou the game was fun, when I played it :) > what kind of pets we want to add I'd try a different approach. What use the pets are? So we may have the following roles: 1. **Decorative** (they do nothing, just run around the player's base, maybe being joyful to see him): Puppy, Kitty, Birdy, pet Lizard, pet Bat, pet Chicken, pet Squirrel. Why not some "living" flower too, which won't move, but would be glad (express emotions) to see the character? Those can provide some resources, like pet chicken - eggs. 2. **Battle** (they can attack enemies around the player): pet slime (weak attack and slow), pet snake (weak attack and poison), pet scarab (strong attack), pet firebat (can fly over trees and water), pet dragonfly (ranged attack, as it'll be much more useful, then it might be a unique pet), scorpio, spider. 3. **Supporting** (they can heal the player or buff him randomly for a short time): (we don't have creatures of that sort yet?, those may be kinda turqoise - buff defence, faerie (butterfly) - heal? buffs, walking shroom - healing, magic cookpot - food and thirst, mimic - carry several items while following the player, vase monster - debuff enemies, frog - increase luck, airfish - grants waterwalking and flying, forgeworm - buffs smelting/crafting, woodworm - boost woodworking, wisp - can teleport the player home once a few days (but then is tired and needs to rest), crow - prevents other crows from stealing items), shadow - can "hide" the player for a few turns which stops enemies from attacking him/her giving ability to run away or heal, the invisibility is broken when the player attacks a creature or breaks a vase. 4. **Unique** (those are strong pets (not always in combat), have very useful skills - can be found only on quest). They should also have unique look. Like the Dragon you've told about (combat: ranged/melee), Hydra (grants a serious regeneration buff), Werecub (buffs defence and has a decent melee), Wooddoll (boosts relations with NPCs), angelic chest (gives a useful item once a day), Spirit of Life (prevents character death, but only once, and then vanishes), Enchanter's shroom (enchants a single item placed inside), Tuto (tutorial bug, that follows the player until he/she finishes the tutorial), Elfish guide (will show the player Elfish fortress once he gains access). Maybe, not all of those, e.g. there may be a magic mirror, which just makes a copy of the player walking around the base (with some NPC noting, that tame magic mirrors reflect only those they like).

(Trying to walk around with pet and understanding it's only experimental yet)

  1. Pet should have a "default" action, I think it's swap places. I.e. if the player character "walks" into a pet, then the dialogue appears, and one should seek letter "b" at keyboard to swap places. Just pushing any key except "follow me" and "good pet" should swap places.

  2. Immortal pets are a perfect shield in narrow dungeon pass. I just swap places with the pet and enemies cannot reach me unless they can shoot and the character can shoot them down with magic. That should be fixed as the development of pets advances - either pet will get "wounded" and flee or enemies could walk over pet or something like that. Otherwise it's cheaty :D

(Trying to walk around with pet and understanding it's only experimental yet) 1. Pet should have a "default" action, I think it's swap places. I.e. if the player character "walks" into a pet, then the dialogue appears, and one should seek letter "b" at keyboard to swap places. Just pushing any key except "follow me" and "good pet" should swap places. 2. Immortal pets are a perfect shield in narrow dungeon pass. I just swap places with the pet and enemies cannot reach me unless they can shoot and the character can shoot them down with magic. That should be fixed as the development of pets advances - either pet will get "wounded" and flee or enemies could walk over pet or something like that. Otherwise it's cheaty :D

3. Pets prevent from building. E.g. in order to build a room I have to make pet "stay here" in some remote place and only then when the area is free I can build.

*3*. Pets prevent from building. E.g. in order to build a room I have to make pet "stay here" in some remote place and only then when the area is free I can build.
themightyglider commented 4 months ago
Owner

Thanks for this feedback. Indeed pets are very experimental right now and need more work.

Here are some ideas:

1.) You and your pet should always swap places when you are bumping into them. All other interactions should be done from an extra menu. Maybe an extra page for the inventory menu would be the right thing. Instead of an option to let the pet wait somewhere they should return to elysium if not needed right now.

2.) Pets need some kind of Lp and hostile monsters need to be able to hurt them if they are on a tile next to them. If a pet looses all its Lp it returns to elysium too. (Like I said I don't like them to die.)

3.) If you open up building menu your pet needs to be teleported to position (0,0) or position (52,52) of the current map (out of sight). After you have finnished building the pet will return.

Thanks for this feedback. Indeed pets are very experimental right now and need more work. Here are some ideas: 1.) You and your pet should always swap places when you are bumping into them. All other interactions should be done from an extra menu. Maybe an extra page for the inventory menu would be the right thing. Instead of an option to let the pet wait somewhere they should return to elysium if not needed right now. 2.) Pets need some kind of Lp and hostile monsters need to be able to hurt them if they are on a tile next to them. If a pet looses all its Lp it returns to elysium too. (Like I said I don't like them to die.) 3.) If you open up building menu your pet needs to be teleported to position (0,0) or position (52,52) of the current map (out of sight). After you have finnished building the pet will return.

"Stay here" command may go very wrong. Today I've had some difficulties finding the pet, because I've forgotten, where I left it off.

The more serious problem is when I've intentionally left the pet in a roguelike dungeon, never to be met with again :) Maybe it still remains at the previous coordinates and can be even stuck inside a wall. But anyway I couldn't find it anymore :)

"Stay here" command may go very wrong. Today I've had some difficulties finding the pet, because I've forgotten, where I left it off. The more serious problem is when I've intentionally left the pet in a roguelike dungeon, never to be met with again :) Maybe it still remains at the previous coordinates and can be even stuck inside a wall. But anyway I couldn't find it anymore :)
Sign in to join this conversation.
No Milestone
No assignee
2 Participants
Loading...
Cancel
Save
There is no content yet.