SpriteWrench

Grimm & Tonic: Last Call (A Serial Web VN)

Recommended Posts

forumheaderv2.png


What’s Grimm & Tonic

This is a weekly web visual novel, that follows the residents of the fictional city of New Eden.
New scenes released every Friday.


Check it out here

What’s “Last Call"

In this VN, you wake up one evening to find Death sitting on your sofa. Broke, friendless and apparently soul-less, He offers you a temporary job at the premiere, local, shady hole-in-the-wall, DEAD-END.
Maintaining a healthy Work-Life balance is pretty tricky on a good day but it’s damn near impossible when your boss threatens foreclosure on your mortal existence. As the new bartender at DEAD-END, you’ll make new friends, mix weird drinks, all while navigating Life, Death and everything in between.


Bar-Saulv2.png

What are the Themes?
The game will focus on the following themes:
Wishing vs. Desire vs. Action
Locus of Control
Coping Mechanisms
Personal Growth

bar-inside.png

You can expect the game to touch on topics such as suicide, alcohol abuse and depression.  This title is going to be focused towards an audience aged 16 and up.  There will be references to alcohol and adult situations.  However, there will be no explicit nudity

bar-outside.png

Open to Feedback?
Yep.  Looking forward to any comments anyone may have: Pacing. Ideas/Suggestions. Both Positive and Negative criticisms.

Share this post


Link to post
Share on other sites
10 hours ago, SpriteWrench said:

Hey, can you confirm what browser you are using? 
Mobile or Desktop?

Chrome. Desktop. Windows 10.
I'm not sure if it's wasn't loading, or just took longer than I waited to load? About a minute or so.. The Google Ads were throwing up some errors. Works now. Guessing the 2nd load it faster.

Share this post


Link to post
Share on other sites
6 hours ago, Umz said:

Chrome. Desktop. Windows 10.
I'm not sure if it's wasn't loading, or just took longer than I waited to load? About a minute or so.. The Google Ads were throwing up some errors. Works now. Guessing the 2nd load it faster.

Noted. I can probably speed this up with some image compression. 

Share this post


Link to post
Share on other sites

can get it to load on desktop Chrome under OSX, but it takes quite a while, presumably because it's pulling down about 30MB of MP3s (nice music, btw). The tab is also using about 780MB of RAM just to display the title screen[1], so I don't rate its chances of working well or even at all on any mobile device I own (iPhone 5S, 6S, and OnePlus Two - granted none are state of the art).

Are you using context.decodeAudioData on your Web Audio context for these MP3s before you need to use them? If so then I suspect that's where most of your memory is going: calling decodeAudioData on an MP3 source will decompress the audio[2]. What this means is that a 3 minute MP3 at 128kbps that normally takes about 3MB, will blow up to a good 30MB in memory (at least), meaning your 30MB of MP3s will consume around 300MB uncompressed.

Those figures are theoretical, based on the sizes of compressed MP3 audio at 128 kbps, versus uncompressed 16-bit PCM audio at 44.1KHz. The reality seems like it's generally worse in my experience. One of my games was using 600-700MB of memory, and it turned out to be the MP3s which, compressed were only about 10MB in total. I ended up decoding the audio on demand, which means there's a short but incredibly annoying lag before playback starts (makes it harder to synchronise other events to the music), but this trimmed memory usage down to a fairly stable 100MB total, and significantly improved both performance and stability, particularly on mobile devices.

I notice a bunch of images coming down as well. Although they're relatively small as PNGs, they might also be a factor, again due to decompression in memory.

Hope this is helpful - nice looking game. Love the funky noirish feel.

[1] This is coming from Chrome Task Manager, available via the same menu as Developer Tools.

[2] For this, and related reasons, the Web Audio API is terrible for handling music that you're likely to want to reuse, as you often will in a game.

Share this post


Link to post
Share on other sites
On 8/19/2018 at 5:12 PM, Bart Read said:

can get it to load on desktop Chrome under OSX, but it takes quite a while, presumably because it's pulling down about 30MB of MP3s (nice music, btw). The tab is also using about 780MB of RAM just to display the title screen[1], so I don't rate its chances of working well or even at all on any mobile device I own (iPhone 5S, 6S, and OnePlus Two - granted none are state of the art).

Are you using context.decodeAudioData on your Web Audio context for these MP3s before you need to use them? If so then I suspect that's where most of your memory is going: calling decodeAudioData on an MP3 source will decompress the audio[2]. What this means is that a 3 minute MP3 at 128kbps that normally takes about 3MB, will blow up to a good 30MB in memory (at least), meaning your 30MB of MP3s will consume around 300MB uncompressed.

