WackyToaster's Recent Forum Activity

  • It's going to be an update that I hope I can get out with a little bit of fanfare as to draw attention.

    perhaps once released the game will popup in people's "more like this" queue if they've been shopping for similar types of puzzle games.

    I forgot to add, this is exactly why you want those 10 reviews. Your game will get a massive boost in how often it is shown to people in these queues. Here's an article about that: howtomarketagame.com/2022/01/25/why-your-first-10-reviews-are-the-most-important

    It doesn't even matter if the reviews are positive or negative as long as it's 10.

  • Well what can I tell you, you are literally describing word for word how my first big release went. No marketing, I was super burned out at the end and I just kinda pressed the release button because I wanted to be done with it. The result looks like this btw.

    But I actually think your game might have a better shot at it. I certainly made some mistakes that I never ended up really fixing due to said burnout... which you seem to not make. So... good luck don't get disheartened if it doesn't work out.

    (As for my game, I'm actually working on a big rework because I believe I can salvage it, so it's a weird blessing in disguise that it sold this bad :^) at least that's what I like to tell myself)

  • Looks like a fine prototype. One thing that I absolutely suggest are levels that are on the easy side with few elements just to demonstrate how the mechanics actually work and slowly introduce them. It took me a few minutes until I somewhat had an idea on what I'm actually doing and was able to solve levels, but if you were to ask me now to explain how exactly the mechanics work, I couldn't tell you.

    Another suggestion is a rewind feature that lets you rewind step by step. Trust me when I tell you that people 100% expect this to be in the game and will get frustrated if it isn't.

  • Events run top to bottom, your event runs like this:

    1. Touch object

    2. Object is not selected -> set selected

    3. Object is selected -> set not selected

    Add an "else" to the second condition to fix it.

  • That's not how triggers work, you don't need that every tick. Although it doesn't appear to cause any issues either.

  • The key is finding a position opposite of where the player is.

    Get the angle between player and enemy with angle(player.X, player.Y, enemy.X, enemy.Y)

    Convert it to vectors using cos() and sin()

    Define a distance the enemies should run away

    Then make them run :)

    For pathfinding you'd also have to find the path to that position. In this case the endposition could for example end up inside a wall, which will trigger "on failed to find path". So you'll need some extra handling in place to make sure the endposition is not inside a solid object.

  • How do you actually move the enemies though, I'm assuming pathfinding behavior? That's just the code for finding the targets, which looks fine.

    I think what might be the issue in your case is a setting in the pathfinding behavior, specifically the "rotate object" setting, which you can probably disable in your case. Or it's the acceleration being too slow, and you could increase it.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I'd also go with the first approach. Managing the second option seems like more of a headache. I don't think modern computers will struggle much with big layouts, and resetting enemies doesn't seem like it's that daunting of a task. You can also implement the classic elevators like in super metroid, to still split up the game into maybe 4-5 big layouts instead of hundrets of small layouts. You will have to take care about making sure that enemies/elements that are not in the current room are disabled, otherwise you'll have some random enemy on the other side of the map waste CPU power.

  • The game looks nicely polished. The art is simple and crisp and sounddesign seems polished too. Puzzlegames are a bit of a weird niche and it's not easy to garner tons of attention unless you're about to make the next baba is you or talos principle. How many wishlists have you collected, some say the magic number is 10.000, although I think you can make do with less too. Getting reviews is also important once it's released, because steam won't really show your game off much unless you got 10 legit reviews, regardless if positive or negative. Legit in this case meaning reviews from non-gifted copies. So unleash your friends or bribe them if you have to :D

  • Glad to see my little experiments bear fruit :)

  • Well for starters you'd have a variable price that you adjust every second, for example it changes somewhere between -10 and +10 every second:

    System -> Every 1 second: Set value "price" = price + random(-10,10)

    Then you'd store this into an array. The length would be how long into the past you want to show the graph, for example, 1 minute = 60 seconds, so your array should be length 60. You'd use the FIFO method construct.net/en/make-games/manuals/construct-3/plugin-reference/array which will remove the oldest value (older than 60 seconds) and add the newest value to the front.

    Finally you use canvas to draw the line. Clear the canvas, then loop through your array.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/drawing-canvas

    Then draw a line for each value from the previous value to the current value

    Array for Each: Draw line from X: (array.currentX-1)*20 Y: array.at(array.currentX-1) to X: array.currentX*20 Y: array.currentValue

    This is off the top of my head, you might need to tinker with some values etc.

  • I haven't seen anything up to date, but just from taking a glance at it a lot of principles probably still apply, it's just that in C3 there's better options to deal with it. For example, class inheritence is possible through custom actions. Here's roughly what I do:

    • Use families/custom actions where needed, which for example will apply to things like enemies.

    • Use functions where possible, especially if you suspect that you need to re-use the same functionality multiple times. E.g. saving the game can be triggered via autosave or via a button

    • Use eventsheets to group things that belong together, e.g. enemies

    • Then use groups to further divide the eventsheet up into the respective parts, e.g. I like to have a group called "enemies" and then have subgroups for each enemy like "enemies.goomba", "enemies.koopa",...

    • use local variables/instance variables/data objects in favor of global variables whereever possible. It's technically fine to have a lot of global vars, but often times it's not needed and it clutters the variable selection. So I'd reserve global variables for specific cases where it MUST be available globally and it's not worth putting into a data object (e.g. settings is a data object, not a bunch of global variables for each individual setting.

    • After a while you might notice certain parts of the code to "spaghettify", at least it always starts to happen in my projects eventually :D Especially when it's time to add a new feature. If you notice that, consider taking the time and refactor your code

WackyToaster's avatar

WackyToaster

Member since 18 Feb, 2014

Twitter
WackyToaster has 26 followers

Connect with WackyToaster

Blogs