mattstyles

Moderators
  • Content Count

    1,604
  • Joined

  • Last visited

  • Days Won

    19

Everything posted by mattstyles

  1. mattstyles

    My first "real game" : Galactic Safari

    Maybe holding down to go up, rather than furious clicking? Dunno. I realised I didn't leave much positive comment, shame on me as I enjoyed playing it and it was very slick. Loved the art style and I liked the pacing as the game got going.
  2. @grelf I like that diagram, used a very similar one several times in presentations, mostly pinched from Andre Staltz https://cycle.js.org/dialogue.html Great way to illustrate HCI and functional purity by generalising both parts of the system (Computer/Program and Human) as I/O devices.
  3. mattstyles

    My first "real game" : Galactic Safari

    Nice game, well done @ebuzzgames If I had any criticism it would be that the ship isn't particularly responsive, it feels more like a bubble stuck in treacle than a fast responsive fighter ship.
  4. Krunker.io uses ThreeJS, Three is a rendering library, I'm not sure if someone has used to it to build an FPS framework on-top (similar to how Phaser 2 consumes Pixi as a rendering layer but adds lots of other stuff on top)
  5. mattstyles

    SICARIO KID - quick-shot duel

    Terrific game, I found it mega hard! My high score was 2 for a while, but I quite liked that difficulty, without it I think things would be stale and you kind of get into a groove after a while, where I amassed a mighty 11 (!). I spent $500 for a heart upgrade, but didn't realise it only counts for the next run. Not sure if that is a good thing or not but my expectation (from other games) is that an upgrade is usually forever in these sorts of games. Not necessarily saying it _should_ be a forever upgrade, just that it was unexpected. I'm also not sure how you might solve that without more obvious text, which would kind-of break the immersion you've built up, which I really like in games. Of course, it may very well just be me and no-one else is so easily confused!
  6. mattstyles

    How much faster is phaser3?

    This is where benches are really tricky to get correct. For complex graphics I get Phaser 3 nearly twice as fast as Pixi (and Phaser 2 couldn't handle 10k at all). Pixi 5 was also way way slower than Pixi dev.
  7. I'd take benches with a pinch of salt, I tried this on my newer Macbook and got generally worse FPS than the ones mentioned on the page. For me, both box and p2 had similar fps, 40-50 (box slightly higher), planck was 10-20, matter reported 30-60 (yes, a wide range) but looked about the same as planck, both box and p2 looked super smooth. p2 was the only one that regularly 'glitched' 1-2 boxes into the circles. Perf is only part of the overall pie though, and probably not a huge percentage of it. For anyone starting a new project and needing some physics chops, take a look at the api, sample code, community and run a few of your own tests (as close as possible to what you're building) before jumping to conclusions.
  8. mattstyles

    Effective AABB collision detection

    The absolute easiest is ensuring that your objects never move fast enough to pass through other objects in one update/tick, either by reducing possible speed or increasing size. The alternate is to perform more in-depth collision detection. One way is that you test for an intersection of two lines, try searching for various algorithms that would let you do that (easiest with two lines, but possible to test intersections between a line of arbitrary length and different primitive—or complex—shapes). One line depicts the movement in the next tick, the other lines relate to the size and shape of the objects you want to test against. This obviously isn't AABB testing.
  9. mattstyles

    Any direct gamers forum you can recommend me?

    Reddit is pretty popular for finding communities and audiences r/roguelikedev for example
  10. mattstyles

    Fallgate – A tiny 2D adventure game

    Nice really smooth presentation, great job. I didn't play long enough to experience any perf issues. Personally, I hated the control style 😂I seem to be the only one! I found it really weird that mouse controls look/aim but WASD is look independent. Maybe one for an eventual settings screen to support W meaning 'always move in direction of facing', S, backward, A/D strafe. It's definitely connected to the mouse look thing (even though its top-down and not 1st person) for me, other games like this without mouse look and I don't have any odd feeling with WADS meaning North/South/West/East rather than Forward/Back/Left/Right. Something else, and this would depend on your target market most I guess, I didn't like the tutorial style, I think you could have expressed the core concept with the exact same level-style reveal, but just progress a story, rather than a series of instructionals. It's like you're saying too much. The brambles, for example, they look spiky, people will probably guess they shouldn't touch them, but, let the player explore, let the player touch them, but give them a way to recover health afterwards, in subsequent levels you expect the player to have learnt and don't give them the health recovery to increase challenge later. Reward them for exploring rather than missing this opportunity and just telling them 'dont touch this'. Nintendo are masters of this and they've made some pretty good games in their time.
  11. mattstyles

    Educational/Instructional Games Developers

    We don't differentiate by game type, although there is a Coding and Game Design sub-forum that also has subs for 2d, 3d and audio specific questions. Most games have very similar questions, so the Coding & Game Design forum would be a good place for any design/implementation questions when you aren't using one of the specific framework forums (like Phaser, Babylon etc). I've made quiz-style things a couple of times, I'm sure a few others here will have also, its very similar to conversation-trees in, for example, an RPG game.
  12. mattstyles

    Does PIXI work with Vue.js ?

    Pixi is open source, if you see a better way to enable what you need, I'm sure they would love a pull request!
  13. mattstyles

    When to move on

    I used to be in this camp, now I am not. People tend to learn differently, the only universal being that we all (yes, all of us) learn better by doing than by any other means. Using a framework can actually make the 'do' easier i.e. by starting with a framework you might find you actually build something that is playable or has greater output, which will encourage you. I think it depends how much you value output vs theory. You'll need both eventually, but most people tend to swing one way or another at least a little. Do what makes sense to you. The important thing is the 'doing', which is what you're doing. Personally, I like to reinvent the wheel, at least at first, then use what is out there. So, for example, that could be creating a rendering loop using raw canvas methods, then, once that is learnt, use something like Pixi to handle that part. This sounds like maybe it could be you also. Just don't be afraid to jump around, so long as you're coding, doing stuff and making stuff, your learning will soar and soar. Once you have the basics, you'll probably find that looking at the code of others is a great way to learn (before you have the basics it is bewildering, sometimes even when your knowledge is high it is bewildering!). Many frameworks (like Babylon or Phaser) are open-source. Poke through their code (even if you're not using them) and you'll likely learn a great deal that way as well.
  14. No, this defines a key aspect of TCP. UDP doesn't have this restriction, and thus can not ensure message order either, but you can't use it on the web.
  15. mattstyles

    [WIP] Drift Team

    Ha ha, that is awesome @Slicks, great work on finding and fixing so quick. 10/10 will race again! (just as well you found it, I couldn't remember at all what I put in as a name!)
  16. Subscription lets you package more often for Android. There may be some other benefits, sounds like the author has tried really hard to keep it as free as possible. http://wiki.compilgames.net/doku.php/gdevelop5/interface/profile#get_a_subscription http://wiki.compilgames.net/doku.php/gdevelop5/publishing/android_and_ios We've been through this in another thread. There are many many Phaser resources, most are free, some are paid books/courses etc. Phaser vs GDevelop isn't even a like for like. They approach the issue of creating games in very very different ways, which will appeal to different people.
  17. mattstyles

    [Help] creating a login session

    Hi @maximlus, welcome to the forums Logins need two things: * A way to track logged-in status * A way to set logged-in status You can track logged-in status on either the client or on the server, but you almost always want to track _something_ on the client. The complication comes from identifying _who_ that client is, and that you can not trust clients. A common flow for a single-page application (your game probably is this) would be something like: * Hit your webpage holding your game * Navigate to log-in screen * Enter log in details (e.g. id/email, password) * Send those to your server. Check the details, if correct, generate a token, store it, send it to client. * Client stores this token (local storage is fine) and uses it to make subsequent requests or to actually enter the game. * Next visit, when client boots up (after hitting the url), check local storage for a token, maybe send it to your server to check it is still valid, become logged in. This flow means you have to store 3 things: * id/email and password details (server) * valid tokens (server) * logged-in status (client) Valid token status dictates logged-in status i.e. you should probably check the token is valid before assuming that it is. Tokens normally have two things: * An expiry * Are revocable An expiry means they will expire, you don't necessarily need to store this on the client, i.e. when the expiry date is hit then delete from server storage, when a client tries to use it, that operation will fail and you'll direct the user to a place where they can enter their details to generate a new one. This system also means that if you think anything is compromised (or problematic) then you can revoke a token. You could go a step further and associate a token with a user explicitly which gives you more control if you want to boot out a user, i.e. you revoke their token so they stop immediately, and you stop them from being able to generate a new one. It is normal to do this link between tokens are users, check out JWTs. If your game requires accessing authenticated endpoints (getting levels, scores, anything really) then using a token to do the auth stuff is quite nice i.e. your services _could_ inspect the token and respond appropriately for that user (or user type) i.e. to get the _next_ level, you wouldn't have to ask for it from the client (remember, don't trust clients), you could hold current level on the server and your endpoint could inspect the token, inspect the current level (and completion status maybe) and return the next level. There are lots of services out there that can handle these flows (and more complicated ones, such as 2FA) for you. It's worth looking up how they work and if they would work for you. Unless you want to code this all up and have to deal with holding emails or other personally identifying information (or even user tracking).
  18. mattstyles

    [WIP] Drift Team

    That was great, I really enjoyed this game. I did, however, have a few places where I seemed to crash but I wasn't anywhere near an obstacle or car. The first practise one (chase?) had a few places where I'd crash for no obvious reason.
  19. mattstyles

    New Game for Publish - Train Simulator 2019

    Nice game. Had a couple of minor broken elements, and you can see from that screenshot that nothing is retina so it looks way worse than it should. Also, not sure what the train light does but maybe its in the wrong place: I'm not sure if I was mucking it up but with full acceleration and no brake I was still only crawling along. Being able to get up more speed would have been good. Some of the turns (or maybe level crossings) required pretty much full acceleration to get anywhere, anything less than full and the train would stop. Keyboard controls to manage acceleration and brake would have been good. Also camera free look would be a very worthwhile addition. Apart from that, very well done, felt very smooth and there was plenty to make the terrain feel smooth. A good start. Some more challenge and excitement would be good.
  20. mattstyles

    Vue + Pixi v4 events do not work

    When you think a click isn't working, right click and inspect element, I think there are some scenarios where picking doesn't work correctly, but, mostly it highlights what is being clicked.
  21. mattstyles

    Y8 Destroys Your Games (and websites)

    Not called for in the slightest. I understand this thread is quite intense and tempers are running high, but we're right on the line here. It'll remain open for now, but please keep the discussion on track about the issues, not insulting anyone.
  22. mattstyles

    Will Phaser 4 be written in Flutter?

    Phaser is tied to JS, that is first class in browsers and will be for a while. WASM being de facto is far from a certainty, and a long way off in the best case for it (it may see more initial penetration in tooling than applications). Tying your project to a tech like Flutter (or even Dart) is ok, but can also potentially be a killer for your project. TS isn't immune from this either (see CoffeeScript) but its far less invasive. If TS died tomorrow (not that it would, barring some crazy licensing thing) deleting the TS bits is trivial and can be handled by a codemod and you haven't tanked your project. Not so for writing in a completely separate language. Not that I don't think a Dart/Flutter version is a bad idea per se, but, for me, it would be a port (or a totally separate project that follows the same/or similar conventions) with Phaser remaining as a JS (TS) project to ensure longevity of the project and remove barriers to entry.
  23. mattstyles

    How do you time a pointerdown event?

    Nice, very nice work Phaser! That is a beautiful.
  24. mattstyles

    Vue + Pixi v4 events do not work

    https://caniuse.com/#search=pointerdown Which browser are you using? Its not supported everywhere (although Pixi might shim it I guess). I suspect Ivan's guess is correct and it isnt a browser issue.
  25. mattstyles

    Implementing Promo Codes for In-app purchases

    Multi-use codes are the sort of thing you used to find in newspapers where one code can be used by multiple people. I suspect sites like https://www.vouchercodes.co.uk/ work the same, although if they work with anonymous users they might push out individual codes, but I doubt it, not for all their codes anyway. I work for an ecommerce company and we push codes out to our consumers, I don't think we do anymore, but we used to do a mailshot and even though we knew who they going to, they're all the same code. There may have been other use-cases for multi-use codes. It gets tricky because you don't want the same code applied multiple times to the same transaction, which is usually easy, but, you may want it once per user (most don't, you can reuse the same code if you transact multiple times), its only tricky because it has to be tied to a user. Most checkouts require an email/id, so that can be used to tie up the code to the user.