Chadori's Forum Posts

  • Essentially, from my testing it seems that setting the minimum FPS to 60 is the best way to guarantee that lower FPSes don't result in logic errors. Has anyone else come to that conclusion or am I just way off base?

    I believe setting your minimum FPS to 60 will not really reveal all logic errors. My only advice is to take it slow, don't make events like you are in a deadline, give time to test and debug if you have a new game feature and also analyze/think if there is a better event code for your present event to achieve more optimized logic of your game. Your game performance outcome is actually based on your patience. If you are really curious then I suggest you learn how to code, but if you already know then it won't be a problem.

  • I know that this question is a little silly but I just got curious. Will it be inefficient to make an Android App on Construct 2 that works like an app version of a website? And if ever yes, will the features be very limited? Thanks

  • Bl4ckSh33p - Try using Nw.js for Construct 2 also has better performance.

  • I joined Scirra 3 years ago, I wasn't active and I know that I didn't have more than 2 Fanatic Badges but now I have 20. Lol XD

    I also noticed that a certain time in the day in our morning time, a profile visit will earn you +2 consecutive days.

    A Notch badge would be more acceptable since it's been 3 years but a fanatic badge isn't something I deserve.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • - You are going to have to use an external image editor if you want to resize your images. Honestly, C2's Image Editor is not good in re-sizing since quality is lost every re-size, may it be sprite or tiledbackground image editor. Tiled backgrounds is for tiling images repeatedly and are commonly only used as backgrounds that's why it can't be scaled down and it would lost it's tiling ability if it were scalable while sprites are like objects in a game, like characters and such that's why it has a scale option since it is not a looping image and size may be needed to be manipulated in the game. I suggest you change the image size of your tiled background in Photoshop, ImBatch or any external image editor that doesn't lose quality in re-sizing.

  • icugigasoft - It's not really something that we can say we are sure of since we can't see the events in your .capx but if you are asking if bad logic behind any event causes

    fps drop then I agree that it might. Unnecessary or Non-Optimized events can cause serious problems in a game. For Example, using the condition "Is Overlapping" instead of "On Collision of another object" can cause major problems when combined with a loop or called many times in a tick or second. Misuse of Loops is something that shouldn't be taken lightly since it will loop infinitely if a problem triggers. Massive or Misuse use of the Pathfinding Behavior can also utilize a big portion of the cpu. Misuse or Massive use of the Physics behavior can destroy a game. For example, using the Physics behavior and Platform Behavior altogether will make a lot of glitches, very high fps drop and might even crash the game or never let the game be opened without closing as soon as it finished loading.

    For more info, read these:

    https://www.scirra.com/manual/134/performance-tips

    https://www.scirra.com/blog/141/common- ... nd-gotchas

    https://www.scirra.com/blog/83/optimisa ... -your-time

  • In Local Storage, there is no more every tick checking for item existence because in Local Storage it will be a trigger and adding Every(X) seconds on the condition will be inefficient .But without that, It should be like this..

    --Without Regular every tick Item Check "Local key "Cont" exists (Efficiecnt)--

    *System -> Trigger Once

    --------->Local Storage -> Check Item exists("Cont")

    *Local Storage -> On Item exists("Cont")

    --------->System -> Set Global Variable Value "level" to LocalStorage.ItemValue

    --------->Sprite -> Set Animation Frame to 1

    --With Regular every tick Item Check "Local key "Cont" exists (Inefficiecnt)(Not a good idea but it is more like a WebStorage because of the regular every tick item checking)--

    In this case, I rather recommend finding a new way to check if Item exists like above or use variables to check rather than this method.

    *System -> Every(dt) Seconds

    --------->Local Storage -> Check Item exists("Cont")

    *Local Storage -> On Item exists("Cont")

    --------->System -> Set Global Variable Value "level" to LocalStorage.ItemValue

    --------->Sprite -> Set Animation Frame to 1

  • I also want to know about that too.

  • You are going to need to use the localstorage plugin for that. LocalStorage is a storage of keys with values and persist even when you load your game data, close or re-open your game.

    Try this tutorial:

    https://www.scirra.com/tutorials/1461/h ... age-plugin

  • I was wondering if Xbox One Games requires a HD resolution because I was making a SD resolution and might not be accepted? Thanks for the one who answers

  • UltimateArceus3 - In this situation you need the local storage to make you a backup of the value of the variable so that when you load a saved data, your variable can be updated by the backup from the local storage since local storage's aren't affected by saved data's.

    Example;

    You have a variable named "Health"

    And a local storage key named "Health_Backup"

    *System->On Load Complete

    ----->Get item --> Key "Health_Backup"

    *LocalStorage->On Item Get->Key "Health_Backup"

    ------> System->Set Global Variable Value-->Variable 1 to LocalStorage.ItemValue

    ------"That Should do it"------

  • Could you elaborate on what fundamentals your are talking about ?

    What I mean are the basic parts of writing code in programming. For example, in C++ all codes starts and ends in a bracket and almost all lines of codes end in a semi-colon. But in Construct2, it is very simplified that you don't need to worry about those things especially when the brackets or semi-colon are one of the beginners frequent errors in writing codes. In C2, it is as if we are writing a story in english and the computer understands it without errors but only unexpected events happens which is normal for beginners. With these features, I really think that Construct 2 can't really help in hastening learning in programming(coding), it won't make any difference in just learning programming(coding) directly. Although, C2 is more helpful in improving logical or mathematical thinking of people and understanding how programming works but not writing codes. But again only my opinion.

  • The first one looks more professional for a pixelart.

  • HessamoddinS - I am not sure but it might not be a bug. It might just be a floating-point inaccuracy. But I manage to find a solution, changing the angle of the tiledbackground from 0 to 180 or -180 or changing it's size from 20 to -20. It's not really a serious problem, only needs some workaround.

  • Wishy - Save File is not connected to LocalStorage, Arrays or any plugins. I think I am starting to get your point. What you need is a boolean or variable that tells your game that if your game is updated and overwritten. Actually the event above will actually help and I will modify it below:

    -Make a global variable named "Has_SavedFile"- with number value of 0.

    -Make a global variable named "Version"- with number value of 0.

    -Make a LocalStorage Key named "Version"-

    -Make a LocalStorage Key named "Has_SavedFile"-

    *On start of layout

    ------> Local Storage.Check Item Exists ("Version")

    ------> Local Storage.Check Item Exists ("Has_SavedFile")

    *LocalStorage on Item Exists ("Has_SavedFile") or * LocalStorage on Item Set ("Has_SavedFile")

    ------> Set Global Variable "Has_SavedFile" to LocalStorage.ItemValue

    *LocalStorage on Item Exists ("Version") or * LocalStorage on Item Set ("Version")

    ------> Set Global Variable "Version" to LocalStorage.ItemValue

    \\*Let's say that the new game update version is "1". If the key "Version" is only available in the update, the key "Version" will be 0 in default**On Item get ("Version")

    *Start of Layout & *If Global Variable "Version" < 1

    \\*Detach the save file of connection with your game until it is overwritten by a new one.*\\

    ----------> Set LocalStorage Key "Has_SavedFile" to 0

    \\*Update the values*\ ---------> Set LocalStorage Key "Version" to 1

    *If Global Variable "Version" = 1 & On Save

    ----------->Set Local Storage Key "Has_SavedFile" to 1

    *If Global Variable = 1 & *Global Variable "Has_SavedFile" = 1

    ------------> Enable Load Button

    *If Global Variable is not equal to 1 & *Global Variable "Has_SavedFile" is not equal to 1

    ------------> Disable Load Button

    The trick here is to deactivate the load button if the game is updated and not yet overwritten by another saved state. Hope that finally helps.

    If my event above isn't clear then I can send you a .capx if you like.