jamespierce

Members
  • Content Count

    161
  • Joined

  • Last visited

2 Followers

About jamespierce

  • Rank
    Advanced Member

Contact Methods

  • Website URL
    http://browsergameshub.com
  • Twitter
    thejamespierce

Profile Information

  • Gender
    Male
  • Interests
    Ordered by priority: Programming, Gym & Running, Learning Chinese, Reading books

Recent Profile Visitors

1,295 profile views
  1. Endless Cave Game Hey guys I started a series where I create a mobile game from scratch with Phaser 3! The game is called Endless Cave and it's best described as an endless runner with some rogue-like elements! And the series is basically a mixture of a vlog / blog / tutorials where I go from zero all the way to porting the game to Android and iOS. The first three episodes are already live on my YouTube Channel and I'm also summarizing them on my Dev Blog in a written format. And this is the Game Link to the most recent version of the game, which I will always update as development progresses. (If you have tried a previous version of the game and are coming back to it now, you might have to clear the cache!) Overview: All Video Episodes on YouTube Overview: All Written Episodes on my Dev Blog Episode 1: Market Research Episode 2: 2D Game Art Episode 3: How to Set Up a Mobile Game with Phaser 3 I'm also posting as many gifs & pictures as I can on my Twitter and my Instagram. I'll keep updating this thread as the game progresses and new episodes are coming out. If you have any suggestions or feedback, please let me know! It is the first time that I'm creating this kind of content so it's all very new to me. Thanks so much for checking it out! 🙏
  2. jamespierce

    Pop-Pop Jingle

    I love the polish in this game! And actually getting 3 stars can be challenging especially if the RNG (next bubble to shoot) is against you. But overall I just have to repeat again how insanely polished this is from the menu to the level intro animations and sound effects, just everything! Very inspiring to see this 😮
  3. jamespierce

    "Vocab RPG" - Online RPG built with Phaser 3

    <reserved for future patch notes>
  4. Game Link: Vocab RPG Vocab RPG is an Online RPG about catching Monsters & collecting Vocabulary Cards! Features: Open world with unique zones to explore MMO: Online multiplayer Monsters: Hunt, battle, and catch many unique monsters! Crafting: Collect different resources and use them to craft items & consumables Language Learning: Unlock vocabulary cards! Currently 4 vocabulary languages to choose from: Chinese, German, Japanese, Russian Overview: In Vocab RPG, you have all the elements of a monster-focused RPG: Hunting, fighting, catching, levelling, crafting, etc. But for every action that you take in the game, it will show you a vocabulary card! As a consequence, the more words you know, the stronger you also become in the game. The game starts very slowly with only 3 words unlocked. But as you progress in the game, you can unlock more cards and expand your vocabulary - at your own pace. Difficulties: To take into account different learning preferences, you can pick your challenge by choosing from 4 difficulty settings: - Normal: Wrong answers reduce your monster's attack or consumables (such as potions) by 25%. - Casual: Even if you answer wrong, you will attack and operate at 100% effectiveness. In other words, you see the cards but there is no consequence for answering wrong. - Hardcore: When you answer wrong, your monster's attack will fail! So answering wrong means 0 damage dealt. - Off: I also want people to enjoy this game, even when they are not really in the mood for studying vocabulary cards right now.... select 'Off' and you will not see any vocabulary cards in the game! Platform: Thanks to the power of Phaser 3, you can play this game on any device in your browser. No installation required. The game is mobile optimized, so whether you play on your laptop or phone / tablet, is only a matter of your preference. Game Link: If you are interested in trying the game, you can jump right into it: Vocab RPG Feedback: Any feedback is much appreciated! We also have a Discord server for the game where players are exchanging ideas, reporting bugs, and giving feedback: Vocab RPG Discord Credits: The game uses a lot of CC0 assets (like the monster sprites in this post) from various artists. I keep a list of all used assets here (which is also accessible from directly inside the game): Credits List
  5. jamespierce

    Poll: What do you use for UI?

    99.9% I build all UI inside the canvas using Phaser Objects (images, sprites, graphics, tweens, etc.).
  6. jamespierce

    Pixel Memory - Classic Puzzle Game

    For Halloween, I added two new unlockable cards to the game! Any cardpack that you receive from levelling up can now contain these two new cards. Game Link: Pixel Memory
  7. jamespierce

    Container With Sprite + Text - Centering Text

    The graphics object also has origin at 0,0. Moreover, graphics objects cannot have a different origin than 0,0. Sorry for sidetracking a bit but this is related info about graphics objects, especially if you are dealing with origins: When you add a graphics object to your scene, make sure you set the x,y coordinates. Else it will default to 0,0 and you might be confused why a graphics object in the center of your screen has its coords set to 0,0. Link to doc: https://photonstorm.github.io/phaser3-docs/global.html#GraphicsOptions If you want to detect input on a graphics object, you have to use a geometry object to manually set the input area. Link to doc: https://photonstorm.github.io/phaser3-docs/Phaser.GameObjects.Graphics.html#setInteractive__anchor You're right, the doc says it defaults to 0.5. I guess this needs to be updated in the doc. I think there is a place to submit change requests to the doc somewhere but I couldn't find it myself right now.
  8. jamespierce

    Tutorial requests

    Check out the tutorial series by the man who helped develop the tilemap system in Phaser 3, it's very good. In the second part of the series he is using a platformer as an example: Part 2 https://itnext.io/modular-game-worlds-in-phaser-3-tilemaps-2-dynamic-platformer-3d68e73d494a I still think you should go through the whole series, though!
  9. jamespierce

    How to re-use animations for different sprite sheets?

    @blackhawx Okay I just kept typing and my post was getting a bit out of hand. So I decided to just write it out as a post on my dev blog here: How to Re-Use Phaser 3 Animations for Different Sprite Sheets I hope this was clear and useful! Feel free to "like" the post if it was good or leave feedback how I can improve it. Thanks again for helping me understand this process!
  10. jamespierce

    How to re-use animations for different sprite sheets?

    Yes of course! I will post here the code snippet as soon as I've implemented it. I've just flown to Canada last night for a family visit for 2 weeks. So I don't know right now when I'll sit down and code again. But when it's done I'll post it here.
  11. jamespierce

    How to re-use animations for different sprite sheets?

    This is even cleaner! No need for helper functions. I still don't use the setData() methods enough in my Phaser 3 projects. Thanks!
  12. jamespierce

    How to re-use animations for different sprite sheets?

    Okay so that makes my "workaround" solution above terribly bad because animations are created when the object (npc with a sprite) is created! I'll go back to the way I had it before: Simple helper methods where I provide a string to return the animation-key for the corresponding sprite sheet. I apologize for my naivety in this topic but I'm happy I asked and got all this new information now. I know now the desired approach was unnecessarily "organized" at the cost of being terribly ineffective. Maybe I can extend the Animations object with my helper methods to provide a sprite key and animations key, and it will then play the right animation for that sprite sheet, i.e. 'spr1-walk', 'sp2-walk' etc. And then I'll load all animations from a JSON file! From everything I've understood now, I think this would be a proper approach to Phaser 3.
  13. jamespierce

    How to re-use animations for different sprite sheets?

    I have that too xD Sometimes I get lost just optimizing my code or "beautify-ing" my code, when all I wanted to do initially was fix a bug... I know very little about the works behind animation, nor what exactly needs a lot of processing power. I should really start educating myself on such topics. Thanks for pointing this out, at least now I have some good keywords that I can google and research.
  14. jamespierce

    How to re-use animations for different sprite sheets?

    I knew there was something to it that was beyond my knowledge! Thank you so much for giving this background information, I really appreciate it. I had no clue that it is actually advantageous to the performance. Since I will be adding tons of sprite sheets, I will really benefit from the way Phaser 3 does it. I will stick with it. Thanks again!
  15. jamespierce

    Tutorial requests

    In that case you can use the standard keyboard inputs but don't allow diagonal movement. Then on top of it, you only allow changing directions when it perfectly matches the grid, such as (same concept for y-coordinates): function allowChangeDirection() { if(player.x % tile_size === 0) { return true; } else { return false; } } Now the problem with this will be that if your tile_size is not divisible for the player's speed, then the check will never return true. To fix this, you can increase the range that you check by the speed / velocity value: function allowChangeDirection() { if(player.x % tile_size <= player.speed) { return true; } else { return false; } } Then when you finally change direction on the grid, round the player's coordinates to fit perfectly onto the grid. Else over time your player might end up a bit off the grid. if(allowChangeDirection()) { player.setPos( Math.round(player.x / tile_size), Math.round(player.y / tile_size) ); } This is just a general approach but you can play around with it and tweak the values for the checks & player coords which feel best for your particular game.