Those figures are theoretical, based on the sizes of compressed MP3 audio at 128 kbps, versus uncompressed 16-bit PCM audio at 44.1KHz. The reality seems like it's generally worse in my experience. One of my games was using 600-700MB of memory, and it turned out to be the MP3s which, compressed were only about 10MB in total. I ended up decoding the audio on demand, which means there's a short but incredibly annoying lag before playback starts (makes it harder to synchronise other events to the music), but this trimmed memory usage down to a fairly stable 100MB total, and significantly improved both performance and stability, particularly on mobile devices.

I notice a bunch of images coming down as well. Although they're relatively small as PNGs, they might also be a factor, again due to decompression in memory.

Hope this is helpful - nice looking game. Love the funky noirish feel.

[1] This is coming from Chrome Task Manager, available via the same menu as Developer Tools.

[2] For this, and related reasons, the Web Audio API is terrible for handling music that you're likely to want to reuse, as you often will in a game.

Thanks for the feedback!
A lot of this is handled by the RenJS library so it's looking like I'm going to have to roll up my sleeves and dig into it. 
Conversely, I may be able to get away with some image compression and possibly utilizing another audio format. 
Will look into it and see. 

Share this post


Link to post
Share on other sites

There's quite a long loading time the first time, isn't it possible to break it up and load assets per scene as needed?

Interactive fiction isn't my type of game but I do really like the graphics style here, was it inspired by "Hotel Dusk: Room 215"?

Share this post


Link to post
Share on other sites
On 8/24/2018 at 6:16 PM, BdR said:

There's quite a long loading time the first time, isn't it possible to break it up and load assets per scene as needed?

Interactive fiction isn't my type of game but I do really like the graphics style here, was it inspired by "Hotel Dusk: Room 215"?

Hey thanks for giving it a try. 

I've tweaked a few things so loading should be a lot faster. Let me know!

Share this post


Link to post
Share on other sites

Hmm, I just tried it over a 4G connection and it took 4 minutes 25 seconds to download the 45.5MB of content, which is on average about 176KBytes/second. The download speed is low enough to make me wonder if you're being dinged/limited for bandwidth on your web server (unless you have a particularly large amount of traffic at present). Real world 4G download performance often reaches 1 - 2 megabytes/second with decently strong signal. Still, even in these ideal circumstances it's going to take 23 - 46 seconds to load the game, which I suspect may be longer than many are willing to wait.

Even if you don't want to go to the extent of loading data per scene you might be able to defer loading of data not required to display the start menu and the beginning of the first episode until the start menu has been display, meaning that players can immediately start the game without having to wait for all the content to download.

Of the 45.5MB, roughly 37MB is music so you could improve the situation significantly by prioritising most of the music to load after the start menu has appeared. I also notice you're loading a couple of the tracks (Effects of Elevation, and Dirty Shoes Blues) twice so you could shave off 8.7MB there, which would get you down to about 28MB.

image.thumb.png.a916c9af76d8db84f95bad0192470c98.png

I notice the game is using 882MB in Chrome Task Manager. I suspect this is a combination of both images and music, but I'll come on to the images in a bit. On the music front you can reduce the compressed size of your ogg files by reducing the encoding bitrate from 144kbps to 128kbps. This will reduce the amount of content to download and most people won't be able to tell the difference, especially not if they're using phone/tablet/laptop/low end multimedia speakers, or average headphones in anything other than a dead quiet environment.

I use MP3s rather than OGGs, simple because at the time I was putting together the music MP3s were better supported amongst different browsers, but the bitrate principles remain the same. I found dropping below 128kbps had too much of an effect on quality - 96kbps sounds noticeably washy on half decent speakers, but I do use it for mobile users so I don't rinse their data.

However, you can pull another trick out of your bag that will reduce the size of the decompressed audio without significantly compromising quality by decreasing the original sample rate, which will probably be 44.1KHz (i.e., same as CD) or 48KHz. I found that 32 KHz produces still good results for the games I'm working with, but they're pretty heavy on sound effects. You can use a tool such as Audacity (which is free) to resample down to 32 KHz and then export as ogg at 128kbps: https://www.audacityteam.org/.

On the image front, again, this might require getting down and dirty with RenJS, but if under the covers you're using WebGL to render you may find you get better results with compressed textures rather than PNGs, but that may be a bit of a long shot. I realise all of this is a giant pain in the neck. Also worth saying that most of it is only something you need to worry about if ultimately you plan to distribute your game over the web, rather than as a self-contained app.

Share this post


Link to post
Share on other sites
On 8/31/2018 at 6:48 AM, Bart Read said:

Hmm, I just tried it over a 4G connection and it took 4 minutes 25 seconds to download the 45.5MB of content, which is on average about 176KBytes/second. The download speed is low enough to make me wonder if you're being dinged/limited for bandwidth on your web server (unless you have a particularly large amount of traffic at present). Real world 4G download performance often reaches 1 - 2 megabytes/second with decently strong signal. Still, even in these ideal circumstances it's going to take 23 - 46 seconds to load the game, which I suspect may be longer than many are willing to wait.

Even if you don't want to go to the extent of loading data per scene you might be able to defer loading of data not required to display the start menu and the beginning of the first episode until the start menu has been display, meaning that players can immediately start the game without having to wait for all the content to download.

Of the 45.5MB, roughly 37MB is music so you could improve the situation significantly by prioritising most of the music to load after the start menu has appeared. I also notice you're loading a couple of the tracks (Effects of Elevation, and Dirty Shoes Blues) twice so you could shave off 8.7MB there, which would get you down to about 28MB.

image.thumb.png.a916c9af76d8db84f95bad0192470c98.png

I notice the game is using 882MB in Chrome Task Manager. I suspect this is a combination of both images and music, but I'll come on to the images in a bit. On the music front you can reduce the compressed size of your ogg files by reducing the encoding bitrate from 144kbps to 128kbps. This will reduce the amount of content to download and most people won't be able to tell the difference, especially not if they're using phone/tablet/laptop/low end multimedia speakers, or average headphones in anything other than a dead quiet environment.

I use MP3s rather than OGGs, simple because at the time I was putting together the music MP3s were better supported amongst different browsers, but the bitrate principles remain the same. I found dropping below 128kbps had too much of an effect on quality - 96kbps sounds noticeably washy on half decent speakers, but I do use it for mobile users so I don't rinse their data.

However, you can pull another trick out of your bag that will reduce the size of the decompressed audio without significantly compromising quality by decreasing the original sample rate, which will probably be 44.1KHz (i.e., same as CD) or 48KHz. I found that 32 KHz produces still good results for the games I'm working with, but they're pretty heavy on sound effects. You can use a tool such as Audacity (which is free) to resample down to 32 KHz and then export as ogg at 128kbps: https://www.audacityteam.org/.

On the image front, again, this might require getting down and dirty with RenJS, but if under the covers you're using WebGL to render you may find you get better results with compressed textures rather than PNGs, but that may be a bit of a long shot. I realise all of this is a giant pain in the neck. Also worth saying that most of it is only something you need to worry about if ultimately you plan to distribute your game over the web, rather than as a self-contained app.

11

Thanks for the feedback. 
Will try what you've suggested ... but I'm loathed to attempt messing with how RenJS handles images.

Share this post


Link to post
Share on other sites
9 hours ago, SpriteWrench said:

Thanks for the feedback. 
Will try what you've suggested ... but I'm loathed to attempt messing with how RenJS handles images.

Ha! I can't say I blame you - this sort of thing is a massive headache, and it definitely doesn't help when the documentation is patchy. I may be wrong but I suspect your biggest, and least painful, gains may come from dealing with the music related issues so I'd recommend starting there.

Share this post


Link to post
Share on other sites


 

Capture.PNG.c6f608b788ff3ab2a708cea47c0541be.PNG
COMING OCT 2018!

 

Grimm & Tonic is an ongoing collection of stories centred around the residents of New Eden City. I'm inviting the community to help shape the ways that those stories are told.  
Each story arc is to be encapsulated in an episode and some will be accompanied by 'B-Side' stories.

Grimm & Tonic will be in Early Access until a final episode of "Last Call" is released. Currently, there is a roadmap for a total of 6 episodes, in this particular series. The goal is to have a complete episode released every 3 months with 'B-side' sprinkled throughout the release cycle. If everything goes perfectly I intend to have the game completed by the end of 2019.

As of writing this, episode 1 of Grimm & Tonic: Last Call is being completed, which introduces 8 characters.  On full release, Grimm & Tonic will have a total of 6 episodes, with a MAXIMUM of 3 "B-Side" stories per episode, 25+ characters and a lot more polish.

Weekly Updates will resume Oct 12, 2018

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.