Java-Gaming.org Hi !
Featured games (81)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (119)
games submitted by our members
Games in WIP (576)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
   Home   Help   Search   Login   Register   
  Show Posts
Pages: [1]
1  Java Game APIs & Engines / Android / Good Ad Providers on Android? on: 2011-01-14 23:28:23
Hi Guys,

There was a post about ads on Android some months ago. As things move quickly on this platform I wanted to do a round 2 and see how your experiences are with the different ad providers? AdMob and Quattro Wireless used to be pretty serious players. However QW was purchased and closed down by Apple recently. Is AdMob the only decent ad provider at the moment or do you have good experiences with other providers as well?
2  Java Game APIs & Engines / Android / Re: Feedback on Android Sniper Game on: 2010-11-21 20:21:15
Haha, yeah right now the mexicans and indians are bad guys along with the cowboys. Not yet sure about the whole theme though - might choose a complety different setting than wild west. Graphics is mockup right now.
3  Java Game APIs & Engines / Android / Feedback on Android Sniper Game on: 2010-11-21 00:07:52

Hey Guys,

Have been working on a rough prototype for a sniper game idea lately. The basic gameplay seems pretty fun. Would like some feedback on the direction of the game. Try it out and let us know what you think and anything you dont like/ ideas for the game.

You can install it from here:

http://logisoftgames.com/downloads/SniperGameTrial.apk

Basic rules are:
* control with accelerometer
* touch screen to shoot
* kill the bad guys
* don't kill women or bad guys that have not yet drawn their weapon (Indians and Mexicans)
* game ends when either you have been shot too many times or too many innocents have died on your shift.

Happy hunting!
4  Java Game APIs & Engines / Android / Ski Game Beta on: 2010-07-06 15:03:15
Made a skiing game which can be played if you go to this URL in your phones browser and install:

http://logisoftgames.com/skigame.html

Playable but still very much beta. Our biggest challenge right now is level design. We want to include a few fun maps in the final release. Thinking maybe it would be a good idea to find a professional level designer to help out. Any ideas, comments and suggestions very welcome!

/Martin
5  Java Game APIs & Engines / Android / Re: Making an desktop+handheld game considerations on: 2010-07-06 14:59:47
I once had some of the same ideas. I honestly think very few games are going to be fun on both the desktop and handheld as the platforms are so different.

/Martin
6  Java Game APIs & Engines / Android / Re: Can eglSwapBuffers be parallellized? on: 2010-06-21 18:24:18
They have glFlush - it is part of OpenGL 1.0 I believe. Read a bit about it. My impression so far was that it could be done before glSwapBuffers and also that glSwapBuffers can be expected to do a glFlush as the first thing it does. Will flush the pipeline but NOT wait for swap to complete. Was my impression. Curiously on G1 glFlush seems to return immidiatly and not wait for work to be done. 
7  Java Game APIs & Engines / Android / Re: Can eglSwapBuffers be parallellized? on: 2010-06-21 11:00:47
A little follow-up: After testing in depth we actually found that on Droid and Nexus One eglSwapbuffers returns before all the work is done. So it allows for paralellism in the way we hoped. The G1 however appears to block on the eglSwapbuffers call until all work is done. If running multithreaded however it is still possible to gain a performance increase of up to 20% on the G1 by parallelizing work.
8  Java Game APIs & Engines / Android / Re: Canvas vs OpenGL for 2D Games on: 2010-06-17 07:41:33
I think if you want to give all players the best possible experience it is a good idea to implement both a software renderer and an OpenGL renderer and make an automatic choice on startup which the user can alter in a settings page in case the app chose poorly.
9  Java Game APIs & Engines / Android / Re: Canvas vs OpenGL for 2D Games on: 2010-06-17 07:39:24
Yes that is a good point oNyx. Forgot to mention the devices running a Software renderer (HTC Tattoo among others). They are almost 5-10% of our players. They emulate hardware acceleration in software and thus have pretty poor OpenGL performance. On Tattoo the framerate was reduced to 10 which is not very playable.
10  Java Game APIs & Engines / Android / Canvas vs OpenGL for 2D Games on: 2010-06-16 12:55:09
After having spent 1 month rewriting one of our 2D games from Canvas to OpenGL we got the idea we should have had before starting the work: To investigate if this actually would give a higher FPS or not. The short answer is "no". The long answer is that it (big surprise) depends alot on the device. Wanted to post our findings here. Maybe someone can learn from them or has some comments.

