LaDestitute's Forum Posts

  • Subscribe to Construct videos now

    New build for my Zelda Gamekit, now with working savedata!

  • A new build, with working savedata!

    Subscribe to Construct videos now
  • You can buy Construct 2 either on here (on the website), or Steam but either one will only run on the platform it was purchased for you. You can, however, link non-steam games into your library.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Well i am actually working on make a pokemon engine and I have no problem sharing my events since its huge and only still only at 109 event.

    You are going to need to have the paid version since there alot of variable and checks and im using like 20 arrays and checks.

    Best plug in to get is CSV to array plugin. Trust me it will save you like 50 to 60 hours. plus you can excel make your own array without doing the set array action forever.

    Atm im working on the Pokemon battle screen i already got the attack down done to enemy....Its a long formula lol.

    So just email me question on which part you are working on and I can try to walk you through them as best a i currently can.

    I don't know if you knew it, but you can populate arrays, dictionaries, etc using an external txt file with JSON in it.

    Also, if you're intending to build a gamekit like I am, it's best not to use thirdparty plugins or behaviors, since a gamekit should be usable out of the box with Construct 2.

  • There's actually a Pokemon Gamekit in progress here, but it's development is quite slow. Though, if you're looking to make a Pokemon game for 1:1, may I suggest Pokemon Essentials instead? It's for RPG Maker XP, so besides the cost of RPGMXP up front: Pokemon Essentials is free. Making a system like this from scratch in Construct 2 would be very difficult, though, especially with tackling a custom battle system, savedata, and data storage (such as to manage everything like moves).

    Regardless, I'm happy to walk you through of what you may need to do, so you're not clueless. I've never done anything like this in Construct 2, so please bare with me as I'm just putting together educated guesses of how to make various features work in Construct 2.

    One of the biggest things you'll need to do is likely work on a custom battle system. Attempting to approach that is a big can of worms, but you want to look into a few things. Arrays and maybe dictionaries (which are just hash-tables) for example, particularly. You'll probably want something to manage deciding which turn it is (such as if it's your Pokemon's turn), and that could be something as simple as a global variable unless you want to get more elaborate. A variable should be fine enough, as long as it's global.

    You'll likely need some sort of thing to store and data, such as all the moves, Pokemon stats, etc. Arrays and dictionaries come to mind, and while dictionaries are far easier to learn, arrays provide a lot more flexibility and probably would be vital for handling mass-data such as moves and all their properties. I'm not really sure how to approach things like Pokemon evolution, but you could have all Pokemon be one object (with multiple sprites in the same object) and instance variables to determine unique qualities. Then just run condition checks for things like evolving based on a high enough level, etc, at a basic. You may have more work cut out though, just to pick the right instance.

    Random encounters could be done by checking the player is overlapping with a sprite, and then running a random number to decide if they will have an encounter each step. You'll want some method to keep track of steps, such as a variable. I'm not sure how to approach keeping track of steps and how to increase that, so that's just a hunch of mine. Then you can use choose() to pick a Pokemon from a set list. You can use instance variables and some sort of randomization to give each individual Pokemon it's own unique stats, even for two of the same, such as a Pidgey.

    Type effectiveness, there's probably more than a few ways to handle this, but for starters, the simplest solution is that each Pokemon should have an instance variable named Type. When attacking, make a check condition. Such as "Enemy Pokemon's type instance variable equals = Grass" and then act accordingly with damage or affects. Pokemon breeding would work similarly. Instance variables such as "Gender", "Egg Group 1", "Egg Group 2", and then comparing them with partner Pokemon to determine if they're viable to produce Pokemon eggs.

    For handling an inventory, at the very basics, you can setup a set of graphic files or preferably, 9-patch objects and then utilize timescale to pause things if you must. Since a Pokemon inventory may arguably seem more complex than something say, for comparison, Zelda, you'll probably need arrays and dictionaries to manage inventory, what's in it, etc.

  • I made this because I'm working on a Zelda-style SDK, and while the native save/load would work fine for only one slot or a simple game, unless in certain circumstances, the native save/load isn't very good. It's fine for simple games or things where you need a full state-save of everything. Especially if you want to have multiple save slots and want to individually name them is where it becomes problematic.

    You get much more control with local storage + dictionary too and you can't access/technically do with anything with native save/load's data, technically.

  • Whipped up a three-slot savefile system using local storage, dictionary, AJAX, and JSON for my SDK, so I'm deciding to share it so that there's a capx available for creating a savedata system:

    https://dl.dropboxusercontent.com/u/589 ... ystem.capx

    See a demo here:

    https://ladestitute.itch.io/test?secret ... EYrGp6hflM

    Press P to add rupees once a save is selected, I to save once a save is selected (to ensure data is saved)

    (if reloading the page, just click a button to see the rupees for the file)

  • A - Yes you can, but you might want to get some experience using the engine, even finish a smaller game before you start implementing such functions.

    B - You can create your own save system using JSON and NW.js.

    C - Are you talking about global variables? You can also pass data using objects' instance variables. Just look into the manual to set them up properly. https://www.scirra.com/manual/73/instance-variables and https://www.scirra.com/manual/83/variables

    D - Yes, you can include event sheets into each other. Just right click on an empty space on your event sheet and select "Include event sheet".

    E - I believe you are talking about the dictionary object: https://www.scirra.com/manual/140/dictionary

    F - Unfortunately you can't. The only way for this to work is to make a plugin.

    G - Depends on what game you want to make. Keep in mind that this is a 2D HTML5 game engine. You can make serious games with it, but it takes practice (just like with any other engine). It's more likely that you'll first run out of hardware resources before you bump into an engine limitation. But if you have specific questions about limitations I try my best to answer them (for ex.: Can you do 3D? No, only with the Q3D plugin.; Can you export native applications? No, you can only export into either HTML5 or using wrappers to get an application (for Windows with NW.js)).

    On F, you technically can if talking from a strictly pure eventing standpoint. You can build some sort of mainframe or SDK, like a lot do with gamekits. The only caveats is that you may have to transfer global variables, assets, etc.

  • One approach to also take is to split off different components into their own event sheets. Such as one for enemy AI, one for HUD functions, etc. Then make a "Main" event sheet that includes the rest and only includes vital/startup functions.

  • Check the How do I FAQ :

    [quote:vb9fwbkk]

    Local Storage

    • How do I do High Scores with Local Storage - LINK
    • Another example how to do high scores with Local Storage - LINK

    Those are examples of how to use the local storage, and it will show how to use it to save and load values.

    The value you save will likely be the .asJson content of your dictionary object.

    So when you load from the local storage (get or checking if item exists and it does) you can then Dictionary.Load LocalStorage.ItemValue

    Thank you, you are fantastic!

  • Included capx if you want to mess with it

    I implemented savedata in my Zelda SDK using the native save/load, with naming slots, separate saves, etc. An issue, as a cavet of the native save/load: It creates a snapshot of "slotx" so using a variable to ensure a save slot exists before-hand is moot.

    My research indicates my best option is using dictionary+webstorage and storing 3 dictionary keys each for data. Is this the right away to go about it? I have researched webstorage and dictionary a little but I only have a small hunch of how to. My hunch is better with saving said keys but not on how to actually reload them.

    Like:

    "slot1rupees"

    "slot2rupees"

    "slot3rupees"

  • You can set timescale for individual objects too (there's a event command for it), so you can have a cursor move on a menu while everything else stops completely during a pause.

  • I suppose, maybe.

    At the moment, I made the realization I could just use a global variable or array (the latter since I'm switching to a partly array-based system for the gamekit's data), and have that changed to a value right after savedata is saved for the first time. On loading the game back up, just check the variable accordingly to decide whether to load a new playthrough or display the filename and load if it interacted with.

  • With the native saving and loading in Construct 2, is there a way I can check if savedata exists as a condition trigger? On save complete might work, but I'm looking for a possible string/code snippet or whatever that basically says or checks for "does slot1's savedata exist?" (i.e, it's not an empty slot and didn't have anything saved to it beforehand)

  • Pretty much done, besides final touches to apply...then to figure out how to handle save data, which should be pretty simple.