Description

Live Chat: Discord.
Get the latest builds: Patreon.
Download for Heroine Rumble is at the Heroine Rumble page.

Friday, June 15, 2018

More positions, more fun!



I think the previous patches made great strides in game mechanics and features, but it still leaves the lewd side of things lacking. So I am currently working on add more "positions" into the game.
Previously, the "positions" are called "moves," but there might be some confusion between "moves" and "abilities." I think "positions" is a better name for it.

Now here is a question, if you can port one "position" (called "move") from Heroine Rumble to the new game, which one would it be? Note: as mentioned previously, NG and HR uses different rigs and things can't just be transferred over automatically! Ask the modders that tried... ;)

Unfortunately, patreon's poll have a max 20 options limit, so this have to be done the old fashioned way: Name a position/move from HR you want to see again and if others agree, "like" it.

Heres the HR list:

  • Exposed Rollup (H): Roll opponent up and eat her out from behind....
  • Venus Flytrap (H): Roll your opponent on the ground with her legs in the air. While...
  • Intimate Pin (H): Force yourself ontop of opponent, pinning her. Then take advanta...
  • Half Crab (H): Flip over opponent and sit on her. With one hand take control of...
  • Eat Out (H): Push the legs of the lying opponent nice and wide, and give her ...
  • Sharpshooter (H)
  • Octopus (H)
  • Scissor (H): Few moves can match the waves of pleasure brought by intense cli...
  • Banana Split (Humil): Splits opponent's legs really far apart. A very humiliating pose...
  • Facesit (Humil): Show your dominance over your opponent suffocating her with your...
  • Kiss And Finger (H): Attack your opponent from 2 positions with a combination of tong...
  • Reverse Scissors (H): Control and choke your opponent's head with your powerful thighs...
  • Missionary (Futa): Roll your opponent's leg up and put your wieght on her, restrain...
  • Side Carry (Futa)
  • Clamp n Fondle (H): Apply a powerful clamp on your opponent's body with your legs. W...
  • Downward Scissors (H): Scissor your opponent to a battle of pleasure, but this position...
  • Mistress's Pet (Humil)
  • Teacher's Pet (Humil)
  • Sixty Nine (Futa): Sex in a sixty-nine position....
  • Open Wide (Futa): Sex her in a spooning position....
  • Facial Pressure (BJ)
  • Restrained Fondling (H): Restraint opponent from behind and play with opponent's boobs....
  • Restrained Fingering (H): Restraint opponent from behind and give her a nice clit message....
  • Kiss (Humil): Entrance the target with gentle kisses, lowering their resistanc...
  • Boob Lick (H): Place opponent on your knee and give her nipples a thoughout cle...
  • Dragon Sleeper (H): Bend your opponent backwards, and choke her in your arm. Her nip...
  • Upside Down (H): Eat your opponent out, but this time she is in the air and upsid...
  • Mind Control (H): Take control of your opponent and command her to masturate. May ...
  • Spanking (Humil): Place your opponent on your lap, with her butt outwards and expo...
  • Stepping (Humil): Open your opponent's legs wide and apply pressure on her crotch ...
  • Grapevine Smother (Humil): Bury your opponent in your breasts....
  • Lick N Finger (H): Paralyze your opponent with a bite on the neck while working her...
  • Lifted Carry (Futa): Lift up your opponent and spread her legs. Then sex her from bel...
  • Doggy (Futa)
  • Tight Kiss (Humil): Climb on the opponent for a more passionate kiss....
  • Deep Throat (BJ): Force your penis down your opponent's throat....
  • Primal Urge (Futa): Push your opponent down on all fours, like a dog, then sex her f...
  • Take Head (BJ): Squeeze your opponent's head with your thighs and force her into...

Tuesday, June 12, 2018

Archery


Bows are a long requested feature and it is finally here! It took a while to make it work because it requires some new animation tech, but I hope it's worth it!

In testing, I noticed that projectiles do not hit nearby foes or foes near walls reliably. I tracked down the issue and it is fixed for next build. This fix applies to other projectile weapon as well, not just bows.

Ammo:
I considered several different ammo implementations, and I decided to use a shared-ammo pool approach. Which means all weapons that consumes ammunition will drain from the same ammo pool. The primarily motivation behind this is to reduce the inventory clutter.

