Live Chat: Discord.
Get the latest builds: Patreon.
Public Version for game under development: Here.
Download for Heroine Rumble is at the Heroine Rumble page.

Thursday, August 16, 2018

Features and... Goblins?!!

Decided to combine the existing equipment window (hotkey C) and the upcoming stat window together into a Character window. It consists of tabs as seen above. You click on the buttons to switch between different tabs. I think this is a neat way to organize everything and allows for extensions in the future rather than having to create a separate window for every functionality.

Here is a new feature enabled by the new Temporary Effects system - Seduction! It is an ability that places a "taunt" effect on nearby foes, forcing them to a) run towards the seducing unit, and then b) if close enough, starts H.

One thing that some people asked for is the ability to engage in H with clothing on. I am generally weary of adding those features as a toggle, as it adds another path to consider for balancing and gameplay. It gets worse as more of these toggles are added, as now I have to consider all the different combinations of various switches. So instead, I like to add these things as a game mechanic if possible. This is an example of it. Seduction bypasses clothing restrictions completely and an easy path to lewds if that's what you are after. Two birds with one stone!

Oh yeah, in case you are wondering, a) configuring companion abilities is planned and b) no you cannot cancel the seduction midway in case you want to be... "creative" ;).

Here is another new combat ability - lunges! This is reserved to Goblin tree of units for now. The issue that I am trying to address here is that the backpedal while keep swinging is a very potent technique. I don't want to add some arbitrary mechanic such as a trip chance while backpedaling like some M&B mod did, so I am trying to balance it via game mechanic if possible. Lunges have a lot of forward velocity and it is meant to be difficult to kite against. It comes in 3 attack directions like all the other attacks and must be defended accordingly.

A little side note: I think, that the free movement while swinging the weapon might be a mistake. I know M&B had it and that's largely why I implement it. But looking at it again, it makes it very hard to balance. You are kind of forced to make the AI run faster than the player if you don't want to make kiting very strong. The animation themselves could have been a lot more impactful if the lower body get involved in the movement as well rather than doing it's own thing. (Without a ton of animation work, that is) Another possibility is making more enemies ranged to balance out the melee mobility. I think, for a melee focused game, the Souls style of locking you into a forward motion while attacking might work better (for a tiny indie game dev's, at least).

Speaking of balance, here is a little much needed feature - animation for using items. You cannot run during it - can only walk and it is roll-cancellable, and getting staggered cancels the animation (Heavy Armor, anyone? ;) ). The item is consumed when the effect takes place (rather than on interrupt).

And finally, we have... Goblins! As mentioned previously, I want to turn towards more fantasy side of things, and this is the first step. There are a couple of things I want to archive:

The first is that I want to start implementing non-standard body shapes. In particular, I feel like supporting different head models is a must. And indeed, the goblins have their own head model. Just to be clear, I meant heads with a different skeleton setup. The main challenge here is how to get blowjobs to work. Don't know how many people noticed, but the game currently doesn't have "real" H-positions using the mouth, and the reason is that I haven't figured out how to align the mouth with it's target when participants are non-standard sized (eg, with sliders). TBH, I still don't but I am certainly going to give another crack it in the near future.

Secondly, the game can now generate units with different slider values. A rather small feature but it's one that was requested for quite a while now, so here it is. But perhaps more importantly to some, I also cleaned up the UnitData file structure in anticipation of enabling it to be modded. If you want to make enemy(ies) futa, you shall be able to, via modding.

Thirdly, I want to start working on the troop tree. For those unfamiliar with M&B, basically, in addition to companions, you can also hire troops. Unlike companions, you cannot customize them individually and they come in predetermined stats and equipment. Troops of the same type gain exp as a group and when enough exp is gained, you can promote some members of that group to the next tier, that have stronger stats and equipment, etc. This is something I like to implement, too. Maybe a Humans tree, an Outlaws tree, a Goblins tree, an Elf tree, and so on.

For example, here are the Goblin Fodders, the weakest and cheapest of Goblin units:

"Strength in numbers, and little else"

After some experience, some of them may get promoted to Goblin Infantry:

                                                        "Better equipped, better fed"

It's getting late and I'm tired, so I will give a very short description of what I envision the Goblins race to be. Goblins are small(er), weaker creatures than average but is very nimble on their feet and moves quickly. They roam in packs and are weak to fire... wait, wrong game. Their tactic involve overwhelming the enemy while supported by various debuffs caused by the Goblin back line, including Ensnaring Nets and Curses that inflicts various Aliments. Outside of combat, Goblins have high libido and female Goblin have high pregnancy rate - "Breed like Goblins" in game lore. (These racial effects are to be implemented later with other breeding mechanics)

Monday, August 6, 2018

Some upcoming features

