pandabear7413's Forum Posts

  • Some context: I have a family called enemies, which is pretty established, and I wanted to create a new enemy type called Wolf. Wolf is very different from the rest of the existing enemies, which are mostly human-based, so I needed to develop lots of new code to control and animate Wolf. But in the end I still want Wolf to be a member of the enemies family as there’s common enemies code that will apply to Wolf.

    I wanted to avoid the existing enemies family code being called on Wolf during prototyping, as it would potentially throw everything off in the game and make prototyping a lot harder. So I chose to create a standalone object called Wolf to prototype. Even though it’s not part of the enemies family, Wolf has several identical behaviors and instance variables, like ‘health’ and ‘hitStrength’, and the Platform behavior.

    Now that I’ve got Wolf working (yay!), I want to add it to the enemies family. But because it has the same instance variable names as enemies, I need to change them before C3 will let me add Wolf to the enemies family. I expect this will involve a) changing the names of those IV’s in Wolf (e.g., change ‘health’ to ‘health2’), b) adding Wolf to enemies, c) changing the Wolf logic to use the IV’s from enemies (e.g., change anything referencing ‘health2’ to ‘health’), and then d) deleting the Wolf-specific IV’s ((e.g., ‘health2’). I’m probably going to need to do something similar with the common behaviors as well.

    This is just an example but it’s making me think there may be a better way.

    My question is, what’s a good way to plan for such ‘merges’ of code, and is there something I should have done differently? C3’s editing logic is great because it checks for errors caused by duplicate IV and Platform names, and I wish there was an easier way to do this merge without having to pick through my code. Any suggestions?

  • Thanks R0J0hound for the suggestion, similar to what I was thinking - but better!

    I was curious if there was a way to use elegant pick logic to do this in a 1- or 2-line event. I've seen some beautiful code suggestions in these forums that I never would have come up with, mainly because my brain just doesn't think that way.

  • Ctrl + P

    I always used ctrl+v to paste but I figured I'd try this ctrl+p suggestion. It spawned 10+ Chrome windows and tried to print the contents. After closing them all I saw that my 20+ tabs in C3 were out of order. Fun.

    So yeah use ctrl+v to paste...

  • I have 2 object types, A and B, and both have an instance variable called matchID.

    At certain points in the game, every B instance should be destroyed if there isn't an A instance whose matchID equals B.matchID.

    Here’s my pseudocode:

    - IF there is a B instance whose matchID instance variable does not equal the matchID instance variable of any A instances, THEN Destroy B instance

    What’s a clean way to implement this with C3? I'm probably overthinking this but I cant come up with something elegant.

    Thanks

  • I figured it was something browser-specific, thanks Ashley for the confirmation and additional detail.

  • luckyrawatlucky's insanely good Theme Dark seems to have the perfect solution for this already...

    You're not kidding, I just installed the theme, the hidden X feature is great and the theme itself is fantastic. Thanks for the tip and to luckyrawatlucky for the theme!

  • Update: I saved my project to a single file and opened it with FF, and FF is MUCH faster than Chrome, maybe even a touch faster than Chrome was before it started having issues. I then opened that same file with Chrome to see if it's a file-vs-folder thing, but Chrome is still as slow as it is when I open the local project folder.

  • They're usually right next to eachother and you switch between them often. It's just when you accidentally click the any tab x, you have to figure out which you clicked away, find and scroll to the layout/event sheet that you clicked away in the sidebar, double click, and reposition it. It's only one of a handful of small issues that could make life easier if they were fixed.

    I think the biggest issue here is repositioning the new tab when there are multiple tab rows, which is the bug I reported in issue #5499. If that gets fixed, the other steps you mentioned -- figure out which you clicked away, find and scroll to the layout/event sheet that you clicked away in the sidebar, double click -- don't seem too inconvenient considering how infrequently it happens. I accidentally click X maybe once every 8 hours of coding.

    Very few issues seem to get attention, I also believe few people used that github (or what was it?) to report issues, which requires you to learn a new interface, register an account, report the issue, show 'proof' and replication of the issue, all that effort, same with suggestions/improvements.. you put in all that effort and MAYBE, just maybe if you get lucky if enough people will vote up your suggestion it might just get some attention and looked at.

    I submitted my first ticket yesterday with the GitHub approach, and it worked well and wasn't too cumbersome. As for having to go through GitHub, I happen to also use GitHub to manage/backup my C3 projects, it's a great resource that's ubiquitous in the software development world. Highly recommended!

    As someone who works with QA I appreciate the bug reporting process Scirra has put together. Without it they'd be bombarded with non-issues, poorly explained defects, massive projects they need to sift through, etc -- all things that would take them away from important work. They're a limited team with limited resources, let's not forget that.

    And when you do suggest new things like I did in this topic, you just get a 'it's not going to happen'.

    Just yesterday DiegoM said "Rudi55 If you think any of those things will improve C3, you can file a couple of issues in our bug tracker and they will be looked at." Sounds like they're being pretty accommodating :) Like with bugs, Scirra needs to decide which features are in the best interest of the broader community. Limited team, limited resources...

    This must be a multi million Dollar business by now, so why not invest more in improvement, invest more in staff.

    I don't claim to know Scirra's business, but $1m annual revenue would require 10,000 yearly subscribers (@ $100/yr), and I doubt there are that many subscribers based on the Forum activity. Factor in all the employees and the overhead to host their content and I don't see many folks getting rich Scirra. Yet I continue to be surprised at what they're able to achieve and how committed they are to their product. Where else will you find the company Founder/CEO responding to your forum questions?

    I went off topic but I just wanted to have said this, C3 is probably one of the best game makers out there

    Agreed!!! I've always wanted to build games but the other engines are way too complicated for me. C3 has become my passion and has opened doors for so many. Yeah it's not perfect (what is?) but it sure as hell is one of a kind.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • No, I believe he wants to load a project folder. You can save as single file but also as a folder. And similarly load it.

    Exactly. Perhaps it's a browser limitation with FF where it can't access the file folders, Ashley any thoughts? Edit: I also noticed I can't save a project in FF to a local file, only to the following. Is this normal?

    I agree Chrome would be best, but I recently started experiencing slowness w/ Chrome (see the link in my first post of the thread) so I wanted to try FF.

  • I've been using Chrome for C3 but it started working slowly for me (see https://www.construct.net/en/forum/construct-3/general-discussion-7/anyone-seeing-slower-167843), so I want to see if Firefox will perform faster. However, FF isn't giving me the option to load projects from a file folder. Screenshots below are 1) from FF, and 2) from Chrome. Is there something I can do to enable loading projects from a file folder in FF? FYI I'm using FF 97.0.1.

  • Thanks for the response, I guess I'm happy I'm not the only one.

    Unfortunately I can't test Firefox because it won't give me the option to open a project folder. I'm going to post that as a question to the community.

  • My main event sheet has ~800 events, and it's very slow all of a sudden. Opening conditions/actions, scrolling through "find results", resizing bars, etc. My project hasn't changed much in the last few days, but I did reboot my machine today. I also saw slowness w/ the 283 beta the other day, but when I went back to 276.2 it was running normal again. Looks like Chrome was update on Feb 16 but I definitely used it since with no performance issues.

  • 2) Sorting tabs in multiple rows needs some work.

    If you think any of those things will improve C3, you can file a couple of issues in our bug tracker and they will be looked at.

    I like this as a solution -- if sorting tabs works properly then it's not a big deal if you accidentally close one, you'll just need to open it back up and drag it to the right spot.

    FYI I submitted this as an issue, #5499.

  • What's a good way to manage what players and enemies can do based on their state?

    Context - In my platformer, the 'player' character does many standard platformer actions - shoots, runs, jumps, crouches, aims, reloads, kicks, etc. I've been using a "state" instance variable to determine what the player can do (and what can be done to the player) based on their current state. E.g., when state = "good", the player can move, jump, and aim. If state=aiming, the player can fire. If state=good, or aiming, or reloading, or throwing, or kicking, the player can be hit by an enemy. I set the state variable when something happens - ie., the player fires, or an enemy is hit.

    At first this was manageable, but as I add capability to the player/enemies (and features to the game) my logic is starting to get unruly. My conditions are getting complicated, with lots of or's and inverted conditions, and whenever I want to make a change or add a new state in the code, something almost always breaks. It's brittle spaghetti code.

    This article https://gameprogrammingpatterns.com/state.html does a great job explaining the problem, and offers a fairly sophisticated set of solutions. Unfortunately a) it's beyond my ability, and b) I don’t see how this can be implemented with C3.

    Can anyone recommend an approach that works well with C3?

  • Thanks! Glad to see see it's not a bug. Definitely need to wrap my brain around this, but it may explain why some of my other code is acting funny.