althea_texas's Forum Posts

  • Well, that answers my question. I thought that someone in the community might have put together some sort of guide or heads up for newcomers. Such a document might also be persuasive for users who aren't sure about switching from C2 to C3.

    Thanks, Newt. I will start reading over the release notes. I might also try to start a thread encouraging current C3 users to share their thoughts about new features and workflow changes that they find most awesome about C3.

  • This question did not get a response, so I will try rephrasing it. :)

    Is there any single document or page which can help C2 users understand some of the most significant changes and improvements in C3?

    For example, in the process of helping my students trouble-shoot their games, I realized that C3 has added the PERSIST behavior. This is so cool!

    During the past two weeks, I have also learned that the event sheet editor has incorporated all sorts of useful changes.

    I will read through the C3 manual from start to finish, but it would be awesome if there were some sort of document which identified all of the changes and improvements that ex-C2 users should know when they begin experimenting with C3.

    Thanks!

  • :)

    It has been a while since I poked around with local storage, but I remember that you have to check to see if locally stored variables exist before you try to read and write those variables.

    This tutorial was very helpful:

    javajdk.net/tutorial/localstorage-in-construct-2

    This event sheet diagram is from that article:

    As the author of that tutorial explains:

    "The key to understanding this event sheet is that Construct 2 LocalStorage is asynchronous. Every LocalStorage action has a matching event that you can use as a condition. Every request to LocalStorage generates an event rather than giving you an answer right away. Remember LocalStorage always says, “I’ll get back to you.” It never gives you something exactly when you ask for it, though it is typically so fast your users won’t notice the difference."

    I struggled with other local storage tutorials but something about this person's explanations made sense to me.

    Best of luck. Please let us know if you solve the problem, Matt from Manchester!

  • I think you need to use local storage, Matt. It should be relatively easy to do. Let us know how it goes! Btw, are you from Texas? I have a friend names Matt Daly. :)

  • Thank you everyone for your thoughtful replies to my message. This is very helpful!

  • I am a moderately experienced Construct developer who is assembling a sample platform game as part of a lesson for my game design students. As part of this game, I've added the ability to toggle the visibility of collision boxes by hitting the TAB key. The code works, but I'm confused by how C3 visually depicts the ELSE statement.

    This is the code that works:

    Figure 1. ELSE statement on a separate line

    This is the code that does not work:

    Figure 2. ELSE statement is visually indented.

    Visually, it seems like the option in Figure 2 makes more sense; indentation suggests that the ELSE statement is linked to the condition check that happened on the first line. Of course, when the code in Figure 2 is executed, C3 says 'An else condition cannot be placed here. Make sure the event follows a non-triggered event and is the first condition."

    I can totally work with this, but I'm trying to figure out how to explain the visual notation to the students. When I do it the *correct* way, as in the Figure 1, the ELSE statement appears as an independent line on the event sheet. In many programming languages, it seems like there would be some sort of visual indication that it is linked to the previous condition check as part of a code block.

    For now, I'm just going to say "If C3 sees an ELSE statement on a separate line, C3 will assume that the ELSE is connected to the condition check on the previous line. But you cannot just randomly drop an ELSE statement into the code *anywhere* on the page because C3 cannot figure out what logical check the ELSE is connected to."

    Does this make sense? If anyone has other useful ways that you like to think about (or explain) conditional logic, events, and subevents in C3 please let me know.

    Thanks!

    Aaron

  • This semester, students in my mobile gaming course are learning how they can use Construct 3 to create their own casual games. I am not new to Construct but this is the first time I have taught the class using Construct 3.

    So far, I have been pleasantly surprised by the upgrade. C3 keeps everything that I loved about C2 while fixing minor issues that used to bother me. For example, I love the fact that users can now drag assets into the layout and Construct will automatically recognize, rename, and import sounds and images. It also seems like there have been some major improvements to the event sheet which make it easier to copy and paste code.

    I would love to find a single message thread documenting all of the changes that people migrating from C2 should know about. Can anyone point me to such a resource? I have seen Scirra's marketing materials, and I try to skim the release notes when incremental upgrades are pushed out, but it would be awesome to see something written from the point of view of C2/C3 users.

    Such a thread might already exist in the forums, but I get a 404 error whenever I try to search the forums.

    Thanks!

    Aaron

  • Thank you for taking the time to share this with the community!

  • Quick question: Will this dialogue template system work with Construct 3?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thanks! As you note, the problem is when people want to externalize their data. Using the event sheet to manually add items to the array one index at a time is a bit of a chore.

    Considering the size and energy of the Construct community, it seems weird that a tool hasn't been developed that would make this easier. Before I go to the hassle of writing a script that will handle this, I figured that it was worth touching base with the community to see if someone has already invented this particular wheel.

  • Several students in my introductory game programming class are working on final projects that rely heavily on two-dimensional arrays. Arrays are one of the few things that seem slightly more complicated in C2 than they would be in a different programming environment.

    Ideally, it would wonderful if my students could create their arrays in a program like Excel and then convert the data to a properly formatted JSON file. There doesn't seem to be any way of doing this that is both free and easy. The most straight-forward solution is reverse engineering an existing JSON file in a text editor, copying and pasting to insert new rows. But this approach is a pain in the butt.

    It occurred to me that it might be possible to create a Word mail-merge that will pull fields from an Excel file and then convert them to JSON formatted output. Assuming we turn off smart quotes, that could work. But....

    There *has* to be a better way of doing this. I would be grateful for any advice from the C2 community.

    Thanks!

    Aaron

  • I'm glad you enjoyed reading the class blog postings, Mikal! Thank you also for answering my questions. I'm diving back into this now and will resurface if I have any additional questions. Thanks again!

  • Hi The answer is "neither."

    I'm using Construct for the second time in a college class titled "mobile gaming." Although some of the students have experience with other programming languages, the course begins with the assumption that people don't have any formal training in computer programming. We start out by creating animations with Adobe Animate, we transition into fundamental programming concepts with Code Combat, and then we spend the rest of the semester creating games with Construct. Along the way, students read scholarly and applied articles about game design. We talk about user interface design, tutorial levels, game design documentation, game narrative, the importance of choice in games, the role of randomness in games, and -- of course -- graphic/visual design.

    These students have already used Construct to create their own platform games, and they are currently working on individual final projects. Some students are creating their own riffs on familiar game templates (e.g. tower defense games or top-down shooters), and two students are interested in creating games that involve a dialogue component. I think both of these students are inspired by Japanese otome and visual novels. In an ideal world, I might point the two students toward a different platform for authoring interactive fiction, but -- considering the time constraints and the nature of the assignment -- for now we are using Construct.

    Since these are small projects of modest scope, it is certainly possible for students to brute force the dialogue trees. I had hoped that this could be an opportunity to teach them more about arrays, dictionaries, and ways of storing/retrieving data from an external file, but -- considering that they are now in the throes of finals week -- a brute force solution might be the most sensible option.

    I don't want students to create a game engine for handling narrative content, and was hoping that the dialogue system would be a friendly, well-documented template that they could easily pick up and run with. Don't get me wrong: the dialogue system is awesome and worth every penny. It's just that the system might not be an ideal educational tool for beginners. In order to explain how the system works to the students, I need to fully grasp the big picture of how the various parts interact, and those big picture interactions are still fuzzy to me.

    I can't send you a private message yet, but -- if you message me -- I might be able to attach a copy of the course syllabus in my reply message. You can see examples of the students reflecting on their platform games at: gamesclass2017.wordpress.com

    Thanks!

  • This is starting to make more sense, but I am struggling with the big picture. Imagine that I'm a hobbyist game developer who hopes to use this dialogue system as part of an interactive novel. Can you help me understand how all of the pieces fit together? These are my questions:

    1) I realize that I should use the layout named UTILITY to create the game dialogues, and I have noticed that it is possible to export this information as a JSON file that is loaded into a dictionary or as a CSV file. Is there any reason that I should favor JSON over CSV or vice versa?

    2) How much of the branching logic can be handled with the fork elements of the dialogue system template, and how much of the branching logic should be stored in the CAPX itself? In the C3 dialogue template example image, there are three buttons used to fire individual bits of a dialogue. I'm assuming that the buttons are hardwired in this way to demonstrate *how* the system works. (Which is exactly what I asked for.) In a larger game, would you recommend that all subsequent calls to dialogue sequences be handled internally through use of the fork command?

    3) I'm trying to figure out the best way to articulate this question, so I apologize if it is confusing. Trying to wrap my hand around how the overall game loop will work when using this system. In the image titled C3DialogueTemplateExample.png, it seems that the dialogue is triggered after the layout loads, and then the user is being handled by the logic of the dialogue template. But what happens if the user reaches a point where they want to exit dialogue mode and do some other things before returning? For example, what if it were an RPG game and the user were to wander off and battle some slime molds before returning to town and entering into the dialogue mode. How does the dialogue system get reactivated? Would I need to load an entirely new dialogue dictionary? Or would I use variables stored in the Game Dictionary to keep track of the user's progress through the game, and just use that information to restart the dialogue template with the appropriate sequence?

    Thanks for your patience, and for the helpful resources. The image is very useful, as is the list of dialogue commands.

  • Thank you Mikal and I will circle back if I have any questions.