It seems that the environment save/load is working rather well, at least I haven't received many bug reports on it. Going forward, I am going to assume the environment, quest, and map unlock save/load are all working as intended. If you found a "dupe" bug, it may not be a good idea to keep it a secret; as the same dupe bug could cause your inventory to be wiped in the future.

Anyhow, as I mentioned in the big "What to Expect Next" post, I am going to start implementing RPG elements, and that's what I have been doing.

First up is exp gain and leveling up:

Some comments:
  • Exp is separate from money
  • Each unit have their own exp, level and stats
  • You may level up your companions however you want
  • Hirelings (non-uniques) have fixed stats per tier (similar to Mount and Blade)
  • You gain exp on KOing enemies, quests, etc.
  • Introducing a new concept: Command Points
    • Command Points determines the amount of allies you can bring with you.
    • Currently, the base CP is 10, and you gain 2 CP per CHA, and maybe some amount per level. The current Allies costs 6 CP each and CP cost may increase depending on the companion level and is reduced by the companion CHA.
  • Here is a list of their current effects:
    • MIG: 
      •  + 10% MIG scaling 
      •  + 10% interrupt 
    • DEX: 
      •  + 10% DEX scaling 
      •  + 3% action speed 
      •  + 0.5% movespeed 
    • CON: 
      •  + 10% HP 
      •  + 5% Stamina & regen
    • WIL: 
      •  + 10% hostile effect duration reduction (Debuff Resist)
      •  + 5% stagger reduction 
      •  + 10% H damage reduction 
    • CHA: 
      •  + 2 command points 
      •  + 10% H damage 
      •  + bonus to NPC attitude 
    • INT: 
      •  + effectiveness of out of combat skills (either through bonus or allows you to raise them higher) 
      •  + 10% INT scaling (if ever gets there) 
      •  (INT may get cut)
    •  Every level also grants 5% HP in addition to other bonuses
  • The current scaling for weapons is 100% MIG 50% DEX for melee weapons and 50% MIG and 100% DEX for ranged weapons.

