mtmckenna

Members
  • Content Count

    25
  • Joined

  • Last visited

About mtmckenna

  • Rank
    Member

Contact Methods

  • Website URL
    https://www.spacepizzas.com
  • Twitter
    mattmckenna

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

871 profile views
  1. Hello everyone, Wanted to share a project I've been working on called Superweb.app--the goal for this project is to help HTML 5 game devs deploy offline/native-like JS games to the web using your own domain names. I started building this to host my own games but thought it might be helpful for other people too. If you have time, would you be willing to give Superweb.app a shot and send me any feedback you have? If so, please sign up here and let me know how it goes! Here's a little more detail: Superweb.app hosts your game assets and configures a service worker to cache your assets locally so the game can run offline. Additionally, you can configure a web manifest so people can "install" your games on their home screen and launch them like a native app. When you upload new versions of your games, your users will be notified of the new version and allowed to "refresh" to get the update. Here's a couple screenshots of 1) my installed apps on my iPhone home screen and 2) the update prompt a user sees when a new version is available: I'm using Superweb.app to host my own HTML5 games, and it's been working pretty well so far--all my single-player JS games are playable offline. If you are able to try it out, please let me know if you think this service could be helpful to you or if there's things I could do to make it be helpful. Thank you for the help!!
  2. Thanks for your thoughts! I'll check it out.
  3. I think I found it... Looks like custom pipelines is the thing?
  4. Re: #2, I just started using Phaser 3 with TS 2.8.3. One note is that the TS definitions aren't included in the main repo (the readme has info on that), so you'll have to include those manually. Re: #3, I think you can use the JS packager of your choice, but recently I've been using ParcelJS because it doesn't require any configurations to get TS hooked up.
  5. Hello, again! Anybody know if it's possible to animate TileSprites in Phaser 3? I was thinking of doing something like this, but couldn't find the Phaser 3 equivalent. Thank you!!
  6. Hello! I checked around the Phaser 3 docs, but I couldn't find the new way of using filters/shaders. Does anybody have an idea of where I should look to read up on the Phaser 3 way of handling that? Thank you!
  7. 5-6 seems like the right amount of bots to give a more multiplayer feel to the game if nobody else is online!
  8. Just gave the game a shot--really cool! Was wondering if you had considered adding in bots?
  9. mtmckenna

    small games

    The marble game is especially neat! Nice job!!
  10. Thank you @kpded! Those two issues you pointed out are definitely bugs--thanks for sharing. Also, thanks for your feedback on adding some limitations about the number of units. I've been wondering about how to make this a bit more challenging as well. My current thought is making the time element more important so that the player has to try to build cubes/units while minimizing the amount of time it takes to get production to 100. Not sure if that'll serve the same purpose, but might help?
  11. AI City Planner http://aicity.mtmckenna.com Hello! This game still has a ways to go (e.g. I still have to put in win conditions...), but I wanted to share it here to get any immediate reactions/thoughts people had. The game is called AI City Planner, and the idea is to help your fellow robots reach the singularity by replacing the human buildings with AI cubes. I'm building the game with Three.js, Howler.js, and Rollup.js and (currently, anyway) deploying it to aicity.mtmckenna.com via Surge.sh. If you give the game a try, please let me know what you think! Thank you!
  12. This past weekend, I took a break from working on another game I'm working on called Space Pizzas (here's the forum post) to try out a couple web development technologies I hadn’t previously used: GlimmerJS and TypeScript. If you're not familiar with Glimmer, it is a component library (like React) with quite a bit more tooling (like Ember). And if you're not familiar with TypeScript, it is superset of JavaScript that adds a type system in the hopes of making big applications less fraught with peril than your typical big JavaScript app.Using the above technologies, I made a game called Croissant Hoops in the vein of Qwiboo’s Ball King. The idea of the game is to use the mouse or touch to drag an arc that will place the basketball into the hoop. I also added a slider that changes the games gravity (I mostly did this to try out the property bindings in Glimmer).The game can be played at hoops.spacepizzas.com.Here’s a GIF of Croissant Hoops: In case anyone is interested, I put the source code on GitHub. The game is made directly on an HTML <canvas>. If I were going to go any further with this game, I'd probably use a framework like Phaser, but I think I'll probably leave the game as it is for now.
  13. Hello! This weekend, I added bots to Space Pizzas. Now, whenever there are fewer than the maximum allowable number of human players (4) in the game, a bot will be added in their stead. Here’s a GIF of the bots (the ships in white) in action: In case it’s interesting to anybody, I made the bot “AI” really basic--the bots mostly move randomly, hitting the gas 75% of the time and turning 15% of the time. Here’s the code: import { didThingHappen } from './util'; const CHANCE_OF_CONTINUING_TO_GAS = 0.75; const CHANCE_OF_CONTINUING_TO_TURN = 0.15; const CHANCE_OF_TURNING_LEFT = 0.50; export default class { constructor() { this._currentInput = { gas: 0, turning: 0 }; } get input() { let gas = this.nextGasInput(); let turning = this.nextTurningInput(this._currentInput.turning); this._currentInput = { gas: gas, turning: turning }; return this._currentInput; } nextGasInput() { return didThingHappen(CHANCE_OF_CONTINUING_TO_GAS) ? 1.0 : 0.0; } nextTurningInput(turning) { let direction = this.directionToTurn(turning); turning = didThingHappen(CHANCE_OF_CONTINUING_TO_TURN) ? direction * 1.0 : 0.0; return turning; } directionToTurn(turning) { let sign = Math.sign(turning); if (sign === 0) { sign = didThingHappen(CHANCE_OF_TURNING_LEFT) ? 1.0 : -1.0; } return sign; } }
  14. Darn it! Do you know what year your MacBook is? Looks like this might be a weird Three.js/Chrome bug. On the above bug report, it looks like some people had luck trying... ... a different browser like Safari/Firefox ... making sure a "use hardware acceleration when available" checkbox was checked in the Chrome advanced settings (first screenshot attached) ... disabling "automatic graphics switching" in your "energy saver" settings on OS X (second screenshot attached) Would you mind giving those options a try? I really appreciate it!! Thank you!
  15. Hello @caymanbruce ! Thank you for finding the bug! I saw the error pop up in my bug tracking tool. I deployed a fix, but I'm not entirely sure I solved the problem since I wasn't able to reproduce it on my machine. I think it's a weird race condition in my code (alas...). Would you mind giving it another shot? Thank you!