alastair's Forum Posts

  • It sounds like webview2 was more of an experimental thing, that hasn't really worked out. Particularly there was some issues with Steam too.

    So it's probably better to just stick with Electron and NWJS.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Oh now I remember now why I gave up trying to map all these devices:

    Many of these cheap controllers use the same parts inside, so they share the same Vendor and Device ID...

    Yet they have different button layouts, so how can you make it work?

    Here's one example from a couple of controllers I just checked:

    One of them has button "A" mapped to button index 2, and the other at 6!

    Making it impossible to give these controllers an official mapping. And I have more that do this kind of thing.

    It sucks but I don't know if there's much we can do. Except have custom control support for you game.

    To support these controllers DPAD, which use Axis 9 in Chrome, I could just have code that translates the axis values and make them register as button inputs for my game.

  • Most people use Xbox, PS4/PS5, Switch controllers.

    Those all have perfectly mapped inputs on Chrome, so they're consistent. (Firefox isn't as good here as my bug report above shows.)

    And I'm guessing popular alternatives like 8Bitdo and Logitech would also be mapped, but I haven't got them yet.

    But yeah a lot of the other generic ones like the PS1 or N64 controllers on Amazon, do not have proper input mappings yet.

    For Angvik 2, what I did was manually create an array of button inputs for many cheap no-brand controllers. I would use the gamepad ID string to detect which controller was being used. Basically making my own personal database of controllers. This way I could have heaps of gamepads that are usuable for my game, and they'd work by default.

    Some years ago, I think I may have reported some controllers to chrome and it got mapped, but I can't remember why I stopped doing that.

    Perhaps I should try submitting an issue to Chrome again, and see if they'll add more controllers. This way we can all benefit, having controllers work properly and easily for everyone.

  • I saw a video where they could make very basic games with ChatGPT style prompts.

    And so it'll very likely be possible to make more eleborate games in the years or decades to come, through just simple communication with AI.

  • What method did you use to add your game to Steam Deck?

    Are you uploading to Steam itself, or just testing: where you right click on the game file in desktop mode and select "add to steam"?

    _____________________________________________________

    I haven't had any issues with input when adding non-steam games to the Deck.

    But when I uploaded my Angvik 2 linux depot to Steam I did get that issue you mentioned, but only for a while, then when Valve approved the game did it get fixed somehow (maybe they made controller input default instead of keyboard).

  • I forgot that skymen made a tool that can easily patch NWJS games so they work on laptops! It works well for me.

    You can download it here:

    github.com/ConstructFund/nvPatchUI

  • Do you think "tags" should be treated consistently throughout Construct?

  • I was confused with Timer tags.

    I didn't know if I made a timer "hello world" if it would be treated as two separate tags: "hello" and "world". (The manual doesn't clarify this.)

    Whereas in other parts of Construct, the tags do allow for a sentence like "hello world" to be treated as multiple words. From memory, sprite object tags, and the audio plugin tags, work this way.

    When I went to stop the tag "hello" it did not stop the "hello world" timer.

    (I suppose if it was changed it may be a breaking change for some projects? But's fine, there could just be a legacy setting for old projects.)

  • Would it work if Sheets had setting between Local and Global?

    For example, having the layoutsheet set as Local would mean it's refreshed when you change layout.

  • This is going to be fantastic, looking forward to it!

  • I submitted a bug report to Firefox, since PS5 controller is currently using Axis 9.

    Be interesting to see if it gets fixed:

    bugzilla.mozilla.org/show_bug.cgi

  • PS5 controller with Left Dpad

    Here is an example with the popular PS5 controller.

    I am holding down the Left DPAD button:

    Firefox

    It shows the dpad on Axis 9, which is fairly common:

    Chrome

    The gamepad has been properly mapped, so that it's detected as the standard button 14. Which is the same as they map it with the Xbox controller. This demonstrates why it's important for people to tell the browser devs what buttons their gamepad uses. So that we can have consistency across all gamepads.

  • The first thing we need to know when discussing a gamepad is

    • What browser engine is being used? (Chrome)
    • What gamepad device are you using? (Is it a popular controller?)

    I have many controllers, for example cheap USB N64 controllers, and they have this same exact issue.

    It seems to be a very common problem for some controllers to have the DPAD acting as an axis with strange values.

    Solution 1

    Submit a bug report to the Chrome devs.

    Tell them the gamepad device ID string, and the exact inputs for each button and axis. Perhaps then suggest then which button should be what, like button 16 should be "A".

    This will allow them gamepad to be recognized and mapped properly for everyone officially.

    Solution 2

    Manually identify which controller the player is using. And make adjustments based on the gamepad ID string.

    This is good practice anyway, since you'll want to detect at a minimum wether the player is using Sony, Xbox, or Nintendo brand controller so that you can show the appropriate button prompts. While it use to just be Xbox style controllers that were common on PC, other brands have increasingly become popular in recent years.

    After detecting the type of controller which is connected, you can then make sure that these controllers use different gamepad inputs.

    For instance, when the axis = 0.714, then count that as the left Dpad as being held down.

  • In the mean time, if you need the additional flexibility, you can do the same things as booleans with a number variable.

    For instance, to toggle a variable you just set it to: 1-variable

    You can also have global variables, where No or Off = 0, and Yes or On = 1, that way you can type "off" in the expression editor.

  • You do not have permission to view this post