Android resolutions and test

Previous topic - Next topic

erico

Nice, so a 1024x600 gets to be 1024x552 which is minus the navigation bar at 48 pixels.
Good thing is that if getscreensize is returning the real resolution minus the navigation bar, it will be easier for me to accommodate the phones/tablets that have it.

Based on the link I posted a few posts ago, I compiled a list of resolutions and bar to work with.
Hopefully, I may also create a quick test.apk just to test results with the phones we have here on forum. :good:

spacefractal

#16
Im deleted two post to avoid confuction, here is a much better and easier idea:

Here is a function, that should help you quite very much for auto scaling, which also can precalculate image borders:
Code (glbasic) Select

GLOBAL PX, PY, PW, PH   // The calculate rectangle
GLOBAL sx, sy           // The screen resolution

FUNCTION PaintImage: id, x#, y#, xspot, yspot, zoom#, mirror=0, draw=1
// get size of the incoming sprite
LOCAL h#, w#
GETSPRITESIZE id, w, h
IF w<1 OR h<1
RETURN 0
ENDIF

// calculate rectangle of the sprite position.
IF xspot=-1 THEN PX=x#+0.5
IF xspot=0 THEN PX=sx/2.0-(w#*zoom#/2.0)+x#+0.5
IF xspot=1 THEN PX=sx-w#*zoom#-x#+0.5
IF yspot=-1 THEN PY=y#
IF yspot=0 THEN PY=sy/2.0-(h*zoom#/2.0)+y#
IF yspot=1 THEN PY=sy-h#*zoom#-y#

// checks if the rectangle is on the screen
IF PY-PH>sy OR PX-PW>sx OR PY<-h*zoom*1.2 OR PX<-w*zoom*1.2 THEN RETURN 0

// perform scaling to the image.
PW=INTEGER(w*zoom#)
PH=INTEGER(h*zoom#)

// should the image draw or not? usable for rectangle calculate for ingame controls.
IF draw=0 THEN RETURN

// draw the image (using STRETCHSPRITE)
IF mirror=1
STRETCHSPRITE img, PX, PY, -ABS(PW), ABS(PH)
ELSE
STRETCHSPRITE img, PX, PY, ABS(PW), ABS(PH)
ENDIF
RETURN 1
ENDFUNCTION


dont forget to global PX, PY, PW and PH. This tell the borders of a drawed or precalculated image.

scaling (in boot) can been perfomed like this:
Code (glbasic) Select

scaling=sx/428
IF scaling*240>sy THEN scaling=sy/240


when invoking PaintImage(200, 0, 0, 0, 0, scaling, 0, 0) (example), you know the image borders of the virtual image, so you can uses its values to your controller code (its sent to global PX, PY, PW and PH). so for mouse controller, you can do something like x=(mousex-PX)/scaling. mousex is the value got from MOUSESTATE. X will now hold the correct value correspons to the virtual image, not the whole surface.

If you want pixel perfect scaling for contain known resolutions, you can still do that in the boot after setting the scaling value. You can eventuelly align the image if you want.
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation - The beagle Jam - Cave Heroes 2023 - https://spacefractal.itch.io/

erico

Super thanks Space :good:

I read the code and don´t understand much :(
Problem is that I´m not that best of coders, haven´t messed with types neither functions (but the fps check by Hemlos I use without knowing what it is actually doing).

The best I´m looking into now is to be able to have a MAC/PC/LINUX release and obviously, to have the game done.
Android will have to follow, It works fine on the current models I tried, I know it works in a blunt way, but it seems to be working fine.

I´m giving a shot here to hardcode current solutions in an attempt that it does not take much time for me.
I did some code today to hold up to that problem. I will need testing.

It does work so far on the devices I tested, but I have to try on one with navigation bar.
I will put up an apk here to give a go tomorrow.

Again, thanks for the help, I will sure study into that code. :good:

spacefractal

#18
So here is what variables do:
id=id if your image (which was 200 in your test project).
x=x position of the image.
y=y position of the image.
xpos=is the x hotspot you want to alignment the image.
ypos=is the y hotspot you want to alignement the image.
zoom=is the scaled value (etc zoom=2 is scaled the image by twice).
mirror=mirror the drawed image.
draw=draw the image (0 can been used for precalucate the image, or 1 to draw it).

xpos/ypos can set to -1 (hotspot to left), 0 (hotspot to center) or 1 (hotspot to right).

Global values:
- sx and sy was the returned GETSCREENSIZE from the boot section.
- PX, PY, PW, PH is the calculated rectangle values its have been for the image.

This is very useable for cacluate scaling for the mousetate, so you can get mouse positions from the virtual area (428x240 regardless scaling and position of the view), not the whole surface (as im seen you trying, which is not recommered at all). This is the main purpose of the function (and VIEWPORT is not required at all). So even the image got scaled, you dont need to change the mouse controller code at all again.

Etc you want to center the virtual image (id=200, x=0, y=0, xspot=0, yspot=0, zoom=scaling, mirror=0, draw=0):
- PaintImage(200, 0, 0, 0, 0, scaling, 0, 0) for calculate the rectangle of the image before MOUSESTATE.
- PaintImage(200, 0, 0, 0, 0, scaling, 0, 1) for calculate the rectangle of the image, and also draw the image.

Etc you want to draw the image to the bottom of screen (id=200, x=0, y=0, xspot=0, yspot=1, zoom=scaling, mirror=0, draw=0):
- PaintImage(200, 0, 0, 0, 1, scaling, 0, 0) for calculate the rectangle of the image before MOUSESTATE.
- PaintImage(200, 0, 0, 0, 1, scaling, 0, 1) for calculate the rectangle of the image, and also draw the image.

PS. edited both post, due there was some cleanup in the PaintImage function with comments and removed some unusabled local variables.
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation - The beagle Jam - Cave Heroes 2023 - https://spacefractal.itch.io/

erico

Noted, I will try to give a try with this and viewport for mac and android.
I should also gain some speed against the virtual screen I guess, might be important for old android devices.
But I still think I might release the game on working platforms with what I have in current code IF it works.

For this reason, I stripped a test from my game to scale the virtual screen, consider GETSCREENSIZE and the navigation bar and do a very little centralization.
Again, the base screen is 428x240.

I compiled a list of android devices based on the list I posted and another android resolution thread, I believe this covers it all.
There is also a few android going about that have landscape hardware LCD screens, there the game won´t work, but it is just so very few and unknow brands.

Here is the list, also, the game strugles on processors below 1ghz because I guess the virtual screen takes too much, but I don´t care those devices, they are not quite suitable for gaming anyways. I have an LG 320x240 800ghz here where I got this info from.

So to start with, here is the compiled list of android resolutions that matters to me:
QuoteSLT.....RESOLUTION......REPORTED........NAVBAR..PIX.....ON_SCREEN
_______________________________________________________________
ORI   428.240      428.240      0   1   428
---------------------------------------------------------------
0   2560.1600   2560.1600   0   6.6   388
1   2560.1600   2464.1600   96   6.6   
---------------------------------------------------------------
2   1920.1200   1920.1200   0   5   384   
3   1920.1200   1824.1200   96   5
4   1920.1200   1834.1200   86   5
5   1920.1200    1848.1200   72   5
---------------------------------------------------------------
6   1920.1080   1920.1080   0   4.5   428
7   1920.1080   1776.1080   144   4.5
8   1920.1080   1794.1080   126   4.5
9   1920.1080   1803.1080   117   4.5
10   1920.1080   1824.1080   96   4.5
11   1920.1080   1834.1080   86   4.5
12   1920.1080   1848.1080   72   4.5
13   1920.1080   1872.1080   48   4.5
14   1920.1080   1884.1080   36   4.5
---------------------------------------------------------------
15   1280.800   1280.800   0   3.33   384
16   1280.800   1205.800   75   3.33
17   1280.800   1212.800   64   3.33
18   1280.800   1224.800   56   3.33
19   1280.800    1232.800   48   3.33
---------------------------------------------------------------
20   1280.768   1280.768   0   3.2   400
21   1280.768    1184.768   96   3.2
22   1280.768   1248.768    32   3.2
---------------------------------------------------------------
23   1024.768    1024.768   0    3.2   320
24   1024.768   976 .768   48   3.2
---------------------------------------------------------------
25   1280.720   1280.720   0   3   426.6
26   1280.720    1184.720   96   3
27   1280.720    1212.720   64   3
28   1280.720    1232.720   48   3
---------------------------------------------------------------
29   1024.600    1024.600   0    2.5   409
30   1024.600    952 .600   72   2.5
31   1024.600   976 .600   48   2.5
---------------------------------------------------------------
32   960.540      960 .540   0   2.25   426.6
33   960.540      888 .540   72   2.25
---------------------------------------------------------------
34   854.480      854 .480   0   2   427
35   854.480      782 .480   72   2
36   854.480      788 .480   66   2
---------------------------------------------------------------
37   800.480      800 .480   0   2   400
38   800.480      728 .480   72   2
39   800.480      752 .480   48   2
40   800.480      764 .480   36   2
---------------------------------------------------------------
41   320.240      320 .240   0   1   320

SLT is the android type number
RESOLUTIUON is the hardware resolution
REPORTED is what I expect from GETSCREENSIZE
NAVBAR is the available nav bar sizes for those devices
the other info don´t bother, it is my game related.

erico

#20
Ok, here I´m posting the code for the test, I´m also adding a .zip with the project.

Code (glbasic) Select
// --------------------------------- //
// Project: ANDROID_RES_TEST
// Start: Friday, May 30, 2014
// IDE Version: 12.096

// ------------------------------------------------------------------------------------------------------------------- DECLARE VARIABLES
GLOBAL tcxa, tcxb, tcy ;// Touch Control coordenates (x-block left, x-block right , y-middle jump)
GLOBAL FramesPerSecond ;// Helmos fps Routine
GLOBAL sx,sy ;// Android Get Screen Size (pixels)
GLOBAL andro ;// Android Screen Model (0-NOTE.II 1-GALA.S2...)
GLOBAL bar ;// Expected navigation bar size
// ------------------------------------------------------------------------------------------------------------------- DECLARE VARIABLES [END]


// ------------------------------------------------------------------------------------------------------------------- LOAD VISUAL ASSETS
LOADSPRITE "Media/TEST.bmp" ,1 ;// Background image test
// ------------------------------------------------------------------------------------------------------------------- LOAD VISUAL ASSETS [END]


// ------------------------------------------------------------------------------------------------------------------- DIP SWITH
SYSTEMPOINTER TRUE ;// Show mouse
LIMITFPS 60 ;// Vertical sync limit fps
AUTOPAUSE TRUE ;// Set pause when lost focus
// ------------------------------------------------------------------------------------------------------------------- DIP SWITH [END]


// ------------------------------------------------------------------------------------------------------------------- SET OUTPUT SCREEN / TOUCH
CREATESCREEN 1,200,428,240 ;// Virtual Screen
// --- ANDROID SETS
GETSCREENSIZE sx,sy ;// Get Android Screen Size
// sx=976 ; sy=768 ;// Simulate a resolution/android set
// ---
IF sy=1600
SETSCREEN 2560,1600,0 ;// sy 1600
IF sx=2560
andro=0
tcxa=590 ; tcxb=1970 ; bar=0
ENDIF
IF sx=2464
andro=1
tcxa=542 ; tcxb=1922 ; bar=96
ENDIF
tcy=983
ENDIF
IF sy=1200
SETSCREEN 1920,1200,0 ;// sy 1200
IF sx=1920
andro=2
tcxa=442 ; tcxb=1478 ; bar=0
ENDIF
IF sx=1824
andro=3
tcxa=394 ; tcxb=1430 ; bar=96
ENDIF
IF sx=1834
andro=4
tcxa=391 ; tcxb=1427 ; bar=86
ENDIF
IF sx=1848
andro=5
tcxa=406 ; tcxb=1442 ; bar=72
ENDIF
tcy=742
ENDIF
IF sy=1080 ;// sy 1080
SETSCREEN 1920,1080,0
IF sx=1920
andro=6
tcxa=497 ; tcxb=1423 ; bar=0
ENDIF
IF sx=1776
andro=7
tcxa=425 ; tcxb=1351 ; bar=144
ENDIF
IF sx=1794
andro=8
tcxa=434 ; tcxb=1360 ; bar=126
ENDIF
IF sx=1803
andro=9
tcxa=439 ; tcxb=1365 ; bar=117
ENDIF
IF sx=1824
andro=10
tcxa=449 ; tcxb=1375 ; bar=96
ENDIF
IF sx=1834
andro=11
tcxa=454 ; tcxb=1380 ; bar=86
ENDIF
IF sx=1848
andro=12
tcxa=461 ; tcxb=1387 ; bar=72
ENDIF
IF sx=1872
andro=13
tcxa=473 ; tcxb=1399 ; bar=48
ENDIF
IF sx=1884
andro=14
tcxa=479 ; tcxb=1405 ; bar=36
ENDIF
tcy=665
ENDIF
IF sy=800 ;// sy 800
SETSCREEN 1280,800,0
IF sx=1280
andro=15
tcxa=309 ; tcxb=971 ; bar=0
ENDIF
IF sx=1205
andro=16
tcxa=272 ; tcxb=934 ; bar=75
ENDIF
IF sx=1212
andro=17
tcxa=277 ; tcxb=939 ; bar=64
ENDIF
IF sx=1224
andro=18
tcxa=281 ; tcxb=943 ; bar=56
ENDIF
IF sx=1232
andro=19
tcxa=285 ; tcxb=947 ; bar=48
ENDIF
tcy=493
ENDIF
IF sy=768 ;// sy 768
IF sx>=1184 AND sx<=1280 THEN SETSCREEN 1280,768,0
IF sx>=976 AND sx<=1024 THEN SETSCREEN 1024,768,0
IF sx=1280
andro=20
tcxa=309 ; tcxb=971 ; bar=0
ENDIF
IF sx=1184
andro=21
tcxa=261 ; tcxb=923 ; bar=96
ENDIF
IF sx=1248
andro=22
tcxa=296 ; tcxb=955 ; bar=32
ENDIF
IF sx=1024
andro=23
tcxa=180 ; tcxb=844 ; bar=0
ENDIF
IF sx=976 ; // Too Small
andro=24
tcxa=156 ; tcxb=820 ; bar=48
ENDIF
tcy=473
ENDIF
IF sy=720 ;// sy 720
SETSCREEN 1280,720,0
IF sx=1280
andro=25
tcxa=330 ; tcxb=950 ; bar=0
ENDIF
IF sx=1184
andro=26
tcxa=282 ; tcxb=902 ; bar=96
ENDIF
IF sx=1212
andro=27
tcxa=298 ; tcxb=918 ; bar=64
ENDIF
IF sx=1232
andro=28
tcxa=306 ; tcxb=926 ; bar=48
ENDIF
tcy=443
ENDIF
IF sy=600 ;// sy 600
SETSCREEN 1024,600,0
IF sx=1024
andro=29
tcxa=254 ; tcxb=770 ; bar=0
ENDIF
IF sx=952
andro=30
tcxa=218 ; tcxb=734 ; bar=72
ENDIF
IF sx=976
andro=31
tcxa=230 ; tcxb=746 ; bar=48
ENDIF
tcy=370
ENDIF
IF sy=540 ;// sy 540
SETSCREEN 960,540,0
IF sx=960
andro=32
tcxa=247 ; tcxb=713 ; bar=0
ENDIF
IF sx=888
andro=33
tcxa=211 ; tcxb=677 ; bar=72
ENDIF
tcy=333
ENDIF
IF sy=480 ;// sy 480
IF sx>=782 AND sx<>800 THEN SETSCREEN 854,480,0
IF sx=854
andro=34
tcxa=219 ; tcxb=635 ; bar=0
ENDIF
IF sx=782
andro=35
tcxa=183 ; tcxb=599 ; bar=72
ENDIF
IF sx=788
andro=36
tcxa=186 ; tcxb=602 ; bar=66
ENDIF
IF sx>=782 AND sx<>800 THEN tcy=296
ENDIF
IF sy=480 ;// sy 480
IF sx<=764 OR sx=800 THEN SETSCREEN 800,480,0
IF sx=800
andro=37
tcxa=193 ; tcxb=607 ; bar=0
ENDIF
IF sx=728
andro=38
tcxa=157 ; tcxb=571 ; bar=72
ENDIF
IF sx=752
andro=39
tcxa=169 ; tcxb=583 ; bar=48
ENDIF
IF sx=764
andro=40
tcxa=175 ; tcxb=589 ; bar=36
ENDIF
IF sx<=764 OR sx=800 THEN tcy=295
ENDIF
IF sy=240 ;// sy 240
SETSCREEN 320,240,0
IF sx=320 THEN andro=41
tcxa=57 ; tcxb=263 ; tcy=149 ; bar=0
ENDIF
// ------------------------------------------------------------------------------------------------------------------- SET OUTPUT SCREEN / TOUCH [END]


// ------------------------------------------------------------------------------------------------------------------- MAIN GAME LOOP
WHILE TRUE
// --------------------------------------------------------- DISPLAY
// --- SET VIRTUAL SCREEN
ALPHATESTING 0.0 ;// GLBv12 alpha on
SMOOTHSHADING FALSE ;// Hard pixels
USESCREEN 1 ;// Set Virtual screen buffer

// --- DRAW TEST IMAGE
DRAWSPRITE 1,0,0

// --- PRINT DEBUG INFO
FramesPerSecond=FPS()
PRINT "ANDROID TYPE: "+andro,117,24
PRINT "GETSCREEN X : "+sx,117,34
PRINT "GETSCREEN Y : "+sy,117,44
PRINT "NAV BAR SIZE: "+bar,117,56
PRINT "FPS         : "+FramesPerSecond,117,66


// --------------------------------------------------------- DISPLAY [END]

// --------------------------------------------------------- OUTPUT AND SCALE
USESCREEN -1 ;// Set Backbuffer
SMOOTHSHADING FALSE ;// Hard pixels

// --- ANDROID SETS
IF andro=0 THEN ZOOMSPRITE 200,1067,681,6.6,6.6 ;// 2560.1600 0
IF andro=1 THEN ZOOMSPRITE 200,1019,681,6.6,6.6 ;// 2464.1600 96
// ---
IF andro=2 THEN ZOOMSPRITE 200,747,481,5,5 ;// 1920.1200 0
IF andro=3 THEN ZOOMSPRITE 200,699,481,5,5 ;// 1824.1200 96
IF andro=4 THEN ZOOMSPRITE 200,704,481,5,5 ;// 1834.1200 86
IF andro=5 THEN ZOOMSPRITE 200,711,481,5,5 ;// 1848.1200 72
// ---
IF andro=6 THEN ZOOMSPRITE 200,747,421,4.5,4.5 ;// 1920.1080 0
IF andro=7 THEN ZOOMSPRITE 200,675,421,4.5,4.5 ;// 1776.1080 144
IF andro=8 THEN ZOOMSPRITE 200,684,421,4.5,4.5 ;// 1794.1080 126
IF andro=9 THEN ZOOMSPRITE 200,689,421,4.5,4.5 ;// 1803.1080 117(58)
IF andro=10 THEN ZOOMSPRITE 200,699,421,4.5,4.5 ;// 1824.1080 96
IF andro=11 THEN ZOOMSPRITE 200,704,421,4.5,4.5 ;// 1834.1080 86
IF andro=12 THEN ZOOMSPRITE 200,711,421,4.5,4.5 ;// 1848.1080 72
IF andro=13 THEN ZOOMSPRITE 200,723,421,4.5,4.5 ;// 1872.1080 48
IF andro=14 THEN ZOOMSPRITE 200,729,421,4.5,4.5 ;// 1884.1080 36
// ---
IF andro=15 THEN ZOOMSPRITE 200,428,280,3.33,3.33 ;// 1280.800 0
IF andro=16 THEN ZOOMSPRITE 200,391,280,3.33,3.33 ;// 1205.800 75(37)
IF andro=17 THEN ZOOMSPRITE 200,396,280,3.33,3.33 ;// 1212.800 64
IF andro=18 THEN ZOOMSPRITE 200,400,280,3.33,3.33 ;// 1224.800 56
IF andro=19 THEN ZOOMSPRITE 200,404,280,3.33,3.33 ;// 1212.800 64
// ---
IF andro=20 THEN ZOOMSPRITE 200,428,265,3.2,3.2 ;// 1280.768 0
IF andro=21 THEN ZOOMSPRITE 200,380,265,3.2,3.2 ;// 1184,768 96
IF andro=22 THEN ZOOMSPRITE 200,412,265,3.2,3.2 ;// 1248,768 32
// ---
IF andro=23 THEN ZOOMSPRITE 200,300,265,3.2,3.2 ;// 1024.768 0
IF andro=24 THEN ZOOMSPRITE 200,276,265,3.2,3.2 ;// 976,768 48 !too small
// ---
IF andro=25 THEN ZOOMSPRITE 200,428,240,3,3 ;// 1280.720 0
IF andro=26 THEN ZOOMSPRITE 200,380,240,3,3 ;// 1184.720 96
IF andro=27 THEN ZOOMSPRITE 200,396,240,3,3 ;// 1212.720 64
IF andro=28 THEN ZOOMSPRITE 200,404,240,3,3 ;// 1232.720 48
// ---
IF andro=29 THEN ZOOMSPRITE 200,300,180,2.5,2.5 ;// 1024.600 0
IF andro=30 THEN ZOOMSPRITE 200,264,180,2.5,2.5 ;// 952.600 72
IF andro=31 THEN ZOOMSPRITE 200,276,180,2.5,2.5 ;// 976.600 48
// ---
IF andro=32 THEN ZOOMSPRITE 200,264,150,2.25,2.25 ;// 960.540 0
IF andro=33 THEN ZOOMSPRITE 200,228,150,2.25,2.25 ;// 888.540 72
// ---
IF andro=34 THEN ZOOMSPRITE 200,214,120,2,2 ;// 854.480 0
IF andro=35 THEN ZOOMSPRITE 200,178,120,2,2 ;// 782.480 72
IF andro=36 THEN ZOOMSPRITE 200,181,120,2,2 ;// 788.480 66
// ---
IF andro=37 THEN ZOOMSPRITE 200,184,120,2,2 ;// 800.480 0
IF andro=38 THEN ZOOMSPRITE 200,148,120,2,2 ;// 728.480 72
IF andro=39 THEN ZOOMSPRITE 200,160,120,2,2 ;// 752.480 48
IF andro=40 THEN ZOOMSPRITE 200,166,120,2,2 ;// 764.480 36
// ---
IF andro=41 THEN DRAWSPRITE 200,-54,0 ;// 320x240 0

// --- DRAW POSSIBLE NAV BAR

ALPHATESTING .1
ALPHAMODE 1.5
DRAWRECT sx,0,2560,1600,RGB(255,0,0) ;// NAV BAR
ALPHATESTING 0.0
ALPHAMODE 0

// --------------------------------------------------------- OUTPUT AND SCALE [END]
SHOWSCREEN
WEND
// ------------------------------------------------------------------------------------------------------------------- MAIN GAME LOOP [END]

FUNCTION FPS:
// created by Hemlos
STATIC OldTimeReport$,FPSDat,TimeReport$,FPSd
OldTimeReport$=TimeReport$; FPSDat=FPSDat+1;
TimeReport$=PLATFORMINFO$("TIME")
IF OldTimeReport$<>TimeReport$; FPSd=FPSDat ; FPSDat=0; ENDIF
RETURN FPSd
ENDFUNCTION



EDIT: I know this is guerrilha coding...do your best not to laugh too hard here :D

erico

#21
FINALLY, here is a zipped APK.

Please, I would like you to run this apk on your android phone/tablet and report the results.
Possibly if you could take a screen shot and post the name and brand of the the device.

If it is impossible to take a picture/screenshot, then I just need to know if you see the annexed screen,
and if you can tell me the following printed info:

ANDROID TYPE
GETSCREEN X
GETSCREEN Y
NAV BAR SIZE
FPS

FPS will be good for me if it is stable on 59-60. It is limited to 60.
I´m really interested if it will work properly on androids with navigation bars.

EDIT: so far it works fine on my galaxy note II, galaxy s2 and an LG-e400f with the later holding around 42-45 fps.

spacefractal

#22
im pm  a cleaner example with auto scaling anything method (which im wont post here, except if Erico do). But rather pm the test result, here im will just post as it are:

Samsung Tab 2.
- Reports 976x600 (type: 31).
- Crops around 10pixels on each side (im have to say im perfer letterbox, so im can see the whole graphics, just like a movie, small thing).
- Navigationbar to the right (which should have been on the bottom, the famous orientation issue fixed by Android Extras).
- Would been fully playable, despite the Navigation/orientaion issue (as well remember set manifest to Landscape?).
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation - The beagle Jam - Cave Heroes 2023 - https://spacefractal.itch.io/

erico

Can I get a screen shot? Did the FPS stay around 58-60?

The image is supposed to be cropped on many resolutions up to the 320 mark (caanoo resolution) the game contents accommodate that.
I´m fine with the nav bar on the side, players will just have to be carefull not to touch the central or back button on the frenzy of action  :)
But the touch detection area is quite big to help that out.
If the things displays correctly, as it seems to on your system and mine, the game is fully playable, don´t worry.

Thanks for testing Space, at least this system works for standard GLB android compilation.
I would like to see it tested on the 2560.1600 devices and more bar devices, but I don´t know anyone with one.
I will try to push it this way into stores and later transit to a more elegant style.
But it is best for me to try Android Extras on a new project, that way I will learn better.

More test people! pleeease ::)

spacefractal

#24
58fps. not sure its due framerate counter or its cant been full 60fps trought. Im have seen Virtual Images on some devices can been little bit slow, which im avoided to uses them in my games and scaled graphics directly on the Backbuffer.

This is also why Mr Plow choice to set his games to 30fps, which is the right choice if you ask me.

Karma Miwa is designed with 60fps in mind, but still fully playable with around 25fps (if its below, its remove some graphics).
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation - The beagle Jam - Cave Heroes 2023 - https://spacefractal.itch.io/

erico

#25
58fps is fine and actually means 60, game will run greatly there.

Change the game to 30fps would work fine too.
But I find that only old devices with less then 1ghz will strugle on the simple things I´m drawing on screen.(the virtual screen being the real hog here)

I will post my results on tests I do around here too.

First img is LG-e400f at:
type     41
x          320
y          240
navbar 0
fps       49

Second img is galaxy note 2 at:
type     25
x          1280
y          720
navbar 0
fps       58

spacefractal

#26
The last snapshot have the wrong orientation issue as well. I'm asume my game did corrected it (except a screen dimmer issue). But it's ok for testing, but should fix that after the release with AE (can help that too).
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation - The beagle Jam - Cave Heroes 2023 - https://spacefractal.itch.io/

erico

#27
Don´t worry about the orientation here.
It is supposed to be that way.

The game is to happen on landscape mode and this picture is to show on landscape mode as it does on devices I tested, I rotated the note 2 picture before posting. :good:
In other words, if you hold your phone normally, the test picture must show it sideways with the bottm part of the image to the left, as in the LG.

spacefractal

#28
But is still wrong. Taskbar should have been in bottom, not in the right (just like tab2), you see Karma Miwa fixed it (please check). Can been fixed later, absolutty not important now at all. It's was worse in greedy mouse really in its day (which supports both orientations).
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation - The beagle Jam - Cave Heroes 2023 - https://spacefractal.itch.io/

erico

Yep. But it is better for me the nav bar is on the side. That is because of the nature of the game and the design decisions i took. Like i have spare space to the sides. I dont have spare space to the bottom as ia a correct orientation. So it is better for me that the nav bar is at where it is. :D

Karma miwa has an elegant system. If i flip the landscape mode it is working. Game flips accordly. That is really nice.

Here i want to hardcode the game to have the bottom on the left side and bars at bottom as is on the test apk  :P