Skip to main content

User login

What is OpenID?
  • Log in using OpenID
  • Cancel OpenID login
  • Create new account
  • Request new password
Register
  • Home
  • Browse
    • 2D Art
    • 3D Art
    • Concept Art
    • Textures
    • Music
    • Sound Effects
    • Documents
    • Featured Tutorials
  • Submit Art
  • Collect
    • My Collections
    • Art Collections
  • Forums
  • FAQ
  • Leaderboards
    • All Time
      • Total Points
      • Comments
      • Favorites (All)
      • Favorites (2D)
      • Favorites (3D)
      • Favorites (Concept Art)
      • Favorites (Music)
      • Favorites (Sound)
      • Favorites (Textures)
    • Weekly
      • Total Points
      • Comments
      • Favorites (All)
      • Favorites (2D)
      • Favorites (3D)
      • Favorites (Concept Art)
      • Favorites (Music)
      • Favorites (Sound)
      • Favorites (Textures)
  • ❤ Donate
FLARE [ARCHIVED]

Player Minions Summon Power

ryan.dansie
Thursday, March 7, 2013 - 17:36
ryan.dansie's picture

Hi All,

I have added some enhancements to support player minions. Attached is the build for Windows (its a zip file but i couldnt upload it without altering the extension). The attachment is just the main app exe and so needs the necesary dlls and content files to run. Its built on top of the main code base from around two weeks ago so i guess should be compatible with the latest mods files. To give yourself a summon power, you just need to give yourself a spawn power in your save file. There are no special requirements for the summon power and it just needs to be the same as the spawn powrs used by enemies currently. A couple of notable points about the new functionality below.

  • Minions do not block other objects on the map. It was implemented like this because it could get annoying for the player if their summons keep getting in their way.
  • The number of minions allowed by each spawn power is limited by the layers mental ability.

I still have a couple of improvements in mind but would be happy to read any feedback.

Ryan

Attachments: 
Preview
FlareProject.zip_.png FlareProject.zip_.png 5.3 Mb [66 download(s)]
  • Log in or register to post comments
Stefan Beller
joined 13 years 2 months ago
Friday, March 8, 2013 - 00:17

The easiest way for developers to give feedback on your changes, would be uploading your changes to a fork of

https://github.com/clintbellanger/flare-engine or https://github.com/clintbellanger/flare-game

  • Log in or register to post comments
cuicui69
joined 12 years 3 months ago
Friday, March 8, 2013 - 01:11

Hi Ryan,

I've unpack your flareproject.exe in my flare folder(0.17.1 installed on windowsXP).

But when i lauch it, nothing append expect a black screen during 1second.

Is there any files to add ?

  • Log in or register to post comments
marko
joined 13 years 11 months ago
Friday, March 8, 2013 - 01:34

Is there the source for this? Remember that the source should be made available for this build (for the GPL, but I also imagine it's of more use for the developers, and also would allow testing on other platforms...)

  • Log in or register to post comments
ryan.dansie
joined 12 years 3 months ago
Friday, March 8, 2013 - 02:15
ryan.dansie's picture

ok i will see about creating a fork this evening. This is my first time using github so bear with me.

cuicui69: im not sure why its not working but maybe its incompatible with the 0.17.1 mods files. I believe there have been some changes to the mods files since that version. I remember seeing some new character class files and there are also changes to the character equipment slots in the latest version (which I guess would have an affect on the save files and equipment files).

  • Log in or register to post comments
cuicui69
joined 12 years 3 months ago
Friday, March 8, 2013 - 02:35

ryan : ok, so on wich version can we try ?

  • Log in or register to post comments
ryan.dansie
joined 12 years 3 months ago
Friday, March 8, 2013 - 16:38
ryan.dansie's picture

Fork now available on github - RyanDansie/flare-game

  • Log in or register to post comments
Stefan Beller
joined 13 years 2 months ago
Saturday, March 9, 2013 - 00:06

This enhancement is really fun to play.Great enhancement of the engine :)

For the record: the spawn powers are 133, 134, 137