Next up, I noticed that there are a lot of mods of recolors and it seems that item dyes are in demand. (Or maybe it's just due to the fact that recolors are the easiest to do.) Dyes is certainly a feature that I want to implement. However, one of the problems that needs to be addressed is how the UI should look like. So I decided to get started on dyes by implementing a "Item Enchantment/Upgrade" system. I went for a very common setup found in MMOs where there is a window with a slot that you can drag the item into, and then decide to do whatever operation you need to do on the item. 

It's a start. Imagine that in the future there would be some buttons on the left/right that allows you to pick the colors for each "color group." As for the upgrade system itself, I am not putting too much emphasize on it atm. The bonus are small and the cost goes up very quickly - it's just an optional money sink.

I also implemented a Status Effects System, or temporary buffs and debuffs. For example, negative effects such as Slow, Bind, Embarrassed and positive effects such as Food Bonuses, Regeneration and so on. I feel they are very important to get the traps right. (BTW, the traps in the previous big post refer to the dungeon traps and not the girl that's a boy trap). Traps that only do damage or break clothing are cool but ultimately not as exciting as ero versions of them that inflict status effects such as Binds, Slows, Weaken, Ecstasy and so on. ;)

Finally, I am working on an "Intermediate" level AI. I don't know if anyone
remembers, but there was a lot of concern on how to balance the 1 v many aspect of combat. Perhaps I did went a bit overboard there and the encounters are fairly easy to some players. So what I want to do is start unshackling some of the constraints on the AI and make them behave a little more threatening on higher level enemies/elites. The "Novice" AIs are still fine for the "Dungeon" area as it was meant as an introduction, but player may be a little surprised by the higher level areas. ;)

Saturday, July 28, 2018

[Patreon] V4.6 - Base Building?!

Patreon LINK.

V4.6 is here! Here are the patchnotes:

  • The "Tent" area is now saved across playthroughs! Which means farming/gardening progress is saved! Container(s) in the area will have their contents saved as well. This is a very important feature to get right, so please report any bugs you find!
  • Fixes:
    • Using items on allies will now correctly consumes the item when at 0 stack
    • Fixed bug that cause loot items to not appear when the box is stashed with too many items
    • Practicing multi participant positions on/by camp members will try to get as many involved as possible
    • Added new IK behaviour for standing positions that targets the waist area to mitigate the "arm not long enough" animation problem
    • Removed "bunnysuit-fishnet" -> combined with the bunny shoes to be more consistent on how thigh-highs are handled
    • Removed "Unequip" action in the hotbar, it is no longer necessary due to the presence of Equip window. (you can drag it off if loading from previous save)
    • NOTE: grass is disabled until a future version
  • And Finally, the Terrain Editor tool!
    • Is meant to be a development tool/modding tool but I like for people to try it if they are interested.
    • You can find a "Terrain Editor" item in the box near the tent. Note: since the container is now saved rather than refreshed on restart, don't lose it!
    • You can import custom models via editing the json files. Refer to data/_unstable/prop_data.json for examples.
    • You can import custom tiles via editing the json files. Refer to data/_unstable/tile_data.json for examples.
    • You can only create "dumb" props atm. This meant, for example, you cannot use it to create a garden that you can interact with.
    • An exception is made for container props - which you can place container props anywhere you like and you can use it like normal. Note: containers placed this way starts empty.
    • NOTE: AI Pathfinding is likely to not work super well yet.
    • If you have any questions, feel free to ask! The actual base building part will likely build upon the Editor so any feedback/suggestions are welcome!

Wednesday, July 25, 2018

[Public] V4.5c

Download HERE.

V4.5 is now publicly available!

Here are the highlights from the previous public build, v4.2:

  • Threesomes!
  • A lot more positions!
  • Initiating H with anyone - foes, allies, bosses alike! 
  • Futa conversion potion for you and allies! (optional)
  • Color & hair customization for you and allies!
  • Bows & Arrows
  • Armor & Armor Destruction
  • New Encounter Map if dungeons isn't your thing
  • A new inventory UI
  • Modding support! Check out previous posts for mod packs

In Game Terrain Editor - Part II

V0.1 of the Terrain Editor is done. And one of the new features, is that changes made to the farm/garden and containers in the tent area is now saved! This happens regardless of whether or not you use the Editor.

Another feature is the ability to save/load user created maps (to external files). This obviously have a lot of implications. I think the UI is probably a bit clunky, but certainly useable. I was able to create the zone in the picture in about 5-10 mins. (It's just a testing zone)

One problem the Editor addresses is that previously, any new modded item must come from the merchant. While this works decently when there are only a couple items, it can be hard to get what you want with many mods. With the map save/loading, the modder can just put the item into the containers within the map and have user acquire the item that way.

Limitations - currently, there are no way to edit metadata with the Editor. Things like player respawn point, enemy spawn points and so on. Another issue is that the base game doesn't have much tile/models to pick from. This is mostly due to the difficulty in creating hand crafted environment without an Editor so it was somewhat neglected. I am sure the situation will change.

Currently, working on exposing additional modding functionality to load user defined tiles and models. Unfortunately this will have to be through editing json files directly rather through an in game interface. I want to release another build soon, to get the editor and surrounding features to work already took a long time.

Saturday, July 21, 2018

In Game Terrain Editor - Part I

Been working on a fairly major feature - an in game terrain editor (that can place/remove objects too). It's not 100% done yet but enough of it is working already to start writing a post about it.

But before that, I want to take a detour and talk about some design decisions first. First of all, I know from the beginning that making an actual real time 3D game is alot of work, and my resources are very limited. So I tried hard to reduce complexity and optimize workload whenever it makes sense to do so. One of those decisions is on how the terrain/environment is done.

I decided to go with a tile/voxel terrain system (think Minecraft) rather than the "regular " 3D mapping system. While the regular method allows one to create terrain with far greater level of detail than a tile based system, it also takes a lot more work - something that I don't know if I'll have the time to do. Whereas I think I can do a reasonable job with a tile based system.

I am not quite satisfied with the blocky Minecraft terrain, so I set out to implement smooth voxels. And that I did:

However, using only smooth voxel led to problems. For example, it is impossible to create a sharp edge (so it cannot be used to create walls) and it is extremely noisy. So eventually I created a system that can support 3 different type of blocks: terrain blocks, smooth blocks, and regular cube blocks.

But that creates another problem: because the game's terrain system is unique (afaik), I don't actually have a visual tool to create the terrain with. So far, I managed to mostly sidestep the issue with a heavy emphasis on procedural generation (the dungeon and encounter map). The village is done with a lot of pain. I had to basically write in a textfile where each object is, reload the game, eyeball how close I get, re-edit the textfile and try again. It was a valiant attempt but clearly something better is needed.

So hopefully that gives people a idea of the motivation behind creating an in game-terrain editor. To summarize:

  1. As an development tool to create environment with. I want a better Village. I want a better Bandit Camp. I want a better Ludas Lair, and so on.
  2. As an experimental tool to get experience on how to implement the base building part. Afterall, base building is just terrain-editing, but with constraints.
  3. Finally, as something for modders and other who might be interested to mess around with.
Here I am going to go in some detail on how the tool works, if this is not something that interest you, feel free to skip.

In order to bring up the editor UI, you need to acquire a "terrain_editor" item and "use" it. For example, dragging it to the hotbar and press the corresponding hotkey. It looks something like this:

The editor is divided into tabs. Currently, there are Terrain, Block, Tile, Object, and Misc tabs. While the editor is open, most regular game actions and hot keys are disabled. The right mouse button and "Use" on the item itself toggles between locking and unlocking the mouse. Unlocked mouse is used to operate the editor UI, and locked mouse is used to confirm editor action, similar to how the rest of game operates.

The Terrain Tab:

The Terrain tab is used to modify the terrain blocks. The terrain is basically a height map, in voxel form. Essentially, the game stores a height on each (X,Z) coordinate and the terrain is generated from that. Compared to smooth voxels, it tends to generate smoother geometry, but because it is 2D, it is not possible to use it to generate ceilings or buildings with multiple floors. Hence, the operations on the terrain are Raise, Lower, and Smooth.

Raise increase the elevation of the terrain, as demonstrated here.
There are also 3 modifiers:
Size increases the radius of affected zone.
Strength determined how much to raise/lower the terrain by.
Curve is kinda hard to explain, so it's probably better to use pictures instead.

Curve = 0.0

Curve = 0.5

Curve = 1.0

Lower is the reverse option, that decreases elevation. For example, if you want to dig a pit: (using Size = 10, Strength = 3, Curve = 1)

Finally, there is Smooth. Smooth calculates the average height of the selected area, and then cause each tile in the area to move towards the average. Recommended to use a low strength, medium to high Curve value for the best results. Here Smooth is used to create a ramp into the pit:

Next up we have the Blocks tab. The block tab is used to create/remove individual blocks:

Place creates blocks. On size of 1, the behavior is identical to Minecraft. But its also possible to use higher Sizes to create a bunch of cubes at once.

Remove is the opposite process that removes blocks.

And finally, we have Smooth blocks if cubes isnt your thing. For example, a sphere:

It's possible to create caves with a combination of "Place"ing and "Remove"ing smooth blocks:

At this point, some observant readers might ask: with smooth voxels, why do we need terrain blocks as well?

Good question. It's what I thought so too at the beginning. However, there are some problems with a only-smooth voxels approach. The first is that the geometry generated by smooth voxels is noisy. It might look smooth from a distance but it actually may contain lots of small bumps and ridges. If a character tries to walk on it, she may get stuck. Whereas the geometry generated by terrain blocks is much smoother in comparison.

The second problem is that path finding with only smooth voxels is too computationally expensive. With a height map (terrain voxels) , path finding is a 2D problem - expensive, but doable, whereas with smooth voxels, it is a 3D problem, which is very expensive to calculate.

So here is the rule of thumb: use terrain block to denote areas where characters can walk on, then use smooth voxels for things like obstacles and ceilings that cannot be done with a height map only approach.

Also, the Block tab cannot be used to modify the terrain, and the Terrain tab cannot be used to modify blocks. (But you can certainly raise the elevation such that the terrain will engulf the blocks)

Thirdly we have the Tiles tab. The tiles tab is used to modify the texture/image of existing blocks. Kind of like of what the hoe does, except faster. For example: use it to convert grass to dirt.

I should probably mention here the "cheats" options as well. Currently, under the Misc tabs, there are 2 options - Gravity and Collision.

When Gravity is disabled, you can fly! Woohoo! Space key flies upwards and Ctrl keys flies downwards. For example, if you really really want a minimap, you can!

The collision toggle, well, toggles collisions. Useful if you accidentally entomb yourself and such.

And I also feel obligated to mention that any "interesting behavior" resulting from enabling cheats are all "unintended features." Bugs with the tool itself, of course, send a bug report. But if enabling cheats causes things like AI don't know what to do with an aerial unit, those are all "features" :P

Finally, we have the Objects tab. This tabs is used to place/remove "dumb" objects. For example, if we want to place houses in the dungeon because, why not?

The Facing option changes the rotation.
The Scale options changes the scale.

And of course, we can remove objects with the remove option - because building houses in a dungeon is probably not a good idea (it really isn't)

Phew, that's a lot of text for part I. So I'll end it here. There are still a few things I need to do - the save/loading of map files being one of the big things that is still WIP; the ability to load models - probably will be using a similar method with custom clothing, but static models should be much common and easier to handle than skinned models; finally, the ability to load new tiles/images as well, such as this, to make everything prettier:

Tuesday, July 17, 2018

For Modders: additional references.

@Mike W is working on a new outfit shown in the picture. He wanted a couple more references that he can build and extend from. So here is the reference file with more things!

Reference_2 which contains the fighter set, a tail for reference, and a "skirt" reference - from the fighter set bottom piece.

Reference_bow which contains the bow skeleton, mesh, and the animation for the bow as well. I don't know how easy to use to use and figure out so feel free to ask me questions.

As for me, I am currently working a very exciting feature that will finally lead to your farm/garden and "storage" being saved across different play through, along with other things. More info to follow :D

(Copy of Patreon Post HERE)