VikasSanstha's Recent Forum Activity

  • I think it makes sense to keep the project name separate. Some people will want to set them separately. For example you might have "My game (variant 1).c3p" and "My game (variant 2).c3p" for testing or experimentation purposes, and you want both to have the project name "My game". If the filename automatically sets the project name, it makes it impossible to do that - the file system will prevent you having two projects with the same name, because you can't have two files with the same name.

    Thanks for the personal reply Ashley, I really appreciate it coming from the founder, and it's nice to meet you. I think the negatives considerably outweigh the positives. It makes file management very difficult. I can't think of other sophisticated software (which Construct certainly is) that operates this way. It should be an option in any case. Let the user decide if they would like to work in a more traditional fashion. Any time we make creative projects, be it in Premiere or InDesign or Reason, the file name is the project. It's natural and normal and efficient and logical.

    I have hundreds of js files that I create and manage in VS Code, all declarations for content for educational games. I can't imagine if each of them had a separate name for the "project" and the "file," and then I also couldn't see the file name anywhere. It would be a nightmare to manage, and it's what I've come up against in C3.

    In the example you give they both have the same MyGame name in the filename anyway, followed by a version number. I don't think many people will call their game "Jungle Adventure v1.c3p" and then make version 2 and not call it "Jungle Adventure v2.c3p".

    If possible, please consider including the display of the filename somewhere if nothing else. It makes it very hard to manage large numbers of files. It's always best for users to have direct control over and awareness of their files. If the filename were visible then the issue of whether to derive the project name from the filename would be a moot point really. Users who prefer to focus on the file name would just do that and ignore the project name. The project name has no relevance when managing the actual files on disk though, which is what makes file management so difficult. You have to syncronize everything, and track changes, and then you can't even see the filename when you're working in the editor.

    Please don't get me wrong, I absolutely love Construct. It's genius, and hats off to you personally, just IMO this is a thorn in an otherwise brilliant product, and I haven't encountered many other thorns, which is saying a lot for such a robust product.

  • I understand you are talking about c3p files, and I agree sometimes I need to see the file name, usually when I have two versions of the same project open.

    However, in C3 you can also save projects as a folder or to a cloud service. Displaying a file name in these cases will be useless.

    No, no cloud, only local. It's a nightmare trying to manage a large number of files. A huge amount of unecessary time and effort for something that should be simple. Not just not being able to see the file name, but the fact that the project name is a separate entity unconnected to the file name drives me crazy. This is a terrible way to work, and I can't think of any other software of the caliber of Construct that forces users to work this way.

  • As much as I love Construct and consider it to be a triumph of usability and UI design, I find it shocking and bewildering that the actual file name of the project you are working on is not shown to the user anywhere, unless I am missing something. The only place it seems to appear is when you have multiple projects open, that have no project name, then it is appended.

    As a UI connoisseur I have to say this is a failure of the most fundamental sort.

    In general the approach to project naming is a mess. There should be two additional options in the settings. (1) Show file name. One obvious place would be at the very top of the Project Bar above the Project Name, and, more importantly (2) Use file name as project name.

    Having the Project Name be different than the File Name is useless to begin with in my opinion, and only invites confusion. I have 325 Construct projects, alot of it just experimentation and learning, but so be it. The only option to have cohesiveness between the file names and project names is to manually evaluate all 325 projects, and then manually rename all of the files and projects, and then any time a change is made to one or the other, it has to be tracked and then accounted for. This is a terrible UX and workflow/productivity design IMO.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thanks Biscotto, this is very helpful. I like the use of else and the loop index and creation cycle. Those are all techniques I am not familiar with so it's exciting to learn something new.

  • > Thanks very much. So in this approach are all the objects instances or discreet objects? Seems like they have to be separate objects. If they're instances the list positions is the same for all, when I change it for one they all change.

    No, that's the whole point of instance variables - they can be set separately for different instances of the same object.

    Hi Mike, I have it working except for the failing part, if you have a chance to take a look at the c3p. It fails every time, even you win, if that makes any sense. Many thanks. shorturl.at/gvI13

  • Do you need to check if the sequence is correct at each click, or is the check done once at the end of the player's sequence selection?

    Anyway, reading your question, I had an idea that maybe could work, and it would avoid you to use a lot of control variables or whatever:

    When you create text isntances, do you do it using its correct order and just arrange them in random order inside the screen? If yes, you could take advantage of the UIDs or IIDs of the instances that will surely be generated in incremental order.

    So, for example, if the IID of the second instances clicked is not equal to the IID of the first instances clicked +1, then the selection sequence was not done correctly.

    I would like to learn how to do it in both cases (go all the wya through whether you're right or worng, and also get stopped as soon as you're wrong). Also the objects may not be text, they could be sprites. The IID approach is what I tried instinctively but I just couldn't get it to work. I will try what you've suggested. Thanks.

  • There's several ways to achieve this.

    The most intuitive way I can think of is to give all the clickable objects an instance variable eg. listPosition. Then you could go through all the objects and set listPosition = 1 for the first one, listPosition = 2 for the second, etc.

    Then you could have two global variables eg. objectToClick (which starts at 1) and totalObjects (where you can put the total number of objects eg. 3).

    Then we can just do this (pseudo code but just to give you an idea):

    if user clicks object & object.listPosition = objectToClick : add 1 to objectToClick

    if user clicks object & object.listPosition != objectToClick : show "fail" message / fail events

    if objectToClick > totalObjects : show "success" message / win events (user has won)

    So, if they click object with listPosition=1 and objectToClick=1, the game allows them to go on to click object with listPosition=2, etc - and if they click anything else they get the fail condition.

    An alternative way to do this would be to match two text lists, but that may involve mucking about with string operators and might be slightly more confusing? Same result anyway :)

    Thanks very much. So in this approach are all the objects instances or discreet objects? Seems like they have to be separate objects. If they're instances the list positions is the same for all, when I change it for one they all change.

  • If I present the user with several objects and they only succeed if they click on them in a certain order (that I choose).

    Example - In the attached image the user must click on the times in sequential order. If they do they "win", if they click out of order it stops and says try again.

    I am also unclear how to accomplish this if using instances vs. separate distinct objects.

    Many thanks, I have tinkered with this for hours with no success. Any help is greatly appreciated.

  • Thanks Kryptopixel, this works. It's very helpful. Can you possibly explain a little as to what it's doing? I'd like to understand.

    Thanks

  • This is not working

  • Hi all,

    I have an array with a five pieces of text. When a btn is clicked a text box shows a random text entry from the array via this code.

    array.at(round(random(0,4)))

    This works fine.

    I then want speech synthesis to speak whatever text was chosen. I can't figure out how to get it to connect with the text that happened to be chosen at random.

    Many thanks for any tips.

  • You do not have permission to view this post

VikasSanstha's avatar

VikasSanstha

Member since 24 Jul, 2021

None one is following VikasSanstha yet!

Trophy Case

  • 3-Year Club
  • Forum Contributor Made 100 posts in the forums
  • RTFM Read the fabulous manual
  • Email Verified

Progress

6/44
How to earn trophies