enpu

Panda Engine 2 development

300 posts in this topic

@enpu

 

One of the ( many ) reasons I stopped using ImpactJS and started to get in touch with Phaser / Panda, was the lack of proper native WebGL support of that engine. So to hear that you removed WebGL support from Panda is actually quite sad. But you wrote something about a plugin? Will there definitely be a WebGL plugin for Panda 2.0, that will be maintained and updated on a regular basis?

Share this post


Link to post
Share on other sites

Sorry i have been super busy with my projects, so i haven't been very active here.

Hopefully will soon have some more time on Panda 2.

 

@Ninjadoodle

 

Thanks for the list, really appreciate it!

 

1. Images used in the pre-loader don't work properly with Hires/retina.

Created new issue for this one, thanks!

 

2. On iOS 9, Panda fails to stay in Landscape. When changing back to portrait, the game never changes back properly (I posted screenshots in this thread).

There seems to be a bug in iOS 9 that gives wrong window dimensions.

Try this for a quick fix:

window.addEventListener('resize', function() {    if (game.device.iOS9) {        setTimeout(function() {            game.system._onWindowResize();        }, 500);    }});

(Remember to pull newest develop version to add iOS 9 detection.)

 

3. I'm not sure if 'buttonMode' is implemented. This is really useful for point and click games, played with a mouse 

Panda 2.0 is focusing more on mobile game development, so buttonMode won't be implemented.

You can easily add buttonMode to your game, just change your cursor using JavaScript (Google for more info).

 

4. I tried loading my game on iPad Air and all the graphics look completely messed up on screen. Things work fine on iPhone 4s and iPhone5s, but on Galaxy S5 only the low res assets seem to be loaded (i have @4x enabled). This issue seems to be cause by Hires - I sent you a test-case a while ago ( I can resend if you need ).

Does this only occur, when using Hires? Can you resend the test-case? Thanks!

 

5. Loading bar doesn't seem to stay centred when changing orientation (320x320px game).

Can't reproduce this one. Would you have a test-case?

 

6. Audio now doesnt work in Safari (iOS9).

Audio is actually working on iOS 9, but the FIRST audio must be played from mouseup event, before it was mousedown. (Thanks Apple!)

 

 

@Pattentrick & @zakhov

 

Spine and WebGL support are planned to be released as plugins to Panda 2

zakhov likes this

Share this post


Link to post
Share on other sites

Hi @enpu

 

No problem about the list :)

 

I tried the workaround, but it's still behaving funny. I just quickly wanted to show you the 'resize' example I was talking about before . It's made in Construct2 and it works flawlessly on iOS9. It also stays fullscreen in landscape, even when the bars pop over the top ...

 

https://td2tl.com/license-html5-games/tower-loot/

 

I know that Ashley of Scirra is on the forums here, so maybe he'd know how to get over the resize issue.

 

- the buttonMode thing is not a big deal, thank you for the tip!

 

- I think I know what the hires issue is. The iPhone6 can handle 4096x4096 atlases, but the iPad Air doesn't seem to be able to (because of memory I think). It looks like I have to make all my Atlases 2048x2048 MAX in order for things to work.

 

- I will send a test case for the preloader no centering shortly.

 

---------- I have a couple more issues which popped up since the last list :) ----------

 

1. I can't seem to open http-server in terminal after installing the new Panda toolkit. ( there is an error printout a couple of posts above )

 

2. I don't know if the dynamic unloading of resources is implemented yet. If it is, how would I go about unloading atlases?

 

Thank you heaps for your help!

 

PS. Is there a way, we can determine the max texture size a device can use and use hires assets according to this? The iPad air has a screen capable of loading 4x graphics, but won't let me unless they're on a 2048x2048 atlas :(

Share this post


Link to post
Share on other sites

Ho @enpu

 

Regarding the hires issue above ... it looks like I was wrong.

 

My iPad Air should apparently be able to load 4096x4096 texture atlases.

 

The problem is tho, that currently @4x only seems to work if I use 2048x2048 atlases.

 

When I load a 4096x4096 atlas, it doesn't, and all it shows is messed up graphics.

Share this post


Link to post
Share on other sites

Hi @enpu

 

I've been trying to get to the bottom of the hires issue and have figured out, that even if a device is graphically capable of @4x assets (4096x4096 atlases), it won't load them unless it's using iOS8 or above.

 

I've updated my iPad Air and now the assets load without issues. Is there any detection for this sort of thing?

 

Also, I did a little test in Construct 2 and tried rotating the screen / changing orientation. This works flawlessly on iOS9, so maybe they have some tricks up their sleeve :)

