• Content Count

  • Joined

  • Last visited

  • Days Won


b10b last won the day on January 22

b10b had the most liked content!


About b10b

  • Rank
    Advanced Member

Contact Methods

  • Twitter

Recent Profile Visitors

4,653 profile views
  1. There are many options. Easiest of which is the generic Leaderboard functions ("setScoreAsync") - by posting scores the platform will often let other Connected Players know. For custom messages the "updateAsync" method offers decent control. If the Player is in a Context (group play) this works really well, but I'm unsure if this works at all if the Player is Solo? Then there is the old school "shareAsync" method. However, since the recent Facebook beatdown, this method is crippled - for example it's no longer possible to pre-populate the message!?! You may still be able to attach a custom image generated from the game as a sort of workaround - but it will require the Player to type a message and make the post. Lastly you have Bots, subscribing, custom backend, proactive pushes, etc ... but that's probably overkill and can't reach outside of your subscribed Players.
  2. b10b

    2D Map Representation as 1D array

    @mattstyles thanks for explaining, is this because of stateless / functional reactive? Interesting, to me it feels almost like turning the same problem inside out ... with data needing to become another function (to abstract away from array directly)?
  3. b10b

    2D Map Representation as 1D array

    Yeh, I think the disgust is warranted Sweep it under the carpet - I prefer Object Oriented for map data structures. Adding the interface and hiding the 2D array adds value soon enough. A simple example getCell(x,y) avoids that common gotcha of cells[y][x]. Another example might be something like getCellAbove(x,y) where all the range checking can be neatly concealed. More elaborate examples might return a Cell object with such relationships prebaked, or allow partitioning or redimensioning of the data set. And that's the upside, the interface can evolve with the requirements. Whether the underlying data structure is a 2D array, vs a 1D array, vs a string, vs another structure can be changed or upgraded later based on performance tests (these could even be determined per device). All this being said I prefer to save myself minutes of coding rather than a ms at runtime, so I favour patterns over performance for the majority of tasks - I understand that's not everyone's preference or appropriate for certain projects.
  4. b10b

    Scope of HTML5

    We don't know your story, but my thoughts are that - generally - internships are a great opportunity ... IF: 1) the experience is aligned with the individual's long term goals, 2) the lack of income is sustainable short-term and the upside warranted longer-term. So, survival aside, if your goals are to be a hero in the games industry ANY experience in the games industry is better than none. It doesn't matter if you'll end up making the must-buy games for PS6 built on Unreal Engine 5, many of the the principles of the industry are just as true for small web games. I might even be so bold as to say that it's a good thing to be in a casual generalist team for as long as you can - because it will allow you to round out and explore more skills than if you joined a AAA team (where roles can easily become microscopically specialist). But I'm a bit biased on that, so explore more opinions.
  5. b10b

    Puzzle game for LinkedIn

    I understand the purpose of the post is to promote a use case for Codeguppy - which looks like a very interesting tool, well done. I think serious games have significant merit - but only if done well. Half the battle for gamification is influencing the initial engagement with a sense of trust and willingness from the Player. After that the fun can start with conventional game mechanics coming into play. Therefore I doubt this example would be effective for its goal (professional influence) because it doesn't resolve an immediate problem faced by the typical Linkedin visitor? Simply putting a game between a User and a claimed Reward does not automatically generate value for either party (it could be perceived as a loss of time or other value). Instead serious games should avoid cookie-cutter approaches. We can try gamifying a unique information-exchange, increasing the value of that network as a result of the interplays - e.g. a quiz about the business issues faced by a User, and revealing what books were recommended by other players who faced such issues in the past. Present these outcomes as a unique reading list per User which can be easily shared via Linkedin posts for others to see (and understand why it was relevant to their associate). Replace "quiz" with more compelling game mechanics once the core value exchange is proven, and replace "reading list" with something more instant when the internal quality of data reaches a tipping point.
  6. b10b


    @Noel are you referring to a an IP lookup?
  7. b10b


    @fredriksthlm Anything wrong with using a GeoIP third party API / service for such data? If using a backend for your multiplayer it could be resolved (invisibly) server-side.
  8. Also, from a pragmatic view any good rendering library can easily be bolted on to, so beyond the load time there is little disadvantage in adopting one? For example with CreateJS any DisplayObject can be "cached", which then allows direct access to "cacheCanvas", which can then be directly manipulated (as if it were any other canvas). An advantage of such a mix-and-match strategy is you decide when to keep inside the library and when to venture beyond ... e.g. in many of my games I utilise library capabilities for basic scene-graph, UI, text etc but will often create a custom renderer (at canvas or shader level) for elaborate HUD components or performance critical game-world graphics. I try to pick the best library for the project, my preference is CreateJS for non-WebGL lightweight work, and PixiJS for heavier games that can target WebGL or need Spine animation or shaders.
  9. Get the token from the request auth credentials. Then create an appsecret_proof (using your client secret) and include that in the payload too. Simple right
  10. @komali2 it's possible, but perhaps not readily so via the Esoteric pipeline. I don't think it needs to be so complicated as to weld different skeletons together (unless different hats do very different things)? Just swapping the Texture should achieve your original ask. e.g. crudely: animations.skeleton.findSlot($YourSlot).sprites.$YourAttachment.texture = new Texture( ... );
  11. Consider that at runtime pixi-spine is mostly dealing with DisplayObjects / Sprites / Textures. So one option might be to interrogate the scene graph and swap them out as needed (after the Spine Skeleton has been loaded and put together). Such a strategy could mean a fairly simple Spine export (a barebones skeleton with a single placeholder skin) which then has its textures replaced on-demand (from any of the thousands assets that may be available from alternative resources). This does assume one "hat" works in the same way as another. Performance optimisations and efficient texture packing would still need some thought - coupling with some server-side logic might be warranted.
  12. b10b

    Mini Switcher

    I enjoyed it. However I didn't find the levels became consistently harder? I got hung up on one earlier level (took a couple of dozen attempts?) then free sailing to the end without another defeat. Perhaps some analytics can reveal if this is a common scenario?
  13. b10b

    PIXI loading audio files in iOs Safari

    @Beawer26 might be worth considering using pixi-sound: https://github.com/pixijs/pixi-sound
  14. b10b

    Cross-Code coming to Switch Discussion

    I'm not sure how CrossCode is being ported but there is this runtime (focused on Construct and Fusion to consoles including Switch): http://mp2.dk/chowdren/
  15. b10b

    SICARIO KID - quick-shot duel

    Yeh, I'd agree - like @mattstyles said it went against expectation. But it made more sense over time when the rewards were higher and hoarding paid off (so I didn't mention it). I think permanent is the better choice.