Hello~!
I've run into a problem where my game will slow down pretty significantly when I'm using screens with 5 or 6 different items you can click on.
I've made a point and click game based on screens where you click on imagebuttons to send you to different labels.
I've been looking through previous thread posts looking to see if anyone else has run into this issue (I found a few) and if anyone was able to find a solution for this.
I've tried increasing image cache size as well as forcing Renpy to dump its memory cache every so often, but neither have worked. Also using shift + d and forcing the game into Direct X also doesn't help the lag.
I'm using Renpy 6.99.
(And I'm sorry I don't have much experience with programming (never the less programming dealing with performance issues) so I don't really know... how to approach this.)
Lag when using image heavy screens?
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
- Heiden
- Regular
- Posts: 140
- Joined: Sat May 11, 2013 3:20 pm
- Completed: Elvine, The Life Threads, Helena's Flowers, Dr. Frank's Build-A-Boyfriend, Beyond the Deep, The Bog's Heart, The Girl With the Gray Hair Awakens, The Far Rings, NB107A
- Projects: The Town Pages, Kill the Prince?! [Nano 2020]
- Tumblr: heidengames
- itch: Heiden
- Contact:
Lag when using image heavy screens?
Completed: Elvine (GxB), The Life Threads, Helena's Flowers (GxG)(As Writer, Coder), Dr. Frank's Build-A-Boyfriend (BxB), Beyond the Deep (GxB)(As Artist), The Bog's Heart, The Girl with the Gray Hair Awakens, The Far Rings, NB107A.
All available to play on my itch.io page!
All available to play on my itch.io page!
- Remix
- Eileen-Class Veteran
- Posts: 1628
- Joined: Tue May 30, 2017 6:10 am
- Completed: None... yet (as I'm still looking for an artist)
- Projects: An un-named anime based trainer game
- Contact:
Re: Lag when using image heavy screens?
The functions you likely want to look at are:
Code: Select all
renpy.exports.get_image_load_log(age=None):
"""
:doc: other
A generator that yields a log of image loading activity. For the last 100
image loads, this returns:
* The time the image was loaded (in seconds since the epoch).
* The filename of the image that was loaded.
* A boolean that is true if the image was preloaded, and false if the
game stalled to load it.
The entries are ordered from newest to oldest.
`age`
If not None, only images that have been loaded in the past `age`
seconds are included.
The image load log is only kept if config.developer = True.
"""
# As a generator, you should be calling:
for i in renpy.exports.get_image_load_log():
renpy.say("", "[i]")
# or somesuch after the screen shows
# a line or two before call/show screen... use above to test result
renpy.start_predict_screen( "your screen name in quotes" )
# just after (or during is better)
if renpy.has_screen( "your screen name in quotes" ):
renpy.stop_predict_screen( "your screen name in quotes" )
# and possibly... before
renpy.exports.start_predict( list of the images used in the screen )
# after
renpy.exports.stop_predict( list of the images used in the screen )
Frameworks & Scriptlets:
- Speech Bubble dialogue system
- Multiple Notify with ATL and history
- (WIP) Radial Masking - needs updating to use Shader
- 7.4 - Smooth Tinting using ATL and matrixcolor
- Several other repositories there too
- Imperf3kt
- Lemma-Class Veteran
- Posts: 3791
- Joined: Mon Dec 14, 2015 5:05 am
- itch: Imperf3kt
- Location: Your monitor
- Contact:
Re: Lag when using image heavy screens?
According to the documentation, screens without () are slower than screens with ()
For best performance, all screens should be defined with a parameter list. When a screen doesn't take parameters, it should be define with an empty parameter list. The screen:is faster than:Code: Select all
screen test(): vbox: for i in range(10): text "[i]"
When a screen is defined without a parameter list, any name used in that screen can be redefined when the screen is show. This requires Ren'Py to be more conservative when analyzing the screen, which can limit the optimization it performs.Code: Select all
screen test: vbox: for i in range(10): text "[i]"
Warning: May contain trace amounts of gratuitous plot.
pro·gram·mer (noun) An organism capable of converting caffeine into code.
Current project: GGD Mentor
Twitter
pro·gram·mer (noun) An organism capable of converting caffeine into code.
Current project: GGD Mentor
Who is online
Users browsing this forum: Bing [Bot]