Fimbul's Recent Forum Activity

  • I forgot to upload the fixed version. Here you go.

    Also helena, don't just "round" the values, please, otherwise this bug might come back to haunt you.

    My "fixed" version is a better workaround than rounding, but it's even better to implement the proper fix like I described (by using gridX and gridY as basis for player.x and player.y).

  • Got it.

    The problem was a rounding error when setting the player's X position when moving UP in the first column.

    It was being set to 63.99999999999 instead of 64.

    This is likely due to using the "move at angle" action not being precise enough.

    The bug is fixed by replacing those actions with "Set Position" actions and manually adding/subtracting from X/Y coordinates.

    It would also be fixed if you replaced your int() logic with round() logic, but that would be more akin to masking the bug than to actually fixing it.

    A better solution would be to not rely on the player's X/Y position on the canvas to determine it's X/Y position on the grid. Set the player's X/Y position on the canvas based on it's X/Y position on the grid, not the other way around.

    To see the bug in action, open your broken capx and:

    • select the player object in the debugger
    • Watch it's X position, it should be TILESIZE (in this case, 64)
    • Move down. It's X position should still be the same (64)
    • Move up. It's X position should be slightly lower than TILESIZE (63.999999999)
    • Your expression evaluates GridX to int((63.999999999/64)-1) -> int(0.99999-1) ->int(-0.00001) -> 0
    • You expected it to evaluate to 1, so your code breaks.

    That was a tough one! Ashley, we have a rounding error here, possible bug?

  • Nope, it still requires JSON-TMX importer.

  • Post your capx again and I'll take a look.

  • Could you please create a version that uses no third-party plugins? I might be able to take a look.

  • You'd probably get some performance boost (due to them using a better browser as a wrapper), but I think it would be more about look and feel.

    For instance you could expect zero overlays (no address bar at the top), APIs for accessing phone features, automatic packaging of assets (in some other format that is not APK), direct download from the Play Store, ability to invoke system dialogues and create alerts/reminders, ability to run in the background, etc.

    I am just speculating, though.

  • Fimbul, only the graphics look like isometric but concept is still the same. Instead of rotating the platform, I want to use a curved platform to represent the change in direction. I drew an isometric diamond around the pipes to give you an idea of what ends need to join when a new tile is created.

    I see. Well in that case you could draw a "connector" bend every time the direction changes.

    Your logic works perfectly, I was even able to randomly pick variously tiles and make a continuous path. The problem I am facing is when I try to adjust the height with the previous tile, the whole platform starts drifting downwards.

    Y= (Platform.Y)-sin(Platform.Angle)*(PlatformWidth/2)-sin(PlatformCreationAngle)*(PlatformWidth/2) + addY[/code:1qb3e2sa]
    
    

    That code is responsible for scrolling all platforms! Adding/subtracting a number means "add drift" in this context, whereas multiplying by a number means "change the speed". Your code adds to Y, which means it's going to drift downwards.

    Let's simplify the formula so that it becomes easier to see:

    Y=(Platform.Y)-sin(Platform.Angle)*(PlatformWidth/2)-sin(PlatformCreationAngle)*(PlatformWidth/2) + addY

    This looks suspiciously like:

    Y=Y+addY[/code:1qb3e2sa]
    
    What you need to do is:
    [ul][li]Pick only the instance you just created (the create-object action pre-picks the newest instance for you, but I don't know if it "un-picks" the other instances, you'll have to test)[/li]
    [li]Add/Subtract to it's Y position only once (preferrably at the moment of creation). You don't need any fancy formulas to it, just add directly to it's Y position.[/li]
    [li]I would avoid adjusting the X position, since that can cause seams to appear. The platforms will always be coming from the right, correct?[/li][/ul]
    
    
    

    Most Importantly: If my game ever sees light of day.... I will give you all the credit for helping me

    Don't worry about that man, just pay it forward.

  • Ah, I understand now what you're trying to do. I was operating under the impression that this auto-runner of yours was a platformer, but it's an isometric game...

    Which is quite weird since your drawing on the original post showed a platformer-style auto-runner. Did you change the scope of your project? If so, this smells like feature creep, and you should probably revert to the original platformer design.

    However, if you still want to press on with the isometric gameplay, you're better off ditching the whole logic and starting over with a modified iso tiling engine (one that only draws the tiles you need), since your pipes are basically tiles. There should be some examples around in the forum.

    When creating new tiles, remember to push them to the bottom of the z-order, and use image points (as well as instance variables) to create attachment points for the newest pipes.

    You'll need to scroll all the tiles instead of the player, which will have to be done using basic trig (you can't rely on the layout editor to handle the scrolling for you).

    All in all, I recommend reverting to the original design.

  • Thanks for this advice, I'm really grateful My goal was to work on a large game company and make my own games, but sometimes i feel hesitant. Actually I'm the 1st in my school, always get high grades, thus my dad wants me to be a doctor or an engineer, and earlier when I began making games and told him that I want to make games as a career, he discouraged me and made me feel bad, but I know he wants the best for me and want me to live better than him. That's why I'm asking all this questions about salaries and the industry.

    If you're good at school, definitely don't go towards gaming as your primary mean of generating income. In this point, your dad is correct.

    On the other hand, I don't think a career as a lawyer or doctor will be good for you. Yes you'll make money, but those jobs leave you too exhausted to do anything else. Since you're young, I would look towards a job that:

    • Requires skills you can reuse to develop games. Programming and design are good bets.
    • Has stable long-term prospects. You don't want to become a bus driver, gasoline-engine mechanic or anything you suspect will cease existing in the next 20 years.
    • Is an office job with low hours and/or low workload. For instance you don't want to become a civil engineer and always be walking around a construction site giving orders. Don't worry too much about high payment, but do look for something that can sustain you comfortably.
    • A high barrier to entry would be nice, especially considering you're a good student. For instance, government jobs usually require a test, and once you're in it's impossible to be fired.

    You could also try a more fancy route, such as becoming a Computer Scientist, since you get all the perks above and, if you're lucky, can even integrate your game design directly into your research.

    Mostly, it's about finding non-standard routes into the industry.

    Avoid becoming a professional game developer. You'll notice I didn't even list it as an option in my list, and that's because it's not viable. The AAA industry is on the verge of a crisis, all the jobs are concentrated in the USA/Canada, the pay is horrible, the journey to become an actual designer is super boring and unrewarding (you join through QA, then become a programmer, then a designer), filled with overtime, turnover is extremely high (with professionals in the industry lasting less than 5 years on average) and you'll rarely design the games you want.

    That said, for now, you don't have to worry about it. Keep making games!

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Bachelor’s degree in Computer Engineering OR technical diploma in Computer Engineering Technology OR Graphic Design/Media Production and Design OR Game Art and Animation

    Any country restrictions? I mean not only for applicants themselves but for the bachelor's degree as well...

    Must have strong artistic sense. Please provide an art portfolio

    Art is usually contracted separately (as in, done by someone else). It's going to be hard to find a single person who can design, program and draw at the same time.

    Since this is a contract position, please submit your hourly rate expectations (private messages please).

    Could we get more details, an expected range, a budget, timeline or anything else?

    It's very hard to commit to a price if we don't have any idea what the project is about (looks like a platformer?). I understand you don't want to reveal your project here, but details such as expected quantity of work, contract length, team size, stakeholder availability and similar are required before providing a quote.

    In addition, since you expect applicants to have a Bachelor's degree in computer engineering, as well as artistic skills, for hourly work it would come out to around $50/hr. Like I said, you can probably get better rates if you provide more details.

  • It doesn't make sense to "sort" a dictionary, since all keys are named. What you actually want to do is sort the array stored inside the dictionary, but since it's not a primitive, you end up having to copy it out into an array, sort it, and copy it back.

    The problem stems from the fact that you're "hammering in" an array as dictionary keys. This is not your fault, it's just the way construct's webstore works, due to the fact that the dictionary object can only store numbers or strings.

    In my opinion, we need Construct 2 to do two things:

    Start treating arrays (and dictionaries but that's another point) as primitives instead of as an object.

    Have a proper JSON parser where we can access deeply nested structures using javascript notation.

  • Here's an example I put together. All in 13 events, so you could work this into a game even with the free edition. Also I was wrong, you apparently do need the last platform ID (unless you want more maths).

    Press "enter" to change the angle (but wait a few seconds before you do that)

    Scrolling is a bit bonkers but you should be able to fix it with some maths or creativity.

    Sorry for the scary math. It's probably possible to get rid of it all and replace it with something easy.

Fimbul's avatar

Fimbul

Member since 12 Aug, 2011

None one is following Fimbul yet!

Trophy Case

  • 13-Year Club
  • Email Verified

Progress

14/44
How to earn trophies