Saturday, January 14, 2012

Save Me!




I suspect most of you recognize the two scenes above.  From a play standpoint, they're almost identical.  They're both 'run up & save them' mini-quests.  And perhaps you were wondering why I'd put the exact same content in twice?  Anyone?  No?  Okay, well, let's pretend you said yes anyway, cuz this post gets really boring otherwise.  ;P

Fair warning, this isn't directly about code, but it is definitely about the magic behind the curtain.  If that's not your thing, ya might wanna stop now.

The main code allows for two different things that can interact with the character - monsters & items.  Monsters are fairly straightforward, they're the things attacking you.  Items represent almost everything else.  If you hit spacebar to interact with it, it's an item.  So that means most doors, cabinets, quest NPCs, weapons or clothing on the ground, etc.

There's some rules (okay a lot of rules) in the code to handle each.  And between the two, I can usually make everything happen that I need.

The time when I have trouble is when I need both monsters & items at the same time, and they interact conditionally with each other.  Take the rescue events above.  There's a monster (or monsters) and an item (the girl), and you need to be able to interact with her after she's saved, but until then she needs to stay unselectable.

When I originally set up the LeiLei rescue, I had the item (LeiLei) drive the event.  Once you get within a certain range, the monster is 'released' so to speak.  At first I was really happy with this.  But on later playthroughs, I noticed that it was possible to get just outside the trigger range, and swing a reach weapon right through the monster's sprite.  The monster should be hit by this & react, but because it's all slaved to the item, instead he just stands there & the attack passes through him harmlessly.

That's the kind of bug I'd like to avoid.  Operative word however is like.  It's not game breaking, it doesn't lock the game or force you to start over.  It just doesn't work 'right'.  We see the weapon pass right through him, and whatever immersion we had in the game is broken.

So to answer my earlier question, the reason I did the exact same event again with K. Fox is because I wanted to see if I could do better.  This time around, the monster closest to the PC is driving the event.  Again, if you get too close he'll turn around & attack.  But now you can also hit him from range & surprise him.  This also caused all manner of problems if you can imagine.  The code wants to walk monsters towards the player, so I had to find a way to turn that off, but just for these two.  Then it wants to throw attacks at the player, had to disable that too.  Then it wants to grab the player if you get too close, but I have to tell it to release the animation with K first.  Oh, and if you jump him, then I have to release not just him but also his buddy & K Fox, so that combat works as it should.  Oh, and then K has to know if the monsters are dead or alive, so that you aren't accidentally talking to her while fighting.  I was re-re-re-writing the code for this right up until the game was posted.  I kept finding bugs I never thought of (like if you one shot them with the meteor, or if you run up & try to join the grapple).

This is the one area where I was sure I'd get a bug complaint.  There's just too many variables at play.  Although everything seemed ok, I was sure there was going to be some combination of distance-attack-player that I wasn't considering which would break the game.  I haven't heard any though, so perhaps I got them all after all?  That's sort of comforting of course, but not what I was expecting either.  hah.

Anyway, this event was a large part of the reason why I released the 0.50 beta.  There's other reasons too of course, but this is one of the prime examples where there were just too many permutations for me to test them all.  And now that it's working, I'll probably never use it again (hahah).  Okay, not entirely true.  There won't shouldn't be another 'rescue' event, but the same code tricks can be used in other areas as well.

And yes, Farah will make an appearance in Act 3.  Just not in a 'help, save me' quick event.  =D

DirtyC101





7 comments:

  1. I second that :)

    And wanted to ask if there are plans to include sweet rewards for helping them out? :D

    ReplyDelete
  2. You should add times that the hero has to fuck an npc to get information or items, and times that the girl can't escape the rape, like you did in your first game.(K-fox and the magic sword)

    Keep your amazing work!

    ReplyDelete
  3. Well I don't get it... exactly what do you want to happen?

    The problem is that you used the REAL monsters for the animation, you only need to do a "fake" monster animation, using the monster model like an item. Give it events to react to attacks (or not). Then, when you want to the monstars realease K.Fox or LeiLei and attack the player, only destroy the fake monster rape animation and summon the same monsters to fight.

    Don't do things like defining classes like "monsters items" o merging, it will ruin your proyect =(

    (and anyways, sorry for my bad english

    ReplyDelete
  4. Run up and join the grapple for the win! I never hit any bugs.

    ReplyDelete
  5. About the game and after playing it a lot, I still wanted to stay the second chapter is far too repetitive. It becomes a labyrinth with too many fights and houses. It is far easier to stay than to make, but you should add more events or just delete some houses. I have played this game for hours and still enjoy playing it, but going from house to house in hope to find an item that will help me reach the end of the level is just boring. Also, you should add a small update with the double-team grapples of the new enemies implemented. I look forward to see that.

    ReplyDelete
  6. Mhhh, there is another way.

    Maybe you schould just start an event if you enter a reach (sigh reach)
    where both are enemy´s which rape themselve.
    Like enemies grabs Wizard and start to rape (Wizard = doing nothing)
    a Healthbar went down.

    If you interrupt the grapple (or join? :D) She will be changed to an Event Item.
    If the healthbar goes down she gets corrupted and turn enemy against you!!! (Lesbian time +_+)

    You could place events like this all over the place to raise exictment, maybe even adding a 2nd player or npcs wich may figh with you until they get corrupted some time.

    I am not sure if it is possible to code, but you got 50% of the sprites anyway ;)

    ReplyDelete