Executive summary

It is a world of compromise:
- The high-end, 1Ghz devices out there have way better performance on Canvas than OpenGL
- The low-end (G1, dream, hero,..) devices have best performance on OpenGL
- If you start doing rotations, scaling, applying semi-transparancy OpenGL gains on Canvas

Test Cases

You can download the test here:

http://logisoftgames.com/downloads/

It is an extension of Chris Pruetts Sprite Method Test. You can also find data from the phones we ran it on - G1, Nexus 1, Droid.

If you are in posession of another device we would be VERY interested in having you run the test on that device and let us know the output (found in LogCat). Just install the APK and press "Run Batch". It will go for a while - up to 2 hours. Could be cool to get more data to get a clearer picture of the situation.

/Martin
11  Java Game APIs & Engines / Android / Re: Can eglSwapBuffers be parallellized? on: 2010-06-10 15:07:44
I agree that it would be nice if it was asynchronous - that would fit better into my idea about how things should work.
12  Java Game APIs & Engines / Android / Re: Can eglSwapBuffers be parallellized? on: 2010-06-10 15:06:41
Hehe, tell me about it... Definitely not worth the effort so far.
13  Java Game APIs & Engines / Android / Can eglSwapBuffers be parallellized? on: 2010-06-10 13:30:19
Hi All,

I learned from Chris Pruett/ Replica Island that it should be possible to parallelize the eglSwapBuffers call. So if eglSwapBuffers is running in one thread other threads can run while eglSwapBuffers is completing. Reason for this should be that eglSwapBuffers is running on the GPU - not CPU.

I thus coded a game using two threads - a Render thread and a Physics thread. However I experienced none or very little performance gain. Very little if the thread priorities where calibrated. The eglSwapBuffers call takes 10-20 ms so if it was possible for other threads to run parallel with it it should result in 20% more frames.

Anyone has an opinion on 2-threaded GL games like this or even experience on Android or other platforms?

Thanks,

Martin
14  Java Game APIs & Engines / Android / Re: FloatBuffer.put (int index, float f) expensive on: 2010-06-04 11:56:54
OK - is your code in a format that you can send so I can try and replicate your test run?

Also after instrumenting and further analysis I found that TraceView had exaggerated the cost of the buffer puts in relation to the whole programme execution. Traceview said that the buffer puts were 17% of all time spent whereas actually they are only 3%. So like Riven suggested the profiler was not quite truthful. It is still the case that the puts take 10 times longer than array puts - but the overall impact is lower than I thought.

Still it would be great to find a way to write the buffers faster.

/Martin
15  Java Game APIs & Engines / Android / Re: FloatBuffer.put (int index, float f) expensive on: 2010-06-03 14:02:35
Done :-) Thanks for the info Riven.
16  Java Game APIs & Engines / Android / Re: FloatBuffer.put (int index, float f) expensive on: 2010-06-03 13:02:38
Good idea Egon.

You can download source here:

http://games.martineriksen.net/PerformanceTest.zip

In the "bin" folder there is the APK which you can install using adb install. Then you can run the test by starting the PerformanceTest app on your phone. The test will output the data in LogCat - these are the interesting lines (seen on a Nexus One 2.1):


06-03 14:56:01.445: INFO/System.out(22956): time: 247.8s >> vertex buffer single puts
06-03 14:56:01.445: INFO/System.out(22956): time: 254.2s >> vertex buffer single puts with specified positions
06-03 14:56:01.445: INFO/System.out(22956): time: 264.3s >> vertex buffer full array puts
06-03 14:56:01.445: INFO/System.out(22956): time: 0.3s >> vertex buffer wrapping
06-03 14:56:01.445: INFO/System.out(22956): time: 285.3s >> wrapped array to vertex buffer

