Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Developing without the emulator, using only a real device
Started by ubj3d.android Apr 10 2015 01:14 PM

13 replies to this topic
[TOPIC CONTROLS]
This topic has been archived. This means that you cannot reply to this topic.
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

ubj3d.android

[GLOBAL: userInfoPane.html]
ubj3d.android
  • Contributor

  • 741 posts
  • Corona SDK

For my unpleasant surprise I just realized I cant run the emulator on my laptop (only 3 GB RAM and 32 bit Windows).

 

Does it make sense to develop without the emulator and using only a real device?

 

How slow/fast is deploying on a device compared to the emulator?

 

Please advice because I just wanted to start to port my games and now I am not sure if it makes sense if I cant run the emulator.



[TOPIC: post.html]
#2

Alex@Panc

[GLOBAL: userInfoPane.html]
Alex@Panc
  • Corona Geek

  • 1,733 posts
  • Corona SDK

I can't run the emulator for other reasons, so I only use my real device. 

 

It's not ideal, obviously, but it's better than nothing and I can confirm my code does work. I don't know what your workflow is normally, but deploying and testing only on a real WP device isn't killing me from a productivity standpoint.

 

Remember to mind the issues with WP and text objects, sound files, yadda yadda, but you should be OK.



[TOPIC: post.html]
#3

_memo

[GLOBAL: userInfoPane.html]
_memo
  • Contributor

  • 289 posts
  • Corona SDK

Personally, I can't imagine working without the emulator - deploying to a device is slow and cumbersome, while the emulator runs the code instantly as soon as you save your lua file. But it depends on how you work and what you're building. I'm used to editing code and testing on the fly, but if you're the type who writes hundreds of lines of code before testing, then sure, you can live without the emulator. And some things, like native input fields, push notifications etc. can only be tested on a real device anyway.



[TOPIC: post.html]
#4

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,064 posts
  • Enterprise

_memo, I don't think they are talking about the Corona SDK simulator.   When the word "emulator" is mentioned, it usually refers to a hardware simulation provided by Android that gives you something more like a real device to test on.   The reason there are things that Corona's simulator can't do is because we don't have iOS and Android libraries that we can use.  But when you run the device emulator  you get those native libraries.  This is much the same  way Apple provides the Xcode simulator that is different than the Corona simulator.

 

Now for me, I almost never use either the Xcode simulator or an Android emulator.  To me it's just as fast to build and "adb install" than it is to wait for an emulator to start up/and wait for the app to startup.  Of course you only pay that startup time penalty once per run, but in the time it takes for the start up to happen, I probably could have already conducted 2-3 test builds on the device.

 

Rob



[TOPIC: post.html]
#5

_memo

[GLOBAL: userInfoPane.html]
_memo
  • Contributor

  • 289 posts
  • Corona SDK

Oh, I misunderstood, then. Good point, Rob. :-)



[TOPIC: post.html]
#6

ubj3d.android

[GLOBAL: userInfoPane.html]
ubj3d.android
  • Contributor

  • 741 posts
  • Corona SDK

Thank you all for your response.

 

By "emulator" I meant the "Windows Phone Emulator" (not Corona, XCode or Android), we are talking about Corona cards for WP8 here :)

 

As Rob mentioned, me too almost never use Android emulator because it is (was?) really slow, so in the days I developed native Java games I deployed only on Android device.

 

So my question is, how fast/slow is the Windows Phone emulator? I know it depends on the hardware it runs on, but maybe you can post your impressions.

 

Thank you!



[TOPIC: post.html]
#7

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,064 posts
  • Enterprise

Sorry, I read the forums by reading all the messages since my last visit and sometimes I miss what forum it's posted too. 

 

For WP8, it seems to take quite a bit to start the emulator and have it bootstrap the OS to a point of where you can run your apps on it.  My test phone is a Lumia 520 and I find the emulator and the phone to be equal in speed.  The frustration with device testing with WP8 is the phone has to be awake to install to.  Because of that, after the WP8 emulator is running, I give the emulator a slight edge in speed, but the long startup time still makes me prefer device builds in general.

 

Rob



[TOPIC: post.html]
#8

ubj3d.android

[GLOBAL: userInfoPane.html]
ubj3d.android
  • Contributor

  • 741 posts
  • Corona SDK

Just deployed my first converted game, but all I see on the device is "CoronaCards TRIAL" ?

 

Do we need the licence file? Searched the forum and docs but still not sure.

 

As I don't see my game screen there is for sure something wrong...



[TOPIC: post.html]
#9

ubj3d.android

