Home Artists Posts Import Register

Content

  

Hey again! 

For part 2 of the progress update I want to show off a few more character designs we’ve accomplished for v0.06. AltairPL also has a lengthy progress report, including some good news from this past week regarding performance improvements with the new engine!


Stigmata 2.0

Look who’s back! If you played the first two Patreon releases of MATM you’ll remember our big robotic friend above as the boss at the end of the demos. We’ve given him a new design to better match the aesthetic of the game, but have tried to retain his goofy rust-bucket character.  Of course, he wouldn’t be complete without his … assets. 

I introduce to you: the Robodong 2.0! Ubercharge’s hard surface and mechanical design skills really came through on this one, as I’m pretty sure this is the most advanced piece of deviant robot hardware around. Make sure you wait for the surprise at the end!

This guy’s still a work in progress, so expect some additional artwork once he’s fully functional. 


The Syndicate and the “Masked Man”

Two more character designs for you! 

This charming fellow represents one of New Babylon’s crime organizations: the Syndicate. While it seems like a relatively simple design he went through a couple of design iterations, and most of the time went to modeling his clothes to get the look I was after (and not clip like crazy).  For these guys I wanted to lay on the cyber-noir aesthetic thick, so I took some inspiration from the villains of the movie Dark City and merged it with the noir look from Blade Runner.  For his revolver I was after a design similar to Destiny's hand cannons, which I think have a great exaggerated barrel profile kind of similar to revolvers in Ghost in the Shell.  In addition to this guy I have an early version of a Syndicate underboss character, but I'll probably hold onto that until he looks less like a cyberpimp >_>.  These guys won't be an enemy in this release, but will have a role in the story.

Last but not least, there’s the mysterious masked man, who you’ll also run into during v0.06 :D.


AltairPL’s New URGE Engine Progress

After finishing the clean-up related to engine font handling, I did a lot of reading to make a better decision what to tackle next. After viewing my notes related to 0.06 game scripts and documentation for the SDL audio library, I decided to deal with the URGE audio support. The reason was pretty simple - audio is the last SDL component to be implemented, and even though the engine is still in an early phase and will require a lot more work, having all components up and running will allow me to test new game elements in both engines (RPG Maker and URGE). If you’re in the Inner Circle and read my update a couple weeks ago, feel free to skip to the “***” symbol for what I’ve been up to since then!

RPG Maker divides audio into 4 types:

  • SE (Sound Effect) - self-explanatory.
  • BGS (BackGround Sound) - ambient sounds like a howling wind, chirping crickets, trickling water, etc.
  • BGM (BackGround Music) - self-explanatory.
  • ME (Music Effect) - basically the same as SE, but silencing/halting BGM when playing.

Every such type can be played with their own volume and pitch (50-150%). For BGM and BGS play position (time) can also be retrieved or set (at least for some audio formats).

URGE is using the SDL_mixer library for audio handling, and there's really no other choice. Prototypes for BGS and SE playback were working fine, so I started working on more proper versions of them. And that revealed few problems that slipped under the radar of initial tests:

  • Pitch-shifting is not supported by SDL_mixer library and at the moment I see no way of implementing it. Even though it's available for every audio type, I'm pretty sure it's only used for few SEs. If I can't find a solution, we can always prepare duplicates of SE files with shifted pitch and load them instead.
  • The SDL_mixer library provides separate channel for music playback. It differentiates from sound channels a lot; playback is streaming so there's no initial file load delay, it's possible to set playback position (time), and few other features. A possible problem with streaming implementation is that the stream is not converted to proper output format and it's causing audible distortions, e.g. playing music file with 44100Hz frequency while output frequency is set to 22050Hz will results in music being played at half speed. I may have to be forced to switch music playback to normal sound channel, since audio distortion is much more critical issue than slight load time, if you ask me.
  • Position (time) setting is available only for one audio channel dedicated to music, so it would be unavailable for BGS, which is a minor problem in the grand scheme of things. Another problem is that there's no way of getting current position of played music track - working around this should be possible, but will require a lot more work that I'm willing to put in it at the time. There's also a possibility that streaming issue will prove to be above my skill level, and I will be forced to move BGM playback from dedicated music channel to normal sound channel, which will put BGM in the same basket as BGS; it's much harder to implement positioning.

