citron2010's Forum Posts

  • Hi,

    I’m preparing to get my game onto Steam (its page is complete and has been approved) and I’d like to try getting it onto Steam Deck too. I’ve just added full UI navigation using a gamepad, but have a few assumptions and questions. In return, I promise to document the whole process here!

    1. I’m going to use the official SteamWorks addon that uses WebView2 and I understand that this should just work on Linux/Steam Deck via Proton.
    2. Ideally, I’d like Windows/Linux users to have the game launched in a window so they can use the standard minimise/maximise/close window controls, then add full screen/exit full screen buttons to my game’s UI but not sure how Steam Deck would handle this?
    3. Is there any way to detect that the game’s running on a Steam Deck? If so, I would automatically enter full screen when the game stats.
    4. Next question – if a game’s running in full screen on a Steam Deck, how do users expect to quit the game? Is there some native function of the Steam Deck that does this without having to add anything to the game? Or should I add a button that calls Browser -> Close? (Of course, Windows users wouldn’t need this as they could use the window’s X button.
    5. Regarding pause – I understand that the Steam Deck’s “Steam” button will pause the game and display the Steam menu, but I want my own pause menu (where users can quit the current level and change settings). Currently this is mapped to the ESC on keyboards – am I right in thinking that by default, the Menu/Start button on the Steam Deck is mapped to ESC (in which case I wouldn’t need to explicitly map a controller button to my pause function)?
    6. Finally, does anyone know whether tapping one of the Steam Decks trackpads can be detected by Construct’s Gamepad or Touch plugins? Reason I ask is that I’ve found touchpads more sensitive than buttons.

    Tagged:

  • Dialog engine with workflows? 30 minutes of effort. Questing system? 1 hour. Support for random battle encounters with enemy lookup tables and basic logic? 4 hours.

    I think the fact that you managed to work this quickly (as an experienced developer) just goes to show that C3 is really just another language - albeit very high level, visual and oriented to making games.

    I have a little programming experience so looked at Unity/Godot etc. but their scripting paradigms just didn't click with me.

    C3 on the other hand is like a toy box full of fun and easy to use things - and like the best toys (e.g. Lego), your only limit is your imagination.

    It reminds me of when my father tried to get me into Mecano when I was a kid rather than Lego. Sure, if you build something from Mecano, it'll be much closer to the real thing than if you build from Lego - but its much harder (especially for a kid) and takes much longer to screw tiny Mecano bolts together rather than just snapping bits of Lego together.

    I think most 2D games I've seen could comfortably have been built in C3 too.

  • I'm trying to make my touch UI support game controllers.

    Currently each UI button is actioned using "on tap" which works for touch and mouse.

    I've created an array that maps each button to the next button the cursor should move to if the gamepad d-pad is moved left/up/right/down.

    When the cursor moves, it sets a global variable ("UIButton") to the name of the button it's moved to.

    So what I want is:

    on tap "buttonX" or (on gamepad Button A pressed & UIButton = "buttonX") -> do something

    But I can't figure out how to do it in event blocks. Feels like it should be obvious and I'm dumb.

    Don't think I can use "evaluate expression" with triggers.

    So the only other way I can think is to create functions for all the "do somethings" and call them in separate triggers (one for touch/mouse & one for controller/keyboard).

  • Flashback was, no IS such a great game. I just started playing it on my iPhone since they allowed emulators.

    I can't answer your question but I suspect you're correct that the two behaviors don't play well together.

    I've also thought about trying to replicate the same movement and think I'd have to build it from scratch rather than using any existing movement behaviors.

    I don't think platform behavior would work because in Flashback, movement is quantized whereas platform behavior is continuous.

    And tile movement doesn't deal with jumping/falling. Maybe you could disable tile movement during jumping/falling and move the sprite 'manually'?

    EDIT - just found this:

    spriters-resource.com/fullview/54385

    Also not sure custom movement behavior would help as it also look continuous.

    But I'm just rambling so not sure - I think I'm going to try this myself and would love to see how you get on.

  • Search for "audio analyser" in the example browser

  • Can confirm that on Samsing S24 Ultra & S41, the IAP dialogue didn't force portrait mode.

  • I'll ask some of my testers that use real devices.

  • My game's in landscape and Android's IAP dialogue DOES show in landscape mode and in the correct orientation - it doesn't force the screen to portrait. Note this is using the BlueStacks emulator.

  • Opened a version of my game (created late December last year) in v368.2 and reproduced the issue.

    I guess the next step is to dismantle the game to get a minimum project with the issue reproducible.

  • I built my current project using C3 v368.2 - the stable version before HTML layers were introduced. I had to save as a project folder then edit the version number in project.c3proj so it would open - I know that's unsafe, but it was just for a test.

    I still saw the error (specifically the one with the enlarged sprite - no. 1 in my original post), so I can rule out my theory that it might have been the new HTML layers introduced in r379.

    Next step is to see if I can reproduce the issue using a really old version of my project in the current c3 version.

  • Hi,

    I've noticed an intermittent bug where several graphic issues are present when switching to my game after it's been put into the background using task switching then resuming it after a while.

    Three issues specifically:

    1. One sprite whose top edge is anchored to "Viewport top" on a 0% parallax layer is shown enlarged maybe 10x so covering most of the screen - fortunately it's transparent so I can see and access controls beneath.
    2. Drawing canvas is not being displayed.
    3. A spritefont sprite sheet is showing - stretched vertically.

    Restarting the layout clears the issues, but that means the player restarting their game and losing progress.

    Problem has happened on both an iPad 6th Gen and and iPhone SE 2020 - both running iOS 17.4.1.

    I'm aware of this issue:

    github.com/Scirra/Construct-bugs/issues/7626

    And wondering whether it's related (as both that and my issue fall under the broad "graphical issues when resuming app" category).

    I don't think I'd seen the issue until a few weeks ago, so not sure whether C3 version dependent or not - or it could just be that my testing has been more intensive recently. I did wonder whether it was related to the recent update the HTML layers.

    Unfortunately, it's intermittent, and I'd have to create iOS builds each time to test.

    I will try some older versions of my game and of C3 to see if I can get any more clues.

  • I think it's because that second "Every 1.0 seconds" condition is under a triggered event so will only happen once when the key is pressed. Try replacing "On R pressed" with a "Key is down" condition.

  • I can think of a slightly indirect way to do it - maybe someone can think of a more elegant way? But check out the section titled "Tween actions - value" in the manual:

    construct.net/en/make-games/manuals/construct-3/behavior-reference/tween

    Let's assume you just want to tween the sprite's x position and that its origin is a 0,0 and image point at 10,10

    Essentially what you do is start a "Tween (value)" on an object (doesn't matter what object it's on, but probably easiest to put it on the sprite you want to move) and importantly give it a tag.

    Then use condition "Tween: Is playing" using the same tag.

    Then in the actions for that condition, you can "Set X" of the sprite to:

    sprite.Tween.Value("tag_name") + 10

    (Adding 10 so it appears that the sprite's image point was used rather than its origin).

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Not a direct answer, but alternatively you could load the fonts into the project or use sprite fonts.

  • Any reason you're doing this in C3 and not in someone like Inkscape?