Page 9 of 10

Re: Ren'Py 6.15 Pre-Releases

Posted: Wed Mar 13, 2013 2:02 am
by nyaatrap
I made a sample program:
memory_test-1.0-win.zip
The fullcode is:

Code: Select all

# The game starts here.
label start:
    while True:
        python:
            for k in ["1","2", "3"]:
                for j in ["1","2","3","4","5", "6"]:
                    for i in ["a", "b", "c", "f", "l", "n", "p", "s", "z" ]:
                         renpy.show("image", at_list=[truecenter], what=im.Composite((935,1280), (0,0),
                                "large/rio60.png", (0,0), "large/rio_%s.png"%i, (0,0), "large/rio_x%s.png"%j, (0,0), "large/rio_xx%s.png"%k))
                         renpy.pause(.0000001, hard=True)
    return
It consumes 1GB even the cache size is set to 800x600x8. When I press right click to stop this loop temporarily, cache is released. Otherwise, It stores all caches until composite all possibilities, or hit a memory limit.

I also think set config.skip_delay = 0 makes higher this cache stack problem. Though even I set config.skip_delay default, this out of memory error still happened when I used skipping normally.

BTW, from this investigation, I found LiveComposite is far memory efficient than im.Composite. im.Composite isn't useful especially on facial expression changes because of amount of RAM usage.

Re: Ren'Py 6.15 Pre-Releases

Posted: Wed Mar 13, 2013 12:10 pm
by jack_norton
I can confirm that something is wrong... I build Planet Stronghold with 6.15 to test in release mode. After 5-10minutes of playing, doing a lot of skipping, game start crashing with really bizarre bugs, pointing to lines like a simple menu: statement and so on.
Rebuilt it with 6.14, no problems. Now if wasn't working even in 6.14 could be a problem of my horrible messy/outdated coding, but at this point I'm pretty sure is some memory leak/other bug too!

Re: Ren'Py 6.15 Pre-Releases

Posted: Wed Mar 13, 2013 3:32 pm
by PyTom
I'll be looking into these tonight.

If people can get me stand-along demos that exhibit these bugs, then that would make my life a lot easier - often, getting a bug to occur for me is harder than fixing the underlying problem.

Re: Ren'Py 6.15 Pre-Releases

Posted: Wed Mar 13, 2013 5:09 pm
by jack_norton
Yes I can imagine... the problem in this case is that I'm not really sure what is triggering the bug. I tried again playing BH2 and worked fine even with skipping. When you have big games is a problem to isolate the piece of code that's causing the bug :(

Re: Ren'Py 6.15 Pre-Releases

Posted: Wed Mar 13, 2013 5:17 pm
by jack_norton
Not sure if can help:

Code: Select all

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game\warchived.rpy", line 1074, in script call
  File "game\data.rpy", line 1972, in script
  File "game\data.rpy", line 1978, in python
IndexError: list assignment index out of range

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "C:\- indie dev -\games\renpy\renpy\execution.py", line 288, in run
    node.execute()
  File "C:\- indie dev -\games\renpy\renpy\ast.py", line 718, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "C:\- indie dev -\games\renpy\renpy\python.py", line 1258, in py_exec_bytecode
    exec bytecode in globals, locals
  File "game\data.rpy", line 1978, in <module>
    Inv[10]=[]
  File "C:\- indie dev -\games\renpy\renpy\python.py", line 483, in do_mutation
    return method(self, *args, **kwargs)
IndexError: list assignment index out of range

Windows-7-6.1.7601-SP1
Ren'Py 6.15.2.281
that line is:

Code: Select all

label blueprints:
    python:
        renpy.music.play("snd/soft2.ogg",fadein=3.0)
        genhelp=2;advice=0;pt=0;adj = ui.adjustment();styp="newinv";iFull=False;SFilter=[1,1,1];active_hero=0
        #TERRIBLE CODING HERE
#        ShopInv=[ [ [1,99],], ]
#        Inv.append(list(ShopInv[0]))
        Inv[10]=[]
        for i2 in range(57,146):
            Inv[10].append(list([i2,99]))
more precisely the line Inv[10]=[] which seems fine to me (and works in 6.14).

Then this is even more strange:

Code: Select all

While running game code:
  File "game\story.rpy", line 293, in script
TypeError: list indices must be integers, not str

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "C:\- indie dev -\games\renpy\renpy\execution.py", line 288, in run
    node.execute()
  File "C:\- indie dev -\games\renpy\renpy\ast.py", line 1302, in execute
    next_node(self.items[choice][2][0])
TypeError: list indices must be integers, not str

Code: Select all

    #win or lose?
    if _return=="win":
        scene i_hangar
        show i_tom happy at scale(.55),topright
        show expression ("%s happy" % mainc)  at scale(.5),baseleft with dissolve
        ts "You fought well, Nelson!"
        menu:
            "Thank you, sir!":
                ts "You have already made quite an impression and you've only just arrived-"
                scene i_hangar
                show i_rebecca angry at top with dissolve
                rf "Come on, Tom. That was an easy fight! Only give credit where credit is due."
                rf "We don't need any more new recruits with big heads. I've got plenty to give you if that's what you're going for."
                psc "(Thanks for ruining the mood.)"
            "Well, I wasn't the best recruit in the whole academy for nothing.":
                ts "Well, it seems they didn't teach you much about modesty at the academy. In any case -"
                scene i_hangar
                show i_rebecca angry at top with dissolve
                rf "%(He)s seems to be overly confident in %(his)s worth to me."
the line is the one where says menu:
Probably those won't help, but thought to still try posting them... good luck!

Re: Ren'Py 6.15 Pre-Releases

Posted: Wed Mar 13, 2013 10:51 pm
by PyTom
jack_norton wrote:Yes I can imagine... the problem in this case is that I'm not really sure what is triggering the bug. I tried again playing BH2 and worked fine even with skipping. When you have big games is a problem to isolate the piece of code that's causing the bug :(
Yes, but it's work that needs to be done - or it's possible the bug is not in Ren'Py itself.

The Inv[10] bug looks like it would be triggered if Inv has less than 11 items in it.

The menu one would trigger if there was a bug in the menu screen that meant it could possibly Return something other than one of the actions that was supplied for it to return.

Re: Ren'Py 6.15 Pre-Releases

Posted: Thu Mar 14, 2013 3:53 am
by jack_norton
Yes true, will make better investigations :)

Re: Ren'Py 6.15 Pre-Releases

Posted: Thu Mar 14, 2013 7:15 am
by nyaatrap
Another bug on bar with toottip.
When I make Tooltip and applied on bars as hovered property, Ren'py crashes when tt value is non-empty string.
Test code is following:

Code: Select all

init 100: #to override template
    screen preferences:
    
        tag menu
        
        default tt=Tooltip("")
    
        # Include the navigation.
        use navigation
    
        # Put the navigation columns in a three-wide grid.
        vbox:
            style_group "prefs"
            xfill True
            frame:
                style_group "pref"
                has vbox
    
                label _("Text Speed")
                bar value Preference("text speed"):
                     hovered tt.Action("aaa")
                     
            frame:
                style_group "pref"
                has vbox
    
                label _("Music Volume")
                bar value Preference("music volume"):
                     hovered tt.Action("")
Clicking a bar with hovered tt.Action("") doesn't crash. But clicking a bar with hovered tt.Action("aaa") crashes.

edit: there's also another weird issue in bar tooltip. when both button and bar shares same Tooltip instance, tt value of buttons couldn't show correctly

Code: Select all

  default tt=Tooltip("")
  button hovered tt.Action("button tips")
  bar hovered tt.Action("bar tips")
  text tt.value
the above code only shows bar tips correctly.

Re: Ren'Py 6.15 Pre-Releases

Posted: Fri Mar 15, 2013 5:11 am
by nyaatrap
I confirmed memory leak is proportional to config.skip_delay.
When I set it to 10, it never release cache and crashes soon.
When I set it to 20, it releases cache normally and safe to use skipping.

same thing occurred to renpy.pause

Code: Select all

while 1:
    renpy.show("image")
    renpy.pause(.01, hard=True)
this code never release cache, but

Code: Select all

while 1:
    renpy.show("image")
    renpy.pause(.02 hard=True)
this code releases cache normally.

Took me several weeks to investigate it but I found how to fix my scripts finally =D

Re: Ren'Py 6.15 Pre-Releases

Posted: Fri Mar 15, 2013 10:24 am
by nyaatrap
PyTom, I have a question about copyright notice on the template.
I know screens.rpy is in the public domain. But how about options.rpy and Readme.HTML? Can I treat them as if they're in the public domain, or is there something I should consider? Since I'm making a Japanese template and want to release it in the public domain.

Re: Ren'Py 6.15 Pre-Releases

Posted: Fri Mar 15, 2013 12:11 pm
by PyTom
Yes, you can treat those as public domain.

Re: Ren'Py 6.15 Pre-Releases

Posted: Sun Mar 17, 2013 3:01 pm
by Sapphi
Downloaded 6.15 fresh from website just now.
Upon start-up I was asked to update DirectX. Updated with seemingly no problems.
Then tried to restart Ren'py with the given in-program "Restart" button and received this:

Code: Select all

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00start.rpy", line 99, in script call
  File "renpy/common/00gltest.rpy", line 356, in script
  File "renpy/common/00gltest.rpy", line 368, in python
WindowsError: [Error 193] %1 is not a valid Win32 application

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "C:\Documents and Settings\Sapphi\Desktop\renpy-6.15.2-sdk\renpy\execution.py", line 288, in run
    node.execute()
  File "C:\Documents and Settings\Sapphi\Desktop\renpy-6.15.2-sdk\renpy\ast.py", line 718, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "C:\Documents and Settings\Sapphi\Desktop\renpy-6.15.2-sdk\renpy\python.py", line 1258, in py_exec_bytecode
    exec bytecode in globals, locals
  File "renpy/common/00gltest.rpy", line 368, in <module>
    subprocess.Popen(sys.argv)
  File "/home/tom/ab/x64lucid-deps/install/lib/python2.7/subprocess.py", line 679, in __init__
  File "/home/tom/ab/x64lucid-deps/install/lib/python2.7/subprocess.py", line 896, in _execute_child
WindowsError: [Error 193] %1 is not a valid Win32 application

Windows-XP-5.1.2600-SP3
Ren'Py 6.15.2.281
Ren'Py Launcher 6.15.2.281
Closed out of Ren'Py. Opened Ren'Py again.
It showed me the Performance Warning again as though I had never updated DirectX.
Tried to update DirectX again. Updater informed me that a newer or equivalent version had already been installed and no updates were necessary.
Closed out of updater and tried to restart Ren'Py again via in-program "Restart" button.
Returned the same error.

Re: Ren'Py 6.15 Pre-Releases

Posted: Sun Mar 17, 2013 3:08 pm
by PyTom
Sapphi, can I see your log.txt?

Re: Ren'Py 6.15 Pre-Releases

Posted: Sun Mar 17, 2013 3:12 pm
by Sapphi
There... doesn't seem to be a file "log.txt" in the whole of the 6.15 folder...

Re: Ren'Py 6.15 Pre-Releases

Posted: Sun Mar 17, 2013 6:52 pm
by PyTom
Try launching the tutorial, then look in the tutorial directory. It should be in there.