Popular Content

Showing content with the highest reputation since 02/23/2019 in all areas

  1. 2 points
    Hello! My name is Brian and I'm the Developer Community Manager with Legends of Learning. Legends of Learning is a EdGame platform looking for HTML5, Unity or Construct 2 developers to build 500 short (5-25 minute) Math games. Payout ranges from $1000 - $50000 per game depending on performance. To date, $4 Million has been paid and 1000+ games have been built. Sprint open now with slots on first come - first serve basis. Average of $4000 per game. Creative control left entirely to the developer! To learn more about the company and opportunity and to submit your information, navigate here: https://www.legendsoflearning.com/interested-game-developer/
  2. 2 points
    I think you've maybe misunderstood how these frameworks get their output into your eyeballs. They *all* use canvas, 3d accelerated or not, its a canvas element they output to. If you want to learn how canvas and context works, dig in, its a great learning experience. If you want to get some meaningful output to the screen, use one of the many available frameworks. Creating these canvas rendering libraries is no small task, not small at all. It's a lovely technical task to undertake, but, its really tricky so you probably need to decide if you want to invest your time creating a rendering engine, or creating a game/app/whatever to use that engine. You should get an unbiased view here, plenty of people here have invested in making their own rendering libraries. If making a game is indeed your goal, use something like Pixi or Phaser etc to do the heavy lifting and focus your effort on making the game fun. Also, on nomenclature, I tend to differentiate between library and framework, although the line is often blurred. Phaser is a framework, it handles things like audio, rendering, user input, application structure etc. Pixi just renders stuff really fast, it is a library/module. To reinforce this, Pixi is contained within Phaser 2, and is just one part of it. Your outlook on coding dictates whether you are more drawn to using a framework vs consuming libraries and, in effect, creating your own framework from those pieces. Pros and cons to either approach.
  3. 2 points
    Hi @MyFault Thanks for the info! These are now both fixed. Cannon plugin and Tipsy Tower 3D template updated, so just download again.
  4. 2 points

    Project MWX - multiplayer RPG

    Before I even read your post, I looked at the screen and I was like "Tibia!!! ". Nice to see you used it as an inspiration. Played it for a very very long time as a teenager and played it recently too to see what changed. I do have one question though concerning NodeJS. I'm currently developing a multiplayer top down shooter from which I also use Tibia as my inspiration (understand the excitement now? ). But I replaced NodeJS after several failed stress tests with a multi threaded websocket server I have written in C#. The reason? NodeJS is single-threaded, meaning only one request can be processed at a time. For a small amount of players this don't matter that much, but if you got like 1000 clients sending requests all at the same time, the entire game could lag as hell. But if the server is multi-threaded, each request that comes in will be handled on a different thread so the main thread wont be blocking. In case of a multiplayer-game, this could speed up the process big time. So here is my question: How will you deal with that issue? Because I'm always in for a new multiplayer game and since I'm creating one myself, I know how hard it is. So I always have respect for those who dare to pull the mmo-scalibur out of the big rock. And since I know the pitfalls all too well, I'm curious how others deal with them.
  5. 2 points

    Changing quality in renderer?

    It depends a lot on what kind of project you have. There's no single easy method to swap to lower quality rendering. Rather you should find out what is the bottleneck in your project and then either optimize that or make it so that it's toggled off for faster rendering when needed. Some of the common bottlenecks include: - Texture swapping (having objects in the scenegraph that cannot be rendered with batches) - Too many graphics objects being rendered. - Too many text objects being updated. - Having too many filters. - Rendering the scene too many times.
  6. 2 points

    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...);
  7. 1 point
    Its more about RAF than about pixi ticker. Use https://github.com/pixijs/pixi.js/wiki/v5-Custom-Application-GameLoop if you want to get rid of pixi ticker and try doing those things yourself
  8. 1 point
    Hi, I have this set up (simplified of course) |-PIXI APP |--- FIrst Main Container |------ FIrst Child Container |------ Second Child Container |--- Second Main Container |------ FIrst Child Container |------ Second Child Container I need to find the dimensions of the renderer (PIXI APP) in one of the child containers, for positioning purposes in a pointer event. Unfortunately this.parent.parent returns null. One alternative I found is using getBounds() function pointerDownHandler(e) { console.log( this.parent.getBounds() ); }; Using the left, right, top and bottom properties returned by the PIXI Rectangle gives me the dimensions of the renderer. The follow up question is: Is this a safe way to get the renderer dimensions or I might run into some calculations problems at some point? Best, Rodrigo.
  9. 1 point

    Need help in resizing sprite sheet

    If your source sprites are smaller than you need (i.e. draw a box around the sprite in spritesheet using any drawing tool and it'll tell you how many pixels wide and high it is) then you'll need to repack them. I'm not sure what spriteSourceSize and sourceSize refer to, but they are different aspect ratios, so it isn't just that one is a scaled version of the other. Normally sprites refer to bounding boxes in the spritesheet, from which you can use portions of the sheet. If that portion is smaller than you need then you either need to enlarge it when using it (which will result in loss of image clarity) or make it larger in the first place.
  10. 1 point

    How to add additional filters?

    Hi community, I'm trying to add an additional filter to a sprite in Pixi v4 but somehow this only works when I add the filters at the same time like so: mysprite.filters = [new PIXI.filters.BlurFilter(), new PIXI.filters.NoiseFilter()]; My goal is to dynamically add and remove filters on the sprites at a later time. I have tried this (see below), but when I examine the "mysprite.filters" property, the debugger still tells me that there is only one filter on the sprite: mysprite.filters = [new PIXI.filters.BlurFilter()]; ... mysprite.filters.push(new PIXI.filters.NoiseFilter()); What is the correct way to add additional filters to a sprite? Thanks in advance. :)
  11. 1 point

    Bad Graphics Quality on Mobile?

    Your total canvas size goes over what is maximum on the device -> it renders it on lower resolution and then upscales -> blurry image. You should implement it so that the canvas size is the maximum the viewport can show. That way rendering happens only to the actually visible region and memory requirements for the canvas dont go over device limits. Looks like you're not moving the canvas when scrolling so fix should be just not making your canvas so large.
  12. 1 point

    Mobile Blur

    One thing I noticed with ios when using large textures (limit depends on ios) it will resize them to smaller size instead of just failing. Got this to appear on iphone 4 with sizes over 1024x2048 and with never devices those limits have gone up.
  13. 1 point
    What do you mean? You got a flash/javascript framework coming up? < interesting. Mine is doing fine but it's not for public release (missing too many things but working right for us)
  14. 1 point

    Asset management with Spine on the Web

    Daaaaayum so this worked: character.skeleton.findSlot('body').sprites['char/body'].texture = PIXI.Texture.from('spine/object/test/body.png'); Arbitrary PNGs can be used, this is even better than we could have hoped for! Thanks very much
  15. 1 point
    if you do mutable methods like these, dont forget that ObservablePoint has to notify transform: https://github.com/pixijs/pixi.js/blob/dev/packages/math/src/ObservablePoint.js#L52 , either you have to call "set" inside, either callback. using "set" inside those functions is good idea, because both Point and ObservablePoint implementations will be the same in that case. Points class in pixi aren't universal. We didnt add those functions exactly because different users want different implementations for their games. You're blessed for hacks
  16. 1 point
    you have to add more functions to Point and ObservablePoint prototypes. The thing is , its better not clone Observables because they affect transform cache calculations. myMixin = { add: function() {... return new Point();} // return point everywhere subtract: function() { ... } } Object.assign(PIXI.Point.prototype, myMixin); Object.assign(PIXI.ObservablePoint.prototype, myMixin); sprite.position = point1.add(point2); // be aware that its NOT ASSIGNMENT, its value copy in setter.
  17. 1 point

    Tilemap sprites have weird spacing.

    Found the issue: I forgot integer division isn't a thing in JavaScript.
  18. 1 point
    A bit late, but thanks again @ivan.popelyshev, I was able to make it work with the above code and examples. I had previously trying outputFrame/inputSize/resolution but kept getting errors that the uniforms were not matching; by checking the filter displacement example I was able to see I missed the highp precision. uniform highp vec4 outputFrame; uniform highp vec4 inputSize; uniform highp vec4 resolution; So the above works. For the record, I can now get the UV simply as uniform vec4 inputPixel; uniform highp vec4 outputFrame; vec2 getUV(vec2 coord) { return coord * inputPixel.xy / outputFrame.zw; } Without having to pass the dimensions manually.
  19. 1 point


    Well, I started the tutorial and I like it so far but it does not cover the most important part: the input. Like how to connect the tower to the turret for example, or how to get the miner starting mining. I guessed it had to do with the mouse buttons so I managed to got the turret powered on by fiddle around a bit, but I really had to puzzle with placing a wall or the miner. I have yet to figure out how to make the miner working. Also, why the account stuff? First thing I see when I visit the website is a login form on the homepage. It gives me the impression the game is multiplayer. But is it? The graphics are awesome though, kudos for that. So my advice for now is: Improve the tutorial by being more concrete about which input to use and where. Like in the Age of Empires 2 tutorial campaign, the narrator tells you in detail how to select a group of units and move them around; "Left click near the group of units and drag a box around them, then right-click near the blue flag" could not be more clear. Secondly, if the game is in fact not multiplayer, remove the form from the homepage. Otherwise you'd give people the impression you're hosting a multiplayer game and when they figure out it is not, they'll feel deceived and quit right away. That being said, it looks pretty impressive so far. Just work a bit more on your tutorial and the account stuff and you're good to go for sure. And if you are clueless on what to explain to players in your tutorial, imagine you give this to a 11 year old kid. He'll make sure to ask the right questions. 😛 EDIT: I was thinking about that form, maybe you should change the title "login" to "member area". That way you don't give the impression the game is multiplayer, but you can also keep the form right where it is and hint the player there is a member area. EDIT2: Again thinking about the tutorial. You use hints to tell the player how to do it if he is stuck. But don't, you should be straightforward about the instruction right away. Imho, a tutorial should not be a guess-game, but a straight-forward manual on how to play the game. I feel like the tutorial right now is not.
  20. 1 point

    BabylonJS and Android using Basic4Android

    No worries, hopefully it will help others get started.. It took me a few years to find Basic4Android when looking for a decent toolset to create Android Apps which offered enough flexibility to delve deeper if needed but not too much coding for codings sake. I had an idea for a 3D game a few years (4 or 5!!) ago and then went looking for a 3D framework. I came across BabylonJS and have just about achieved my goal for this now, thanks to you and David R + others along the way. My game is very much a 0.1 version of where I want to get it to, but as always there are other time pressures. 0.1 is just about viable - hopefully if there is interest I am hoping to improve on it rapidly.
  21. 1 point
    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!
  22. 1 point

    Angle towards Velocity

    If there's been at least one update, you can use enemy.rotation = enemy.body.angle; In the latest Phaser CE you can use enemy.rotation = enemy.body.velocity.atan();
  23. 1 point

    Propagating mousewheel event to parent?

    Hi there. Just did a similar test to Wingy, and looks like babylon doesn't block the events, http://www.babylonjs-playground.com/#C3ZPAS. Looking at your page source, I think the issue is that the scene is embedded in an iframe. You should be able to send the event (or a message) from the iframe to the parent either via window.parent or window.Postmessage
  24. 1 point

    Controlling the render loop

    There is a very good reason why I want to stop rendering if there is nothing new to render: I have complicated meshes (scientific data) to visualize with millions of triangles. If they are re-rendered 60 times a second, the cpu load goes up to 100%, my laptop gets freaking loud, crazy hot, and runs out of battery after one hour! If I have means to stop rendering, like for example with the simple solution by @aWeirdo above, the cpu load goes down below 5%, my laptop is quiet, keeps cool, and runs for eight hours on battery!
  25. 1 point

    Is there a double-click feature?

    From what I've seen of the code, there is no double click event. However, there is an extra parameter passed into "onTap" that denotes double click: // Was it a double-tap?if (this.timeUp - this.previousTapTime < this.game.input.doubleTapRate){ // Yes, let's dispatch the signal then with the 2nd parameter set to true this.game.input.onTap.dispatch(this, true);That means you can have a double click handler by doing something like: game.input.onTap.add(function(pointer, isDoubleClick) { if(!isDoubleClick) { return; } // Handle double click.});Then again, you could also use the native dblclick event.