I did my best to troubleshoot those issues and look for answer on the Internet, but without any luck. The only thing I didn't do was to dive into source code of SDL_mixer and SDL itself and look for some answers, hints there. At least all issues so far are not critical and work-around is relatively simple, so I can sleep at night and leave audio handling in this state for the time being.

***

After looking at the RPG Maker-URGE compatibility list, I've decided to tackle the Tilemap class next. The reason is kinda personal: after all the problems with fonts and audio, I needed some kind of a victory, and since the Tilemap class is based on GFX, which is a much more stable base, I was hoping for the best. Most of the Tilemap data structures and ruby methods are ready. Its rendering was left for later however. First of all, I forgot how convoluted Enterbrain made it in RPG Maker, and TBH, I really don't need something like this on my head right now. A second reason is that lately I've noticed relatively poor performance on one of the test maps. Performance gain from 60 FPS in RPG Maker to 155 FPS in URGE is not a spectacular one. So, my attention has turned to something that could help with this and was in my TODO list for a long time: improving rendering queue handling. Besides, tilemap rendering would require making some changes to it anyway.

From the start, the rendering queue was based on ruby objects and some of the functionality required some weird hack. It was made like this because I wasn't comfortable in attempting doing this in pure C at the time. It's most certainly done now. I was kinda let down, because there was little to no performance gain, but I'm still pretty happy with the fact that it's much cleaner, versatile, and pro-looking than before. Another good thing about recoding render queue handling is that I'll be able to clean up some objects and other functions as well... not necessarily now.

Optimization of Sprite/Plane rendering was another thing that was lounging for a long time in my TODO list and, since I didn't feel like returning to Tilemap, it became my next target. The first version of the Sprite/Plane rendering model was the best looking option at the time, but I was constantly concerned about video memory usage. It took some doing, but I was finally able to deal with it... and with a bang to boot. Not only are video memory usage and loading times much lower, but performance is also much higher as well... way better than anticipated. This is the kind of victory I needed.

Well, Sprite/Plane rendering optimization still needs some work and clean-up, but I'm close to finishing it up. I still don't feel like returning to Tilemap, so I will probably implement the Window class next. And most likely this will be last bit of URGE work for some time - with all the 0.06 stuff 3D guys are pumping out, I need to consider diving back into game ruby scripts... still have some 0.06 things to do, and switching mentality from C way to Ruby way may take some time.

Anyway, here's the latest URGE-RPG Maker compatibility sheet!   

Files

Comments

Antilles

Great work! New engine is looking awesome, and I can't wait for Stigmata to make his triumphant return!

myself yourself

i see 2 holes on the robot pelvis, will some metal tentacles come out :D? wink* wink*

Anonymous

Woo great, he's back. Looking forward to seeing how his upgraded hardware works.

Antilles

I actually just remembered how the Stigmata cutscene played out differently depending on which character lasted longer in the fight. That was really cool and unique, are there any plans to do more stuff like that at some point?

Ashiel

*sings* "All I want for Christmas is..."

Anonymous

I LOL'ed at the Robodong and it kinda made me think of the Apache gunship's cannon due to the way it's mounted.

eromancer

I forgot to share this gem: <a href="http://i.imgur.com/qryciKR.gif" rel="nofollow noopener" target="_blank">http://i.imgur.com/qryciKR.gif</a>

Antilles

You know there's a non-joke gif linked in the post right? DP feature ;)

Anonymous

I personally like the little details very much. Especially when robodong extends, it slightly bounces up and down. Thats what makes things perfect!

jin

I kek'd hard, I love what you do, its the best.