Popular Content

Showing most liked content since 11/15/2017 in all areas

  1. 18 points

    Babylon.js 3.1 is available!!!

    Dear beloved community, I'm thrilled to announce that Babylon.js v3.1 is available. For this special occasion, we created a cool announcement video: I will blog on dev.windows.com later today but I wanted to share with you beforehand The list of features is (as always) really great and we can all be really proud of such an achievement! We also shipped several WebVR demos: And do not miss our hero demos: Congrats team!!!
  2. 10 points

    The new Babylon Viewer

    Hi boys and girls, I don't know if you noticed, but the repository has a new directory called "Viewer" : https://github.com/BabylonJS/Babylon.js/tree/master/Viewer The viewer is a simple way of displaying a model without the need of JavaScript at all. It (obviously) uses babylon, and can be customized to your needs using HTML tags and HTML attributes. The only two important lines in your page would be: <babylon model="https://playground.babylonjs.com/scenes/Rabbit.babylon"></babylon> <script src="https://viewer.babylonjs.com/viewer.min.js"></script> Which will result in this: https://viewer.babylonjs.com/basicexample You can read about how to use it and how to customize it here - http://doc.babylonjs.com/extensions/the_babylon_viewer It is currently in a very early stage. The (public) project can be found here - https://github.com/BabylonJS/Babylon.js/projects/6 , including future plans. I am in the process of simplifying the development, build, and deploy process and it will soon be available on NPM as well, if anyone wishes to embed it using webpack/imports/require/whatever
  3. 9 points

    3D Web Constructor

    Hello all i want to present you my new project, It's a Web CAD (It will be in the future ) for the moment it's more a viewer. For the moment i am focusing to include the most common features of BabylonJs. Here a capture of the current state As you can see it allows to see the loaded object structure, in the tree you can hide or show or allow wireframe to the a specific object, in addition you have the global actions that will be applied for all meshes. The application also has a custom context menu Here the Prefab creation section Here what i call the compound objects Mode (CSG Balybon plugin) I implemented a 3D section mode also (Still contains some bugs ) For the moment the Import is hard coded i don't have yet a server side implementation, this is the next step. The toolbar contains some other options like remove, clone mirror a mesh, change camera views, and camera behavior on selection. Your feed backs are all welcome (Positive or negative), any ideas are welcome too. Here the link to the project on github you can try it your self https://darklight4070.github.io/3DWebConstructor/ And here the source code https://github.com/DarkLight4070/3DWebConstructor And thxs for this nice BabylonJs framework Regards DarkLight
  4. 7 points
    This means that we are about to close it Release date is still on 12/13 unless funny bugs come to break our master plan
  5. 7 points

    Parametric cabinet

    Hi Babylon community, First of all I would like to say thank you for framework! After 5 months of friendship with Babylon js, my project 'Parametric Cabinets' halfway through! It's still pretty rough, but works on all devices! And now it's time to ask for your opinion. Video link (Admin panel) Next step improve materials, edges and shadows. Questions: 1. For each part I'm using enableEdgesRendering(), but lines not solid. 2. For each face I'm using MultiMaterial with subMaterials. Is this Ok for performance? (keep in mind I need control all grains for all faces) 3. Shadows? I need good example of shadows, please Regards Arte
  6. 6 points

    The rings of Saturn?

    @NasimiAsl, you never have to apologize for speaking multiple languages and messing up in your non native one! we <3 you. http://www.babylonjs-playground.com/#52I241#8
  7. 6 points

    optic illusions

    I'm messing around with shaders and made an optic illusion sort of by accident: https://www.babylonjs-playground.com/#WX2PRW#4 I'm a fan of M.C. Escher, so maybe one day will try to build one of his scenes that depends on perspective... Does anybody else have one to share?
  8. 6 points

    kitchen demo

  9. 5 points

    BabylonJS CharacterController

    A 3rd person character controller for BabylonJS source : https://github.com/ssatguru/BabylonJS-CharacterController docs: https://ssatguru.github.io/BabylonJS-CharacterController/ demo : https://ssatguru.github.io/BabylonJS-CharacterController/demo/ git download: https://github.com/ssatguru/BabylonJS-CharacterController/releases npm: https://www.npmjs.com/package/babylonjs-charactercontroller Originally developed as part of my Vishva project
  10. 5 points
    Airmash is a top down multiplayer missile warfare game. As far as WebGL goes, the most interesting thing technically is the map. It is a 32768x16384 map of the world generated dynamically by only 1.5 MB of downloaded data. (No Antarctica though ) Network wise, the netcode is very efficient and can handle hundreds of players at the same place. Play here: https://airma.sh/
  11. 5 points

    Deltakosh out of the grid

    Hello beloved community! I will be out of the grid until 12/5. Taking some relaxing time before shipping 3.1 In the meantime please don't burn the house !
  12. 5 points

    The rings of Saturn?

    my bad again i am not good in english https://www.babylonjs-playground.com/#NCY1Q#28 sorry for bad writing
  13. 4 points

    Panda 2 released

    I'm very excited to announce that Panda 2 has been released. It is now more than just a JavaScript game engine, it's a full Game Development Platform for Mac, Windows and Linux. You will get better picture by watching this trailer video of Panda 2: The game engine code will still remain free and open-source. Check out Panda 2's new website: https://www.panda2.io There are over 30 minutes of high quality video tutorials: https://www.panda2.io/tutorials Ready to start simple game templates: https://www.panda2.io/templates And lots of interactive code examples: https://www.panda2.io/playground API Documentation: https://www.panda2.io/docs/api
  14. 4 points

    Creating a Threaded Screw

  15. 4 points
    Hello, I'm back, this is a new version of the demo I implemented, and you can see it in the babylonjs engine. github:https://github.com/renjianfeng/BabylonFpsDemo Technical details: Babylon-navigation-mesh: https://github.com/wanadev/babylon-navigation-mesh babylonjs:https://www.babylonjs.com/ video: A previous demonstration:
  16. 4 points

    Please welcome the TransformNode

    I know this was a big ask from the community so I'm glad to announce that we finally support TransformNode! They are node with position / scaling / rotation like any mesh but without all the rendering. So they are just here to add transformation to a hierarchy. Example: https://www.babylonjs-playground.com/#JT0HN4 @JohnKsorry my friend because this could require some update to the doc (even if by itself everything will keep working the same as before)
  17. 4 points
    Mostafa Kaouri

    BABYLON.Augmented Reality ...

    Very good news! I have developed the Natural Feature Tracking (NFT) tracker example with BabylonJs and JsArtoolkit5. It works like a charm. Find it here: https://github.com/mkaouri/jsartoolkit5/blob/master/examples/nft_babylonjs.html Clone the full project from here: https://github.com/mkaouri/jsartoolkit5.git Cheers...
  18. 4 points

    Playground Based Tutorials

    Writing playground based tutorials (PBTs) just got easier. Well a little bit easier than when it started in this thread. There are now methods available in the playground for anyone to highlight or hide lines in the editor and to build simple standard information and selection dialogue boxes. Documentation is available to describe the available functions with links to a couple of examples and how they were coded. Even if you do not want to write a full tutorial the functions can be used just to highlight some lines in your code or even to hide and unhide some lines as in this example https://www.babylonjs-playground.com/#NLMGJ2 A word of warning - I thought that this example was simple enough so I ignored my own advice from the documentation and just added the function to hide code straight into the playground and forgot to change a true to a false and ended up losing the code I needed to correct. So unless you are just using line decoration always write and edit the code in a text editor and copy and paste into a PG and Run to test, don't Save until you are sure everything is correct..
  19. 4 points

    more GUI Controls (ie: Menu)

    The menu still needs some work. For instance, I still need to figure out how I should handle menu items that use multiple font families. I'm going to bounce some ideas off Deltakosh when he gets back.
  20. 4 points

    500 HTML5 games in 4 years.

    Today, we finished number 500 of our growing list of html5 games. We (Arjan Haverkamp and me, Bram Schoonhoven) started this journey at the end of 2013. Our first html5 game was a remake of our Flash game Animals Connect. Now almost 400 different games are launched on our various portals. Our next goal: 1,000 HTML5 games. If we keep releasing 2 new games a week, it will take us another 5 years. All our games can be licensed for your game portal or you can distribute our games for free. Some statistics: Our most played game is Candy House with 2.5 million game plays. We have around 6 Million game plays per month with 1.25 million unique users playing our games. Average playing time is 12 minutes per game. Interestingly enough, our games are played 69% on desktop, 16% tablet and 15% mobile. Top 5 countries: United States, Germany, Brazil, Poland and Russia. Chrome is used in 58% of the game plays. Some of the tools/technology we use: Howler.js for audio. Hammer.js for touch support. Cloudflare as CDN solution. Javascript Obfuscator for obfuscating Javascript code. Browserstack for testing the games in various browsers. Google IMA SDK for monetization. Google Analytics. Add to Homescreen for adding game to the home screen. Screenfull.js for full screen support. Webfontloader.js for loading custom (Google) fonts. Cordova for creating apps. Website2APK for creating Android apps. PNGquant and JPEGoptim for optimizing images. Wavepad for creating sound sprites and optimizing MP3's.
  21. 4 points
    Mostafa Kaouri

    BABYLON.Augmented Reality ...

    @aFalcon Great It's working with pure jsartoolkit5 and Babylonjs, without AR.js. Demonstration done on Google Chrome ver 62. For mobile devices, It should work on iOS Safari ver. 11 and Chrome for Android ver. 62 Way forward, I will make it with NFT detection (without markers).
  22. 4 points


    @SvenFrankson as you say it is my bad try this https://goo.gl/ZBhjHT
  23. 4 points
    Hello, Here is a scene trying to explain the issues: https://www.babylonjs-playground.com/#10D6YT#49 First, you have 2 lights in your scene so I disposed the first one to isolate the shadow. Then using blurred shadow on a close range will create artifacts so I switched to hard shadow for the demo. From this point we can see a bit of shadow on the helmet (https://www.babylonjs-playground.com/#10D6YT#50): But why not hard ??? This comes from all the indirect light received by the helmet so let s turn it of (https://www.babylonjs-playground.com/#10D6YT#51): So I have to admit it is not intuitive and easy to setup hence why I want to work quite a lot on Shadow for 3.2 :-) Hope this helps,
  24. 4 points

    LineMesh and LineSystem Per Point Color

    Hi people, Based on the internal initial code from @JCPalmer, here are the per point colors for LineMesh and LineSystem var points = [arrayVector3]; var lineColors = [arrayColor4]; var line = BABYLON.MeshBuilder.CreateLines("l", {points: points, colors: lineColors}, scene); // same for LineSystems var lines = [arrayVector3[] ]; var colors = [arrayColor4[] ]; var lineSystem = BABYLON.MeshBuilder.CreateLineSystem("ls", {lines: lines, colors: colors}, scene); Note1 : this works also with updatable LineMesh or LineSystem objects as the colors array can be updated live. Note2 : when set at construction time, the parameter colors overwrite the hypothetical line or lineSystem .color property. If colors is passed but undefined, the object color falls back to the .color property value. [EDITED]Note3 : if you need to enable the alpha blending (line or segment transparency), just set the parameter "useVertexAlpha" to true at construction time : [EDITED 2] the alpha blending is now enabled by default. So when you don't need it, just set "useVertexAlpha" to false instead : var lineSystem = BABYLON.MeshBuilder.CreateLineSystem("ls", {lines: lines, colors: colors, useVertexAlpha: true}, scene); var line = BABYLON.MeshBuilder.CreateLines("l", {points: points, colors: colors, useVertexAlpha: true}, scene); This will allow you to create rulers, axes, graduation systems with multiple colors and to draw them in a single draw call. As usual, documentation and PG examples coming soon ... meanwhile : http://jerome.bousquie.fr/BJS/test/linesystem.html
  25. 4 points

    LineMesh and LineSystem Per Point Color

    casino royale ? http://playground.babylonjs.com/#W9LE0U#5 [EDIT] as usual, can't stop playing then http://playground.babylonjs.com/#W9LE0U#6 [EDIT 2] colors and alpha : http://playground.babylonjs.com/#W9LE0U#7
  26. 3 points


    Multiplayer online hexagonal minesweeper. Fight against other players, claim your area and steal theirs in a massive world. Reach the top of the leaderboard by having big score. Claim as much of the world as you can for yourself in this puzzle iogame. Play the game here: http://hexsweep.io Developed entirely in Haxe, using pixi.js for rendering, nodeJS with uws for server. Feel free to ask me anything
  27. 3 points

    Apple Jedi Ninja WebVR game

    Hi WebGL devs! I'm happy to share a small but complete sample of a Fruit Ninja like game I've been working on to show how to use the latest VRExperienceHelper feature. It also shows how to use our great GUI layer to build VR UIs such as a menu, score, etc. Assets come from remix3d.com and uses our glTF loader. Read the code to learn and play to the game : https://playground.babylonjs.com/#FAXLY2 I've done a video you can share on Twitter also : Have fun!!! :-D I hope it will help you building great stuff on top of Babylon.js WebVR support. David
  28. 3 points


    Ok, so things are starting to come together with a system I have been working on. I have most of the things figured out, Im just putting together tools to make editing the assest/levels easier. I have the prototype/alpha of the tileAtlas Sheet editor almost done, the only thing to add is speed settings for the animations and to export the SHEET object for later use in a PROJECT file. The editor lets you select a tile, and choose the animation type which the frame progressions are explained here: https://github.com/Pryme8/TileMaster This is all very early in the development but all the dots are being connected and soon this will be a full fledged 2.5D Scene editor extension for bjs. Here is the Sheet editor prototype: https://pryme8.github.io/TileMaster/editor/index2.html Arrows scroll the sheet around Select a Tile and an animation type to see the preview. This is all in preparation for the final editor, where you will be able to edit your assets and levels all under one roof visually then export as a single TILEMASTER file that will later be load the project into a DOM with a single function. The tileAtlas shader features 4 layers per plane, of course Animations, Paralax effects, and Mode7 like transforms. I will be adding more features later (like plans for LightMapping and pixel perfect shadows) Here is a really shotty demo showing the animations and layers working: https://pryme8.github.io/TileMaster/dev/demo.html Here is a bad demo of the Paralax effect: https://pryme8.github.io/TileMaster/ I have been trudging away at this and have a ton of features that I have already figured out I just have to deploy now. Plans are to eventually include my fishsticks library as well to handle the 2D physics. Ill keep posting updates on this as they come available! Questions, Comments, Concerns, Criticism is appreciated.
  29. 3 points
    Hi, http://playground.babylonjs.com/#PGRNB3#3 Here's an exemple using Dynamic textures to display red dots on the mesh uppon clicking. (on diffuse texture only, but it can work the same on normal and specular) Main issue in this example : Each face share the same UV area, so the red dot appears on every face (it happens often : If you have tileable textures on your walls for example...) If you have full control on your UV unwrapping, you can go with this method, otherwise it can be tough. Are you sure it's worth it over the Decal method ? It's flat texture in any case, so if you want to display some large hole in the wall (like a huge shell impact), you'll be limited by the amount of 3Dness you can get from Normal and Occlusion Maps, which is limited
  30. 3 points
    Yeah it does. You work on stages sometimes, aW? Crazy way of life. https://www.babylonjs-playground.com/#35HAW1#20 Alright, we are rollin', now. What a pig. Functionally perfect... but I'm not sure if I have used enough code, yet. I bet the big dogs can do this same functionality... in 10 lines of code. heh Update: [#21] I made the panels all blue and gave everything a gray material... to look more like a road case (for mobile music/production gear, sometimes called an "Anvil Case"). I did not call hideFrame() at startup (although it will still hide on pointerOut). Then I thought... okay, just temporarily, I'll down-scale the gray box a bit, to beat the z-fighting on the panels (line 324). Hey, why doesn't this work? Well ya dummy Wingnut, the "frame" is "derived"-from current box scaling. SO... down-scaling the gray box... just makes the frame parts down-scale, too. DUH! var n = .001; // nudgie Lines 205-225... need some "nudgies"... little bumps of the positioning values... to kill the z-farting. I suppose a guy could "thicken" the panels... by making them be thin boxes, instead of planes. Maybe that would be easier. The best way... would be an aerosol can of spray-on "Z-Peace". But noooo... they quit making that 2 years ago. hrmph. Nudgies installed: https://www.babylonjs-playground.com/#35HAW1#23 yay!
  31. 3 points
    Hi and welcome to the forum. Here are some stairs using ExtrudePolygon https://www.babylonjs-playground.com/#RNCYVM#34 documentation
  32. 3 points
    hey I bump into this post and find out Yahiko's project is really good, so I use the url to the project in my article on steemit. Hope I didn't break any rules here, let me know if I do, I will be sincerely grateful. Have a nice day!
  33. 3 points
    Hi everyone ! I used BJS for severals months now and I had never posted on this forum before. Just want to thank you for the amazing job you do on the engine. Your works are fully appreciated. Please keep going till realtime photorealistic render of large scene is possible ! Greetings!
  34. 3 points

    GoldenQuest by CodingPark

    GoldenQuest is an educational game for learning the principles of coding while having fun. Play online: https://app.codingpark.io/goldenquest The game canvas is made with Phaser. The code editor is made with dslforge.org and integrated in the game. Here you can see screenshots of one level, the level selector and the level editor. GoldenQuest is a much more advanced version of "the adventures of the pirate robot" that we already showcased here some months ago! Enjoy! Comments and feedback will be appreciated!
  35. 3 points
    for small objects (not counting ie: water/air resistance): force = mass X gravity. I made a small PG: https://www.babylonjs-playground.com/#2B84TV#10 If the sphere mass and diameters are the same they bounce the same. A bigger sphere with same mass does not bounce the same, so something else is being taken into account! I thought then that if I made their density the same they would act more similar (in PG), so the physics engine must already do something, as they don't bounce the same from same start point. There was a thread recently on physics friction with interesting comments. Some engines have extra functionality - I tried the PG in Cannon. I'm not aware of their being a way to explicitly set density for buoyancy. Maybe you can apply impulses with a vertical vector to influence the buoyancy.
  36. 3 points

    more GUI Controls (ie: Menu)

    Just messing around seeing how to make a dialog control like: https://getbootstrap.com/docs/4.0/components/modal/ Came up with: https://www.babylonjs-playground.com/#Q81PBV#1 I didn't spend much time on it, but something I would like to add is to get normal for camera.getForwardRay() and .cross or whatever to put the dialog in front of the camera. I'm not using full screen as I want it available in VR. In fact, my idea is full screen is only for showing non-interactive UI if VR is enabled (like HUD). Not sure if something like this is useful as a helper method like BABYLON.GUI.Control.AddHeader, but maybe will save somebody a little bit of time than making their own dialog from scratch. I added kinda an old TV off animation, but would be easy to add lots of transition options as well.
  37. 3 points
    Mostafa Kaouri

    BABYLON.Augmented Reality ...

    @Sebavan Sure, my pleasure. For creating a mobile app on iOS and Android, I recommend to use phonegap. I tried it and it works with babylonjs on a web canvas overlaying native mobile camera. I will share this too after testing it with the integration of jsartoolkit and babylonjs.
  38. 3 points
    Here are some 'meteors(?)' colliding in a box https://www.babylonjs-playground.com/#CBYLEW The physics of collisions is based on the mathematics of spheres colliding. Each meteor is a sphere with vertices moved randomly by a small amount based on Temechon's work on tree generation. More on the mathematics of collisions used can be found here http://doc.babylonjs.com/samples unfortunately on these pages the diagrams to help are missing. I have now submitted the images but they will only be available on the next deployment of the documention. As this uses the SPS system all meteors are identical in shape except for some random scaling along the x, y and z axis. However the same process can be done with individual meshes. Hope this helps
  39. 3 points
    We use ads, subscriptions and licensing. As there are new platforms emerging for Html5 games - we plan to include "stuff to buy" within the games as well (wouldn't actually make sense to call them "in app purchases" since there won't be any app, right?:)
  40. 3 points

    Playground Based Tutorials

    Slider GUI added https://www.babylonjs-playground.com/#UL6BCD Documentation
  41. 3 points

    Explode Modifier?

    If you want to reset the sphere parts in the orginal positions, just copy them (as well for the part rotations) just after the SPS is built (lines 51 to 68) in this example, the SPS is reset every 500 frames : https://www.babylonjs-playground.com/#HDHQN#48 If you want to play back the whole animation, you will have to store the particle positions at a given frequency and reset them back then according to this storage. Or ... more complex : animate them along the same math function in the reverse order (have fun)
  42. 3 points

    Any GLSL shader in Babylonjs?

    http://www.babylonjs-playground.com/#NCY1Q#3 uniform sample http://www.babylonjs-playground.com/#NCY1Q#4 you can use default uniform for set general uniform like ( camera - time - ... )by this http://www.babylonjs-playground.com/#NCY1Q#5 and you can manage you multi material by one shader too http://www.babylonjs-playground.com/#NCY1Q#6 http://www.babylonjs-playground.com/#NCY1Q#8 vertex control you can set 20 diffrent material in one and manage it by flagUp and flagDown docs : http://cdn.rawgit.com/RNasimiAsl/Extensions/master/ShaderBuilder/Documentation/ShaderBuilderReferences.html * note sample damaged in github
  43. 3 points

    hoverboard setup

    Hi ss. I think folks want you to make a demo scene using our playground... so everyone can help. But you are lucky, today. Another user once STARTED a playground of a hover-board. It is HUGE. It will take you many many hours to learn what it is doing. http://playground.babylonjs.com/#YTKM2D#19 Active Keys: SHIFTED arrow keys ... translate board left/right/forward/backward (might need to HOLD keys down) SHIFTED PageUp/PageDown keys ... translate board up/down (might need to HOLD keys down) CONTROL arrow keys ... rotate board ROLL left/right PITCH up/down (might need to HOLD keys down) CONTROL PageUp/PageDown ... YAW board left/right (might need to HOLD keys down) SOME speed setters are at lines 21 & 23. Known Problems: Hover (done in render loop) has unwanted bouncing. No CONTROL or SHIFTED keypresses work... after RE-RUN. Playground must be saved, then FULL RELOAD after any playground edit. Poss prob with scene.onDispose(). Needs many tweaks/adjustments. Currently quite difficult to control, like many physics-active scenes. Overkill keypress handling - Shift and Control + Numeric keypad also works. Shift and Control + keys surrounding the "L" key... also works. ( k o ; . ) BUT... still... you are getting one nice starter playground/scene. SO lucky you are... that somebody has provided ALL THIS FUNCTIONALITY... eh? You have done no work, and gotten pretty good hover-board demo! You should be quite happy and study it carefully... so you can make it better. The code is yours. The original author said that ANYONE can use the code for anything they please. You can even say that YOU wrote it! SO SO lucky! You should celebrate, eh? I will celebrate, too. America celebrated thanks-giving yesterday. Appropriate, eh? Gobble gobble! Be well!
  44. 3 points

    Deltakosh out of the grid

    it's a shame that you can take some free time. I consider even totally disrespectful that you afford some vacation and let us know this like that. I will immediately complain to the MS company, Mr Trump and my dog.
  45. 3 points

    Parametric cabinet

    Getting closer and closer Just one more year and then I'll be happy . Party!!!
  46. 3 points

    LineMesh and LineSystem Per Point Color

    Here's a rain shower : http://playground.babylonjs.com/#W9LE0U#12 Wait for seconds until the shower gets continuous. 5000 recycled drops. It's really naive, everything is randomized. I could have set the drop speed according to its length instead. I could also have set slightly different colors. Note that the alpha is used between the two drop segment points. More visible with a constant speed and longer drops : http://playground.babylonjs.com/#W9LE0U#13 You can play with the drop number, the drop length and the drop speed. Example : not more drops than before but longer and faster to simulate an intensive shower : http://playground.babylonjs.com/#W9LE0U#14 Have fun [EDIT] just change the camera position and target to get a budget starfield : http://playground.babylonjs.com/#W9LE0U#15
  47. 3 points

    LineMesh and LineSystem Per Point Color

    chronos ... one draw call http://playground.babylonjs.com/#W9LE0U#9 stessed ? http://playground.babylonjs.com/#W9LE0U#10 funny http://playground.babylonjs.com/#W9LE0U#11
  48. 3 points
    Something like this? https://www.babylonjs-playground.com/#1QM99D#14 another: https://www.babylonjs-playground.com/#1QM99D#15
  49. 3 points

    Saving and Loading

    Minecraft (I don't think) saves all those blocks either, nor does it have to, if you've used git source control then you'll be familiar with the concept of 'diffs', which I think is how Minecraft saves world data. In any case the following limits the amount you have to save, you need 2 things: * A pure deterministic world generation algorithm * Understanding how to store diffs against the deterministic world The process is actually really simple: Generate a seed (number, string, anything, doesn't matter) and use that seed to generate a world, the algorithm must be pure (referentially transparent) i.e. the same seed always produces the same structure (world map), an easy way to achieve this is to use the seed to seed a random number generator. No-one wants to make their own RNG, so pick one out there that allows supplying a seed (note that RNG is proper tricky, inside a computer people actually use its normally fairly easy to maintain entropy, on a server it can be trickier, mostly whatever OS you are running handles keeping entropy up). If your world map is immutable then you only ever need to store the seed, that'll deffo fit in local storage as it'll likely only be a few bytes. In this case it doesn't matter how much of the world has been explored on a previous visit, you can generate it on the next playthrough from the stored seed, so long as your algorithm is pure then you know the world will always be the same, so long as you can generate the world fast enough as your player moves around you're laughing but you'll have this problem anyway. If your world map is mutable (like vanilla Minecraft) then you'll have to work a little harder. Storing everything you've generated is the naive approach and, as you've noticed, doesn't work very well. The thing is, not much of your world will actually change, so just store the changes, this vastly reduces the problem space. Just store the diffs between world gen and current state. You'd also want a way to overwrite previous diffs where necessary, i.e. I place a stone block at [10, 12], then a wood block in the same place, well, you only store the diff between world gen and placing the wood block and nuke the previous diff that mentioned the stone block. On the next (loaded) play through you generate the world using the seed, then apply the stored diffs to regain where the player left off. To further reduce save/load times save/load only what you currently need i.e. when a player leaves an area save it, when they enter an area load it.
  50. 2 points

    Several shadows issues

    I don't see that weird circle shadow either! So, .useBlurCloseExponentialShadowMap DOES work, setting it up is not easy. https://www.babylonjs-playground.com/indexstable#IX08ES#5 A good shadow map (from Spector JS, helps a lot!) looks like that attached. A shadow map depth is encoded in an unsigned int. depth scaled by shadowGenerator.depthScale (255 means precision is 1/255 unit) between light.shadowMinZ (nearest point from light) and light.shadowMaxZ (farthest point from light) bias pushes shadow below surfaces. I dont really understand how to scale it.