Status Update
Hello there!
Picture me resuming work on the sex framework very happy with how I have done the integration of the other modules that I have told you about before and then I press the keys to show the sex scene control menu and I found that it collides with the key to show/hide the message window! I thought: "Well... it is not much of a deal, I just go to the code and change the key code to something else, maybe something like CTRL+H which is good enough to not collide with other keys...", Well, I go and try that and it is still colliding with the message window! What the fuck?
"How can this be possible?" - I thought, "It uses CTRL along with the H to avoid collisions!", then I start checking out that old but functional input overhaul I did years ago (using the Windows API) so the game can read the whole keyboard and everything became clear, this input module does not support modifier keys properly (they are read but not treated as combinations).
After reading this, you'll think: “It's not a problem dude, just don't use those keys and change it to another one like Y or U, either one!”, but honestly, it hurts me so much that the CTRL key cannot be used in combination with other keys (it is my favourite one

).
So in conclusion (shitty excuse, I know), I have paused development on the sex framework (yeah, again) and fix this issue.
But since I'm taking the time to do it, I think I should take the opportunity and
do it properly...
I remember some of you asked me to allow users to change keybinds on the game, for example, changing movement keys from the directional arrows to WASD or the confirmation key (Z) to something else closer to the movement keys, so you can play the game with one hand (you know why).
I replied that I don't think I will do it because that was at that time in which I wanted to rush v0.2 and did not want to spend time on a new system like this, but since this problem just arised and now the game has a functional mod system, I think it will be desirable if I add a new system to allow (re-)binding keys in the game.
Not only for the users but for modders too, allowing to create configs in the settings menu to set keybinds and whatnot.
Pretty much all of this was just to say that I will pause the sex framework to add a new input mapper system, and also, re-write the current Input module using what I have already.
But, so you don't go empty-handed from this post, first let me show you some little things that I have done.
Message Window Overhaul
I took a few days of the past week to improve the game message window and try to push it a bit into "modern standards".
I took a look in a few new Ren'Py games, how they handle the message window and I think you guys will like these changes I did, first of all there are new settings in the settings menu:
- Text Speed: Allows you to set the speed in which characters appears on the message window
- At speed 0, the whole text just appears in one frame
- Text Delay: Allows you to set the delay between messages
- This is used in conjunction with the SKIP TEXT feature
- At delay 0, it will instantly go to the next message
- Text Scroll Speed: Same as Text Speed but for scrolling text
- Text Scroll Speed (Fast): Same as Text Speed but used only when skipping
These settings makes it easier for people that wants to play the game and skips all dialogue because at speed 0 and delay 0 you can skip all text of an event in just a few seconds.
It will also be useful for people re-playing the game, or interacting with an repeated event and whatnot.
These are not the only things I did,
I also improved the text skipping feature and the show/hide window feature.
The skip text feature was improved making it use the settings I explained above.
In previous versions, when you pressed the show/hide key it only showed and hid the message window, the rest of the windows used (the choice window, the input number window, the gold window, etc...) were not processed, that does not happen anymore! All windows are affected and properly hidden.
I also did not like the way the window "just" appears and disappears when you pressed the show/hide key, so I modified the code to show a opening and closing animation!
Also as you may notice in the GIF, the game shows a little message when the message window is hidden, this is done to let the user know that they cannot proceed with the event because the windows are hidden, I wanted to leave the screen as clean as possible so that's why I used a notification instead of a graphic or something else, I think it is less intrusive this way.
I also took care to remember the input when the message is shown/hid, so if you hide it when hovering the choice 4, it is remembered when the windows are shown.
This is not the only thing I have planned for the message window, I also want to implement word-wrapping functionality, sound effects when a character is written, and maybe pauses when a character like "," and "." is reached, also adding the possibility to show a name in the window to identify which NPC is talking, but all of this will be done in the future, right before v1.0.0 is released.
Display Settings
Nothing ground-breaking, I have added display settings on the settings menu, it allows you so change fullscreen status, the window size, etc...
The scaling options are used internally by the engine as some sort of "anti-aliasing", it smoothes the pixels of the game.
The framerate option will be removed, since if it is set to any other value different from 60, the game runs in slow-mo (<60) or "fast-motion" (>60), nothing that I can do unless I rewrite
A LOT of code of the game, this is due to the way it was programmed by the RPG Maker dev team.
Notifications Integration
This was a small module that I had yet to integrate into the game, I think I did not metion it before because it was nothing too complicated.
I optimized the way notifications are created, now it should be more efficient, the previous versions involved several windows on screen and move them in cascade every frame if needed.
I also added support for colored notifications (before it was always forced to white color) and it also allows inserting icons in it!, check this out:
What's Next?
Next thing is, obviously, the input overhaul, the main thing is that I will remove every usage of the Windows API, which it will be the last usage of Windows API and thus it will make the game multi-platform, so creating a build for Linux system will be doable.
This is something that I have planned to do but it was for future versions, pretty much before v1.0.0 release, but since I'm reworking it now it does not hurt to do it.
The other main thing it that I will add support for keybindings, allow them to set, change or remove keybindings to adapt the keys to the user's preference.
Keybindings will be saved in the config JSON files using the Configuration system, so they are separated from the savefile.
The keybindings will be updated using the Configuration module -> If a setting is changed the Configuration module will update the appropiate keybinding associated with that configuration.
Adding support for key combinations is planned too, keybindings like: CTRL+K and CTRL+SHIFT+K will be valid keybindings and different.
It will also allow setting keybindings for controllers! mkxp-z allows me to interact with the controller connected so I can bind buttons to actions in the game.
See you soon!