Keketin's Forum Posts

  • Have never used a dictionary before but being able to store arrays and other dictionaries inside a dictionary to make an inceptionary sounds really cool.

    Thanks for the example too, I'll look into it now!

  • Okay, if I save only the important things, could I do it using an array?

    I'm thinking about using an array because I could store objects' positions and behaviours as well as all sorts of variables and everything would be in a single compact json format. Does this sound like a good idea?

  • Also, I just remembered to mention my game has multiple layouts.

    So I'd have to find a way to also update the possible changes in those layouts that the player isn't currently on.

  • Oh! I see, this sounds like a simple solution for small changes and bug fixes.

    But how about bigger content updates like entirely new maps and event sheets?

    How do I tell the older user version that these new stuff exist within you now?

    *I mean, I couldn't possibly create an entire map or organized event sheets within a function can I ?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thank you both for replying.

    I think tweaking my save system from saving everything into saving just the states of some objects like the player, enemy, unacquired loot... and a bunch of global and local variables... would be the most straight forward solution.. But it's also really tedious since my game has quite a lot of content. I'll do this if I can't figure a better way but...

    ...About winstreak 's suggestion, what does it mean to "call" each version? How will the new groups of codes replace the old ones in practise? I don't know anything bout coding outside of C3 visual blocks and expressions. Do I have to write the patches as separate code files, like outside of C3? What should I look into now for knowledge regarding this?

  • Context:

    My game is an adventure/puzzle single player RPG game for pc. The idea is that the world would be an ever expanding project, with new updates, come new areas, npcs, story quests etc. Player would be able to save the game whenever they want and keep their loots and story progress.

    Problem:

    Fiddling with construct so far, I have noticed that when I save my game, and then go do some changes, boot up the same save file again, the content would stay the same of course and has none of the new stuff that I've added.

    Question:

    So let's say I update the game with new content, fix a few bugs, change some stats... How can I do this so that when the player updates my game and boots it up, they'd still be able to access their save file but only this time, not only does it contain their saved progress, but also holds all the new content and fixed stuff?

  • Oh okay... I see now, thanks for your time!

  • I am using Spine 3.8.75 and here's my export settings:

    And here's how I tried importing it into construct

    drive.google.com/file/d/1bMQ69jO4RCYb8kpmgvbpPtj9x91z3Xn2/view

    Thank you Mikal for keeping this updated!

    When this works for me, it will significantly lighten my game as heavy graphics are my only problem right now.

  • I agree with ThereBits that there should be some short tutorial videos showing exactly how to use this plugin. I've been scratching my head over this one. I downloaded the example projects and tried to replicate things with my own spine files but couldn't make anything appear. My project just keeps getting heavier and heavier week by week due to the amount of frames and animations I gotta store as sprite objects.

    Hope you guys can make some basic step by step tutorials

  • I got it working!

    I ended up making 2 more arrays for logging the enemy's position in each layout before layout change and made an event that would set the enemy's position accordingly if the player runs back to the layout or does a full circle.

    Again, would be more efficient with a two-dimensional array but I'll come back to tidy it up later when I have more experience.

    For now it seems pretty okay in all aspects that I need it to do so that'll do.

    Big thanks for both friends trying to help me.

  • I was able to figure some of it out before I saw what Ribis posted, but it's confirming that I am going in the right direction so I am thankful still!

    I'm using arrays and instance variables on my enemy.

    As I only need one global enemy, its instance variables are kept even when I change layouts. I am not familiar with arrays enough to know how to use a 2 dimensional array correctly so I used 2 one-dimensional arrays instead to keep track of my enemy's location and distance.

    So basically, I set two instance var on my enemy, "location" and "distance"

    Then I have "ArrayLocation" and "ArrayDistance"

    I log the LayoutName and distance(player.x,0,enemy.x,0) into these two arrays and then use these values to control the enemy's location and distance variables.

    I made enemy.distance and enemy.location shuffle through their arreys in order from oldest to newest logged values (enemy.distance-enemy.speed every second).

    Then as each time distance <0, enemy.location will change to the next one in line according to the ArrayLocation, and that in turn will give enemy new distance value to subtract its speed from.

    Then I added in some tweaks here and there to stop the "shuffling" from happening when the enemy has reached the player or vice versa.

    Currently it's working okay. I checked in debug mode to see you can bump into the enemy again if you run in circles or if you go back and well.. it is there, on that layout where it's supposed to be, actually, but it seems to have some minor bug, I think I can handle that though.

    I will ask for help again and post screenshots of my eventsheet if I can't figure it out but for now it mostly seems pretty ok!

  • Yes, actually, my graphics are quite heavy and as it's a story driven game, the world is also quite big and there are some areas dense in dialogues and other interactable sprites so I wanted to chop the maps to avoid long loading time. I have very few "rest" areas in my game so the enemy could essentially appear anywhere any time, with the varying chances depending on the area. I could group a couple maps in one layout, but in the end, I do need to tackle this layout change problem still. Currently I'm experimenting with the array to create a short term memory for the enemy during the chase.

  • on layout change set float chaseDistance to distance(player.x,player.y,enemy.x.enemy.y)

    Every seconds if bool enemyNotSpawned = true subtract enemySpeed from chaseDistance

    if chaseDistance < 0 spawn Enemy

    This should work even with layout changes before the enemy spawned again.

    Or do you want to achive something like this:

    layoutA>layoutB>LayoutA Enemy is still in layoutA running to layoutB?

    I studied this example and was able to make the enemy's appearance latency more realistic.

    However, the problem of the enemy not staying in the same "room" when I exit and come back is still a headache. I guess I will look into arrays to see if I can find a solution for that. Thanks fedca for helping me out.

    If anyone has suggestions for my latter problem, it'd be greatly appreciated.

  • Here's a video demonstrating how the enemy is currently chasing me.

    drive.google.com/file/d/1UVwtwqOMdKeW40isB1eANupZmh6FAOUL/view

    And here is another problem; me going to another layout and coming back to that same layout in a second and the darn bunny's gone and already behind me.

    drive.google.com/file/d/1etGaqh_0hp2u4aFeTYwQsMNO-Qs8SB51/view

  • The latter is more to what I want to achieve,

    Forgot to mention this game is a puzzle adventure,

    hide and avoid enemy type of a game.

    My idea is that there would also be places to hide to avoid the enemy, and during the chase, the more layouts you are "further" from the enemy, the faster it will "forget" about you so you can lose it. Hence I need it to somehow remember the distance in "layouts".

    Once it's forgotten about you it will be invisible and it's AI and collision deactivated.

    It will appear again next time the system rolls a chance for it to appear.

    In case of you running in circles, yes you should be able to bump into it, seeing it still trying to run into the same direction. (From then on it could turn around if you get too close, but that's not the current problem.)