April Progress Update! (Patreon)
Content
Hey everyone!
As usual, there’s a whole lot to report on for this month! We’ve been making solid progress, and I want to thank you for sticking it out while we go through this dry spell of playable content. Alas, production for v0.06 is still sidelined for a little bit longer while I finish up work on the game’s story. While it may not be the news you were hoping for, it’s not bad news! I’ll get to that more in a second. While I’ve actively been the wrench in the machine holding up v0.06 with my story shenanigans, AltairPL has been making *incredible* progress on the new engine. So much so that I’ve gotten ahead of myself (much to APL’s chagrin) and started drafting mock-ups to understand what changes will be required by the game’s art. Here’s a little comparison mock-up of what you can expect the battle scene to look like in glorious HD! Of course, APL would kill me if I didn’t put a little disclaimer saying this is still completely tentative, will require a lot of work, and is still quite a way off, so there it is 😃. Anyways, APL has a new engine tech demo that we really need your feedback on! The more feedback we get from you at this early stage, the fewer bugs we will have when we make the engine transition. This tech demo includes all his progress since the one we showed off to the Inner Circle crowd earlier this month, so please see below to check it out!
Story Progress
I’ll admit when I started the project I wasn’t really planning for the story to be such a priority. It’s actually turning out to be one of the things I’m most proud of though! It’s come a looooong way since my original rough draft last year, and I think it has the potential to be as epic as the games that inspired the project. I’m also pretty certain you won’t be disappointed by the amount and variety of H content… nor in the fact that you will now get to play five different characters throughout the game! Sitting on the story details is burning me up, but what I can share with you (without really spoiling anything) is something I showed the Inner Circle crowd earlier this month. A couple weeks back I finished the core elements, and after doing so I divided the game into five chapters with a number of subsections. The above image shows the tentative organization and names of these sections. This idea was inspired by how the RPG classic Chrono Trigger's story was organized and presented to the player, and just like that game I plan to somehow make these visible within the game as you progress through them.
For the past couple of weeks I’ve been working on what I’m calling the “final pass”, in which I started at the beginning and have been filling in gaps and revising anything that needs it. Admittedly, that name is misleading since I’ve already resigned to the fact that later on there will need to be probably another month down the road where at the very least more scriptwriting is done. It’s been a huge task, and while things are going great creatively the hold-up is due to the sheer amount of work. It’s over a hundred pages already, and by the end of it I expect the script alone to top 100, not including the H scene dialog.
The good news is that I’m quite confident there won’t need to be any major rewrites at this point, and as such I’m nearing the point where I can say enough is enough for now and jump back onto v0.06 production!
APL’s Engine Progress
APL here! Before I start my progress report, I feel like I need to clarify few things since it's getting a bit confusing (apologies to the Inner Circle crowd, who has already read through this… see the bottom of this section though for the latest progress update)!
For the most part, the engine progress mentioned in last monthly update was referring to interfacing SDL/GPU directly from the game ruby scripts. For the sake of clarity I'll refer to that as "RM_SDL" from now on. Then there was this line from the last monthly update:
"Currently APL is investigating ways to simplify the interfacing between Ruby and C, which has been causing him a lot of uh, mental trauma."
This line from the last monthly update is referring to an entirely new approach which is covered in more details below. The confusing part is that the last monthly progress update mixes information about both approaches, and even though all of that information is still valid, I want to make a clear and definite distinction of what was and what is.
RM_SDL showed a lot of promise, but to make it work I had to, and would constantly have to, either make some changes to SDL/GPU library or create and maintain a proxy library of my own. Another problem was that no matter what I did, RM was throwing wrenches into my gears. Those and other problems (e.g. uncontrollable memory leaks and other "fun" stuff) were getting old pretty fast, and it was really getting on my nerves... so I made a kind of extreme decision to make a similar game engine of my own. This is the new approach vaguely mentioned near the end of the monthly progress update.
Here’s an update on that!
The codename for new engine is URGE (Universal Ruby Game Engine). I had a few similar names in mind, but URGE kinda fits the H nature of the first (and hopefully not last) game based on it - MATM.
First thing I had to do was to learn a boatload about the C language, application/library development in general, compilation, linking, Ruby C API, and other boring and convoluted crap. I'll skip the gory details... suffice to say, this was the reason for aforementioned mental trauma.
I then had to actually embed the Ruby interpreter into the application. This will require a lot more work down the road, but the most crucial stuff like executing ruby scripts from files/memory, exception handling/reporting, etc. are already up and running.
With basic stuff working, I moved to the next stage, which is the current work in progress: actually making URGE compatible with RPG Maker and in turn be able to use all the work we did for MATM from the start.
This image is an excerpt from the RPG Maker help file. All of the stuff visible here has to be implemented (with few exceptions) to make both engines compatible. I’ll save you the pages of technical details about what this stuff actually does, but something you’ll surely be interested in is how far along I am with it! You can find the most up to date progress chart for RPG Maker compatibility here. Things implemented into the new URGE engine since the last Inner Circle update (last week) are indicated with the (NEW) tag.
AltairPL’s New Engine Tech Demo (Feedback Needed!)
APL here again! You can find the new engine’s tech demo files here (click download in the top right of the screen). Before you start the tech demo, please, read everything in this section!
This engine tech demo is an updated version of the one shown to the Inner Circle crowd a couple weeks back. It’s not supposed to be flashy, it’s just a simple program designed to test the basic functionality of the engine. It may not look like much, but it actually serves two very important purposes:
- Show all of you how the work on the new engine is progressing,
- Allow me to gather some early feedback on how it looks and works, including issues that may occur on some configurations.
Before I go into details I need to address one very important thing. URGE is using a physical keyboard layout instead of the logical one (like RPG Maker does). This means that all keys listed below and in the keys.txt file are referring to physical position of keys on QWERTY keyboard. If you use a different keyboard layout, like AZERTY, QWERTZ, etc., you can use following image as a reference: https://en.wikipedia.org/wiki/File:Qwerty.svg . The problem is that everyone on the MATM development team uses QWERTY keyboard, so I'm not even sure if this paragraph is correct - if not, please let us know! Also let us know if you think that this approach is not the best idea. It's not set in stone and we’re open to suggestions. Also, please remember that this engine is still a very early prototype coded in a language I barely know, so some things may be sub-optimal. I'm doing my best, but most likely I couldn't avoid making some stupid mistakes, so please be patient with me and don't be angry if something doesn't work as it should or doesn't work at all.
As I've said, one of the reasons for this tech demo is to gather early feedback. There's quite a lot of info we could use from all of you and every report is much appreciated.
- First thing we need is the RendererInfo.txt file, which is created during the application start. At least basic info should be included in case of a crash, so if it exists, please send it to us.
- In the tech demo folder, you can find a reference.png image, which represents how the tech demo window contents should look like after the start - let us know if something is off and include a screenshot if you can.
- Another important thing is performance. This point is especially important for computers with low specs or just old ones. We could especially use some test information from those of you with computers that have integrated graphics! By default, the engine frame rate is capped to 60 FPS. You can toggle title bar FPS counter using F2 key and decrease/increase the limit using F7 and F8 keys respectively. Unfortunately, my implementation of the FPS counter is not entirely accurate with very high frame rate values, and displayed value may fluctuate a lot. If the value on the left is hovering below the value on the right, this is the value we need.
- Please let us know if full screen mode works! F3 will toggle full screen window mode on / off, whereas F4 will toggle the actual full screen mode on / off. We’re especially curious if the F4 mode works for everyone, since I’m not certain it’s working exactly as it should.
- There are a lot of places where error checks should be added, but for various reasons aren't. Please let us know if it crashes at any point, or if you receive an error popup!
- It's not mandatory, but providing some information about the computer on which above data was gathered would help us a lot in compiling basic system requirements - CPU, RAM, GPU, VRAM, etc.
I've spent a lot of time on window functionality. There's probably a lot more to do, but here's the rundown of currently implemented things:
- You can freely resize and maximize/restore the window. Contents will be scaled accordingly while retaining aspect ratio. In some cases /configurations this may result in blurry image – this is in part due to low resolution assets from the original game being upscaled (we plan on adding high resolution artwork once the engine goes live).
- At runtime, if usable display area is smaller than the tech demo window, the window will be scaled down accordingly.
- Two full screen modes currently exist (see the above list of feedback we could use from you for details)
- Do note that at this time there's no way to restore the window to its initial size, but I'd very much like to implement something somewhere along the line.
Now for the other tech demo functionality:
- The Corruptor head at the upper edge of the window should swing like a pendulum.
- Arrow keys control movement of the grid located in the middle of the window.
- A, S, and D keys randomize Neon's Color, Tone, and Opacity respectively and Q key resets those values.
- Z, X, C, and W keys do the same for Malise.
Thank you in advance for taking the time to test the tech demo and for all the feedback you provide!
TK’s Environment Art Progress
TK’s kind of been all over the place this month 😃.
As mentioned in the last monthly update, TK had shifted focus to working on environment assets for future areas of the game. Toward the end of February and into the early part of March however, he had actually taken a break from this to attempt an experiment that would have helped me a lot with armor damage artwork. The goal was to come up with a system that would enable us to create Malise’s armor damage artwork completely in 3D, meaning much less post work in terms of painting. Unfortunately, it didn’t pan out, and we came to the conclusion we’d need to create a much more in depth system to avoid deformation/stretching when her hips and thighs are animated. Since this isn’t a priority at the moment I had him jump back onto environment work.
His next area of focus was on a sewer area that will make an appearance a few updates out. This area was originally intended to be much earlier in the game, so there was some design work already done for him to go off of. One of his major goals however was to figure out a solution for creating realistic water graphics that we can implement for the new map upgrades we’ve been using since V0.05. The possibility from the new engine of vastly improved load times and ability to use GPU memory opens some doors in this area, so creating larger scale, non-tiling animations for environment backgrounds is now on the table. He successfully managed a proof of concept, and while it’s not jaw-dropping yet, the point is that we now have a system worked out for when we need it.
For week 3 he changed things up again:
TK here! This week I've been re-examining how I render scenes and a little bit of asset management. I spent a couple of days with Unreal Engine 4 with the idea of rendering out final backdrops there. There's a lot of great stuff going on under the hood, but I think in comparison with my current workflow, the cons outweigh the pros as a whole. But at least my curiosity is satiated, I'll probably try to set some time to goof off with UE4 more in the future. I still have an asset crisis that's growing every day! I don't have the luxury of being VerySmart(tm) or having a person working on pipeline tech, so I'm still stuck with scenes bloated with too much to manage (but it works for now).
From there, I went back to trying to solve some issues I've been having with Mental Ray lights and materials, and managed to get some small boosts in my render times (maybe). ...and I finally wrapped my head around getting mesh lights to work properly without totally destroying everything around them!! Neon tubes, signage or shaped lights are examples of where I'll be using this.
Last but not least, here’s a compilation of some of TK’s conversions and custom models from this month!