• Content Count

  • Joined

  • Last visited

About Antriel

Contact Methods

  • Website URL
  • Twitter

Profile Information

  • Gender
  • Location

Recent Profile Visitors

2,337 profile views
  1. I just googled and used the first thing I found and it worked. Yes, if either is missing, then the package is invalid. The same as: if(!(file.contains("index.html") && file.contains("manifest.json"))) throw "Bad zip file";
  2. Antriel

    Create Bitmap Font from Atlas\game objects\bitmaptext\static\bitmaptext-atlas.js
  3. It's badly worded. They mean to convey that if(!file.contains("index.html") || !file.contains("manifest.json")) throw "Bad zip file"; That is: you are missing manifest.json. No idea why they started requiring it though. Doesn't have too much sense for html5 games, although I guess certain parts do.
  4. Antriel

    Monetising HTML5 games

    Then they should change the wording in the terms. They state conditions to be paid and those conditions need to stay valid to keep getting paid. As they are written now, if I upload to another portal afterwards, I am no longer entitled for compensation. Whatever the FAQ says, the terms are deciding. True, but they do reserve 30 days to do so and only if the game wasn't exclusive with them. Also only if the game wasn't provided exclusively, which isn't specifically defined as to what it means. One could argue that if it was uploaded to their portal first, it was provided exclusively. So they have means to not take down the game. Although this wouldn't really fly, as they are only given revocable rights to publish the game.
  5. Antriel

    Monetising HTML5 games

    Article V of their terms:
  6. Antriel

    Monetising HTML5 games

    The catch is that to pay you they require exclusivity. If you read the terms, to be paid revenue share your game can't be published on other web portals. Which is quite a catch if you ask me.
  7. Antriel

    In my multiplayer game, I simply use both RAF and setTimeout to handle logic timestep (which is entirely decoupled from rendering). So each start of Phaser's update I check whether I can step (and update logic + send inputs), and then render. And I also have setTimeout loop that does the same, except it doesn't render.
  8. Antriel

    3 Minute Adventure

    Visual editor might come later, I'm finding things out as I go. Not sure it would be more clear with big stories though, maybe just easier to build and see how it connects, but the details itself would probably be of same difficulty.
  9. Antriel

    3 Minute Adventure

    Never heard of ink language, looking at it, it does seem to have very similar concepts. I kind of went into it without doing any research (on purpose). Right now it's only a simple parser and compiler. The syntax looks like this: You are sitting in a local pub, thinking about what you just heard. "I repeat," says scared-looking peasant, "will you save our princess?" [choice] Yes => [goto yes] I will think about it => "Please sir knight! We are desperate!" [id choice] [choice] Yes => [goto yes] No => [goto no] No => [goto no] [id no] [if please=0] "Please!" [set please 1] [goto choice] [if please=1] "Pleasee!" [set please 2] [goto choice] [if please=2] "Pleaseee!" [goto choice] [id yes] "That's wonderful! Praise you good knight. The dragon isn't even that big..." It's supposed to be text first, with not too big emphasis on whitespace, although it does use tabs/offset to handle choice options and substories. Plan is to gradually improve this, right now I'm adding syntax highlighting, then error checking, etc. This gets compiled down to: [..., {"next":5,"type":0,"text":"You are sitting in a local pub, thinking about what you just heard."}, {"next":6,"type":0,"text":"\"I repeat,\" says scared-looking peasant, \"will you save our princess?\""}, {"type":1,"choices":[{"choice":"Yes","node":17}, {"choice":"I will think about it","node":7}, {"choice":"No","node":9}]}, {"next":8,"type":0,"text":"\"Please sir knight! We are desperate!\""}, {"type":1,"choices":[{"choice":"Yes","node":17}, {"choice":"No","node":9}]}, {"type":2,"condition":{"op":1,"left":{"op":5,"left":"please"},"right":{"op":0,"left":0}},"yes":10,"no":12}, {"next":11,"type":0,"text":"\"Please!\""}, {"next":8,"type":3,"id":"please","val":{"op":0,"left":1}}, {"type":2,"condition":{"op":1,"left":{"op":5,"left":"please"},"right":{"op":0,"left":1}},"yes":13,"no":15}, {"next":14,"type":0,"text":"\"Pleasee!\""}, {"next":8,"type":3,"id":"please","val":{"op":0,"left":2}}, {"type":2,"condition":{"op":1,"left":{"op":5,"left":"please"},"right":{"op":0,"left":2}},"yes":16,"no":17}, {"next":8,"type":0,"text":"\"Pleaseee!\""}, {"next":18,"type":0,"text":"\"That's wonderful! Praise you good knight. The dragon isn't even that big...\""}, ...]
  10. Antriel

    3 Minute Adventure

    As soon as something is typed `Dynamic`, I can do whatever and Haxe won't complain (but won't autocomplete nor do any error checks). So if I got my `var scene:Dynamic`, I can do `scene.add.image(...)` without issues. For creating objects in the first place, I either make dummy empty extern class that `implements Dynamic` (so I can make an instance and it acts as if it was Dynamic) or I do something like `var game = untyped __js__("new Phaser.Game()")` It's not optimal as I said before, but given how little I actually access Phaser's API it's doable. If there would be a major interest in Haxe externs for Phaser 3, I could look into porting the typescript definitions code I wrote into making Haxe externs too. But I can't justify it just for me and I can't afford such work financially right now anyway. There's but I'm not sure how good they are, and they don't have comments.
  11. Antriel

    3 Minute Adventure

    Thanks It was meant to be a very short game to test my engine, so I tried to make it a bit silly. Glad I hit the target.
  12. Antriel

    3 Minute Adventure

    Hah Just to be safe: it's a reference to Stanley's Parable. Actually none. It's a bit cumbersome with all the untyped code, but so far it hasn't slowed me down more than making good externs would. I always planned on doing them, but didn't get around it so far. The code I wrote for the TS definitions would be a good entry point though.
  13. Antriel

    3 Minute Adventure

    A short interactive story. Get equipment, go fight a dragon, talk with a princess. Epic adventure. Created using Phaser 3 and Haxe, with custom (and for now very simple) "narration engine story" language for writing the actual story in and compiling down to data the game uses to handle the interactions. Play the game here: You can put the game on your portal using this url. The game is also available for licensing.
  14. Antriel

    Spot The Spot

    A small skill based game with infinite upgrades. Made in a week using Haxe and Phaser 3. Play the game here: You can put the game on your portal using this url. The game is also available for licensing.
  15. Antriel

    Performance problem with sortByDepth

    That sounds like a memory leak of some kind. I assume you are removing a lot of game objects and adding new ones. Can you check if `this.children.list.length` keeps increasing or not? If yes, how are you destroying children? Try to make a small reproducible demo if possible.