However I'd like to start a discussion on a few things: (I'll defend the way zangband implements pets, as it is a really enjoyable game, despite lacking graphics)

  • Should the hero receive exp for minions killing enemies? Would it make sense to have it configurable?
    I'd disable that on default, as the minions are only helpers to get your way through the lands, not your exp source.
  • Spawning multiple minions, these stand on each other, as there is no collision detection for other minions,
    Should the minions have collision?
    I'd do so as minions just come not only with advantages, but also disadvantages, hence operating in small caves may be hard.
  • Currently the pets seem to "stay close / follow the hero" Other possible options(copied from zangband) may be:
     a) Stay close                                                                                                                
    *b) Follow me                                                                  
     c) Seek and destroy                                                                                                            
     d) Give me space                                                               
     e) Stay away                                                                   
     f) pets may not open doors                                                                                                    
     g) pets may not pick up items                                                                                                 
     h) Display current pets                                                                                                       
        Dismiss pets
  • Combining the minions in the current implementation with stealth gives fun effects. The enemies seem to detect only the hero as an aggressor, but not the minions, so the minions could stand on an enemy without action to be seen.
  • Another point to consider: will the minions stay minions forever? If I hurt them by accident such as with fireball, freeze or by a bow, they may turn into enemies as well?
  • Log in or register to post comments
ryan.dansie
joined 12 years 3 months ago
Saturday, March 9, 2013 - 18:17
ryan.dansie's picture

Thanks for the feedback. Here are my thoughts on your discussion points:

  • As a player I would expect that minion kills would count as player kills for exp gain. It might be annoying if you spent a long time killing a boss together and didnt get the experience because your minion gave the last hit. On the other hand, disabling this would be a good way to ensure that players would not be too reliant on minions and encourage players not to overuse minions. It wouldnt hurt to make it configurable in any case.
  • I agree that the lack of collision detection creates an unnatural looking effect when minions are all standing on top of each other. I think that collision detection could be introduced but maybe that the player could be excluded from it i.e. minions block all entities except for the player. Otherwise you could easily get blocked into a corner on levels with narrow passages. Of course a quick way to banish your summons would also solve this issue.
  • I had a few ideas for these type of configurable ai options:

          Retreat when near death

          Defend the player (target those enemies which are attacking the player)

          Target enemies causing the most damage

          Target enemies being targeted by the player

          Walk in front of player/surround the player when not in combat

          Generally I think that options like this are overkill for your typical summoned minion. I think your typical minion would be expected to have the same behaviour as the enmies. It could be relevent for a more intelligent npc ally e.g. like a mercenary or other human companion. If these sort of allies were available, perhaps they could have a menu screen to configure such options. Some shortcut keys to give ad-hoc commands could also be good e.g. commands like "Protect me", "Retreat" or "Move here".

  • Your correct in observing that enemies do not initiate combat directly with minions. I implemented it like this because 1. it was a quicker way to get it working in the first instance and 2. I was unsure about the performance impact of checking every enemy against every minion on each frame (and vice-vera). Actually I thought it produced surprisingly natural looking behaviour but of course the stealth power has exposed it as a possible flaw. So currently, the way that enemies enter combat is no different than the original, but after entering combat, they are able to choose from multiple targets.
  • One idea that I was thinking about was that once a player raises a summon, there could be a % chance that the summon is under control and becomes a minion and a % chance that the player cant control the summon and it turns against the player, perhaps based on mental ability. Another idea I had was that if the player tried to raise more sumons than they were able to control, the additional summons would turn on the player (rather than fall dead as they do currently). Currently, the player abilities cannot harm a summon but this could be changed if it has some merit.

 

Some other points which require some thought are below

  • The summon ability seems to be too overpowered for the current game and makes it too easy for the player. I think an option to limit the number of summons to 1 per skill would help.
  • The raised summons are currently using fixed level and stats (the same as enemies) and so the raised summons will either be too powerful for the low areas or too weak for the later areas. The minion level could possibly increase in line with the player level or the player stat points. Are there any plans to allow multiple skill points to be added to a single power to "level up" the power? Incidentally, I think this is a good way to go because it would give some more choice in character progression. Currently, its easy for a player to gain access to all powers, which would ultimately result in all characters looking the same and doesnt allow much room for "specialising" your character.

 And finally, some other ideas I am thinking about:

  • A Charm skill which would allow a player to convert an enemy for a short period.
  • An option to limit a summon to a fixed duration before they are banished
  • party buff skills
  • hire a mercenary/recruit an ally (with equipment slots and exp gain etc)
  • ability to create a quest where you need to escort an npc to another location

 

  • Log in or register to post comments
Mumu
joined 14 years 2 months ago
Sunday, March 10, 2013 - 01:59
Mumu's picture

You can always use stuff like "reserve mana" (aka when you summon you reserve X% mana) or simply have the minion "drain" your  mana (as long as he is summoned you louse like 2MP per 3 seconds).

