Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Future of Ejecta revisited in 2019 #669

Open
smith-chris opened this issue May 4, 2019 · 5 comments
Open

Future of Ejecta revisited in 2019 #669

smith-chris opened this issue May 4, 2019 · 5 comments

Comments

@smith-chris
Copy link

smith-chris commented May 4, 2019

Hello 😊

I know there's an issue #654 from 2016 about that. As I understand it was just after iOS 10 release with performance improvements that made Ejecta seem obsolete.
But there is one issue, Safari/WKWebView/Cordova games on LPM ('Low Power Mode') are limited to 33fps on iOS, even if you have one rotating sprite on the screen.

It took me about a day to figure how to port my pixi.js Cordova-wrapped game to Ejecta and with some finishing touches I'm gonna be pushing it to AppStore review tomorrow.
I'm getting 50-55 fps on LPM with Ejecta on iPhone 6 rather than 33, and it's not very optimised game I believe (and therefore has weird framedrops).

I'm gonna let you know whether Ejecta is valid in 2019 from my perspective later (whether it will pass the review and I'll get steady 60 fps with Ejecta),
but I'm interested to know, is anyone else actually still using this technology? Or does anyone know any better solution?
It seems like it has been abandoned around 2016/17, but right now, from my perspective it looks like its the only sane way to make iOS games that run 60fps on LPM.

@phoboslab what is your opinion on this?
Would you consider maintaining the project if it turns out to be the best solution the LPM problem?
With iPhones becoming more and more performant lack of JIT in Ejecta becomes less of an issue

BTW I know there is cocos2dx/creator, egret engine etc and ofc cordova. I've inspected those and Ejecta the most appealing solution IMO right now

BTW2 I'm using webpack+typescript+pixi@3 (and legacy coffeescript 🤷‍♂️) for this project if anyone's curious.
It's a very smooth development experience so far, I really appreciate all the work put into Ejecta 👍

@smith-chris
Copy link
Author

Just quick update: my game built with Ejecta passed the review without a problem.

Not even sure if anyone is using this tech :D maybe I'm missing something obvious.. but I see this as the best/most pleasant way to build performant games with js/ts for ios.

Next thing I'm gonna validate is whether you can have in app purchases with Ejecta. I'm completely new to iOS development so it may take some time.

@phoboslab
Copy link
Owner

Congratz on your release!

My impression is that Ejecta still works well for good subset of JS apps & games. There's no major bugs or crashes that would stop you from using it. Ejecta is using the system's JavaScriptCore engine, so you should always be able to use the newest JS features.

I currently have no plans to add any features, but I will update Ejecta if any breaking changes in newer iOS versions come up. I will continue to use Ejecta for my own projects, too. I don't know who else is using it at this point.

With all that said, wouldn't it be sensible to show a warning to the user when the game runs slow because of LPM? I mean, is it worth fighting about this issue?

Regarding In-App purchases: Ejecta provides a nice wrapper around the horrible iOS API. Good luck :)

https://impactjs.com/ejecta/in-app-purchases

@smith-chris
Copy link
Author

smith-chris commented May 7, 2019

Great to see the original Author still using the technology, it gives me confidence to invest my time into it :)

Thanks! It's just a simple game for testing out the technology but I posted it here anyway: #581

About IAPManager, I've seen that, and I created #670 as I have tiny issues with it.

About LPM, I was thinking of that but it's neither pretty or user friendly solution. On the other hand my game runs stable 60fps on LPM on iPhone 5s, and it took me like 3 days in total to port it. I know that for js heavy games having JIT(cordova) would be more suitable but I see it more as a challenge than a problem ;)

I'd love to see more Ejecta getting more traction. Maybe it's worth creating boilerplate starter kit with webpack..?
In what way are you using it? Would such a kit be any value to you?
I currently use ejecta+webpack+typescript+cordova, in a way so you can develop for web with live reloading, have native performance on ios with Ejecta & as a bonus deploy to any platform cordova offers. I could extract that out to a boilerplate repo somehow and opensource it ;) But only if it would be of any use to anyone

@8bitmatt
Copy link

I released my first game project using ImpactJS and Ejecta in Nov 2018. I agree, this is the most pleasant way to build performant games with js on iOS.

I do have a related question for @phoboslab ...

Will the deprecation of OpenGL on iOS affect Ejecta's future in any meaningful way?
More importantly, will my game currently in the App Store not work (for new hardware, iOS 13) after September this year?

I know OpenGL has been deprecated since iOS 12, but with iOS 13 around the corner... what happens if the new hardware only supports Metal?

@implicit-invocation
Copy link

implicit-invocation commented Aug 20, 2021

Great to see the original Author still using the technology, it gives me confidence to invest my time into it :)

Thanks! It's just a simple game for testing out the technology but I posted it here anyway: #581

About IAPManager, I've seen that, and I created #670 as I have tiny issues with it.

About LPM, I was thinking of that but it's neither pretty or user friendly solution. On the other hand my game runs stable 60fps on LPM on iPhone 5s, and it took me like 3 days in total to port it. I know that for js heavy games having JIT(cordova) would be more suitable but I see it more as a challenge than a problem ;)

I'd love to see more Ejecta getting more traction. Maybe it's worth creating boilerplate starter kit with webpack..?
In what way are you using it? Would such a kit be any value to you?
I currently use ejecta+webpack+typescript+cordova, in a way so you can develop for web with live reloading, have native performance on ios with Ejecta & as a bonus deploy to any platform cordova offers. I could extract that out to a boilerplate repo somehow and opensource it ;) But only if it would be of any use to anyone

Did you make that boilerplate repo? I would love to use it :)


Update: I have set up typescript/babel/webpack to use npm ecosystem and import/export... Adding webpack-dev-server and a client file for dev mode will not be a huge problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants