If you scene is optimized and your puzzle logic is clean and memory controlled (no infinite loops) your use of procedures will not affect your FPS in any meaningful way. However if your puzzle structure is created with a lot of open or free floating puzzles, then grouping them would be helpful. I personally do not let any puzzles exist outside of a procedure except for my initialization set of puzzles. This ensures I am controlling the flow of execution vs letting the position of the puzzles determine the execution order. In doing this I have always been able to get FPS of 60 after loading in to memory. Based on your code examples for your project you are going to have a tough time keeping a high FPS because you are using more than one “every frame” puzzles and its questionable whether all the things being requested can be completed in less than 1/60 of a second. It probably takes longer….thus limiting your FPS.