Showing posts with label inventory. Show all posts
Showing posts with label inventory. Show all posts

Thursday, 6 October 2016

Inventory & UI updates

New inventory screen

I found the old inventory menu to be extremely slow to navigate, and after a while it would become tedious having to click through numerous menus before finally finding the action I wanted. To fix this, I decided to completely re-work the way the player interacts with the UI, as well as revamp the inventory menu. As I promised yesterday, I've included some screenshots below, but please note that the UI layout needs polishing and may change before release.

This is the general inventory menu screen:

You can hover the mouse over any item to get a description and information. Please note that the descriptions are just placeholders!

The inventory at the bottom left of the screen shows your currently equipped items. Hovering over them will display a similar tooltip.

You can click on any of the items to progress to this screen, where you will be presented with all the options related to that item. Once you select an option, you are returned to the main inventory menu (the first picture), and the text at the top will update to give you a description of how you carried out the action.


A move towards the mouse

As I also said yesterday, I've decided to move towards a mouse-based system for UI interaction. The keyboard shortcuts still work, but not everything can be done with just a keyboard any more.

The reason I chose to do this is that I found myself being extremely limited by having to support every action on the keyboard. Before the inventory update, I was having to use keyboard shortcuts from 0-9 to support every single option. That meant that if you had 20 items in your inventory, and you wanted to select the last one, you had to press: 9 (next page) -> 9 (next page) -> 9 (next page) -> 4 (select item). While doing that, you had to scan every option to see if the item you wanted was on that page. This was, as I'm sure you'll agree, a terrible design, and I had to change it.

I know there are good solutions to keyboard-based inventory UI's (such as those found in many roguelikes), but I felt as though I could make the inventory so much more responsive and user-friendly if I decided to move to a mouse-based system. Every single action in the game can be accessed with just a mouse (except for typing in your name and save-game file names), so, as is often the requirement for games of this nature, you can still play one-handed.

