Leaderboard


Popular Content

Showing content with the highest reputation since 12/09/18 in all areas

  1. 6 points
    Hi @Kevin Trepanier, From a FGL-Flash-era comparison the big changes are HTML5's shift towards revenue-split, syndication, multi-platform, multi-player. A good Publishing Partner (who can bring high volume traffic and share revenues fairly) is good to have but might take time (and a small catalog of games) to find? Sponsors. The "Auction" exclusive-upfront-fee licenses are rare (or rather the level of risk for a small team to build a game of sufficient scope to gain exclusive interest is hard to justify upfront). The "Gameshop" style non-exclusive upfront-fee licenses do exist, however the number of active sponsors in the market are few so overall revenue is limited (in comparison to slower but longer revenue-split). There are links on this forum to such sponsor portals, although it's a changing list with high churn so your own research will be necessary. Virality. As always, it's possible but improbable! But more contagious these days is the speed and quantity of rip-offs and clones. Any big-idea must be protected with (or leverage) a server-side strategy. Of course everybody's mileage will vary, most will quietly stall whereas a few successes are very real and highly deserved (and often humble!). I hope that's a fair and helpful overview.
  2. 5 points
    mentuat

    Y8 Destroys Your Games (and websites)

    Complaining about a bunch of IP infringing 'Mario' games being removed from a distribution network? Ballsy move bringing attention to that!
  3. 3 points
    Hello, My goal is to update a small part of a texture the fastest way possible with WebGL2, preferably using Pixi.js v5 (RC 3 is out). Am I right that a RenderTexture is going to re-upload the whole texture whenever there is a change? (this would not be good for a big texture, hence why I am looking for another method) I'm a complete noob when it comes to OpenGL, but I've googled a bit and figured that I can use gl.texSubImage2D() to upload just the part of the texture that I need to change. I didn't find a way to get the WebGLTexture object of a PIXI.Texture, so to be able to use that command I did something like this (not the complete code): renderer.addSystem(PIXI.systems.TextureSystem) renderer.TextureSystem.contextChange() // needed to do this loader.load(main) // and could not use gl.texSubImage2D() on tex before the loader called main function main() { let tex = resources['test'].texture let imgData = new Uint8Array(32*32*4) renderer.TextureSystem.bind(tex) renderer.gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 32, 32, gl.RGBA, gl.UNSIGNED_BYTE, imgData) renderer.TextureSystem.unbind(tex) } But I wish that I had the WebGLTexture available so I could avoid messing around with PIXI.systems.TextureSystem, because I don't really know much about it or when and how it should be used. I also want to read the previous data and change it, I figured it can be done with: gl.readPixels(0, 0, 32, 32, gl.RGBA, gl.UNSIGNED_BYTE, imgData) But that needs the frameBuffer to be binded first... Hence I tried to also use the PIXI.systems.FramebufferSystem, lol: renderer.framebufferSystem.bind(fb) //fb = new PIXI.Framebuffer(tex.width, tex.height).addColorTexture(0,tex) gl.readPixels(0, 0, 32, 32, gl.RGBA, gl.UNSIGNED_BYTE, imgData) But it was not that easy, I didn't even find a way to unbind it. But I guess it is not supposed to be used for my little problem...? Maybe there should be some Pixi.js functions to do this? Maybe something similar to this: texture.getPixels(x, y, width, height, ArrayBuffer) texture.setPixels(x, y, width, height, ArrayBuffer) I'm new here btw, this is my first post I don't have much Pixi.js experience yet, but I really like it.
  4. 3 points
    No bans are happening here (yet). @5neia_opo2@google-mail.ooo, try to understand the frustration people are experiencing. A new user came to the forum and in nearly every post they made trashed the project they were asking about. A lot of people here put in a lot of time and effort to not only to develop the project, but answer questions here as well. I was definitely frustrated reading your responses as someone who has put 6+ years of their life into this project. @botmaster did a poor job of handling that situation, but has apologized and I'm sure will do better in the future, as will you as well. Let's all be adults about this, acknowledge we did something wrong, and move on. @5neia_opo2@google-mail.ooo you are free to ask any question you need help with, but I definitely recommend reading through some tutorials, the examples, and checking the API docs before asking questions. It will often lead to you finding the answer yourself, and there will be less fatigue for the people answering here on the forum. I'd also recommend you approach things you don't understand, or decisions you disagree with, with a more open mind. Try to learn and grow the new library, not all libraries are alike and different problem spaces call for different solutions. Having a bad attitude is a good way to earn ill-will in the community and you may no longer get the help you expect if you are ungracious about it. When you find inconsistencies, or things you think should work differently, then change it! Pixi.js is an open source library built by the community. Everyone gets a chance to make the library better by contributing to it. The best way to get problems you have fixed, are to fix them yourself.
  5. 3 points
    obiot

    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
  6. 3 points
    I had some similar problems with this yesterday so I wrote up the workflow I found to work step by step. Hope this helps anyone else who finds this thread in the future. https://www.adammarcwilliams.co.uk/creating-bitmap-text-pixi/
  7. 3 points
    I have completed writing my free JavaScript course (begun in 2011). It is in two main parts. The first is aimed at complete beginners to introduce the whole idea of programming. It shows how to get some simple examples working and introduces some HTML5 as needed to make a platform for running the examples. It covers some general programming concepts such as writing requirements and testing against them. Part 2 is a more systematic exposition of the language, up to some of the more recent capabilities such as local storage and image processing. It is available at https://www.grelf.net/jscourse/index.html That link is to a contents page so that those who already know some of it can jump in to any particular topic of interest.
  8. 3 points
    enpu

    Bezier curve support added

    Panda Engine 2.12.0 now supports bezier curves with new Curve class. Here is interactive example, where you can see bezier curve in action: https://www.panda2.io/examples#curve-handles You can modify the curve by moving the start and end points as well as the two control points. Here is also example on how to use Curve together with Tween: https://www.panda2.io/examples#curve-tween Documentation of Curve class: https://www.panda2.io/docs/api/Curve
  9. 3 points
    bob_on

    [WIP] Warlock's Quest

    Hello! I've been working on my pseudo-3D ray-casting engine and I think it's time for some feedback. This is a 3rd person dungeon crawler game. You play as a Warlock on a quest to save your princess Evil Lord from those no-good humans. You must defeat 5 dungeon bosses to win the game. Each defeated boss grants you an additional minion to summon in battle (5 total). Each summoned minion costs health. The Warlock slowly regenerates health over time, but player/minion damage to enemies heals the Warlock. The dungeons are spread across a hub map, The Forest. The game is made entirely from vanilla JavaScript (no libraries or frameworks or engines), HTML5, and CSS3. Game Link: Click Here To Play I've currently only completed 3 of the 5 dungeons. In ascending order of difficulty: Goblins, Elves, Nature. Not sure what Dungeon 4 enemies will be, but Dungeon 5 will be the humans who defeated your Evil Lord and defeating this dungeon will win the game. Each dungeon has 2 unique standard enemies and 1 unique boss. The Big Things To-Do List: Dungeon 4 & boss Dungeon 5 & boss Music Balancing I would like feedback in these specific areas, but all feedback is welcome: Performance Mobile/Touch Controls Game Difficulty Is it fun to play? Programmer art aside, is it visually appealing/interesting? Thank you for your time and I look forward to your feedback. Thanks! Bob
  10. 3 points
    -AAG-

    AAG batch of games #4

    Another year another batch of games. This was a slow year and the year of the sequel too. Joe Lost 2 Joe is lost again! Please help him. ABCya exclusive. Playable only on desktop unless you have a mobile account. PLAY Light On 2 The exclusive sequel to Light On only on ABCya.com! Playable only on desktop unless you have a mobile account. PLAY Bridge Hopper Hop from bridge to bridge to eat all the carrots or Bunny will cry ABCya exclusive. Playable only on desktop unless you have a mobile account. PLAY Money Land 2 Back to Money Land! In this strange new area your gravity will flip every time you stump a critter. ABCya exclusive. Playable only on desktop unless you have a mobile account. PLAY Jon Lightning Jon can move too fast for his own good. Help him. A port/adaptation of one of my old windows games under the Alexitron banner. PLAY Boxed 2 More Boxed fun. Now with metal boxes, moving walls, and holes! PLAY Lost Joe The none-exclusive edition of the Joe Lost games by popular demand. PLAY That was 2018 for me. Hope you guys had a good year as well. You can check out the rest of my catalog at www.gamesaag.com. I am thinking of removing the freebies section altogether. A question for fellow developers: I was thinking about making a mobile app with a compilation of some of my games and then continue to add to it as I make more. Anyone tried something similar? Simple puzzle games seems to be what I do best but I don't mind to experiment. I was thinking about 1080p resolution and hi-res graphics though I really like the style that I have been developing, maybe I'll try to reproduce it with 3d pixels instead. Thoughts? For GameMaker: Studio users: Tried to get into Studio 2 and just couldn't. That new user interface is an abomination and the node based events, I just don't get it. I hope they make a classic shell in the future for old farts who have been using GM for over 10 years. Hard to adapt now.
  11. 3 points
    abhivaidya

    It's Christmas

    Hello, Merry Christmas and a Happy New year to everyone. Made a quick little scene using Kenney's holiday pack. Do check it out. Had planned a lot more but couldn't finish in time for the festival. Anyway here it is : It's Christmas Happy holidays! Abhi
  12. 3 points
    rich

    New forum

    I'll provide a zip of all attachments when you request it, you can decide if you want to do anything with them or not after that.
  13. 3 points
    Deltakosh

    New forum

    I'm in full control with no dependency at all this time. I wanted to use the oss offer of discourse but ultimately I picked a paid subscription because I wanted things like custom domain, etc.. Technically the forum is a docker app that I can run where I want so this should be futureproof
  14. 3 points
    JohnK

    New forum

    A vote to leave or remain causes a flashback to the Brexit referendum here in the UK. As I trust Deltakosh and Jerome more than any government leaders I am persuaded by their reasoning so I will 🍃.
  15. 2 points
    That's exactly why a year ago we've added this awesome API into v5. Right now v5 is almost there, and you can experiment with v5-rc3. I really hope that you like that system because I made it exactly for cases like yours, it was VERY difficult to explain to everyone in the team and get an approval. People need access to textures, authors of PixiJS cant possibly know everything that user wants. This is how you get GLTexture: https://pixijs.io/examples/?v=v5.0.0-rc.2#/textures/gradient-resource.js if you call "baseTexture.update()" somewhere before the frame, it will notify TextureSystem that texture needs updating , and then when one of pixi renderers asks to bind that texture, it will call "TextureResource.upload" method. That's how it happens: https://github.com/pixijs/pixi.js/blob/dev/packages/core/src/textures/TextureSystem.js#L139 According to our main image resource, https://github.com/pixijs/pixi.js/blob/dev/packages/core/src/textures/resources/BaseImageResource.js#L64, you can track the state not only by dirtyId, but also by "glTexture.width/height" . Basically, if width and height are wrong you upload whole texture, otherwise you go for subImage. As for previous data, readPixels is tricky thing, its the only synchronous operation there. When I use it, I call it only after whole render(), only one time. I suggest to maintain your copy of teture independently from glTexture: in an array or in canvas in your TextureResource, that way you wont need to call readPixels(). SUMMARY: If glTexture width and height are wrong, upload whole array. Otherwise modify part of array you need, put that part into temporary array and call subImage. Dont forget to set width and height to correct values. and HAPPY DEBUGGING!
  16. 2 points
    TheBoneJarmer

    The future of web games

    Oh yeah, I remember reading that discussion. Well, to give my two cents. I think that discussion was pointless to begin with. I understand the question since there are not many popular hmtl5 games, but I would not call it dead, far from it. Web is a platform like PC, console and mobile. Most game devs use an engine like Unity3D or Unreal and export their game to platforms they can support. But games get exported more often to platforms where their game can run native because most games are too big to run smoothly in the browser. I mean, just look around and see how many devs actually created a 3D game in html5. Barely. And if someone did, is it probably low-poly. But that being said, that would be the only con I can think of. The biggest pro, and the reason I decided to go for HTML5 game dev, and not Unity or Unreal or any other engine, is because it is soooo damn easy compared to writing your game in C# or C++. I mean, all you need is a good IDE for web dev and your browser. And players don't even have to download your game. Heck, if you want to, you can put your game in a cordova container and export it to Android or iOS as if it is nothing. And just look at all the available resources. There are engines like Game Maker or Construct that allow you to export your game easily, as well as lots and lots of frameworks like Phaser, Pixi, MelonJS and so on. And also, since your game is actually a webpage, it can be integrated easily in many front-end technologies like Angular, ASP.Net, PHP and even NodeJS with Electron. That is also a very powerful benefit. Not to mention webhosting. I mean, a basic webhosting service is enough to host your game on since html5 games do not tend to be gigabytes big. Give it time. I admit I cannot think of a popular html5 game, but I am sure other forum members can fill me in on that one. I do see some gems once in a while. But those are often not only for web, but native too. They just have a web variant. You wont find yourself a whole RPG, but smaller games. But I like those, I am often very tired after work and to be able to play some small games while being half braindead is awesome, and very relaxing.
  17. 2 points
    I am making UI Components Framework for Phaser 3, that is driven by JSFL-generated jsons and atlases. It means that you can build your UI in Abode Animate, export it with given script, and forget about manual code positioning and building stuff! Please, try it out. https://xense.github.io/phaser-ui-comps-docs/tutorial-showcase.html Docs, examples, tutorials: https://xense.github.io/phaser-ui-comps-docs There are two basic things in this framework. First is ComponentClip, which is a view instance, it is recursively self-build by provided json and atlases. Second is UIComponentPrototype, which is clip controller. It can be easily extended to create any components, windows or whatever you need. Essential meaninig of it is that it doesn't need a clip to exist always. For example, you can change states of a root clip, and child clip can get new clip instances, ore lose them, and nothing bad happen. Some base components are already included UIButton has 4 states, "up", "over", "down", "disable" UIButtonSelect same as button, but behaves like checkbox, has 8 states, by adding "_select" suffix to UIButton's states when selected. UIButtonRadio Selectable buttons, that can be grouped to select only one of them. UIButtonDraggable same as UIButton, but also emits drag event, drag bounds can be self externally. UIScrollBar vertical or horisontal bar with draggable thumb and prev/next buttons. UIProgressBar Setup only start and end elements positions, scale, rotation or alpha, and this component will interpolate them according to provided progress value. UIScrollPanel Helper for scrolling any element with UIScrollBar. UIContainer Base container component to add other dynamically created components inside. Can be easily extended to create any types of lists, for example. I'm still working on new components and extending existing functionality. Tell me, would you use it, what other components you may need, and whatever you think about it. Any feedback is appreciated! Also I'll be thankful for any collaboration. Available at GitHub and npm
  18. 2 points
    b10b

    ctx.clearRect() not working with Image.

    @James432213 hi, many issues here, all solvable. 1) The function named "canvas" rename this and avoid some confusion, call it "init" or similar 2) doKeyDown function has parameter "e" but references "event" in the switch - be consistent. 3) the functions doKeyDown, updateCanvas, drawPlayer are scoped "above" the "init" function, so they can have no easy reference to the "canvas" variable defined within "init". Notice also the name collision of "canvas" if we ignore step 1. Easy fix is to move these function declarations inside the "init" function. 4) There's nothing wrong with ctx.clearRect Some basics in how to debug your code will be beneficial, in particular the developer console (F12) is great, and using "console.log" can send helpful messages there from your code. Use that as a start towards watching the flow of your code when it runs, and where things are not actually working as might be expected on a first draft of code. This will lead to more advanced debugging techniques and more elaborate (and working) code.
  19. 2 points
    Do you draw something else than the video to canvas? If something taints a canvas then it stays tainted no matter what is rendered in the future. Or it might be due to stream becoming unavailable at some point for short duration and that could cause tainting (though the bug report I found on this should be already resolved, it was 5 years ago). Pretty sure it's some kind of edge case in security constraints which causes canvas to become tainted (by something), which causes security error when pixels are read from it.
  20. 2 points
    -AAG-

    I hate designing levels!

    There! I said it! 😡
  21. 2 points
    mattstyles

    I hate designing levels!

    Procedural generation can be a load of fun, but its a butt-ton of work to get working well. You could even use a genetic algorithm (GA) to create levels, have an automated actor play them, test the 'success' of the actor using fitness functions and then loop that process until you get levels (again, based on a heuristic function) that are fun to play. The up-shoot is that you can, potentially, create a near infinite number of levels like this. Or at least generate a manageable amount (say, 30) and manually curate them. Depending on how good your heuristics are you can create levels that are harder or easier for humans to play. It's a ton of work though. So depends on your mindset. Some crazy people find that a wonderful coding challenge.
  22. 2 points
    jonforum

    Fading trail

    What about create you gradient in other canvas. https://www.w3schools.com/graphics/canvas_gradients.asp var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); // Create gradient var grd = ctx.createLinearGradient(0, 0, 200, 0); grd.addColorStop(0, "red"); grd.addColorStop(1, "white"); // Fill with gradient ctx.fillStyle = grd; ctx.fillRect(10, 10, 150, 80); and than, create `generate` a texture from this canvas context ? Am sure it can work ... but at the expense of performance. I do not remember which one, but there is a rpgmaker plugin that used this process with pixijs.
  23. 2 points
    I've got a situation my physics simulation is running at high framerate (60fps), but some devices my app runs on cannot run the graphics (PIXI) at 60fps without causing the physics simulation to stutter and jump, causing undesired artifacts. So, in pursuit of performance, I shoved the physics simulator (in my case, matter.js) into a web worker, but then still found that some devices couldn't handle updates at 60fps in the main thread. So I started setting an interval to apply updates from the simulation to PIXI at a fixed rate - 30 fps to start. However, sometimes even on some devices that was unsustainable. So, the question came down to - what FPS *should* my app run at? And when I say "run", I'm talking about changing the position of PIXI objects base on updates from the physics simulation, not about changing the speed of the PIXI's ticker. Since the speed at which I could apply updates from the physics simulation and still achieve sustainable render speeds without lagging varied from device to device, I decided the best way to decide on the FPS to run at would be ... let the app itself decide at run time. So instead of coding a fixed FPS, or giving the user a slider to adjust, I let my app measure and adjust it's FPS based on what it measures as sustainable while it's running. Enter my solution for my app, FpsAutoTuner: https://gist.github.com/josiahbryan/c4716f7c9f051d7c084b1536bc8240a0 - contributed here to the community in case it may help someone else solve a similar problem. It's framework-agnostic, no external dependencies, written as an ES6 class, but could easily be rewritten as a ES5 if you wanted. FpsAutoTuner works by measuring the FPS (which you tell it by calling `countFrame()`) and then every so often (at `tuningInteval`ms), it compares that measured FPS to the `fpsTarget`. When the measured FPS goes below `fpsTarget` less `tuningMargin`, the `fpsTarget` will be decreased by `tuningRate` and the `callback` will be execute with the new `fpsTarget`. Likewise, when the measured FPS exceeds `fpsTarget` less `tuningMargin`, then `fpsTarget` will be increased by `tuningRate` and `callback` will be called with the new target. Example usage: // Somewhere at the top of your file import { FpsAutoTuner } from './FpsAutoTuner'; // Then later in your code, probably in your constructor of your game object this.fpsAutoTuner = new FpsAutoTuner({ fsTarget: 30 callback: fps => this.setFpsTarget(fps) }); This assumes that you have a function called `setFpsTarget()` on your class, probably that does something like this: // This is just an example method, on your own class... setFpsTarget(fps) { clearInterval(this._fpsTid); this._fpsTid = setInterval(this._render, 1000 / fps); } Then later in the rendering portion of your code: // inside the render loop of your code, call: this.fpsAutoTuner.countFrame(); That's it! Your app will now automatically adjust it's FPS as needed when it detects lower/higher frame rates available. (FpsAutoTuner automatically starts it's auto-tuning timer in it's constructor.) There are plenty of options you can pass to FpsAutoTuner to tweak it - they are all documented at the top of the gist. Specifically of interest, you can set `tuningInterval` (default 5000ms) to change how often it measures/changes the FPS. This all has just been a humble attempt to give back to the community. Use and enjoy. Contributions/changes/suggestions to the gist are welcome! Download FpsAutoTuner from GitHub here.
  24. 2 points
    I've just created a short tutorial for PixiJS that explains How to create & use sprite sheets with a few mouse clicks Use animations from sprite sheets (much easier than enumerating all sprites manually....) Optimize sprite sheets for smaller size and faster loading (up to 50%) Visually edit pivot points The full tutorial including source code is available from here: How to create sprite sheets and animations for PixiJS
  25. 2 points
    jonforum

    How to add additional filters?

    i remember have a lot of issue by using the prop mysprite.filters What If you use instead mysprite._filters = [...]; On my side no issue with multi filters or my manager but am no using the hell setter . mysprite._filters.push(new PIXI.filters...);
  26. 2 points
    Jolly Bear Games is looking for an experienced HTML5 JavaScript/TypeScript programmer to assist our successful casual game team. We are an independent California-based casual game developer and our games are played by MILLIONS of people all over the world. Candidates are not required to be local, but they will be expected to work remotely and should be comfortable using technology to stay in close communication with the development team. http://www.jollybear.com Job Description Work with the Jolly Bear team to implement HTML5 games using TypeScript and PixiJS (or other similar 2D game engines). The job will involve porting existing Flash games to HTML5 and also creating new game titles. Experience Required * At least 3 years of production experience with HTML5 development using TypeScript or JavaScript (experience with TypeScript is highly desirable). * At least 1 year of game-specific experience. PixiJS experience is preferred. * Experience with Flash ActionScript 3 using Flash Develop or Flex/Flash Builder is highly desirable. Skills Required * Expert in JavaScript/TypeScript programming. * Ability to optimize graphics-intensive code to run smoothly in all targeted browser environments. * Familiarity with PixiJS or other 2D game engines. * Familiarity with various Social Networking APIs. * Proficiency in Flash ActionScript 3 programming. * Excellent verbal and written communication skills. * Well-organized and systematic in approach to tasks. This is a contract position. If you are interested in this position, you should email your resume to jobs@jollybear.com Submissions must include links to HTML5 game projects that you have completed.
  27. 2 points
    enpu

    Spaceship 3D game template

    New Spaceship 3D game template available for download! Play: https://www.panda2.io/templates/spaceship3d Download: https://www.panda2.io/templates#spaceship3d
  28. 2 points
    @Wolfsbane Storage class uses local storage. The reason why the build failed was that the code was placed outside of the module. // CODE OUTSIDE OF THE MODULE game.module( 'game.main' ) .body(function() { // CODE INSIDE THE MODULE }); The build process needs to go through the module file, so it can know which modules to include in the build (if module requires other modules). It uses Node and there is no local storage available, so that's why it throws "localStorage is not defined" error. Build process doesn't run the module's body function, so that's why you should put all the code there.
  29. 2 points
    Play Link: http://superbrawl.herokuapp.com/ SuperBrawl is a project that I've been working on during my spare time for quite a while. It is a real-time online multiplayer brawler based on Glitchbuster (even though the code base has evolved quite a bit to allow for multiplayer). There are currently two game modes included: Deathmatch: win the round by shooting anything that moves. 20 points for every hit, and 100 points for every frag. King of the Hill: points are only awarded to whoever is wearing the crown. You need to find the crown and keep it on your head. But be careful, all the other players will focus on stealing it from you. At the end of a round, a player will win and the best action of will be played. Of course, the game features several weapons that will help you dominate your opponents: The shotgun is your default weapon. It deals very little damage and requires accuracy. It can however be useful when your opponent is low on health The plasma gun fires plasma bullets straight at a high rate. It can be used to spray and prevent an enemy from moving The grenade launcher fires grenades that explode as soon as they come in contact with another player The machine gun fires three bullet bursts, allowing for quick sprays The rocket launcher obviously fires rockets that deal a lot of damage when used wisely The flamethrower is useful for setting things on fire for a few seconds. It is a great defensive weapon A shield is also available for pickup, allowing you to take 3 additional hits. You can play the game at http://superbrawl.herokuapp.com/ (the server is hosted in America, so if you're located in Europe, you may experience a bit of lag) If the server is empty, you can add/remove bots from the pause menu (press ESC) Any feedback is welcome. The game is still a work in progress that I really enjoy developing, so I'm always happy to include more weapons, tweak the difficulty, improve the bots AI, add game modes, add more public servers, fix bugs... anything! You can find gameplay videos on my Twitter feed here, here , here or here (I'm not sure how to include videos in a post, so these will have to do for now) Now on the technical side, there are also quite a few things that are pretty cool: Public brawl: the brawl is always running on the central server, meaning you can join it and invite your friends, or wait for anyone to join, or even add bots while waiting Self-hosted WebRTC game rooms: if the central server is too laggy for you, you can always host a game on your laptop and let people join (assuming they can establish a WebRTC session with you) Bots: no friends to play with? Just add a few bots to any game room! The AI is smart enough to make informed decisions (attack a player with less health or a bad weapon, retreat and get health or a shield, pick up a weapon before attacking, focus on the crown...) Death cams: when you get fragged by another player, the action will be replayed to you can see how things went wrong (press ENTER to skip) Ingame chat: if you feel like bragging about your latest frag, press Y and type a message for the chat Procedurally-generated maps: every time a round starts, a new map is generated by the server, so you can't just learn a map by heart Ingame video chat: turned off by default, if two players have the setting turned on, their webcam will be Mobile friendly: the game has mobile-specific controls, so if your phone can handle HTML5, you should be able to join the brawl The game relies on socket.io for client-to-server communication, unless you're hosting a game room over WebRTC, in which case socket.io is only used for signaling. Other libraries I'm using are browserify, Howler.js, PIXI.js, Mustache.js, chance.js and probably many others that I've forgottten I also intend on writing a series of articles about the things I've learnt while developing this game. Topics should include architecture, networking, synchronization, WebRTC, AI. Let me know if you think you'd be interested in such articles.
  30. 2 points
    alex_h

    Deperately needs a work

    Just a tip, if you make yourself sound desperate then you open yourself up to a stronger chance of exploitation. Employers may well offer you less money because they know you are likely to still accept.
  31. 2 points
    bestgames

    Monetising HTML5 games

    @totor Yes, exactly! Gamedistribution is not a reliable company! Their monthly revenue is millions euro .. and do not want to pay developers, this is stupid! Gamedistribution is Turkish based company. GD owner https://www.linkedin.com/in/eerturk/ and in 2017-2018 was acquired by Orange Games. https://tunnl.com/#team They earn millions euros and they don't want pay a few hundred bucks?? Their business model is based on 33% revenue share with fixed rate = this mean when you will have more, more games as publisher and your games will serve more ads impressions Gamedistribution will earn more money than you. This is classic PONZI scheme where they get 68% Adsence earnings - throught DoubleClick actually Google AdManager. Now their company has investment fund called "Azerion" https://www.azerion.com/, you can understand why they don't want pay or pay after half year. (https://www.zonebourse.com/ADUX-23160243/actualite/AdUX-a-leve-1-5-million-d-euros-Azerion-a-22-4-27642661/) They just need over €10M - €50M on investments and developers / publishers are for them only "money makers". Some example: Gross revenue €100 = Adsence give them €68, They take €38 as fee and your revenue will be €30 (their system "optimization" system Tunnl calculated your revenue 2x smaller than your real/actual revenue from Google Adx ads) = if it pays you at all HAHAHA @GameDistribution Support, after they have €68 and you nothing... With more, more ads impressions their system Tunnl started calculated smaller and smaller revenue, 2x smaller, 3x smaller (on 1,000,000 impressions you will earn almost the same revenue as on 4,000,000 impressions, but they get many more money)
  32. 2 points
    Hi, I made an exact port of the 40 year old classic arcade game "Tailgunner", which I did together with Graham Toal. Tailgunner is a vector game programmed by Dan Sunday of the company Vectorbeam in 1979. The game is very simple, because it is so old, but this JavaScript conversion of the game is somehow special, as it is not a reprogramming or achieved by a conventional CPU emulator, but it is based on so-called static binary translation. Back in 2004, Graham Toal wrote a really cool program, with which he automatically translated the original game code from the arcade game's machine language to C. With Graham's help I ported his generated C code to JavaScript and added a graphical HTML5/JavaScript environment. You can try it here: http://members.aon.at/nkehrer/tailgunner/tailgunner.html Here is also is a screenshot to give you an impression of the game: Bye. Norbert
  33. 2 points
    Hi! it should work. Most of the time, some DOM element blocks all mouse events from reaching the canvas.
  34. 2 points
    Hi @Dilshad Roshan Please post your question here: https://forum.babylonjs.com/
  35. 2 points
    enpu

    p2.js plugin

    p2.js plugin has been updated to version 1.2.2 and now includes more example scenes: Bounce - shows how to bounce two bodies when they collide Groups - shows how to use collision groups
  36. 2 points
    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!
  37. 2 points
    JackFalcon

    BABYLON.Augmented Reality ...

    looking into this... babylonjs is no longer at this location on Ar.js: https://github.com/jeromeetienne/AR.js/tree/dev/babylon.js @jeromeetienne, friend, any info on AR.js + Babylon status? Also @brianzinn is right - original solution cross-matrix calculations (because I don't understand matrix inversions..), but then jerome etienne figured out how to make them babylon specific (details above). Old, but still have a backup if needed...
  38. 2 points
    enpu

    ThreeJS and FBX file

    Three.js plugin has been updated to version 1.5.0 and it now supports FBX files! Download: https://www.panda2.io/plugins#three Here is small tech demo i made using animated FBX model: https://www.panda2.io/demos/3dbunny
  39. 2 points
    enpu

    Perfect Box game template

    New Perfect Box game template is now available for download! Play: https://www.panda2.io/templates/perfectbox Download: https://www.panda2.io/templates#perfectbox
  40. 2 points
    Telinc1

    How do I update console.log?

    console.log just outputs a static message to the console. You can't update it from your game code. The lazy solution for this would be to log the body every frame (in the update method). That'd work but it'd clutter the console really quickly and is probably not what you want. The Chrome developer tools support a feature called live expressions - it's the eye icon right above the console. If you can get to your player from the window's scope, you can make a live expression which updates it for you. The easiest way would be to temporarily store the player as a global variable from your code. Alternatively, you can store your game and use the Scene Manager to get your Scene, from which you'll be able to get your player.
  41. 2 points
    Deltakosh

    GUI Fill

    It does not work because of line #19
  42. 2 points
    DylanD

    GUI Fill

    So i got the stuttering under control. I believe it was happening because i tried to use 0.01 pixels which doesnt work... New Test: https://www.babylonjs-playground.com/#7EPK2H#6 Not exactly what i want yet but almost there. Here is another test: https://www.babylonjs-playground.com/#7EPK2H#7
  43. 2 points
    Deltakosh

    New forum

    @NasimiAsl it would be awesome if we can get the backup from Rich and reinject the data into a new read-only category I can create in the new forum (like archive) or on some website (not sure I want them in the new forum as they will not be related to any user and not flagged as answered) So if you can do that please do:)
  44. 2 points
    rich

    New forum

    No-one has ever, ever, asked me for a copy of the forum database. So this is most certainly not a 'long time known issue'. You can have a copy of the MySQL db if you like. I just can't (and won't) include the users table, so it's useless for migrating to another host, but fine for extracting posts from.
  45. 2 points
    Deltakosh

    New forum

    I agree with you all. If someone comes with a way to save all data In the meantime I offered to pay for this forum to keep it alive for our archive
  46. 2 points
    Wingnut

    The Wingnut Chronicles

    Hi gang! Well, here ends The Wingnut Chronicles, and this forum. 1,459 replies 96,174 views Not quite 100,000 views, but close. This forum is going READ-ONLY soon, so maybe the views will still increase into 2019. Come check out our new forum at... https://forum.babylonjs.com/ I'm still on the road to the new forum. I snapped some pics... http://urbanproductions.com/wingy/ipad_snaps/ip04/viewer.htm By the way, good whiskey helps... for getting a lens flare un-stuck from your tongue. Cya at the new forum! It ROCKS!
  47. 2 points
    I do something just like this for a rewind + collision check feature. The trick is to use mesh.computeWorldMatrix(true) on the meshes that are being checked for collisions after being moved. This is the internal operation being performed by scene render that makes the collisions work (among other things, such as rendering). I think this is needed whenever moving and positioning objects in-between frames, esp if the object is being moved multiple times and checked for collisions before the next render. In the case of my rewind collision check, I never actually wanted to render the object in the rewound position -- I just needed the object to be in the correct state so that babylon could do the math for me. For me that meant copying its original position, moving it to a new position, invoking computeWorldMatrix, doing the intersection test, and then restoring it to the original position. While not identical, this does come out somewhat similar to the notion of moving an object (or a copy of that object) until it collides, uncolliding it, and then having it in the uncollided position all before actually rendering anything. Here's the PG w/o scene render in the collision checks: https://playground.babylonjs.com/#1UK40Z#8 If I understand what you have made, then this in theory will never turn the torus white.
  48. 2 points
    aWeirdo

    Please Help with this...

    Hi again, @i_tejas19 Afraid I don't use blender, ( do you have a .babylon file ? ), but I suggest adding it after import Here's an example: https://www.babylonjs-playground.com/#XCPP9Y#751 Side-note, this one only uses a single ActionManager Short snippet: var labelActionManager = new BABYLON.ActionManager(scene); labelActionManager.registerAction( pointerOverAction); labelActionManager.registerAction( pointerOutAction); function addLabelToMesh(mesh) { if(mesh.name){ // Do some check if we should add label to this mesh.. mesh.actionManager = labelActionManager; } } // Meshes BABYLON.SceneLoader.ImportMesh("Rabbit", "/scenes/", "Rabbit.babylon", scene, function (newMeshes, particleSystems, skeletons) { // Rabbit.babylon only contains a single mesh. // Simulate the file has multiple meshes, scale & position them. newMeshes[1].scaling = new BABYLON.Vector3(0.1, 0.1, 0.1); newMeshes[1].name = null; // Don't add label for rabbit 1, purely for demostration. var meshes = []; meshes[0] = newMeshes[1]; meshes.push(meshes[0].clone("rabbit 2"), meshes[0].clone("rabbit 3")) meshes[1].position = new BABYLON.Vector3(-5, 0, -2); meshes[2].position = new BABYLON.Vector3(5, 0, -2); // (Attempt to) Add label for each mesh in 'meshes'. meshes.forEach( addLabelToMesh); }); Off-topic: Thanks! Yes, Battleplanes is purely made with babylonJs, It's just a small side-project i work on once in a while, still far far from finished
  49. 2 points
    trevordev

    AmmoJS support

    Hey, AmmoJS physics plugin has been added to Babylon preview. It should work well with composite meshes which we've had trouble with in the past with other engines. Let me know if you find any issues or have any feedback. Note: Support for motors, soft bodies, other ammo specific features are not yet supported so yell if you need anything specific for your project. vid.mp4 Examples: Basic impostors: https://playground.babylonjs.com/#7149G4#31 Loading mesh and colliders from file: https://playground.babylonjs.com/#66PS52 Loading and adding colliders manually in Babylon: https://playground.babylonjs.com/#FD65RR Loading and adding collider with joints and pointer interactions: https://playground.babylonjs.com/#DGEP8N WebVR grabbing and throwing: https://playground.babylonjs.com/#ZNX043#1 Docs: https://doc.babylonjs.com/how_to/using_the_physics_engine
  50. 2 points
    Just to say that destroy is now working in Phaser 3 official release as follows: this.phaserGame.destroy(true); Thanks very much! This is going to be awesome. Teaching my kids phaser at the moment too!