Popular Content

Showing most liked content since 05/26/2017 in all areas

  1. 17 likes
    Hey all, I'm really pleased to announce the availability of Babylon.GUI. http://doc.babylonjs.com/overviews/gui In a nutshell, Babylon.GUI is a GUI layer which can be used inside your scene. It is an alternative to DOM or Canvas2D. Please try it and give me any feedback
  2. 10 likes
    Hey team! We ( @Sebavan and I) spent a lot of time improving the accuracy of our shadow engine. This means that we have now better precision and more reliable shadows generator. You should need less tweaking (bias, etc...). But as the topic is pretty complex please use this thread to report any issue regarding shadows that you may have
  3. 9 likes
    It's that time of the year again - time to start thinking about the js13kGames competition. The sixth edition will start on August 13th, 13:00 CEST and will run for a month. For those who don't know it yet: it's an online competition for HTML5 game developers where the fun part is the file size limit set to 13 kilobytes. Check the rules for details. There are always notable judges, lots of cool prizes, and free t-shirts for all entries shipped worldwide. See the forum topics from previous years for reference: 2013, 2014, 2015, 2016. Follow the compo profiles on Twitter and Facebook to be up to date with all the news and announcements. I'm looking for prizes and sponsors, so if you can help with either of those please get in touch! So, who's going to participate?
  4. 9 likes
    Hello, After one year of the PBR Material, we collected most of the required feedback to make it Awesome. But unfortunately, this will go with some breaking changes.. I am really not happy to integrate them but they are for the best and I will fully document them. Knowing our backward compatibility Philosophy in BJS, I just want to give a long time ahead with our plan to ensure this will cause the lowest level of disruption on your projects. Strikeout tasks have been completed. First thing, is the migration of the current PBRMaterial in MaterialsLibrary under the name LegacyPBRMaterial to ensure that the ones among you relying on it can continue to find the current version as of today. This will not be fully maintained but mainly keep for reference during the time everybody migrates to the newer/greater one. Only urgent fixes will be addressed on it. As nobody seems to rely on them, the overloaded values used for debug but taking quite a big amount of code will be removed from the material. All the scalar values will be multiply by their respective maps like albedoColor * albedoTexureSampled (currently it is totally inconsistent and depends of the channel) The different channels will be renamed to map with the GLTF nomenclature (At least I will not have anymore issues in naming :-) ) to allow an easier adoption of BJS and less ramp up for everybody. For example, the material microsurface will be named back to glossiness and reflectivity to specular... All the Maths issues and bugs presents in the material will be fixed. The environment blur will be fixed through offline and/or loadtime GPU generation. (This should be compatible with browser not supporting both FullFloat and Texture LOD) A migration from full float to LUV is in our minds for the environment to allow the use of none full float buffers with HDR compatibility. UBO, Push Mode and the full sets of greatest new features will be added to the new version. A new light type will be created to ensure an easier management of the intensity value in PBR mode. I should not forget a lot here and I hope you understand the future change. This is planned to happen during this month so do not hesitate if you have any feedback, think about any blockers or other evolution you would like to see in. As a consolation gift for the breaking change, I can propose to add the pbr exporter in 3dsMax or blender ?
  5. 8 likes
    Hello, I'm having fun while writing our next big tutorial on building WebVR scene with Babylon v3. Here's a preview of what I'm working on. The Mansion scene is really a great experience in VR! You can use the VR controllers to teleport, it sends a yellow ray by default. If the ray turns blue, it means you're pointing to an actionable item (using our Action Manager). Pressing the VR controller button will run the action on it, most of the time an animation + sound like in the regular version of Mansion: http://www.babylonjs.com/demos/mansion Enjoy! David
  6. 8 likes
    Hey team! I've just published the new BlurPostProcess which is far better now: https://www.babylonjs-playground.com/#FBH4J7%231 It uses a kernel size. Here is the source paper:http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
  7. 7 likes
    For any mesh supporting the parameter sideOrientation, we can now pass two extra parameters frontUVs and backUVs both Vector4. These values are taken in account only for double-sided meshes. They allow to declare what part of the image to crop and stick respectively on the mesh front and back faces. // set the rectangle coordinates (u0,v0) and (u1,v1) from where to crop the image as a Vector4(u0,v0,u1,v1) var f = new BABYLON.Vector4(0,0, 0.5, 1); // front image = half the whole image along the width var b = new BABYLON.Vector4(0.5,0, 1, 1); // back image = second half along the width var options = {sideOrientation: BABYLON.Mesh.DOUBLESIDE, frontUVs: f, backUVs: b}; // this plane has half the image on the front side and the next half on the back side var plane = BABYLON.MeshBuilder.CreatePlane("p", options, scene); // this sphere has half the image on the external side and the next half on the inside side var sphere = BABYLON.MeshBuilder.CreateSphere("s", options, scene); A single texture/material but the ability to display different images on each mesh side. Default values if not passed for both : (0,0, 1,1)
  8. 6 likes
  9. 6 likes
    So 3 and 4 have been done in : https://github.com/BabylonJS/Babylon.js/pull/2238 This also adds a few goodies I will document at the end of the week. Basically instead of introducing a Big Breaking change, we decided to kept the old fat PBR and add two new smaller ones fitting better with your favorites workflow Metal/Roughness and Spec/Gloss. They are matching pretty much with the gltf 2.0 definition from Krhonos. To simplify the setup, the environment texture is now available and shared directly from the scene and you also can directly create your Skybox from there with the createDefaultSkybox method (more documentation to come soon). As loading those texture might be slow and you do not necessarily want to wait for them before rendering, a new property of the Textures called isBlocking has been introduced to allow rendering during the texture loading. I am now strictly dedicated to fix the PBR Maths issues until the end of the week. ... Almost There ;-)
  10. 6 likes
  11. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  12. 5 likes
    Nothing special, just as the title says an example of building with ExtrudePolygon http://www.babylonjs-playground.com/#RNCYVM
  13. 5 likes
    hmm http://www.babylonjs-playground.com/#1QC9DP#155 for make dynamic wind effect (in GPU side ) for any geometry it take a lot time but we can make some special anyway if you wanna make that in cpu side i think @jerome can help you but for GPU side maybe you define special requirement about effect i try make it but for general GUP-particle system i think you need wait for next version of BJS
  14. 5 likes
    Just use multiple cameras one for the scene and one to host the GUI: https://www.babylonjs-playground.com/#U9AC0N#4 Basically you flag your scene with a specific layerMask and the GUI on a different one
  15. 5 likes
    New Release 2.3.0 (06/05/2017) Changes migrated from Java to TypeScript rewrote picking process to make the control snappier added transforms in planes added scale snap changed UI - hopefully more intuitive now Documentation: https://ssatguru.github.io/BabylonJS-EditControl/ Demo: https://ssatguru.github.io/BabylonJS-EditControl/demo Download: https://github.com/ssatguru/BabylonJS-EditControl/releases
  16. 5 likes
    ANd here is the slider http://doc.babylonjs.com/overviews/gui#slider
  17. 5 likes
    Just make a regular unity game... set the project type webgl/ html5... then build... use so you know... unity really makes a c++ (via emscripten) port of your game. BabylonJS games are native HTML5 based webgl games... you will see big differences in loading... you have to use their C# unity API to get JavaScript access if you need any native web access to your game... it very klunky... and the worst thing... god forbid you actually get some kind of runtime error in the browser... you will some long C++ emscriptem error... sometimes with no message at all... i and I really don't like the long C++ emscripten runtime compile (not the shader compile) but actually compiling the game code in browser (which fails on my mac most of the time) ... and it uses this big typed array that you define at runtime... say like 1gig ... that your game binary really runs in... In short... you get a much cleaner, faster and richer runtime experience going native JavaScript HTML5 and webgl API ... which BabylonJS wraps up real nicely... but by all means try it out yourself and see 😊
  18. 5 likes
    Ready to test: http://doc.babylonjs.com/overviews/gui!!!
  19. 4 likes
    http://www.babylonjs-playground.com/#DU61I8#10 after complete optimization we can attach any height map algorithm to this
  20. 4 likes
    Great, looking forward to this! As I transitioned from commercial gamedev into another dev occupation, I can finally afford making experimental games for fun, without feeling of missing out in terms of money
  21. 4 likes
    Hope this PG is acceptable showcase for ExtrudePolygon http://www.babylonjs-playground.com/#RNCYVM#10
  22. 4 likes
    First clean and commented example : http://www.babylonjs-playground.com/#FJNR5#129 You should start flying initially from the Sahara towards the Europe if I'm not wrong. I generated a big map, sized 10000 x 10000 units in the World. This map holds 1 million of points (1000 x 1000). It's generated from a symetric image so we can fly endlessly around the world in all the directions : The terrain is 150 x 150 quads. I just added a little LOD in the distance. Then everything is quite optimized : the terrain is set as always visible (no culling), the map normals are precomputed, as well for the map UV. So, ladies and gentlemen, welcome on board. The crew wishes to you an excellent flight in our skies. The meteological conditions may be good during your trip. We expect to NEVER land, nor crash and fly forever at the cruise speed of 60 FPS Same link without editor : http://www.babylonjs-playground.com/frame.html#FJNR5#129
  23. 4 likes
    And now the checkbox: https://www.babylonjs-playground.com/#U9AC0N#3 Documentation: http://doc.babylonjs.com/overviews/gui#checkbox
  24. 4 likes
    i try it with geometryBuilder http://www.babylonjs-playground.com/#1QC9DP#151
  25. 4 likes
    @JohnK it's really good for maze: http://www.babylonjs-playground.com/#RNCYVM#1
  26. 4 likes
    Sure, please see the screenshot We have 10 apps in total with Admob for in-game ads. There is no any promotion of these apps except the links on our website. So the traffic is very low and the revenue is low too
  27. 4 likes
    Great ! Babylon.js is also now the most popular framework of this forum (number of posts wise) ! Hooray ! ^^
  28. 4 likes
    Earcut is a third party library that was integrated into BJS at the time Canvas2d was released, so it's (and should be) responsible for all the triangulation processes : https://github.com/BabylonJS/Babylon.js/blob/master/src/Tools/babylon.earcut.ts It's soon the time I come back to some BJS dev, I think, as the list of requests for features and other fixes about what I provided so far gets longer and longer ;-)
  29. 3 likes
    This is really cool! For the sake of search I created a new PG with metadata: http://www.babylonjs-playground.com/#CNT1E0
  30. 3 likes
    http://www.babylonjs-playground.com/#XCPP9Y#133 better yet: http://www.babylonjs-playground.com/#XCPP9Y#134
  31. 3 likes
    Hello, I am happy to announce the release of my last Dev: http://spector.babylonjs.com This will help any of you willing to troubleshoot or understand what are the webgl commands generated by the engine ! Have fun,
  32. 3 likes
    Should still work https://github.com/englercj/phaser-debug Read this if you haven't https://phaser.io/tutorials/advanced-rendering-tutorial Phaser is here to stay, and will only get bigger with v3. You can write slow code in any language. There is nothing inherently slow about JavaScript.
  33. 3 likes
    Task is beginning http://www.babylonjs-playground.com/#DU61I8#8 try find wave correct formula
  34. 3 likes
    Hi folks! As some of you know my html5 business has not been going very well. After much thought and consideration I arrived at the conclusion that I do like making games too much so I won't quit this path. But I'm making some drastic changes to my whole (nonexistent) marketing/monetization approach and some changes to usability/UI/features and such. I've started a blog documenting my whole approach: https://adrianscheff.wordpress.com/ And that's about it - we'll see where this goes.
  35. 3 likes
    Maybe it's all the same to you, but I would have called the string 'inputHistory', so that I can clearly decouple inputs that are currently pressed from inputs that have been pressed in the past. That could be an array with the input pressed and the date at which it was pressed. This way, you can check at anytime if the input history contains a potential combo and if the time frame is short enough to allow that combo. And of course, empty the input history queue from inputs that are older than X seconds. For example : inputHistory = [{input: 'left', date: 10}, {input: 'right', date: 15}, {input: 'A', date: 50}, etc.] Very interested in your project though! Don't forget to share it on the forum once you have something playable!
  36. 3 likes
    True, but, the older the dog, the less extrusion z-depth (and slower animation speeds). :x heh
  37. 3 likes
    Hi everyone! I uploaded a sample Phaser JS script of roulette with a hope that someone will find it useful. This Phaser JS script demonstartes a solution to show roulette that rotates and stops at a random position. Needle ticks with animation and sound as the roulette spins. The script itself could be rewritten into a really simple code and should be able to be integrate into any game at ease. You could use it for a simple game, a small lottery in your game, board games etc. (The code is totally a mess. Pardon my lousy coding manner.) https://github.com/BeFiveINFO/phaser_roulette_example Thank you for reading!
  38. 3 likes
    And now, introducing the RadioButton https://www.babylonjs-playground.com/#U9AC0N#13 Doc: http://doc.babylonjs.com/overviews/gui#radiobutton
  39. 3 likes
    If you really want to take your game to the next level, you could mimic the way Street Fighter (and most other beat'em ups) implement their hitboxes. You have separate classes of hitboxes that aren't tied to just the character sprite, but to individual animation frames of the sprite. Terminology is quite fluid, but basically you have regular, vulnerable, hittable hitboxes, and attacking hurtboxes. Hitboxes colliding doesn't do anything, but a hurtbox overlapping with a hitbox causes the owner of the hitbox to be hurt. Here's an example from Street Fighter. The red box is the hurtbox, blue boxes are hitboxes. The green box is a special type of hitbox, that's used to prevent characters from overlapping. It not only checks if it overlaps with another sprites green hitbox, but also separates them if they do. Like, I said, these boxes are tied to individual frames, which enables things like I-frames, by completely or mostly eliminating hitboxes during certain frames (a perfect example is the Shoryuken, which has - during the actual attacking part where the character has upward momentum - no hitboxes and only a very large hurtbox attached. Anyway, good luck with your project, it looks like it's well on it's way already! The different physics engines available in Phaser aren't really comparable as better or worse, they're meant to solve different problems. Arcade physics is great if you don't really want all that much actual "physics" in your project, and mainly want collision detection, raycasting and other low-level stuff like that. Ninja is slightly more advanced with a lot of tools built-in to work with things like slopes and non-square geometry, but still no physics simulation stuff. p2 is the system with actual physics bodies, forces, materials etc. Basically everything you'd need to create an Angry Birds clone or something like Crayon Physics. Then there's Box2D, which is a full-fledged, no-holds-barred physics simulation system with every type of joint, spring, force and trigger you might imagine. Having once implemented a "non-realistic" physics world for a platformer in Box2D (albeit in Java with lwjgl, not Phaser), I can say from personal experience it's a fool's errand. It's ridiculously more difficult wrangling a system designed to semi-accurately model real-life physics to do moonjumps, double jumps, air control and all that platformer jazz, and that'd be a perfect candidate for Arcade or Ninja. Then again, if you wanted to make a Hill Climb Racing type of game, it'd be a huge waste of time implementing the physics yourself on top of Ninja's collision detection, when you could just draw up a car in a physics editor and import it to Box2D and be done tl;dr: cool project, check out how SF2 does hitboxes and maybe steal a few good ideas, physics engines are different because physics needs are different
  40. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  41. 3 likes
    Hello World, I'm a pixel Artist and Game Designer sharing my work for the #gamedev sake. I just released a Free Public 2D Platform Pixel Art Pack for everyone. Check it out I even made an online Demo made with Phaser so you can see it in action: http://pixelgameart.org/demos/sunny-land/ Download this Pack at my site where I will be posting each month a Public Pixel Art Pack (code included): http://pixelgameart.org/web/portfolio/sunny-land/ Cheers and happy #gamedev
  42. 3 likes
    Both CreatePolygon and ExtrudePolygon use PolygonMeshBuilder but provide a more consistent feel to the function call. Also sideOrientation can be used with both. This means that when using MeshBuilder Jerome's new sideUV feature will be available. http://playground.babylonjs.com/#4G18GY
  43. 3 likes
  44. 3 likes
    I just wanted to bring this article to your eyes: https://blog.sucuri.net/2015/03/why-a-free-obfuscator-is-not-always-free.html Resume of the linked article: some online obfuscators may add spamming code to your obfuscated javascript. Also, I am currently giving Google Closure Compiler ( https://developers.google.com/closure/compiler/ ) a try in advanced mode, if anybody wants to add some cool tips, thanks.
  45. 3 likes
    Ok, just uploaded the projects to OUR server - and I can't reproduce the error. Same projects on the CLIENT server - still the same problems. So, obviously a problem of a weird server configuration. If you still want to see one part of the project - here it is : Manual drumback It's an interactive manual for office chairs. In 2004 offline-versions of these manuals were awarded with the „iF Design Communication Award„ and now WebGL has the potential to bring them to the browser. Thanks for your support! Hope you like it!
  46. 3 likes
    Fantastic. Ya know... being honorable and forthright about code origins... gets you FOUR steak dinners! These days, it seems that those characteristics are more rare than proper-working earcut code. I'm pinging-in @Nesh108 to make sure he sees this. All this stuff is good good good! Exciting and useful new tools! Ya know those foam rubber #1 hand-things? Well, a guy could make a website... that accepts these extruded models (and a handful of money) as inputs, and produces one of them foam rubber thingies... as output. Let's see... texture.convertToFlatTexturedFoamThing(scale). We might need some helper funcs, too, like mixMonomers() and foamCutter.onSuccess, etc.
  47. 3 likes
    @Rodrix3: Welcome to the forum Rod If you can post your .blend file - I will be happy to take a look and see if I can find the issue. cheers, gryff
  48. 3 likes
    @jerome, @NasimiAsl and @Wingnut as usual I miss the obvious and get tied in knots. There is a simple solution that I have used before and completely forgotten about and that is PolygonMeshBuilder. Mind you it is easily forgotten as the documentation is very little, just the class. However I am working on this. Also working on a possible PR for MeshBuilder that includes MeshBuilder.CreatePolygon and MeshBuilder.ExtrudePolygon. Both will use PolygonMeshBuilder under the hood but will look more like the normal methods of building a mesh. Should a PR be OK then will of course do the documentation. PG using PolygonMeshBuilder is http://www.babylonjs-playground.com/#PTTMVI
  49. 2 likes
    quick answer : the SPS can be seen as an API to access/modify one big mesh from its subparts (the solid particles) So, it has one fix-sized geometry once created. This means you can't add any particles once built. If this need exists, then two options : - dispose and recreate a new SPS with more particles if you feel OK with this delay (or create the new one before disposing the first and just swap them when ok) - create in advance all the particles in a single SPS, even if they aren't visible initially (you can manage the per particle visibility and/or the per particle processing : you can choose to update only some kinds of particles or only some ranges of particles to go faster) An immutable SPS is simply an non-updatable mesh. Its performance gain is the same than the one in the comparison between updatable/non-updatable meshes. The performance differences are comparable to other/any updatable/non-updatable meshes Moreover, an immutable SPS doesn't store the particle data (positions, rotations, velocities, colors, uvs, etc), so it's also less consumed memory. It's really designed for creating things that will never evolve once created, like maze walls, asteroid fields, trees and buildings in the distance, etc. Note well that a standard (not immutable) SPS is updated only when you call setParticles(), what is not required to be called each frame. So I think the performance gain between an immutable SPS and a standard one is really really low if you don't update the standard one at all (or very rarely). Depending on the frequency or the probability of the need for the landscape update, I would opt for single SPS with a large pool of possible things to be spawned. example here (not static but same principle) : http://jerome.bousquie.fr/BJS/Starfighter/ The blue laser lights in the distance, the laser impacts on the enemies, the enemy explosions, the enemy laser crosses, and the stars are all the same SPS.
  50. 2 likes
    I think you can use PIXI.canUseNewCanvasBlendModes = function () { return Phaser.Device.canUseMultiply; }; We can probably add this to Phaser CE.