Modding:
upsa from discord made some new weapons for the game! Those looks pretty sweet and you can find download link + detailed installation instructions below:

Miracle

HeadBuster

Thursday, June 7, 2018

Spread the Love


EDIT: Almost forgot, Upsa in the discord wrote up a very detailed guide on how to mod files into the game with blender, check it out Here!

A common suggestion people gave is the ability to initiate grabs on anyone, not just limited to bosses/uniques. But there are some issues with the idea, if we just copy the HR's k.o.ed bodies everywhere approach, so I asked the community on suggestions on how to possibly implement this.

Thanks for everyone's comments thus far - I don't always reply to them because I found the patreon's comments system cumbersome, but rest assured I do read them. I like Thanatos150's idea of grabs on a "stun state" - mostly because the game already had a similar system if you replace the "stun state" by the "downed state."

So here is how it works:

All units now have a stagger meter, and all weapons can do some stagger damage (independent from HP damage). Charged attacks do significantly more stagger damage than regular attacks, and blunt weapons is (or will be) balanced to have higher stagger damage than it's counterparts.

When an unit's stagger meter is depleted from stagger damage, the unit is sent into air and will lay on the floor in the "downed state" for 5 seconds. If their HP meter is depleted as well, then they are k.o.ed instead.

Any unit that is in the "downed state" are vulnerable to grabs. Including minions.

Minions takes greatly increased grab damage (of any kind) and filling their lust bar means instant k.o.

This dual meter system is flexible and it opens up balancing possibilities. For example, having some minions to be vulnerable to lust (low stagger meter) and others vulnerable to regular attacks (low HP).

I did some test runs and this system feels pretty good. You have the choice to utilize grabs or not in your arsenal. And I think having it be optional is important. It's perfectly okay to use a high damage, low stagger weapon and hack your way to victory. Or use a low damage, high stagger weapon if you are in a different mood.

Another new feature is armor stripping. It's pretty straight forward: you must strip the armor of opponent before proceeding to any lewd moves. Armor strip is guaranteed to work on Minions but it may take a couple of attempts on Bosses/Unique (including the player). The animation is quick and it doesn't cycle unlike HR's strip move. It's one swift motion and then outfit on/off.


Tuesday, June 5, 2018

Encounter Map and Other Changes


Implemented a new type of area -> encounter maps! Basically, it is a randomly generated terrain segment where "interesting" things can happen, such as being attacked by a group of looters bandits. Also, hills and non flat terrain!

Along with this, there are a couple of changes, both invisible and visible:

1) Added collision resolution for when objects are already overlapping each other.

The collision system is a "looks ahead" system, meaning that before each object moves into a new position, it first checks whether that path to the new position is valid, if it not, it will truncate the path so in the new position the object only "touches" the collider rather than overlap with it.

Problem: due to floating (decimals) calculation errors, sometimes 0.00001 (a gap) becomes -0.00001 (overlapping) and the system fails. And yes, the game doesn't move the objects exactly right next to each other, but with a small gap. However, it turns out that sometimes the objects will move roughly the size of the gap, which cause the separation between the two to become ~0, and after some calculations, that 0 could become -0.00001 and boom.

To handle this (rare but all it takes is one failure to go out of bounds) issue, this game now have additional checks and handling for when objects are already overlapping each other.

2) The respawn button (U)

Lets be clear first, the respawn was never meant to be a core gameplay mechanic, but rather a testing tool for what if something terribly bad happens, like falling off the map. I don't want to say that this mechanic was "abused," because players have all the right to utilize all in-game mechanics however they want to their advantage (bugs not withstanding). But I do want to reduce the reliance on it.

Starting from next patch, the respawn button will no longer respawn you at the beginning of each dungeon floor, but at the camp instead. So it is more of a "I give up"/"I am stuck" option rather than "full HP refill"

3) Individual dungeon floors are no longer saved if you leave the dungeon.

I think this was a cool little mechanic, but ultimately this mechanic creates too much burden on other systems. For example, if this still works, then the respawn button change above effectively does nothing. Furthermore, it can lead into performance problems, such as opening one dungeon, quitting, then entering another, so there are two dungeon instances open, each with some arbitrary number of alive units. From now onwards, exiting a dungeon will now kill the dungeon instance and despawn all units within it.