Progress


  • UI
    • - Finished inventory menu revamp.
  • Misc.
    • - Fixed large bug with rendering clothing colours.
      - Optimised clothing rendering.
      - Fixed some tooltip bugs.

    Tuesday, 6 September 2016

    Clothing progress

    Today I finished polishing the inventory system and made a lot of new clothes. There are currently 40 pieces of clothing in the game, but I still have more to make tomorrow. In total, there will probably be around 60 items of clothing in the game at launch. The most time-consuming part of making new clothes is creating the image to be used in the inventory UI. I'm using .svg files to display clothing, so I'm able to easily re-colour the image at runtime. All of the images will be in a semi-placeholder state for the first few releases. Hopefully somewhere down the line I can hire an artist to create some professional-looking images.

    A little more on clothing (and a wall of text, I got a bit carried away)

    Seeing as I'm already talking about clothing, I'll add some details about how clothing works in the engine (don't worry, I won't get into technical details concerning the code). Basically, each piece of clothing has a few sets of information that tell it how it should behave. It knows what other areas it's incompatible with (e.g. a swimsuit can't be worn with panties or a bra), how it needs to be displaced or removed in order to get access to areas it's blocking (e.g. a T-shirt will need to be pulled up or removed before you can do things to your bra/breasts), and what clothing needs to be removed in order to equip/unequip it (e.g. when equipping the swimsuit, any clothing in your legs, torso or chest slot will need to be removed first). Now, removing all those clothes manually each time you want to equip/unequip an item soon gets quite tedious, so I made the inventory do it all for you, making it display a description based on how you equipped your item.

    I'll give you an example of what clothing management looks like without an automatic system. Once again, I'll use the swimsuit as an example. (I'm sure you can guess what piece of clothing is used the most in testing.)

  • You want to equip the swimsuit, but you need to get access first.
    • Navigate to and unequip your crop top.
      Navigate to and unequip your miniskirt.
      Navigate to and unequip your corset.
      Navigate to and unequip your thong. (This is taking some time...)
  • You now are able to equip the swimsuit.
    • Equip swimsuit into it's slot (chest slot), automatically replacing your bra.
  • Now you have to manually replace all 4 pieces of clothing.
    • Navigate to and equip your thong.
      Navigate to and equip your corset. (Pretty bored of doing this by now...)
      Navigate to and equip your miniskirt.
      Navigate to and equip your crop top.
  • Finally done!

  • A better way

    When I first made the inventory system, I found that this method provides a lot of interaction, but the continuous management soon got annoying. I decided to make a method that could carry out all the steps automatically, and deliver a detailed description at the end. In this way, you still get all the same information, but with far less button-pressing and inventory navigation to do. Due to the ability of some clothing being able to be locked (like chastity cages and belts), I assumed that at some point in the future I would want the ability to lock absolutely any piece of clothing, not just ones on the bottom layer. This led to the problem that some clothing may be indirectly blocked from being unequipped. Consider the following:

  • You want to unequip your swimsuit.
  • In order to do this, you will need to remove your skirt.
  • The skirt is blocked by another piece of clothing (that somehow isn't directly blocking the swimsuit).
  • The automatic removal method returns "You can't unequip your swimsuit, as your skirt is being blocked by xxx".
  • The automatic removal method will detect and inform you exactly why you can't equip/unequip clothing. It's then up to you to find a way to unlock the clothing that's blocking you. In the event that there is no clothing blocking your way, the method will prioritise displacing clothing before removing it when creating the generated description (e.g. you'll pull up your skirt to remove your panties instead of taking your entire skirt off). Using the automatic method, equipping the swimsuit can now be done with one button press, and the interface will update with this description:

    You remove your crop top by pulling it up and over your head.
    You wriggle your hips as you pull down your miniskirt, stepping out of it once it's around your ankles.
    You untie the laces holding your corset together, and remove it from your stomach.
    You take hold of your thong and slide it down and off your legs.
    You step into the swimsuit, pulling it up to cover your torso before sliding your arms through the holes.
    Having equipped your swimsuit, you re-equip your corset, miniskirt and crop top.
    Your thong was added to your inventory.


    Tomorrow's plan

    So that's basically how the inventory is dealing with clothes right now. As I mentioned at the start of this post, tomorrow I'll be finishing the creation of all clothing for version 0.1.0. In tomorrow's post, I'll post a collage of icons for all common and rare clothing that will be in the game at release. (I'll keep epics and legendaries as a surprise, minus the Maid's outfit that I've already revealed.)

    Sunday, 4 September 2016

    Inventory

    Since Lilith's invasion, traditional ideas concerning modesty have been rapidly eroded. Led by the demon's example, it's now common to see people wearing all sorts of fetish clothing, and sometimes, nothing at all...

    As I mentioned yesterday, I've recently been putting the finishing touches to the inventory system. The inventory is split into three main categories; generic items, weapons, and clothing. Every item has a rarity (common, rare, epic or legendary), which, along with it's stats, affect it's value. Items can be obtained from defeating enemies or by purchasing them from shops. Legendary items are unique and can only be obtained from quests. I'll briefly run through each type of item.

    Generic Items

    Generic items encompass anything that can't be equipped. Most of these are consumables, which can cause transformations, replenish health, willpower and stamina, or apply special effects. (I'll talk about health and other attributes in a future post.)

    Weapons

    Weapons come in two different varieties; melee or ranged. You can have one melee and one ranged weapon equipped at the same time (I'll talk more about this in the upcoming combat post). Every weapon has a base amount of damage as well as a damage type. For example, a baton currently does 6-10 physical damage. Each weapon also has a quality (average, fine, exceptional or masterpiece) that affects it's base damage. I'm still tweaking weapon values and how quality works.

    Clothing

    Clothing is the most complicated of the item types. Each piece of clothing fits into one of 15 inventory slots, and can be covered in sexual fluids, be locked (i.e. for chastity belts & cages), be too feminine or masculine for you to be comfortable wearing, and be part of a clothing set (e.g. Maid's outfit). Clothing provides physical resistance, and can also provide other attribute modifiers. Every piece of clothing can be found in specific colours (e.g. bras can be found in over 10 different colours, but each piece of the Maid's outfit is only available in black or pink). The clothing slots (and some examples) are:

  • Head (Maid's headpiece)
  • Eye (aviators)
  • Mouth (ballgag)
  • Neck (delicate necklace)
  • Torso (t-shirt)
  • Chest (bra)
  • Stomach (corset)
  • Hand (elbow-length gloves)
  • Wrist (gold bracelet)
  • Finger (trashy rings)
  • Leg (miniskirt)
  • Groin (panties)
  • Foot (heels)
  • Calf (knee-high socks)
  • Ankle (ankle restraints)
  • There will also be 8 slots for different piercings at release.

  • To give you a better idea of how the inventory works, tomorrow's post will include some screenshots of it in action. I'll also talk about the UI and game flow.