{"action":"opened","issue":{"url":"https://api.github.com/repos/Scirra/Construct-3-bugs/issues/2098","repository_url":"https://api.github.com/repos/Scirra/Construct-3-bugs","labels_url":"https://api.github.com/repos/Scirra/Construct-3-bugs/issues/2098/labels{/name}","comments_url":"https://api.github.com/repos/Scirra/Construct-3-bugs/issues/2098/comments","events_url":"https://api.github.com/repos/Scirra/Construct-3-bugs/issues/2098/events","html_url":"https://github.com/Scirra/Construct-3-bugs/issues/2098","id":365749993,"node_id":"MDU6SXNzdWUzNjU3NDk5OTM=","number":2098,"title":"Construct 3 Runtime :: Memory Management, missing features.","user":{"login":"ChadoriRebornXD","id":31282960,"node_id":"MDQ6VXNlcjMxMjgyOTYw","avatar_url":"https://avatars2.githubusercontent.com/u/31282960?v=4","gravatar_id":"","url":"https://api.github.com/users/ChadoriRebornXD","html_url":"https://github.com/ChadoriRebornXD","followers_url":"https://api.github.com/users/ChadoriRebornXD/followers","following_url":"https://api.github.com/users/ChadoriRebornXD/following{/other_user}","gists_url":"https://api.github.com/users/ChadoriRebornXD/gists{/gist_id}","starred_url":"https://api.github.com/users/ChadoriRebornXD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChadoriRebornXD/subscriptions","organizations_url":"https://api.github.com/users/ChadoriRebornXD/orgs","repos_url":"https://api.github.com/users/ChadoriRebornXD/repos","events_url":"https://api.github.com/users/ChadoriRebornXD/events{/privacy}","received_events_url":"https://api.github.com/users/ChadoriRebornXD/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-10-02T05:49:34Z","updated_at":"2018-10-02T05:49:34Z","closed_at":null,"author_association":"NONE","body":"## Problem description\r\n\r\n**Before telling me that this isn't a bug. Please hear me out.**\r\nI don't know why these were left out but on the original **Preloader and Unloader Plugin**, all of these were present. These are important features and makes sense that shouldn't be ignored.\r\n\r\n1. Load Object Images (by name)\r\n2. Unload Object Images (by name)\r\n3. Remove All Objects from Layer.\r\n4. Remove All Objects from Layout.\r\n\r\n\r\n## Defense\r\n\r\n**Load Object Images (by name)** & **Unload Object Images (by name)**\r\nWe can already create object classes by names and it is very helpful, reducing **thousands** of events into just a single event. Adding this feature just makes perfect sense.\r\n\r\nBut in the case for **Memory Management,** we have no choice but to use **Load Object Image** which may take **thousands of events** on larger projects.\r\n\r\nSo, the most feasible solution without those features is avoiding the **Construct 3 Memory Management**. Through this, replicating the **Memory Management** through events.\r\n\r\n_Pseudo Version:_\r\n```\r\n*For all objects\r\n>Make a Preload \"StackList\" from \"len\" objects.\r\n>Create object <\"name\">\r\n\r\n*On Created Object <\"name\">\r\n>\"StackList\"[i] = true\r\n>Destroy\r\n```\r\n\r\nBut at that case, the Memory Management feature is left unused. And the whole point of the **Memory Management for C3Runtime** was for **Large-Scale** project convenience. But, since **Large-Scale** projects always need and is required to optimize **event efficiency, neatness and avoid redundancy** to be able to **survive** the **maintenance, development time and overall performance of each sector of a game**.\r\nAt that point, the **C3Runtime Memory Management** would be counter-intuitive and using events would be wiser. But that beats the entire purpose of the **convenience of preloader and unloader**.\r\n \r\nHaving the option to **Load Object Images (by name)** & **Unload Object Images (by name)**, is an upmost need for the **Memory Management** to fully workout.\r\n\r\n---------------------------------------------------------------------------------------------------------\r\n\r\n**Remove All Objects From Layer** & **Remove All Objects from Layout**\r\n\r\nWe also had features from the original to **remove all object classes** from the **world**, also from just part of the world like the **layer**.\r\nThere are some cases when it is hard to determine which **Object Classes** are in the **layout / layer** when we have a **Dynamic Memory Management**. It would be easier for beginners and advanced users to take advantage of the **Memory Management** when you give us all the needed bells and whistles.\r\nSo that we don't have to create our own **Memory Management** again, and have a few lines of **non-used ACE scripts** on the **runtime.js**.\r\n\r\n## Note\r\n\r\nThank you for giving the time to read this. I hope you consider the importance."}}
{"actor":{"display_login":"ChadoriRebornXD"}}