[GLOBAL: userInfoPane.html]
ubj3d.android
  • Contributor

  • 741 posts
  • Corona SDK

And another question:

 

As the build.settings file is not use, where do we include the plugins?

 

In the output window I got the error:

 

Runtime error
module 'ads' not found:
no field package.preload['ads']


[TOPIC: post.html]
#10

ubj3d.android

[GLOBAL: userInfoPane.html]
ubj3d.android
  • Contributor

  • 741 posts
  • Corona SDK

I commented all the ad stuff and the game started!

 

Question: on the right side of the phone I see a bunch of small numbers (rotated 90 degrees).

 

Is this some debug info? I deployed the game as "Release ARM".

 

How to remove this?



[TOPIC: post.html]
#11

Joshua Quick

[GLOBAL: userInfoPane.html]
Joshua Quick
  • Moderator

  • 3,397 posts
  • Corona Staff

Starting with daily build #2600, CoronaCards for WP8 no longer requires a license file.  It is completely free to use.  So, you just need to download a newer version from our daily builds web page.  You can upgrade your Visual Studio project to use the newest Corona version by following the instructions here...

   http://docs.coronalabs.com/daily/coronacards/wp8/upgrade.html

 

Corona for WP8 does not currently support plugins.  You'll have to integrate an ad library into your project on the C# side yourself.  @spacewolf was nice enough to write up a tutorial on how to integrate Google's ad library into a WP8 project in the link below.  You can also use Microsoft's ad library, which is much easier to integrate, but might not pay as well as Google's ad network.

   http://forums.coronalabs.com/topic/52372-tutorial-add-admob-interstitial-ads-to-your-coronacards-windows-phone-8-app

 

I also recommend that you read our porting guide here...

   http://docs.coronalabs.com/daily/coronacards/wp8/portapp.html

 

And regarding the numbers that you see on the right side of your app, that is debug information displayed by Microsoft Visual Studio when running you app via the debugger.  If you stop the Visual Studio debugger and run your app normally, that information does not get displayed.  So, it's nothing to worry about.  :)



[TOPIC: post.html]
#12

ubj3d.android

[GLOBAL: userInfoPane.html]
ubj3d.android
  • Contributor

  • 741 posts
  • Corona SDK

Thank you for the help.

 

Now to the text rendering issue.

 

Is this issue only if the text is constantly refreshed (e.g. a time with seconds displayed) or does it applies to static text also?

 

What about text in the scroll-view?

 

Our leaderboard screen which uses scroll-view has very bad scroll performance.

 

So the general question is: For best performance, should we replace all text with bitmap fonts?



[TOPIC: post.html]
#13

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,064 posts
  • Enterprise

Any text generated by display.newText will perform slowly on WP8.  We recommend using bitmap fonts.  The scrollView should be plenty fast enough once you use bitmap fonts.

 

Rob



[TOPIC: post.html]
#14

Joshua Quick

[GLOBAL: userInfoPane.html]
Joshua Quick
  • Moderator

  • 3,397 posts
  • Corona Staff

The creation of the text bitmap via Microsoft's Silverlight APIs is the cause of the performance issue.  So, anytime you create a text object or update an existing text object's text, Corona is forced to create a new bitmap to render text to and then push that new text bitmap to the GPU as a texture.  It works this way on all platforms, and if you think about it, generating a new text bitmap/texture everytime you update text is an a generally expensive thing to do on all platforms as well.  It just happens to be most expensive on WP8.

 

So, to recap, the following will cause a performance issue:

- Creating a text object.

- Updating a text object's text.

- Resuming your app while it is displaying text objects.  (We're forced to re-render all text since WP8 flushes all textures in the GPU when your app gets suspended.  This happens on Android too.)

 

But that said, text objects have their advantages too.  Since their text is rendered by the operating system, you're leveraging Microsoft's hard work in making text render correctly for all languages/locales.  Particularly much more complex text such as Arabic/Asian where it'll also handle text wrapping correctly for the different languages/locales.  So, I would say text objects are appropriate for text that you rarely update or for text that comes from a source that is out of your control, like Facebook, Twitter, or other Internet sources.

 

For text that you update frequently, like an FPS framerate counter, bitmap font would provide the best performance.  And bitmap font text is only appropriate for text that is under your control, because you need to ensure that each character is within your image sheet (aka: sprite sheet).

 

Regarding your scroll view, if the number of rows is hard coded, then perhaps a quick solution would be to pre-load all of your text objects and re-use them as they scroll back into view.  Otherwise, bitmap font is the only solution that would yield best performance.




[topic_controls]
[/topic_controls]