obiot

Members
  • Content Count

    239
  • Joined

  • Last visited

  • Days Won

    2

Reputation Activity

  1. Like
    obiot got a reaction from PLAYERKILLERS in free-texture-packer   
    here it is :
    commit :
    https://github.com/melonjs/melonJS/commit/5be6a92a4800a4f819d07d1863772413dc0068c4
    build 8.0 :
    https://melonjs-builds.s3.amazonaws.com/index.html?prefix=artifacts/master/2573/build/
  2. Like
    obiot got a reaction from PLAYERKILLERS in free-texture-packer   
    nice ! Will add it ASAP, thanks for the feedback
  3. Like
    obiot got a reaction from PLAYERKILLERS in melonJS 7.1.0   
    Hi Guys,
    Back from holiday, and after having missed the release window before leaving, here is finally the latest 7.1.0 update for melonJS.
    Some nice things in this release, including :
    Last but not least,  staggered hexagonal and isometric Tiled maps support More technical catch-up to align both the Canvas and WebGL renderer, and further improvement to the new me.GLShader class Various fixes and improvements in me.Text, Physic, Pointer, Audio and Sprite objects. See full changelog here, and as always all changes are backward compatible with the previous version, and available here:
    https://github.com/melonjs/melonJS/releases/tag/7.1.0
    or on npm/jsdeliver :
    https://www.jsdelivr.com/package/npm/melonjs
     
    Tell us what you think !
     
    -- the melonJS team
     
  4. Like
    obiot reacted to PLAYERKILLERS in wip: PLAYERKILLERS.EXCHANGE   
  5. Like
    obiot reacted to PLAYERKILLERS in melonJS 6.4.0   
    Thank you!
  6. Thanks
    obiot got a reaction from PLAYERKILLERS in melonJS 6.4.0   
    Hello, shortly after the Chinese new year, here is a new release of melonJS,
    High-Level Changes :
    New documentation format, including a better, more modern, layout and search feature. http://melonjs.github.io/melonJS/docs/index.html  Support for Multiple Texture Packer Textures Added Colour Tint support for Renderable (WebGL mode only for now) Bunch of small fix and improvements on Renderable,  Animations, Isometric rendering, and System renderers See here for a more detailed changelog, there is no API change this time (just some internal re-factoring), so you can safely upgrade without breaking your game
    Have fun guys, and let us know what you think about the new documentation ! (it certainly can be further tweaked/improved)
    --- the melonJS team 
  7. Thanks
    obiot got a reaction from sistemlogikadigital in melonJS 6.4.0   
    Hello, shortly after the Chinese new year, here is a new release of melonJS,
    High-Level Changes :
    New documentation format, including a better, more modern, layout and search feature. http://melonjs.github.io/melonJS/docs/index.html  Support for Multiple Texture Packer Textures Added Colour Tint support for Renderable (WebGL mode only for now) Bunch of small fix and improvements on Renderable,  Animations, Isometric rendering, and System renderers See here for a more detailed changelog, there is no API change this time (just some internal re-factoring), so you can safely upgrade without breaking your game
    Have fun guys, and let us know what you think about the new documentation ! (it certainly can be further tweaked/improved)
    --- the melonJS team 
  8. Like
    obiot got a reaction from AndreasLoew in melonJS 6.4.0   
    Hello, shortly after the Chinese new year, here is a new release of melonJS,
    High-Level Changes :
    New documentation format, including a better, more modern, layout and search feature. http://melonjs.github.io/melonJS/docs/index.html  Support for Multiple Texture Packer Textures Added Colour Tint support for Renderable (WebGL mode only for now) Bunch of small fix and improvements on Renderable,  Animations, Isometric rendering, and System renderers See here for a more detailed changelog, there is no API change this time (just some internal re-factoring), so you can safely upgrade without breaking your game
    Have fun guys, and let us know what you think about the new documentation ! (it certainly can be further tweaked/improved)
    --- the melonJS team 
  9. Thanks
    obiot got a reaction from PLAYERKILLERS in melonJS 6.3.0   
    on this Christmas Eve, I'm happy to be able to "put" a new 6.3.0 version of melonJS under your virtual Game Dev Christmas tree
    The menu today will be the following :
    the WebGL renderer went through some heavy internal changes to align it with the Canvas one in terms of graphic rendering, allowing to stroke and/or fill all shapes properly (see here for a simple example of the final result, demonstrating shape drawing + alpha blending + mask/clipping in WebGL). on top of the API improvement for shape drawing, the WebGL renderer has also been greatly optimised in terms of memory usage or shape drawing operations (faster, better, stronger) renderable now support rendering mask in both Canvas and WebGL mode, by simply adding a me.Shape mask object to any renderable. This feature is pretty cool, works with any object inheriting from me.Renderable (Container, Sprite, etc...) and is the easiest ever to use audio core has been updated, and improve the audio unlock features (since desktop browser now also need that...) other small fixes here and there to make all the elves secretly running your game loop happier See here as well for a more detailed changelog, there is only one API change but in a backward compatible way, so you can safely upgrade without breaking your game
    Wishing everybody a Merry Christmas !
    --- the melonJS team 
  10. Like
    obiot got a reaction from PLAYERKILLERS in me.Renderable.onVisibilityChange()   
    found and fixed a similar case
    https://github.com/melonjs/melonJS/commit/43d91c800fa684ae2fe61e26d183842cc254dfcb
  11. Like
    obiot reacted to PLAYERKILLERS in me.Renderable.onVisibilityChange()   
    It is just another one of those js type issues. Perplexes me as well.
    Thank you for the game library and support.
  12. Like
    obiot got a reaction from PLAYERKILLERS in me.Renderable.onVisibilityChange()   
    so yeah, not sure why to be honest, maybe the combination of bitwise operation and using getter, but indeed sometimes a non Boolean value was passed !
    the fix is quite easy actually, have a look below in case you want to fix it in your current build without/while waiting for the 6.4.0 version (I will release it within a few days):
    https://github.com/melonjs/melonJS/commit/117d083b70d82bcacb35767c24d1c1aaba26579b
    thank you for the feedback !
  13. Like
    obiot got a reaction from sistemlogikadigital in Change image quality   
    melonJS will overwrite whatever you set in the CSS based on the parameter(s) passed to the video init function : http://melonjs.github.io/melonJS/docs/me.video.html#init
    if you need/want to disable the pixelated rendering mode, just the set the antiAlias flag to true (for example) :
    me.video.init(800, 600, {wrapper : "screen", scale : "auto", scaleMethod : "flex-width", antiAlias : true, subPixel : false })  
  14. Like
    obiot reacted to sistemlogikadigital in [Melonjs] Wall to Wall (Simple avoider game)   
    Hello everyone, this is my first Melonjs game. You can Play it here: https://bit.ly/2EXKyAM
    This is game is simple avoider game, you just need to click anywhere to move and avoid anything red. 
    Note : can only be played on browser desktop
    screenshot:




    Thanks for playing! Enjoy!
  15. Thanks
    obiot got a reaction from Wahyu Hidayat in Can't Add Image Layer from PNG   
    there is must be something not right somewhere, because I just tried on my side and the following is perfectly working :
    me.game.world.addChild(new me.ImageLayer(0,0, {image:"cityscene"}), 1); and cityscape is the name of an png image with the src set to "data/img/cityscene.png"
    Are you sure, the path to the image is correct, and that the image is properly returned by your server ? Else, can you share your example, because just like this I have no clue why it's not working. 
  16. Like
    obiot reacted to melongaming in Indie Game Maker Contest 2018   
    Welcome to the 2018 Indie Game Maker Contest!

    We took a year off but we're back to bring you the First Indie Game Maker Contest! This year we're putting the focus on our flagship game making software, Melon JS.
    Your quest if you choose to accept ("but thou must") is to make a GAME using any legal Melon Js in just Three MONTH! Compete for over $10,000 in Cash Prizes!
     PRIZES

    The most important goal of the Melon Gaming Contest is to make that game you've been dreaming of, and what better motivating factor than a large cash prize! This year we're limiting the prizes to the following:
    1st Prize  2nd Prize 3rd Prize Favourite Games The first three prizes will be determined by a team of Judges. More details to follow HERE.
     RULES

    Before you open up the map editor and place that first event, make sure to read through the Contest Rules HERE!
    The Rules page includes all the information you'll need to make sure you meet the contest requirements. Breaking the rules can lead to penalties, or even disqualification, so make sure to view them before getting started. It also includes Prize Conditions and Legal
     COMMUNITY
    Are you looking for a place to share progress on your project, recruit talent for your team, offer up your skills, or simply just get motivated? Then make sure to join the official Melon Gaming Maker forums and get involved! We've even setup a subforum exclusively to discuss the 2018 IGMC!
    CLICK HERE TO JOIN THE FORUMS!
    The purpose of Melon Gaming GameDev Contest is to gather all of the game enthusiasts around the world to develop games by using the MelonJS engine and published to Facebook Messenger instant games platform. we encourage the game enthusiast to pour the ideas and creativity to be the worldwide champions!
  17. Like
    obiot reacted to mattstyles in best way to convert ES6 syntax to ES5 ?   
    Oooo, this thread could get flamey! Ha ha.
    There are numerous advantages to using ES6, a quick google search will give you heaps of reasons, with the only con being that you probably have to up the complexity to transpile back to es5/3, however, all modern browsers support most of ES6 (and newer) syntax so unless you're supporting really old browsers (and you stick solely to ES6) then you probably don't need to transpile.
    The biggest advantages of ES6 (for me, and I've missed loads here):
    * ES6 was pushed through to create more complex applications, as such it has a lot of syntax that is more useful for doing so. Some are sugar methods only, some actually provide newer functionality (particularly those related to primitives and/or the DOM).
    * New built-in extensions which make many tasks way way easier (and easier means less error-prone)
    * Sugar methods mean less dev typing which generally means less mistakes. Some things ES6 makes easy are very very hard in ES5 and they are often things devs rely on regularly so making them easier to work with means writing code is less error-prone and reading code is clearer so you can focus on what your code does, not how it does it.
    The biggest advantages of setting up a transpilation pipeline are (again, I'm missing loads):
    * Access to a module system
    * Access to whatever new syntax you want
    The con of a transpilation system is increased project complexity and you have introduced a build step which takes some time to run, as your project grows this sometimes becomes prohibitive but you do have to have a very large project for this to happen and most modern build tools abstract away incremental builds and caching i.e. they only re-build the changes so incremental builds become smaller and faster.
    Another con is related to the module system. Modules are awesome, very awesome. However, JS doesn't (yet) natively support them in the browser and even when they do there are additional problems i.e. if you use modules heavily (as you probably should) then your list of dependencies could easily be hundreds or even thousands of files, loading each of these one by one in the browser isn't a good idea and won't be in the foreseeable future.
    A module system also implies that you need some way of getting dependencies. This isn't technically necessary but is often helpful. If you are writing games then often you'll be using one (or maybe two) large frameworks to help, unless they work nicely with a dependency management system (i.e. NPM) then I wouldn't worry about getting them as 'real' modules, just include them on the page and use them, then use a module system for your own code if you want to.
    Newer syntax and mobile games
    Any gaming is typical performance sensitive, newer syntax has a few things to consider:
    * Browsers are well optimised for ES5, this isn't always true to ES6 (although ES6 is pretty good now as its fairly old and almost universally adopted in browsers)
    * Given the above, transpiling is often better for performance
    * The code generated by these tools during transpilation is superb, it is written by many many superb developers and has great community support so the hours invested in it must be astronomical i.e. in many cases these tools will write better code than you or I do!
    * It is not a silver bullet -> if perf is a concern for you then you are still largely the sole arbiter of whether you achieve your perf goals.
    How to use newer language features:
    Babel is the defacto tool (although it isn't your only option). Babel requires a bit of setup work and additionally requires you to set up a build process for your code. Again, there is tooling for this. Additionally, there are many project scaffolds out there (and tools for creating them) that can abstract this away.
    The absolute easiest way of getting access to these new language features but supporting older browsers is to use parceljs.
    Parcel abstracts away most of the complicated build stuff and has a superb feature set. It involves a few pre-requisites:
    * You must know how to run simple commands from the command line
    * You must have Node and NPM installed
    Once you have these things (which is generally true of any JS build system you might want to employ) then running builds is a simple one-line command. A watch task is also bundled in, this is another simple one-line command to run and watches the file system, every time you save a change it rebuilds only what has changed and propagates that to the browser. Parcel relies heavily on caching and multi-threading so is very very fast.
    Other tools include webpack (which is very complicated, although newer versions I think make things way way easier for most use-cases) and browserify (which is simpler in scope, but can feel a little low-level for many people).
  18. Like
    obiot reacted to 8Observer8 in Let's create WebGL examples for practice   
    The best way to learn is to practice as much as possible. Share your examples here.
    What browsers WebGL is supported, you can see here:
    WebGL 1.0: https://caniuse.com/#feat=webgl WebGL 2.0: https://caniuse.com/#feat=webgl2 A brief description of what WebGL is, and references to the specifications: https://www.khronos.org/webgl/
    Tutorials:
    WebGL 1.0 Fundamentals WebGL 2.0 Fundamentals This book is about WebGL 1.0: WebGL Programming Guide
    Source Code for the book: examples.zip
    Source Code for the book on JSFiddle:
    Chapter 02. Your First Step with WebGL
    ch02/HelloCanvas: https://jsfiddle.net/8Observer8/2gky294r/
    ch02/HelloPoint1: https://jsfiddle.net/8Observer8/cc72u1u5/
    ch02/HelloPoint2: https://jsfiddle.net/8Observer8/uxw657ud/
    ch02/ClickedPoints: https://jsfiddle.net/8Observer8/xf4fnc0o/
    ch02/ColoredPoints: https://jsfiddle.net/8Observer8/gkkmnpga/
    Chapter 03. Drawing and Transforming Triangles
    ch03/MultiPoint: https://jsfiddle.net/8Observer8/cty1120m/
    ch03/HelloTriangle: https://jsfiddle.net/8Observer8/wk4sksnw/
    ch03/HelloQuad: https://jsfiddle.net/8Observer8/g4ctyk7w/
    ch03/HelloQuad_FAN: https://jsfiddle.net/8Observer8/v119e8o6/
    ch03/HelloTriangle_LINES: https://jsfiddle.net/8Observer8/wwrkaxcf/
    ch03/HelloTriangle_LINE_STRIP: https://jsfiddle.net/8Observer8/3ggjz4rm/
    ch03/HelloTriangle_LINE_LOOP: https://jsfiddle.net/8Observer8/7vcyquro/
    ch03/TranslatedTriangle: https://jsfiddle.net/8Observer8/0dp4xvyt/
    ch03/RotatedTriangle: https://jsfiddle.net/8Observer8/gh9s6szm/
    ch03/RotatedTriangle_Matrix: https://jsfiddle.net/8Observer8/7ze7pgpu/
    ch03/ScaledTriangle_Matrix: https://jsfiddle.net/8Observer8/6xzoe63s/
    Chapter 04. More Transformations and Basic Animation
    ch04/RotatedTriangle_Matrix4: https://jsfiddle.net/8Observer8/t4y7783v/
    ch04/RotatedTranslatedTriangle: https://jsfiddle.net/8Observer8/b5yfxojp/
    ch04/TranslatedRotatedTriangle: https://jsfiddle.net/8Observer8/o8voebc9/
    ch04/RotatingTriangle: https://jsfiddle.net/8Observer8/x9j5vdk7/
    ch04/RotatingTranslatedTriangle: https://jsfiddle.net/8Observer8/rkrv0322/
    ch04/RotatingTriangle_withButtons: https://jsfiddle.net/8Observer8/wzoLmdzd/
    Chapter 05. Using Colors and Texture Images
    ch05/MultiAttributeSize: https://jsfiddle.net/8Observer8/dsfgezbj/
    ch05/MultiAttributeSize_Interleaved: https://jsfiddle.net/8Observer8/bshwnden/
    ch05/MultiAttributeColor: https://jsfiddle.net/8Observer8/bveykLdf/
    ch05/ColoredTriangle: https://jsfiddle.net/8Observer8/mrkpms7d/
    ch05/HelloTriangle_FragCoord: https://jsfiddle.net/8Observer8/ft33yo9s/
    ch05/TexturedQuad: https://jsfiddle.net/8Observer8/o3vakb3h/
    ch05/TexturedQuad_Repeat: https://jsfiddle.net/8Observer8/2s7q68cc/
    ch05/TexturedQuad_Clamp_Mirror: https://jsfiddle.net/8Observer8/mqu0wwma/
    ch05/MultiTexture: https://jsfiddle.net/8Observer8/ztew5u0p/
    Chapter 07. Toward the 3D World
    ch07/LookAtTriangles: https://jsfiddle.net/8Observer8/6ab11xpg/
    ch07/LookAtRotatedTriangles: https://jsfiddle.net/8Observer8/944dd57h/
    ch07/LookAtRotatedTriangles_modelViewMatrix: https://jsfiddle.net/8Observer8/e5t6gj1w/
    ch07/LookAtTrianglesWithKeys: https://jsfiddle.net/8Observer8/38ewegg2/
    ch07/OrthoView: https://jsfiddle.net/8Observer8/zebt4u7t/
    ch07/LookAtTrianglesWithKey_ViewVolume: https://jsfiddle.net/8Observer8/vLcejtm1/
    ch07/OrthoView_halfSize: https://jsfiddle.net/8Observer8/uvcd9h4p/
    ch07/OrthoView_halfWidth: https://jsfiddle.net/8Observer8/vepodfb8/
    ch07/PerspectiveView: https://jsfiddle.net/8Observer8/640pv8qe/
    ch07/PerspectiveView_mvp: https://jsfiddle.net/8Observer8/w8yh4Lmj/
    ch07/PerspectiveView_mvpMatrix: https://jsfiddle.net/8Observer8/hhwnx145/
    ch07/DepthBuffer: https://jsfiddle.net/8Observer8/hyumw026/
    ch07/Zfighting: https://jsfiddle.net/8Observer8/foc0b45t/
    ch07/HelloCube: https://jsfiddle.net/8Observer8/rkpn5tyw/
    ch07/ColoredCube: https://jsfiddle.net/8Observer8/80x8cyom/
    ch07/ColoredCube_singleColor: https://jsfiddle.net/8Observer8/pespackq/
    Chapter 08. Lighting Objects
    ch08/LightedCube: https://jsfiddle.net/8Observer8/4jchxo84/
    ch08/LightedCube_animation: https://jsfiddle.net/8Observer8/ekw3osj7/
    ch08/LightedCube_ambient: https://jsfiddle.net/8Observer8/y6qwnfe1/
    ch08/LightedTranslatedRotatedCube: https://jsfiddle.net/8Observer8/pa88ujjg/
    ch08/PointLightedCube: https://jsfiddle.net/8Observer8/vuq118ue/
    ch08/PointLightedCube_animation: https://jsfiddle.net/8Observer8/5bj39hb8/
    ch08/PointLightedSphere: https://jsfiddle.net/8Observer8/edz9Lz8f/
    ch08/PointLightedSphere_perFragment: https://jsfiddle.net/8Observer8/qzwyow4j/
    ch08/PointLightedCube_perFragment: https://jsfiddle.net/8Observer8/8t1umamf/
    ch08/LightedCube_perFragment: https://jsfiddle.net/8Observer8/471y2t84/
    Chapter 09. Hierarchical Objects
    ch09/JointModel: https://jsfiddle.net/8Observer8/vqse5egz/
    ch09/MultiJointModel: https://jsfiddle.net/8Observer8/sL53wkn3/
    ch09/MultiJointModel_segment: https://jsfiddle.net/8Observer8/ygvk7odv/
    Chapter 10. Advanced Techniques
    ch10/RotateObject: https://jsfiddle.net/8Observer8/1f5hLmff/
    ch10/PickObject: https://jsfiddle.net/8Observer8/owue624n/
    ch10/PickFace: https://jsfiddle.net/8Observer8/edvw6z90/
    ch10/HUD: https://jsfiddle.net/8Observer8/fLxxxs35/
    ch10/3DoverWeb: https://jsfiddle.net/8Observer8/tbowcc16/
    ch10/Fog: https://jsfiddle.net/8Observer8/6yf9L399/
    ch10/Fog_w: https://jsfiddle.net/8Observer8/8aLvthc3/
    ch10/RoundedPoints: https://jsfiddle.net/8Observer8/sjs5kmn4/
    ch10/LookAtBlendedTriangles: https://jsfiddle.net/8Observer8/apoz294n/
    ch10/BlendedCube: https://jsfiddle.net/8Observer8/xsrL2fs5/
    ch10/ProgramObject: https://jsfiddle.net/8Observer8/jnd0j6w0/
    ch10/FramebufferObject: https://jsfiddle.net/8Observer8/vaLq6d66/
    ch10/Shadow: https://jsfiddle.net/8Observer8/jsnfwcae/
    ch10/Shadow_highp: https://jsfiddle.net/8Observer8/brjzr00n/
    ch10/Shadow_highp_sphere: https://jsfiddle.net/8Observer8/4fmyLy5f/
    ch10/OBJViewer: https://jsfiddle.net/8Observer8/pws1x7uv/
    ch10/RotatingTriangle_contextLost: https://jsfiddle.net/8Observer8/vs01s8Lz/
    Gifts
    gifts/Particle: https://jsfiddle.net/8Observer8/Ltzt31vk/
    gifts/Printf: https://jsfiddle.net/8Observer8/qsw7jtec/
    gifts/SpecularCube: https://jsfiddle.net/8Observer8/z4xj9rbv/
    gifts/TextTexture: https://jsfiddle.net/8Observer8/qt7q2kuf/
    gifts/ThreeDUI: https://jsfiddle.net/8Observer8/zdw1f2st/
    gifts/Wave: https://jsfiddle.net/8Observer8/eL9odthz/
    gifts/WorldCoordinateSystem: https://jsfiddle.net/8Observer8/6utj3hnk/
    appendix/CoordinateSystem: https://jsfiddle.net/8Observer8/dzz056jt/
    Appendix
    appendix/CoordinateSystem_viewVolume: https://jsfiddle.net/8Observer8/apxLww1q/
    appendix/LoadShaderFromFiles: https://jsfiddle.net/8Observer8/wdn9ubhj/
  19. Like
    obiot reacted to can2nac in How to draw on particular [TMX] layer?   
    i will. by the way the lack of smooth in motion and camera is due to Loom browser plugin which captures video. I have noticed this also. If it is turned off, game runs much smoother (i'm using 5.1). 
  20. Thanks
    obiot got a reaction from 01271 in TypeError: rect is undefined   
    that's weird indeed...
    Not sure it will help, but the only reference to rect in the quadtree implementation is in the getIndex method (https://github.com/melonjs/melonJS/blob/master/src/physics/quadtree.js#L135), which means that somehow one object not defining `getBounds()` which means not inheriting at least from the me.Renderable class was added to the game world, and therefore to the quadtree. Which is even weirder since all objects from the game world are added through this function that filter those objects without a getBounds function. 
  21. Like
    obiot reacted to 01271 in Minimap for melon v5.1.0   
    If you want to show just basic shapes you could draw the collision layer as rectangles on a background.
    That or make a different tileset but use it only in the minimap where your ground is white and your other tiles are black.
  22. Thanks
    obiot got a reaction from 01271 in Code that runs on resize   
    Hello,
    you should be able to use the WINDOW_ONRESIZE event, that is triggered every time the display is resize, so for example  :
    var self = this; me.event.subscribe(me.event.WINDOW_ONRESIZE, function () { var videoPos = me.video.getPos(); self.textarea.style = 'width:' + (window.innerWidth - videoPos.width) + 'px; height:' + videoPos.height + 'px;'; }); also the size you can also directly use the default game camera/viewport (me.game.viewport.width and me.game.viewport.height) that is also automatically resize to match with the canvas size.
  23. Thanks
    obiot got a reaction from kolkat in Isometric game made with Melon   
    not that I know, and I never tried myself to be honest, but it should not be that different from an orthogonal map ? 
     
    Note that you can use the below function to convert coordinates between the two (ortho <> iso) :
    http://melonjs.github.io/melonJS/docs/me.Vector2d.html#to2d http://melonjs.github.io/melonJS/docs/me.Vector2d.html#toIso  
    found this as well by doing a quick search :
    https://gamedev.stackexchange.com/questions/29238/a-pathfinding-for-an-isometric-map
  24. Like
    obiot got a reaction from kolkat in Isometric game made with Melon   
    Hi, 
    oh yeah indeed, GIK seems to be offline... that's a pity, that was really one awesome isometric game
    As for other, I'm afraid the only one coming to my mind now is our online example, it's quite basic, but at features show multiple layer, map navigation, and a tile selector (so enough to get you started)
    http://melonjs.github.io/melonJS/examples/isometric_rpg/
     
    I'll come back if anything else comes to my mind !
  25. Like
    obiot reacted to Growler in 'x.png' file for tileset 'ground' not found!" - tsx loading   
    @obiot I realized they weren't added. I ran Grunt which usually grabs all the assets but this time it didn't grab the PNGs. Weird.