4) AI Changes

This part I am still working on, but one finalized change is that AI will now "cry for help." Which means if they are attacked, they will alert nearby allies to start attacking. This wasn't much of an issue when the game was melee only, however, with ranged weapons, it's too easy to snipe the enemies one by one while the group watches.

There are other changes under consideration too, such as making enemy run towards range attackers if they don't possesses the "projectile block" skill. Basically, things to make AI play well with ranged combat.

Finally, I am looking for some feedback:

A while back, I asked if people want non-bosses/uniques to be grabbable. And the answer to that was yes. So I want to make that a reality.

But there are some issues:
1) I don't want lots of bodies to litter around. After they are K.O.ed, they should be marked for despawn asap.
2) Possible ambiguity with controls - loot or lewd? A separate key?
3) Should there be a separate move for grabs? A Grab Action? Possible, but comes with implementation costs, of course.
4) Ideally, it should not interrupt the flow of combat. Certainly want to avoid something like a "Combat Phase" and then a "Sexy Phase" if possible.

If you got any ideas on how to actually implement a grab system, that also addresses the issue above, feel free to leave a suggestion here. I know there was some suggestions already on the previous post, and I haven't forgotten about them, but hey, it doesn't hurt to listen to some new ideas. (or old ideas, for that matter ;) )

Friday, June 1, 2018

V4.4 - modding!


Patreon LINK.

See previous post for basic instructions on modding.

Changes (beyond modding stuff):
  • implemented new feature to move the camera while any UI elem is invisible - drag with LMB when mouse is not hovered on any UI elem.
  • rest heals non-party allies too
  • fixed scrollbar not appearing under some circumstances
  • fixed some sounds not playing properly
  • fixed an item duplication bug
  • right clicking when Guard Mode is "Auto" no longer costs stamina, but prevents parries (bounce foe)
  • fixed a crash when entering new dungeon/floor
  • fixed swapping equipment bug that cause seeds to vanish
For instructions on how to mod, refer to the patreon post or ask in the #modding-related channel in the discord.

Thursday, May 31, 2018

Modding Support

From the poll, it seems that is an overwhelming interest in modding the game. So I have taken the liberty to implement modding support for equitable items in addition to animations. I believe these two are the most common uses of modding, beyond things like tweaks and “cheats” so it makes sense to start with these two. Of course, I also need to explain how to mod / add new content to the game, so here it is.

However, before I get to that, I like to take a moment to talk about some design considerations on the modding system as it current stands. The most important consideration, believe it or not, is for me to create something that works without spending too much time on it. Why is this the case?

Well, first of all, I still got a game to make, so I don’t want to spent too much time on this detour. Secondly, despite the many responses that express interest in adding content, I am a little skeptical on how much new content will be made. I certainly don’t want to spend months to make a kickass modding system that nobody uses in the end. Hence, it is better to start with a minimal viable product and go from there. Finally, I assume that for those that will actually make new content, they are probably enthusiasts and is willing to work through a little hassle.

At the same time, the mod system can’t be too crude. It also needs to be extensible and flexible, with the ideal that mods created today can work with mods in the future.

For the users/consumers, the “installation” should be as hassle free as possible. Ideally - as simple as dragging a folder into the mod file or perhaps an “install mod” button in the in-game mod browser. But unfortunately, it just isn’t there yet to the self-imposed constraints in time due to the reasons mentioned above.

With all that said, here is how modding v0.00001 works:

Installation:

In the installation directory, you will find a new folder called data. In this folder, there are a bunch of json files:


Note the “_FilesToLoad.json” file. This is an “index” file - it tells the engine which files to load. When you open it, it looks like this:


You might notice that the “XXXXXX.json” entries matches the name of the files in the folder. You guessed it, that’s exactly how it works.

As an example, suppose if our friend PowerModder added some new moves to the game. And the data are in 2 new files, so the data folder now looks like this:

If you just copy and pasted the 2 new files to the data folder, it wouldn’t work. Why? Because the game have no idea these 2 new files existed or what type of data they contain. (At least in v0.0001). So you need to make modifications to the “_FilesToLoad.json”:


Now, assuming the content made by our friend PowerModder here is valid, that is all you need to do. Everything else the game will handle (or tries to).

Data File format:

You might notice that the game currently expects 4 different types of data files - animationsFiles, moveFiles, dialogueFiles and itemFiles. Let’s go over each file type:

ItemFiles contains list of extra items (equipment) the game will load. Individually, they look like this:



This isn’t actually valid JSON, because JSON doesn’t support comments ( // ). The comments are not used in code and are meant for humans to read rather than for computers. Feel free to mess around with the values and reload the game to observe their effects.

Two important fields:
  1. “uid” - this is a unique identifier for each item. Their name if you will. No two items should have the same “uid”. 
  2. “meshId” - this is where to load the mesh/model data from. Here is it “meshes\\platearmor.json.” It means that this particular item uses the model data from “platearmor.json” under the subdirectory “meshes.” Indeed, if you open the “meshes” folder in the “data” folder, you can find “platearmor.json” there. 
This means, an item in game actually requires two separate piece of data: an item description (the json above) and a model file. The model file src is encapsulated in the item description to save you the need to tell the game which models to load in a separate file. Graphically, it looks like this: (where <<----- roughly means “reads from” )

Game <<------ Item Description <<------ Model File

Here is an example. If you want to add say, “black_plate_armor_chest” to game. Step one is simple, we copy the existing json file. Then, you have an important decision to make. Do you want this for personal use or do you want to share it with others? If it’s for personal use, that’s easy, just paste the copied segment directly into the existing json file, like this:



JSONs are comma delimited so don’t forget to add a (,) in between! Use things like code editors and tools such as https://jsonlint.com/ to help spot mistakes!

If you want the possibility to eventually share this new addition with others, DO NOT OVERWRITE EXISTING FILES. Here is what you do instead:

First, we create a new .json file:


Then, under “_FilesToLoad.json”, add a new line to “itemFiles”:



Finally, open your new json file, add an [] pair for JSON array, and copy the item description in, so it looks like this:


Give it a new “uid”, mess some values (here rgb values are 0,0,0 for black) , and tada, you are done :D.

Question: is it possible to use own custom models?
Answer: Yes.

For that, you need to have blender that can export to a .json model file. I will provide a complementary .blend file on the next build with some in game models and animations for people to modify and build on. NOTE: I will not be providing a tutorial on how to use blender or providing support related to “how to do 3D modeling” - way too big of a subject. Then it’s a simple matter of setting a new “meshId.”

MoveFiles are additional move/grab/sex data the game will load. They are analogous for moves as ItemFiles for items. However, there is one big difference, is that move files are key-value pairs rather than an array/list (the type in ItemFiles). Arguably, this is a bad idea because of inconsistency, but it’s something I don’t want to fix at this point.

For clarity, MoveFiles uses this form

{
    “MoveName”: {
        ...
    }
}

Rather than
[
    {
         “Uid”: “MoveName”,
          ...
    }
]

AnimationsFiles are the actual animation data. These files is expected to be generated via blender rather than edited by hand. They are analogous to the mesh/model json files. An an individual animation file can contain many different animations.

Graphically, it looks like this:

Game <<---- Move Description <<------ animation(s) <<---- Animations files

Finally, there is DialogueFiles. There isn’t much cool stuff you can do with it yet. It’s mostly there to facilitate testing threesome moves if you edit a couple of lines ;)

And that’s it for a basic summary of how modding works. I think it’s pretty crude, and documentation thin XD, but hey, its functional (I hope). I am willing to expand it further/ provide better docs if/once people actually started to create cool things with it. But until then, my attention is back on making the game. If you got question on modding or not sure how to do X, feel free to ask in the #modding-related channel on the official discord.

Friday, May 25, 2018

Poll - Modding Support


Implement some simple modding support to import custom animations. TBH I didn't plan to support modding so soon (in terms of development) but some people already made some animations. So here it is.

One additional feature is the ability to select which move you want to use on companions as shown in the picture.

The game can support multiple data source files and as long as different mods dont step on each, an arbitrary number of new custom animations:


So here's a question: how many people are interested in modding at all? Beyond things like "Start with 1000000000000000 lewds."

Respond HERE.