Popular Content

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

  1. 9 likes
    Hello, I have created a full terrain editor for the community. It is easy to use and can be improved by your contributions. With this editor you can: Create new terrain. Sizes terrain of: 250x250, 500x500, 1000x1000 and 2000x2000. (Superior to 2000, performance problems appear.) Import terrain custom to paint. Export the terrain loaded with textures splatmap and texture painted in a zip with file html and setting. Support with CustomMaterial + StandardMaterial : Shadow, fog and light, color Ambiant.. on the terrain Delete terrain loaded. Copy terrain loaded. Rename terrain loaded. ScreenShot of terrain. Up and down vertex, Key "CTRL" for down. Creating plane vertex. Create holes Key "ALT" for filling a holes. Create ramps. Smooth meshes ground. Paint the terrain with an 8 textures diffuse. (Create one splatmap). Assign textures for paint with save and load setting. (dblClick on slot for change texture). Import textures in the library Register your work. Load a terrain recorded. Moving the camera in "edit mode" with the keyboard spacebar and the keyboard keys "ZQSD" (FR) or "QWSD" (ENG). Change speed camera. I think to add it to the extension of Babylon soon. I hope that will useful. Repository GIT : https://github.com/dad72/TerrainEditor Test of editor online: http://www.babylon.actifgames.com/TerrainEditor/index.php
  2. 8 likes
    Hi! I just released a Vscode extension for Babylon.js, that can be used to display the content of a babylon file in a preview panel. Basically, it's a local sandbox You can check it out here: https://marketplace.visualstudio.com/items?itemName=julianchen.babylon-js-viewer I plan to add more features: quickly check meshes names, materials, cameras, lights... In order to have a quick links glance at the content, and being able to use it in my game. Feel free to give me feedback, it's always appreciated You can also let me a review on Vscode marketplace Thanks!!
  3. 7 likes
    Fade from black when you start state (oncreate) this.camera.flash('#000000'); Fade to black from state: startGame: function (pointer) { this.music.stop(); this.camera.fade('#000000'); this.camera.onFadeComplete.add(this.fadeComplete,this); }, fadeComplete: function () { this.state.start('Game'); } Make sure you have the latest version of phaser.
  4. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  5. 6 likes
  6. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  7. 5 likes
    Some of you may be interested in this interview with FRVR from GameAnalytics, where we chat with FRVR founder to find out how his approach to HTML5 game development and distribution helped him build a studio that generated $1500 per day in ad revenue, within 6 months... It's a great story. Check it out @GameAnalytics
  8. 5 likes
    Hey @yorke cell shading is now available in materials library http://doc.babylonjs.com/extensions/cell And it supports shadows
  9. 5 likes
    These are my favorites for long coding sessions... Artists: Bonobo Emancipator Ott Soundtracks: Mr Robot Hotline Miami The Neon Demon Ex Machina
  10. 5 likes
    Hi again TB9! Take a sniff at this thing... http://www.babylonjs-playground.com/#1UHFAP See line 129? vertexData.applyToMesh(blankmesh, 1);Notice we started with a blank mesh... line 5. Mesh created like this... are forever updatable. But let's say you want to do updates to a built-in basic mesh... like a cylinder, box, torus, etc. Take a look at the documentation for mesh: http://doc.babylonjs.com/page.php?p=24643 Let's look at one of the basic built-in shapes: <static> Mesh.CreatePlane(name, size, scene, updatable) → {BABYLON.Mesh} I think you can see the boolean 'updatable' flag hanging out there as the last parameter in the constructor. As long as you set that to TRUE, you can re-adjust the data arrays on a vertexData object as often as you like, and use vertexData.applyToMesh as often as you wish. Let's take a sniff at a vertexData object.. http://doc.babylonjs.com/page.php?p=24739 See all the "make shape data" functions for our built-in basic shapes... already placed on the default vertexData object? That's how they are made. Data creator functions. That data is applied to blank meshes to create the shapes. The vertexData object is the shape data creation device for our builtins. It is also the place where you can create your own shape data and put it into arrays that you can create. These arrays do not exist until you (or the 'set' function)... create them. See the 'set' command on the vertexData object? That's one way to put shape data onto a vertexData object to prepare it for an 'apply'. But let's also look at a section of that playground demo starting at line 113: // Make a mesh shaper device. var vertexData = new BABYLON.VertexData(); // stuff its buffers with your stuff vertexData.positions = positions; vertexData.indices = indices; vertexData.normals = normals; // turn on this line for per-vertex colors // vertexData.colors = colors; // I turn off these lines - not needed, nor understood (yet). // vertexData.uvs = uvs; // vertexData.uv2s = uv2s; // Use the vertexData object.. to shape-ify blankmesh vertexData.applyToMesh(blankmesh, 1);Once the vertexData object is created, you just force the stocked arrays onto the vertexData object (positions, indices, normals, and optional colors, uv and uv2 texture mappings, ect). Or you can use a few calls to the .set(data, kind) function mentioned earlier. Then when you do the vertexData.applyToMesh(blankmesh, 1);, Babylon.js automatically applies all the set data... to the blank mesh. You might want to take a look at the source code for the vertexData object. It has lots of cool code in it. So does the source code for our MESH class. If you take a look at the BABYLON.CreateBox code in the MESH class, it looks like this: Mesh.CreateBox = function (name, size, scene, updatable) { var box = new BABYLON.Mesh(name, scene); var vertexData = BABYLON.VertexData.CreateBox(size); vertexData.applyToMesh(box, updatable); return box;};See how that works? Box is the blank mesh, then we call-out to BABYLON.VertexData.CreateBox(size); to make the shape data (and return a vertexData object), then use that vertexData's applyToMesh function to turn the blank mesh into the box mesh. A two piece operation. The MESH class has a CreateBox function, and the vertexData class ALSO has a CreateBox(size) → {BABYLON.VertexData} function. One function makes the data, and the other function applies that data to a blank mesh shape. That's how the framework makes its built-in shapes. Likely, you will just create a vertexData object, stock its make-it-yourself .positions, .indices, and .normals arrays/properties, and then apply that vertexData to a blank mesh (like the playground demo). PS: The boxify() thing in that playground demo is just a helper function I use to help me draw indices in clockwise or counter-clockwise ways, and would be turned-off under normal situations. Indices (connecting lines defining triangles) plotted clockwise/counter-clockwise... determines which face of a triangle is back-face and which is front-face. And normals, are a lighting thing, determining lighting angles. You probably know that already. Play around with the demo, make some changes, hit RUN over and over. Grab a zip copy, take it home, have some fun. I think you'll become an expert of model plotting in no time. Hope this helps. Be well!
  11. 4 likes
    Hi, for whatever reason all BabylonHx topics were moved to Haxe JS forum. Anyway, BabylonHx 2.0 is on github and its a fresh (from scratch) port of Babylon.js 2.0.0. You can read original post about new version here, on the bottom of the page: http://www.html5gamedevs.com/topic/3269-babylonhx-haxeopenfl-port-of-babylonjs/
  12. 4 likes
    Hi Everyone, For Ludum Dare 38 I wrote a dungeon based game using procedurally generated level maps. Its something that I have wanted to play around with for a while, the code didn't work so great in the jam but it something I wanted to take a little further. So I have since split out the code used for the level generation. Given it a cleanup and turned it into a proper Phaser plugin that everyone is welcome to use in their own projects. Plugin code can be found on Github Or you can take a look at a demo of the plugin here Any feedback or comments welcome
  13. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  14. 4 likes
    just a bit of advice - don't go with https://github.com/jeremyfa/node-ts2hx these converters are no good for real world projects, especially for a big one like babylonjs. they work on simple stuff, but give it for example https://github.com/BabylonJS/Babylon.js/blob/master/src/babylon.engine.ts and it will dye. as the author said 'it was a proof of concept' anyway. ts and haxe have similar enough syntax to use ts file and start doing conversion to haxe 'by hand'. this is my approach and it worked well. its just an advice though. anyway, if you guys are interested in keeping babylonhx alive and if you want to take active part in its development I might consider getting back to it. its too much work for a single person.
  15. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  16. 4 likes
    So! Commited - https://github.com/BabylonJS/Babylon.js/pull/877 . a very simple demo can be found here - http://raananweber.com/physics/ . Using Jerome's ExtrudeShape :-) The MeshImpostor will use this implementation from now on. It can be used on all types of meshes. The only catch - it only intersects with spheres.
  17. 3 likes
    Nice to know it is living again GG @MackeyK24 and @NasimiAsl @gamestudiohx I am keen on making BJS better, could you please detail a bit the cumbersome part so that it will be my next area of focus. thx
  18. 3 likes
    @enwolveren I don't know where you, and others, have gone with this topic, but here are a couple of more examples that I found in my BJS bookmark list of PGs that I was cleaning out yesterday. First a Sprite Effect. Electricity 1. This has electricity and sparks And for @NasimiAsl as well, A Shader Effect Electricity 2. This has 9 different shaders doing all sorts of things - one of which is electricity (cube in back right corner). I have not figured out which part of the code drives this effect. I would one day like to create the "gateway" effect I posted an image of - but that will likely not be soon. cheers, gryff
  19. 3 likes
    Thanks @Dad72 for clearing up... Btw... I got much respect for @NasimiAsl he is the shader guru 👍
  20. 3 likes
    Ok new github links for my maze entry in the contest 1 Full Maze - includes an intro to watch with music, an animated book, a wizard and his hell hound. 2 Maze (no intro) - four 5x5 mazes connected by gates and stairs. The parts were built in Blender and the maze constructed from instances using BJS and a script. You can jump between the four mazes by pressing the I key on the keyboard if you can't figure out how to open some gates I hope the other contestants mazes are still available.. It was a fun contest cheers, gryff
  21. 3 likes
    Every now and then I see forum posts asking how to get the forward of the camera or of a mesh. I think I've come up with a simple way to do that with Node.getDirection. Here's a PG demo: http://www.babylonjs-playground.com/#1CSVHO#6 (move the camera to see that the sphere stays in front of it) edit: I added Vector3.Left and Vector3.Right: http://www.babylonjs-playground.com/#1CSVHO#5 moving a mesh forward: http://www.babylonjs-playground.com/#1CSVHO#7
  22. 3 likes
    Okay, I finally took another look and played around with it quite some time. I cahnged alot of things (mostly code structure) and I broke alot of things you can have a look at the code here (as soon as it is done pushing, your assets are way too huge!): https://github.com/iiceman40/CleanItUp And here is an online version to try out and tell me if that's what you want: http://p215008.mittwaldserver.info/CleanItUp/ (loads really long, again, the assets folder is 62MB, maybe you can reduce that ) What I broke: the switching between the cameras when moving aroundthe whole level layout, not sure how I manged to break that but somehow it looks like all the things ended up in different places nowthe keyboard controls and you custom collision systemprobably also broke all interactions that you had in there... the door opening stuff and so on(removed some of your sources files (but nothing important) that I think you got via bower? or just copied everything in there? I removed it because it slowed down the auto complete function of my editor)What I changed/fixed: I tried to separate some of of the things you do and put them into class files like a Player class and a LevelBuilder class. That way I could separate a view things which made debugging easier for me and helps keeping a better overview over things.I changed the movement to mouse cursor input. so your character moves where you clickI switched to the moveWithCollions function provided by babylon (no physics here, just moving with collisions the way babylon js intends it)now for the main problem about the mesh rotation and the lookAt function: I fixed it by using a dummy cube as your player object and then just add this dummy as the parent of your imported mesh. This way I could somehow control better what rotations it does and I could test it without using your imported mesh in the first place. (i just tried it with the normal cube, then added your mesh as a child to that cube). I also added an extra ground object that is used for checking where you actually point with your cursor in the 3d environment. The gorund thingy: this.ground = BABYLON.Mesh.CreateGround('ground', 50, 50, 100, scene); this.ground.isVisible = false;The dummy player object and the imported mesh: this.player = BABYLON.MeshBuilder.CreateBox('player', {}, scene); this.player.isVisible = false; this.player.position = new BABYLON.Vector3(-13, 1, -13); this.player.gravity = new BABYLON.Vector3(0, -9.81, 0); this.player.checkCollisions = true; this.player.collisionsEnabled = true; this.player.ellipsoid = new BABYLON.Vector3(0.5, 1.0, 0.5); this.player.ellipsoidOffset = new BABYLON.Vector3(0, 1.0, 0); camera.target = this.player; BABYLON.SceneLoader.ImportMesh("", "assets/", "beauty.babylon", scene, function (newMeshes) { playerAvatar = newMeshes[0]; playerAvatar.scaling = new BABYLON.Vector3(0.0075, 0.0075, 0.0075); playerAvatar.isVisible = true; playerAvatar.position.y = -1; playerAvatar.parent = self.player; //playerAvatar.rotation.z = Math.PI/2; //playerAvatar.rotation.y = Math.PI/2; //player.bakeCurrentTransformIntoVertices(); });The lookAt stuff: // helper object to show current position of cursor in 3d space var gizmo = BABYLON.Mesh.CreateBox('gizmo', 0.2, scene); function characterFollow() { var pickResult = scene.pick(scene.pointerX, scene.pointerY, function (mesh) { return mesh == ground; }); if (self.player && pickResult.hit) { var targetPoint = pickResult.pickedPoint.clone(); gizmo.position = targetPoint.clone(); targetPoint.y = self.player.position.y; self.player.lookAt(targetPoint); } }So in the end no extra rotations or anything was needed. The gizmo shows the point that you currently pick. And we just rotate the the cube mesh. You imported mesh follwes since the cube is it's parent. I think I changed more detail stuff, but can't remember anymore I hope that helps somehow even if I broke more than I fixed. You can take a look at what I did and decide what of if you can and want to use and what you don't like. It's probably not all good/helpful. If you have questions just ask and I'll try to explain.
  23. 3 likes
    I created WASD in the same way that cursors are created using the following little bit of code: this.cursors = XV.game.input.keyboard.createCursorKeys(); this.wasd = { up: XV.game.input.keyboard.addKey(Phaser.Keyboard.W), down: XV.game.input.keyboard.addKey(Phaser.Keyboard.S), left: XV.game.input.keyboard.addKey(Phaser.Keyboard.A), right: XV.game.input.keyboard.addKey(Phaser.Keyboard.D), }; Please do be aware however that you should always give your players the option to change their keys - WASD is not uniformly usable around the world; as in the case of French users (for one example) whose keyboard layout looks more like this:
  24. 2 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
  25. 2 likes
    http://playground.babylonjs.com/#L97Q67 I got permission to post this... super simple but might be of use to someone!
  26. 2 likes
    ok @gamestudiohx what can i do tomorrow define your tasks and make a list we start slowly but try my best action
  27. 2 likes
    Hi gang. Question: Has anyone thought about sync MIDI to scene events? MIDI sequences allow insertion of SYSEX messages... and often these SYSEX messages (among the note on/off data)... contain something called MMC... midi machine code... used to automatically turn knobs/adjust settings... on certain midi playback gear (such as soundcards and midi synthesizers). But we demented experimenters... would LOVE to access those sysex messages... and make our 3D mesh do things... at that playback time. We (I) want to make my mesh... dance to the beat of the midi song. If I insert sysex messages into my midi song, and IF I can "see" those events happen with a scene observer... that would just TOTALLY ROCK! (literally!) I know @davrous is a musician/composer, and he knows some seriously-advanced stuff about JS audio. I hope I can "entice" him to come aboard this cause. Also, I don't want to use code to play the song, noteON-by-noteOFF. Ideally, I want to insert an HTML <audio> element into the dom tree, and if the song contains sysex messages of type-BJS, I want them to activate sysexMessage observers in the scene. Would THAT be cool, or what? You ain't NEVER seen "Mesh'n'Light Shows" like the ones Mr. Wingnut could produce... if that "choreography system" was operational! YUM! UberYUM! Ok girls... can it be done? Is there a wall to cross? A river to ford? Do we have the bridge-making gear? Thoughts welcome... any thought from any one. Thx! (Again, let's NOT make scene code play (poke) each note, step-by-step. That type of system will not stay in-tempo. Let's avoid that idea.)
  28. 2 likes
    @Sebavan I was thinking about BJS becoming cumbersome in general. Its quite a lot of code, the minified lib is 1.3M (compared to three.js which is about 0.5M I think). Its hardly a 'light weight engine' anymore, but this is just my personal preference and I'm not criticizing BJS, I still love it and I think its fantastic. But from a point of view of someone who makes Haxe port of it, it has become cumbersome and thus very hard to maintain. There's no specific part I can point to, its all fine from a js perspective. But in Haxe (being a strongly typed lang) things are bit different. I've started having a problems with the introduction of https://github.com/BabylonJS/Babylon.js/blob/master/src/Mesh/babylon.buffer.ts class. In js its easy to interchangeably use js array or typed one (Float32Array), but this is not so easy in Haxe. Its certainly possible but either there would have to be change in API or there would be a performance hit in some target. And this is used throughout the BJS. And there are other problems as well and I had to make a lot of compromises and changes in BHx. But the bigger the changes are, harder it becomes to keep up with BJS progress.
  29. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  30. 2 likes
    You might take a look at what might be salvaged from SSSynthesiser. The topic was http://www.html5gamedevs.com/topic/15060-wave-synth-sound-engine/#comment-102291
  31. 2 likes
    Otherwise, you've got the documentation: http://doc.babylonjs.com/overviews/webvr_camera, 2 videos we've made: - https://channel9.msdn.com/events/Build/2017/P4097 - https://channel9.msdn.com/events/Build/2017/T6987 And some samples: - loading a scene and switching to VR (with feature detection for fallback): http://playground.babylonjs.com/#YITJU9#2 - a relatively simple 3D scene using the same approach: http://playground.babylonjs.com/#ASDZLT#2 And as @Sebavan said, you need a user's interaction to render the scene in the headset (at least required by Chrome as far as I remember, not sure it's specified by the spec). Your feedback is interesting as I'm currently working on a tutorial on WebVR and Babylon.js. I'll integrate a very simple sample based on what you're suggesting. Thanks, David
  32. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  33. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  34. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  35. 2 likes
    you can't achieve complete synchronicity with the server as there is always a delay, the client must render the move from A to B otherwise a slow connection would mean sprites just dart all over the place. At least with the client rendering the transitions you will only see whats called "rubber banding" https://en.wikipedia.org/wiki/Rubber_banding
  36. 2 likes
    What are you using on your server side and how do your client and server communicate? It sounds like you're limiting the answer to increasing the server <-> client speed, which is not really related to Phaser. Even if you optimize your server <-> client speed, as far as I know space_elevators is right, that's how it's done in multiplayer games. That's why if you have a bad connection players can seem to move around smoothly but many hits won't be taken into account, that's one of the reasons why lag is annoying in multiplayer games. The best solution, again as far as I know, is to interpolate between current position to last known position received from server, based on game-specific logic to make it look as smooth as possible. The faster the server <-> client speed, the less noticeable the interpolation will be, it'll only be noticeable when server <-> client speed is bad, at which point you have no better option but to at least move the players around smoothly to make the lag experience more playable. Naturally whenever you receive a new position from the server it overrides the previous position and the interpolation is recalculated.
  37. 2 likes
    There's 'Menu' button in the left top corner. It is not there when you run it for the first time and you see tutorial tips but shows up after couple of moves. There you can choose 'Download app' option.
  38. 2 likes
    Interesting, but how does hex frvr sends player traffic to native stores if there are no outgoing links to appstore nor google play in http://hex.frvr.com/ ? Everyone finds game in stores on their own? I tested links to stores in some html5 we made, but only 1% players clicked them.
  39. 2 likes
    you can make your shader inside the StandardMaterial with CustomShader 1. make your Custom diffuse : http://www.babylonjs-playground.com/#0GG6MR http://www.babylonjs-playground.com/#0GG6MR#1 http://www.babylonjs-playground.com/#0GG6MR#14 2. manage color in last step http://www.babylonjs-playground.com/#0GG6MR#4 http://www.babylonjs-playground.com/#0GG6MR#5 http://www.babylonjs-playground.com/#FC4IX#71 // cel - toon shade - vertex update [in progress]
  40. 2 likes
    hi about shaderBuilder in github : https://github.com/BabylonJS/Extensions/tree/master/ShaderBuilder documentation : http://cdn.rawgit.com/RNasimiAsl/Extensions/master/ShaderBuilder/Documentation/ShaderBuilderReferences.html it is just string builder so feel free to ask anything in shaderBuilder
  41. 2 likes
    Thanks. Looks like it's a bug with PointerEvents because if I set window.PointerEvent = null it falls back to mouse events and works. I opened an issue on GitHub. Mouseup also tracks onContextMenu up.
  42. 2 likes
    Wingnut has a dumb idea, as usual. Use a decal. Unfortunately, decals are not really dynamically updatable, and they are square/rect-only, at this point. If a decal could be shaped by the shape data of an extrudeShape, we might have a chance. But decals are a clipping festival inside their code, and I'm not sure if they can handle being ANY shape with ANY number of shape-points. They would HAVE TO match shape and size perfectly, or else they might wrap onto sides of mesh, too. John... this reminds us of Neshville, again, eh? (No, NOT the country music town in Tennessee USA). Nesh 108. Overhead cam, black background, screen-grab RTT frame, send it thru Nesh's image thickener, use as cap. [Wingy slides a texture into the gel-frame of a spotlight, and tries to use this "slide projector" to project an image onto a cap, but then laughs at himself. Then he accidentally stares into the spotlight and burns his retinas.]
  43. 2 likes
    mmmh... currently the cap the computed from the model shape barycenter what is fast (especially when the mesh is dynamically morphed) but doesn't fit the needs for people just wanting a fixed mesh and more versatility in the cap management. This means I will have to implement something like a staticCap feature, a cap computed from a triangulation algo with some predictible positions, so uvs, if possible. For now, the capping algo can't do this unfortunately. The best choices are either to use the powerful shaderBuilder, either to design your own cap from a mesh appart, then to merge it to a un-capped extrusion
  44. 2 likes
    FYI I have updated the EditControl. I have changed It to use pivotpoint rather than absoluteposition. This is based on some discussions here Also to get rotation values back in euler you can set editControl.returnEuler(true);
  45. 2 likes
    Watched both presentations. Great intros to WebVR with BJS. Thanks for your efforts @davrous @Deltakosh and @Meulta
  46. 2 likes
    Yes, that strategy has worked well for many game devs (and non-game devs) and it has significant advantages over licensing, but it has disadvantages as well. You have to do your own marketing and building an audience will likely be a slow process unless you have a lot of money for ads. It also works better for known game types that people search for in Google, like solitaire, chess, sudoku, But those games already have competition so you really have to produce something that's top notch. It's a longer, tougher, riskier route than licensing, but it can lead to a nicer destination if you're successful.
  47. 2 likes
    Hi Everyone, Career Cruising is looking for a Senior HTML5 Game Developer in Toronto. The full job description is here https://jobs.startupnorth.ca/jobs/1995608-senior-game-developer-at-career-cruising A bit about us and the role. We're not a startup, we've been running a SaaS business for over 20 years, since before SaaS was a thing Our clients are schools, K-12, and we also serve government and library clients throughout North and South America. In this role we're not just looking for a coder, but someone who wants to be part of the full product development process of building the next version of our K-5 products. Thanks!
  48. 2 likes
  49. 2 likes
    For when you can't figure out what your emitter is doing. GitHub / NPM / Demo // Show center and area game.debug.emitter(emitter, color = null, filled = true) // List properties game.debug.emitterInfo(emitter, x, y, color = null) // Count existing particles game.debug.emitterTotal(emitter, x, y, width = 100, height = 10, color = null, label = emitter.name)
  50. 2 likes
    BabylonHx is now even more powerful. Its compatible with both Snow and Lime !