Here is the interesting code that runs this part of the test:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
               FloatBuffer nativeDirectFloatBuffer = OpenGlMemoryUtil.makeFloatBuffer(FLOAT_BUFFER_SIZE);
               float[] floatArray = new float[FLOAT_BUFFER_SIZE];
               
               for (int i = 0; i < FLOAT_BUFFER_SIZE; i++) {
                       floatArray[i]=0.5f;
               }
               
               time = print("Going VertexBuffers");        
               for (int i = 0; i < TESTSIZE_MILLIONTH; i++) {
                       nativeDirectFloatBuffer.position(0);
                       for (int k = 0; k < FLOAT_BUFFER_SIZE; k++) {
                               nativeDirectFloatBuffer.put(0.5f);
                       }                        
               }
               time = PerfLogUtil.logTime(time, "vertex buffer single puts", logindex++, TESTSIZE_THOUSANDS);
               
               time = print("Going VertexBuffers");        
               for (int i = 0; i < TESTSIZE_MILLIONTH; i++) {
                       for (int k = 0; k < FLOAT_BUFFER_SIZE; k++) {
                               nativeDirectFloatBuffer.put(k,0.5f);
                       }                        
               }
               time = PerfLogUtil.logTime(time, "vertex buffer single puts with specified positions", logindex++, TESTSIZE_THOUSANDS);

               time = print("Going VertexBuffers");        
               for (int i = 0; i < TESTSIZE_MILLIONTH; i++) {
                       for (int k = 0; k < FLOAT_BUFFER_SIZE; k++) {
                               floatArray[k]=.5f;
                       }                        
                       nativeDirectFloatBuffer.position(0);
                       nativeDirectFloatBuffer.put(floatArray);
               }
               time = PerfLogUtil.logTime(time, "vertex buffer full array puts", logindex++, TESTSIZE_THOUSANDS);
               
               FloatBuffer floatBufferWrappedArray = FloatBuffer.wrap(floatArray);
               time = PerfLogUtil.checkPoint();
               for (int i = 0; i < TESTSIZE_MILLIONTH; i++) {
                       floatBufferWrappedArray = FloatBuffer.wrap(floatArray);
               }
               time = PerfLogUtil.logTime(time, "vertex buffer wrapping", logindex++, TESTSIZE_THOUSANDS);
               
               for (int i = 0; i < TESTSIZE_MILLIONTH; i++) {
                       for (int k = 0; k < FLOAT_BUFFER_SIZE; k++) {
                               floatArray[k]=.5f;
                       }                        
                       nativeDirectFloatBuffer.position(0);
                       floatBufferWrappedArray.position(0);
                       nativeDirectFloatBuffer.put(floatBufferWrappedArray);
               }
               time = PerfLogUtil.logTime(time, "wrapped array to vertex buffer", logindex++, TESTSIZE_THOUSANDS);
