Posts by ThewalkingSsj2

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.

    I have isolated the relevant objects and events into a single frame and the problem still persists, below is my game save code from start to finish, where I am trying to load the Array Indices:

    Please login to see this attachment.

    Something is wrong with this code and I don't know what. The default values for the GetItemValue function are loaded in, which should indicate the absence of data in the ini file, but as shown below, the ini file is loaded in via the debugger:

    Please login to see this attachment.

    Hello again,

    I'm unfortunately having trouble loading another aspect of my game after saving: Array indices. I may need another pair of eyes to spot what I'm doing wrong.

    I have six arrays in the frame to load, but I just want to focus on the first one for this post.

    Here's my code for saving the array indices in order:

    Please login to see this attachment.

    Please login to see this attachment.

    Please login to see this attachment.

    This produces a plain text save file as shown in this example:

    Please login to see this attachment.

    However when I try to load the Arrays at the saved indices with the code below:

    Please login to see this attachment.

    Please login to see this attachment.

    The Array is loaded in at the default values of X=1, and Y= 0: (I've tested this and verified it is indeed the default values, and not that it's being forced to be 1 and 0 from some other event)

    Please login to see this attachment.

    I've heard that this means there isn't any data in the Ini object, but as far as I'm aware the code I have loads in the correct file which has the data that's supposed to be loading in, so why is this happening?

    Hi, I'm having trouble with saving/loading a frame with a sub-application in it.
    Below is a screenshot of my game at the moment I press "save".

    The left side is the visual from the base frame, and the right side is a sub-application window of a subframe dedicated to gameplay AI

    Please login to see this attachment.

    After I save, I am able to reset the right-side AI subframe to the savestate, but strange behavior occurs after I exit the application.

    Below is a screenshot of my game on the first frame when I load it up again after exiting.

    Please login to see this attachment.

    Ignore the blank left side, for one frame the AI sub-frame is loaded in correctly,

    however as shown below the very next frame it resets to its default state. Trying to manually load the data in produces no fruit.

    Please login to see this attachment.

    I have two savestates shown below, the top one is of the base frame, and the bottom is of the AI sub-frame.

    Please login to see this attachment.

    This is the relevant code for the base frame:

    Please login to see this attachment.

    This is the relevant code inside the AI sub-frame:

    Please login to see this attachment.

    Moreover, if I try to run the AI sub-frame on its own, I get a confounding error message:

    Please login to see this attachment.

    This doesn't make any sense to me since filename for the savestate I'm trying to load includes the frame's number in binary (11100)

    So, does save frame position save a sub-application frame's position? Does each frame's position need to be saved independently? How is it that I can correctly load the subframe just after its saved but before its exited? Yet once I close the application, loading up the savestate no longer works?

    I've been at this problem for a whole day, and I don't want to switch to using an INI object for saving/loading everything because there's just way to much objects and information across both frames. I'm trying to use this system for checkpoints, and I don't want to get rid of it because each section of the game is about 20 minutes long.

    Hi again,

    Due to the complexity of my frame's visual component I've chosen to use the quick-and-easy "Save Frame Position" option (SFP), and it works much better than the approach I was doing before.

    However, this approach seems to fail to save the position of the audio across the sound channels I'm using. I've heard that SFP doesn't work for certain objects, but does it work for the sound object?

    For example, I save the frame position when a piece of music is playing through the sound object. I load the frame back up according to the saved frame position and the music channel is silent.

    Is there a way to fix this so that I can do the same kind of "snapshot" that SFP does, but for audio? What type of objects does SFP not work on?

    Please login to see this attachment.

    (The array object doesn't seem to save through SFP too, so I tried to use INI++)

    I don't think there's any way to record that information all in one go. I believe the Special Object has an 'is group activated?" condition though (not at a computer at the moment so can't check it, but I'm pretty sure) , so you could use that to record your groups' states one by one.

    Okay, I think I'll make an object with an alterable value to record each event group that changes activation, and I'll save that info during the game's checkpoints, and when the frame is loaded in, I'll set each affected event group's status to be active/inactive based on it's corresponding alterable value.

    Thanks again

    Doesn't the INI object (and/or INI++ object) have a feature that basically does this for you? I'm pretty sure I remember a feature where you tell it to save an Active Object and it will store all its information in the ini, including position, scale, and the current values of all its Alterable Values. All you'd need to do is tell it which objects to save, and it would do the rest for you.

    Regardless of that, as defisym suggests, you can just run the loop 26 times, or 50 times, or whatever will cover all your bases, and it should be ok. Any unused altVals will just get saved as 0, and the process might add some unnecessary milliseconds to the save routine, but that shouldn't matter as long as you're not frequently saving during gameplay, which you probably aren't.

    Thanks guys for the help, I'm using the INI++ object now and you're correct that it has the option to save all the info regarding the object.

    I didn't know if saving and loading all possible alterable values of an object (even if they are not created) would bloat the frame info and lead to runtime issues, but apparently it's not an issue.

    I managed to get object info, counter values, and global values into a save file, now I just need to figure out how to save the active/inactive state of Event Groups in the event editor. Is there a built-in way to do that?

    Or should I use some external counters that save the state of these event groups as a workaround?

    Hi I'm working on implementing a save system into my game using the INI object.

    In my frame I have dozens of objects that I've classified into specific qualifiers that will help categorize how each object's information is dealt with.


    So for one group of objects under a specific qualifier, I intend to loop over each alterable value/string/flag in that group and save it to a file.

    However, each object has a different number of alterable values, strings, and flags. Some have no flags or strings, but many alterable values, and others only have some flags, etc..

    So is it possible for clickteam to retrieve the number of said alterable values/strings/flags on an object through the event-action editor? I'm trying to determine how many times I should loop through and save each individual object's information inside a group.

    I've got this action:

    Please login to see this attachment.

    It's supposed to assign a Global Value a specific number based on the equation below:

    Round(( ( -2 / 3 ) * Music Zone pow 4 ) + ( ( 11 / 2 ) * Music Zone pow 3 ) - ( ( 95 / 6 ) * Music Zone pow 2 ) + ( ( 18 ) * Music Zone ) + 1)

    I selected this equation in order to output a specific value for inputs from 0-4:

    Please login to see this attachment.

    However when I run my program for an input of 3, it outputs the value 55, when it's supposed to output 7.

    I've tried several things to fix it, but none have worked so far.

    Is there an issue with the parsing in this formula? Is the formatted wrong? I tried changing the format in different ways, but they never resulted in 55 specifically.

    The Music Zone variable stays at 3 throughout the duration that this formula was used. I genuinely don't know what could be going wrong.

    My project is probably too in-depth to go over every detail that might affect this, so I'm asking if this formula is done correctly, because if it is, then I can focus on other parts of my code to find the problem.

    [EDIT: I've managed to 'fix' it by converting the fractions to decimals. Clickteam must have some issues with fractions in expressions like this.]

    [EDIT: Found out that fractions need a .0 decimal after the integer numerator or denominator in order to function completely.]

    Hello,

    I'm trying to make a loading screen in the form of a transitionary animation video to mask the loading of the next frame. My problem is that the video only plays after the whole frame is loaded in, which negates its whole purpose as a type of loading screen.
    I'm using an active direct show object nested in a sub-application object, and am trying to get it to display and play the video immediately upon jumping to the target frame, before the rest of said target frame finishes loading. The target frame takes about 2-4 seconds to load. When jumping to the sub-application frame directly, the video loads and plays nearly instantly. The issue is definitely lies in the target frame preventing the sub-app from playing before it all loads.

    Please login to see this attachment.

    Is there a way to do this? Can I make a loading screen play before the frame loads in? By use of a sub-application object?

    Okay, I fixed the issue and it works now.

    The problem? Every set of filepaths other than the default set had a leading space in it, resulting in an invalid filepath. How did this happen? I populated the array in google sheets by using transpose(split("sample,text",",")) function, this function took in a text input. I got the text input as a list of values from a python script I made that searched my files to figure out which filepaths would need to be accessed, (otherwise I would've taken at least several days, if not weeks, populating this 20,000 + entry array by hand.)

    However, the list comes out as having spaces after commas, so that extra space got transferred to all the entries.

    I just made a quick python script to take the text input and replace all instances of ", ", with just ",", getting rid of this issue, and now it works great!

    Thanks for replying. I was wondering if there was some quick basic thing about arrays I didn't understand, but it was just a typo all along. :0

    Hi, there's an issue I'm working on with my game, where certain animations are supposed to play based off of two input variables: The player position and the enemy position.

    To map out which animation video files are going to be sourced from which filepath, I created an array that contains all current possible combinations and gives an output text to be used in the filepath that active direct show uses to locate and load a video file.

    Here is a sample of my code:

    Please login to see this attachment.

    The main point of this code is to transition from sourcing from one filepath to a different one when the player presses a certain button. However, it doesn't work out. The video file doesn't load, which I take to mean that the filepath doesn't change in time.

    I'm likely going to add more to this post once I wake up tomorrow, since I don't have much time at this moment and need to sleep, but what is the problem with my event that may be causing this video file to not load? (IE, ADS object listed as having no duration and position, (video filepath does not exist))

    Is it because I'm having the x index of the array change in the same event that loads and plays the video? I assumed that if I had the x index change occur higher up in the list, that it would occur before the ADS loads the video, so that the array has enough time to transition to the different filepath output. Perhaps I'm wrong, I've always been a little fuzzy if the actions in events occur simultaneously or are ordered, but if they are, I'm wondering if the ordering here is not enough to separate the array filepath change from the video loading, (which needs the filepath to change before the action is performed).

    Btw, my array dimensions are 271 x 83 (22,493 entries), if that's important.

    It's a good thing I installed 2.5+, because I stumbled upon a fix!

    By setting my display mode to Direct3D 11,

    Please login to see this attachment.

    And unchecking use Media Foundation with DirectX 11 (Because the videos play erratically if this isn't done)

    Please login to see this attachment.

    It now has no memory leak!

    Please login to see this media element.

    By the end of the video, the RAM is stable at about 515 Mb, and I confirmed this with a build using Task Manager.

    So there was some kind of Process with Direct3D 9 that caused some kind of memory leak with all the code I had set up, but 3D 11 fixed that issue at some point in its code.

    I'm happy that this means I don't have to segment this frame up into small frames, because that was my first approach to making this. I had 11 frames, that the player would jump through depending on where they were. But I had to discard this approach because there was a very noticeable pause when moving frames (about 2 seconds), which was not good for keeping the movement smooth enough.

    I'm not sure what else I would've done, since destroying either objects was difficult to code well with my systems, and didn't immediately release any memory, (making it easy to build it up and crash the whole application)


    Thanks for your help and insight Volnaiskra! I really thought I had been using 2.5+ all this time, but I apparently wasn't, and that version had the fix for my issue.

    Okay I did more testing, and I had some interesting discoveries, and possibly an epiphany.

    I made a second test frame where I only had the active direct show object, and I then wrote some code to play a small amount of the video files , each one based on what the value of a counter was at the time. (I also included a limit condition so it wouldn't perpetually load and play over and over again). It turns out, the memory leak that is present in the original frame doesn't occur. After playing about 40 of the video files, one after another, the RAM only fluctuates by about 2 Mb from the initial amount.

    So it's not solely the active direct show object, nor is it solely the active object. The active object alone increases RAM usage, but also releases it. Direct Show alone doesn't perpetually increase it. Yet these two together in my original frame with my original code keeps building up the RAM the more I use it.

    And here's where I realized something about my code.

    Please login to see this attachment.

    This image shows what I originally coded: the player would press "W" and a video would play.

    But then I changed it to this:

    Please login to see this attachment.

    Using the Key Object, I managed to let the player seamlessly "move forward" by keeping "W" pressed down at the end of the video file, so that it would immediately play the next one.

    The problem I see is that there is no limiting condition there, so perhaps this set of instructions are being perpetually done for a while, even if I'm only pressing the key for a short second.

    I don't know if this is actually happening, and I don't know why this would result in the memory leak, since nothing is being created or added in the resulting process, but who knows, I'm out of ideas of what could be causing this.

    I'll see if it fixes it tomorrow.

    Doesn't seem to work all that much, the bulk of the left over memory remains. I don't know if there's some kind of option in the settings that keeps the memory of objects even if they're destroyed.

    It is really odd, it makes me think that the direct show object is storing some kind of information from its access of each video file, and that's what is going on. I'll probably try a few different things and change my approach.

    I've tried a lot of things, at this point I might as well upload the .mfa for people on here. I won't be able to do that though until tomorrow.