This way you ensure that non-spellcasters can't abouse this and summoning more then 1 minion might not be the best Idea.

Minion stats shoud be equal to the summoning skills (the better the skill the better the minion) or a sytem equal to this

Lvl 1: 50% change to summon (the other 50% you get a hostile minion) a lvl 1 minion

Lvl2: 55% chance to summon a lvl 1 minon

Lvl3: 55% chance to summon a lvl 1 minion while 5% resulting in a lvl 2 minion

etc.

so at higher skill mastery the minimul level of your minion is guarantied (or hell you cen even incrise the nr. minions).

 

 

  • Log in or register to post comments
Stefan Beller
joined 13 years 2 months ago
Sunday, March 10, 2013 - 03:26

So I was looking through the code.

It turns out as of now it is only actual code, so part of the engine and not a game itself.
So if you plan to do a pullrequest sooner or later, you should rather put it on a fork of
https://github.com/clintbellanger/flare-engine instead of
https://github.com/clintbellanger/flare-game

The -engine repository contains actually only code, whereas the -game repository contains all the graphics, maps, quests (and also the code)

The -engine repo is intended to be used by more games than just flare-game, such as
https://github.com/makrohn/polymorphable or
https://github.com/makrohn/concordia

And having minions might come handy in different games apart from flare-game as well :)

  • Log in or register to post comments
makrohn
joined 13 years 1 month ago
Sunday, March 10, 2013 - 15:39
makrohn's picture

I like it, and it feels great.  It also has a LOT of code, and I wonder about the overhead that entails (for CPU and for maintainence).  Also, it seems like there's an arbitrary limit of Two Per Summon Type - it should probably either be 1, or configurable.  The only other thing I'd really like to see is being able to hover over your summons to see the current HP.

  • Log in or register to post comments
Stefan Beller
joined 13 years 2 months ago
Sunday, March 10, 2013 - 15:57

Yeah code wise, there were some copy/paste things from enemy classes. Maybe it would be worth checking if some of these methods could be moved to the common entitiy thing.

  • Log in or register to post comments
makrohn
joined 13 years 1 month ago
Sunday, March 10, 2013 - 16:12
makrohn's picture

If this gets accepted, you can bet it'll end up in Concordia somehow.  My Ranger tree would love some summons.

  • Log in or register to post comments
ryan.dansie
joined 12 years 3 months ago
Monday, March 11, 2013 - 12:59
ryan.dansie's picture

Thanks for the positive feedback. Im assuming that the code will not be wanted in the main project but let me know otherwise:

https://github.com/clintbellanger/flare-engine/issues/395

Anyway, I will move the code to an engine fork instead of a game fork and continue implementing some of the other ideas.

  • Log in or register to post comments
Stefan Beller
joined 13 years 2 months ago
Monday, March 11, 2013 - 13:07

So if I understood Clint correctly, this is going to be in mainline after 0.18 is out (end of this month, http://www.flarerpg.org/blog/20130306)

Large changes/extensions are better pulled at the beginning of a development period, so lots of testing can be done.

  • Log in or register to post comments
ryan.dansie
joined 12 years 3 months ago
Monday, March 11, 2013 - 13:08
ryan.dansie's picture

**deleted**

  • Log in or register to post comments
Stefan Beller
joined 13 years 2 months ago
Thursday, March 14, 2013 - 14:49

Another thought which came up during discussion on irc:
(Feel free to join #flarerpg at freenode :)

Maybe we could implement the minion system by just exchanging/adding the EnemyBehaviour class.
So we would not need a MinionBehavior and MinionManager, which currently has copied lots of the respective EnemyManager and Behavior class. Instead the minion is technically an enemy, just with a different behavior.

This would bring some advantages:

  • Maybe less duplicate code (Manager class, behavior class, enemy/minion class itself)
  • Easy switching during runtime: Consider a Ranger taming animals. Or if you are dealing damage to your minion, it turns against you. This would be probably be easier to do, as only the enemybehavior class would need to be changed.
  • Log in or register to post comments
Stefan Beller
joined 13 years 2 months ago
Thursday, March 14, 2013 - 14:53

http://webchat.freenode.net/?channels=flarerpg for those who are unfamiliar with irc

  • Log in or register to post comments
Stefan Beller
joined 13 years 2 months ago
Thursday, March 14, 2013 - 15:33

Another advantage to the idea: We already have lots of enemy code there, like showing a HP bar.

  • Log in or register to post comments