17  Java Game APIs & Engines / Android / Re: FloatBuffer.put (int index, float f) expensive on: 2010-06-03 12:24:04
Yes, wrote a small test app that times the different methods (one at a time, float[], FloatBuffer.wrap(float[]). One at a time is fastest, then float [], the slowest is to pass it a wrapped FloatBuffer.
18  Java Game APIs & Engines / Android / Re: FloatBuffer.put (int index, float f) expensive on: 2010-06-03 08:01:07
Hmmm it is probably hardware specific which implementation of the put method you get. I am running on a Nexus One. And after putting in breakpoints I could see that the implementation of put(float[]) I got was one that just traversed the array and called put(float) on each element.
19  Java Game APIs & Engines / Android / Re: FloatBuffer.put (int index, float f) expensive on: 2010-06-02 17:34:11
No, I meant the put is done many times pr frame. There is only one floatbuffer. But as the particles move each frame I have to update all positions in the floatbuffer.
20  Java Game APIs & Engines / Android / Re: FloatBuffer.put (int index, float f) expensive on: 2010-06-02 16:04:28
Was wondering if there could be an alternative way to construct the FloatBuffer for OpenGL. Haven't really been able to think one up though. From the source code it appear what is taking 10 times as long time is different checks and function calls. Nothing much but when applied 1000 times pr frame in a particle system it really ads up.
21  Java Game APIs & Engines / Android / Re: FloatBuffer.put (int index, float f) expensive on: 2010-06-02 16:00:46
Yes tried that. It had no effect. So I found the source code and noticed that that method just iterates over the array and calls pu(index, float) on each element.
22  Java Game APIs & Engines / Android / FloatBuffer.put (int index, float f) expensive on: 2010-06-02 14:38:10
I am working on a particle system using OpenGL on Android 2.1. To communicate with OpenGL a FloatBuffer is used. Allocated as such:

buffer = ByteBuffer.allocateDirect(FLOAT_SIZE * size * 2).order(ByteOrder.nativeOrder()).asFloatBuffer();

used as such:

buffer.put(index, f)

I have noticed that buffer.put() takes at least 10 times as long time as assigning an ordinary float array. This becomes a real bottleneck and the limiting factor as to how many particles I can have.

Has anyone noticed this problem or have any suggestions as to how to get around it?

Thanks,

Martin
23  Java Game APIs & Engines / Android / Re: Capturing Android Exceptions remotely on: 2010-05-25 10:21:01
No, didn't know that! Where do I see the market bug reports? Are they available on 2.1?
24  Java Game APIs & Engines / Android / Capturing Android Exceptions remotely on: 2010-05-25 07:39:06
Just discovered how to automatically get force-close reports from users. Most amazing thing to happen for weeks! Probably you know already but here is the description:

http://nullwire.com/capturing_android_exceptions_remotely
25  Java Game APIs & Engines / Android / Re: Ads on Android on: 2010-05-25 07:24:12
So we finally got accepted and got up and running on Google AdSense. So far it is disappointing though - we only have a CTR of about .3% whereas admob and QW can get to 2%. Anyone else have similar experiences? Maybe we are doing something wrong - it sounds very low to me...

/Martin
26  Java Game APIs & Engines / Android / Re: Scoreloop.com on: 2010-05-18 13:44:11
OK - very interesting. Do you know if there are any competitors? They seem to be the most advanced highscore service on Android it seems to me. I think I will give it a shot with my next game.
27  Java Game APIs & Engines / Android / Re: Scoreloop.com on: 2010-05-17 10:40:20
Spam? I think their offer is quite interesting. They seem more advanced than for example Score Ninja which is the only other highscore service I know of.
28  Java Game APIs & Engines / Android / Scoreloop.com on: 2010-05-17 09:17:37
Just got an email from scoreloop.com. Apparantly they have a custom highscore service that can be integrated into games. Anyone has any experience with them/ knows what they are all about?

Thanks,

Martin
29  Java Game APIs & Engines / Android / Access to reviews on Android Market on: 2010-05-04 06:24:07
Does anyone know if it is possible to access all the reviews for a given application on the android market? I noticed sites like cyrket and androlib has some - but they claim it is only a selection of the reviews they have. But all the reviews seem to be available on the phones. Apart from being very interesting data like this could be used in-game to for example make an achievement to write a review of the game to encourage user involvement (any rating ok of course).
30  Java Game APIs & Engines / Android / Hardware Acceleration - OpenGL vs Canvas on: 2010-04-27 04:43:30
I have made a game using Canvas but for performance reasons want to switch to using Canvas. However, some devices such as HTC Tattoo does not have very good hardware acceleration and performs worse with OpenGL! Wondering if anyone has made thoughts about that? Should both OpenGL and Canvas be supported and the user be able to choose via an in-game setting? Or the game can autodetect and choose OpenGL or Canvas? Or is it so few phones that don't support OpenGL HW accelerated that it is ok to just only go with OpenGL? I think I will end up just going with OpenGL for simplicity.

Anyone had similar thoughts? Any input appreciated!

/Martin
Pages: [1]
 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Longarmx (36 views)
2014-10-17 03:59:02

Norakomi (28 views)
2014-10-16 15:22:06

Norakomi (24 views)
2014-10-16 15:20:20

lcass (27 views)
2014-10-15 16:18:58

TehJavaDev (52 views)
2014-10-14 00:39:48

TehJavaDev (54 views)
2014-10-14 00:35:47

TehJavaDev (42 views)
2014-10-14 00:32:37

BurntPizza (63 views)
2014-10-11 23:24:42

BurntPizza (36 views)
2014-10-11 23:10:45

BurntPizza (77 views)
2014-10-11 22:30:10
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!