Share this post


Link to post
Share on other sites

Hi!, about the ios9 orientation bug, I still work with a 1.13.2 ver (a modded version with animated system from panda 2, but it's still panda 1)

 

to everyone still using panda 1 and want to fix this (you won't have device.ios9 method), I just do same as enpu say, but replace

game.device.IOS9, to game.device.iOS (so this will affect to any apple device, but already test and don't break nothing.

and call after game.system._onWindowResize();  to game.system.checkOrientation();.

then, if you want to use an image to display "please rotate"  go to engine/system.js, and edit the function resizeRotateImage:

and comment this line:

if (window.innerHeight < game.System.rotateDiv.image.height) {

and change the "auto", on width  or height (depend if you game is landscape, portrait), and add window.innerWidth + 'px' (or height),

with this, your img always resize,we forze it,  yes maybe can deform a little if the device has too wide aspect, or too portrait, but, this is the only way I found to always see the image, and always display correctly. before ios9, this feature works perfect, don't know why ios9 appear to broke all (google safari webAudio...)

 

Enpu about panda2, I want to know, why not webGL ?  you did a webgl port to impactjs, trying to save it, (I guess only haha), then that's your start point to create this wonderfull engine as panda, incredibble performance with webgl, (yes canvas perform very well too, but webgl is still faster), and then, version 2.0, you decide not implemeted? is there a reason? Every engine I know, is always more capable if has webgl support from the start (because when it's a third party plugin, always is a bad signal), and always the engine with native support of it performs well, so really don't understand the meaning of this, for example, the same project build with panda, if you transcode to panda 2, you get better or at least same performance than panda 1?, I mean, you are creating a  super canvas performance engine?, or this is another reason? I really want to know about this, because I want to continue using panda forever, I using impactjs, like a year, then will start to phaser, but sudendly I see panda, reconize you for the impact-webgl-pixi plugin, and don't think twice, since then I have using panda, but this kind of giving webgl support to v2, like a non priority or only for external plugin... I really make me affraid of it.

 

anyway, good work!

PixelPicoSean likes this

Share this post


Link to post
Share on other sites

I using impactjs, like a year, then will start to phaser, but sudendly I see panda, reconize you for the impact-webgl-pixi plugin, and don't think twice, since then I have using panda, but this kind of giving webgl support to v2, like a non priority or only for external plugin... I really make me affraid of it.

 

I came with the same story of you, and you might probability use my fork of Panda v1. That fork was made to keep updated with latest improvements and pixi core but Panda continuously moves forward and things can not be easily merged. Recently my favourite Animation class is also removed :/ But it won't annoy me any more since my forked version is still not outdated and a completely new branch is under heavy development, in which I removed impact like module and class system in favor of webpack and ES6. It may not suit to the other people but works pretty well for me.

 

I still hope Panda can be known and used by more and more people. I believe enpu won't disappoint us :D

drhayes likes this

Share this post


Link to post
Share on other sites

yes! I'm using your fork, have you update it with more??, (I like it!, love animation system that your fork use it).

 

What editor you actually use?  I use intelliJ with web-javascript module, to activate autocomplete, but don't work very well.

Share this post


Link to post
Share on other sites

Actually I've changed its name to "LesserPanda" and all related repos are put inside a organization also called that name :D

 

I removed the class system from version 2 and you can only use functions for inherites and mixins, but since it does not force to a class system you are free to use whatever way you want, which may even be boring to some people but ok for myself. Well since I will not go back to use it again, the master branch is not recommended. My suggest is using what you're using now or come and see whether the dev branch of LesserPanda is acceptable for you. (Note that the dev branch is not stable yet, and lack of some useful features, but you can still see what it is like).

 

I am recently working on some games using LesserPanda dev branch and improve the engine the same time. You can also help if you are interested :D

 

BTW I always use the SublimeText and no autocompletion at all. Just keep the PIXI document opening in browser and code.

Share this post


Link to post
Share on other sites

Hi Enpu, how does this compare to Phaser? Just wondering as I'm looking at creating a visual novel app for Android/iOS and possibly just simple HTML5 over the web, and while I'm going to try out Phaser, I'm also interested in Panda. I see it sporting a tons of pretty neat features. Any (commercial?) game app showcase made using Panda available?

Share this post


Link to post
Share on other sites

I was wondering, how do I add friction to bodies? I'm not exactly sure what damping does, but it seemed to increase friction significantly, but not enough.

Share this post


Link to post
Share on other sites

Hey Enpu,

I'm having a lot of problems with physics.

CollisionSolver hitTest() does not appear to work, it returns false regardless of the 2 bodies actually touching each other

How can I implement friction? The wall I have that I've taken from the Panda playground is like ice, once I set a player's velocity to make it move one direction, it won't stop at all, it just stays the same speed. I have to use ridiculous substitutes, by setting velocity to 0 completely.

I am also having a lot of trouble getting camera to work. I used camera code I made from the previous versions, and converted the old elements to use the 2.0 syntax. There are no errors, but the camera seems to be completely non-functional. This is really annoying :/

Also, I think the container the camera is added to is the one that moves, so I tried putting the wall Sprite into a container, but now I can't even position the Sprite. It is always stuck at the top of the wall, but what about the body? How can I add it to the container? It looks like it has to be added to the game.World() instead.

Can the docs be more detailed? I just see these variables, most are self explanatory but others are confusing, and lack any in debt explanation of what they do. Thanks to this, I have spent hours trying to create friction, and get the camera to work.

Share this post


Link to post
Share on other sites

Hi, found a little issue in the v2:

KC2B9Jo.gif

I have a Cirlce that is linked to a Body and it goes inside the ground, why isnt it not stoping on the floor ? o.o

Share this post


Link to post
Share on other sites
On 3/5/2016 at 10:15 PM, ThanosS said:

Hi, found a little issue in the v2:

KC2B9Jo.gif

I have a Cirlce that is linked to a Body and it goes inside the ground, why isnt it not stoping on the floor ? o.o

I see this was over a month ago. Did you find the solution to your issue?

@enpu Hey Eemeli, We haven't heard from you in a while. I wanted to make sure everything is alright with you. :)

Are there any news regarding the development of Panda 2?

Share this post


Link to post
Share on other sites
14 hours ago, ThanosS said:

@LinkTree The solution I found was to use a Rectangle instead of a Circle. :x

And it seems development has ceased :(

@ThanosS You didn't try to modify/extend the engine's physics module?

The last update was 2 months ago so it's not that long but yea it definitely seems to have slowed down. Phaser has a lot more developers working on it so that's why there are more frequent updates. What I loved originally about panda was it's writing style, modularity and classes similar to Impact.js and that it offered a canvas+webGL renderer on top. I preferred using it even though I own an Impact.js license but with the ES6 modules and classes soon to be included I guess you could probably use Phaser in a similar way without needing to build it with webpack/common.js. In some ways having less features is also good in some cases because you won't be using all of Phaser's features in every single game so you are adding a lot of unrequired code.

Share this post


Link to post
Share on other sites

@LinkTree Nope, that's just Panda which doesn't supports circle vs. rectangle collisions using the engine physics.

I also like PandaJS a lot cuz it permit do to what you want in a cool "code style", and I definitly like modules. Speaking about that, you can checkout this prototype if you want/need samples with PandaJS v2: https://skyzohkey.itch.io/bombers :)

Share this post


Link to post
Share on other sites

Hey guys, have a look at LesserPanda engine, which was previous a fork of Panda.js and has grown a lot. I am trying hard to make it easier to use recently, by introducing "behavior" and "actor" concepts. The engine is under heavy development, feel free to try it out :D Willing to hear from you.

BTW. I am also making a "bamboo" like level editor, it's also available on the Github.

Share this post


Link to post
Share on other sites

@PixelPicoSean: Your work on lesser panda is awesome! :) 

In fact I'm really glad to see that the development of Panda still continues. I suggest that at the very least you should dedicate a separate threat to your branch so it attracts a bit more attention and it will be easier to look up news about Lesser Panda.

Keep up the good work, I will definitely post pull requests for bugfixes if I run into small issues while working with lesser Panda.

 

Share this post


Link to post
Share on other sites

Hey, it's nice to see that there's still somebody working on PandaJs. I should definitely give LesserPanda a try.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.