It does look smooth on the G1.  The use of accelerometers is quite cool.
Good job on minimizing the GC jitters. The screen has horrible ghosting with
green to grey transitions, however, which mars the smooth framerate a bit.
Red balls would probably reduce that.

-Daniel Sargeant

On Wed, Apr 1, 2009 at 7:04 AM, mscwd01 <[email protected]> wrote:

>
> Thanks for the demo Anton,
>
> It certainly runs much smoother than the Phys2D and JBox2D engines I
> have tried and you have more objects being simulated - so you must
> have done something right ;)
>
> I would expect it to run 2-3 times faster on an actual device too from
> what I have read.
>
> Once you have finished off the improvements do you have any plans to
> release it?
>
> Thanks
>
> On Apr 1, 7:44 am, Anton <[email protected]> wrote:
> >     OK, for anyone interested in my simple physics demo, check out:
> >
> >    http://www.antonstoys.com/android/BallPit.apk
> >
> >     It's pretty basic, but it shows that you can do some amount of
> > physics on the G-phone at a reasonable rate.  And as always, there are
> > many improvements to be made.  :)
> >
> >     -Anton
> >
> > On Mar 31, 2:12 pm, Anton <[email protected]> wrote:
> >
> > >     I'll definitely post the app tonight for you guys to check out (at
> > > work now).  I am an embedded systems programmer by trade.  But I do
> > > physics toys for fun and am just getting into Java/Android
> > > optimizations.  I will point out that optimizing for Java and
> > > optimizing for Android are very different.  As people have pointed out
> > > before, the key things to be careful with on Android are memory
> > > allocation and floating point math.  I've removed both of these from
> > > my physics loop.  I also found that function call overhead was quite
> > > large and had to manually inline all of my fixed point math code.  I
> > > think that with the correct spatial data structures I can get a couple
> > > hundred objects interacting.  I have a 2D rigid body physics engine
> > > that is currently all C++ (no exceptions or templates or RTTI or
> > > multiple inheritance) that I may port over as well.
> >
> > >     However, having said all of that, I think it may be the case that
> > > we will just have to wait until a native SDK is available to really
> > > write a top notch physics engine.  It's sort of the perfect example of
> > > a piece of code that doesn't need anything more than libc and JNI
> > > bindings.  And since you only call it a couple times per frame the JNI
> > > overhead would be well amortized.
> >
> > >     Anton
> >
> > > On Mar 31, 9:17 am, mscwd01 <[email protected]> wrote:
> >
> > > > Thanks for your feedback Shaun, I too unfortunately think a bespoke
> > > > engine will need to be written for Android, which is a real pity as
> > > > the iPhone has several physics engines which can easily handle
> > > > hundreds of objects.
> >
> > > > Having said that Anton (2nd reply) has said he has an engine running,
> > > > it would be nice to see a demo of this if that'd be possible?
> >
> > > > Clark, i'd definately host any .apk's on my own site, I wouldn't put
> > > > it on the marketplace if it wasn't a "finished" app - do people
> > > > actually do that?!
> >
> > > > I think i'll stay away from developing games with physics for the
> time
> > > > being and concentrate on something else, I cant see it being feasible
> > > > to include it any time soon which is a real pity.
> >
> > > > On Mar 31, 3:28 pm, shaun <[email protected]> wrote:
> >
> > > > > I am the author of simpull.
> >
> > > > > Sorry guys for the demo being out of whack for Simpull to the Core.
> > > > > The version of PulpCore that I integrated simpull with did not
> support
> > > > > Chrome, but you should be able to see it in IE, FF Safari.  It is
> nice
> > > > > to take a look at that demo to get a feel for what the engine is
> > > > > capable of, but the performance does not translate over to the
> fixed
> > > > > point branch/version of simpull when running on Android.
> >
> > > > > I ran tests on both the emulator and the actual device and there
> was a
> > > > > significant increase in performance because of the fixed point
> > > > > implementation, but I got very frustrated that it still did not
> > > > > support the amount of objects in a scene that I considered good for
> a
> > > > > physics-based game.  It seemed to handle ~10 objects moving and
> > > > > colliding OK.  It has been a while since I was playing with it, so
> I
> > > > > do not really remember the exact number of objects or the frame
> rate.
> > > > > I mostly remember being upset with it.
> >
> > > > > I am leaving the physics ideas for games out of the picture when
> > > > > thinking Android for now.  Someone would have to write a ground up
> > > > > engine with all the performance and memory concerns of Android in
> > > > > mind, which was not the case with Simpull.....I created it for
> > > > > applets, then thought to port over to fixed-point for Android.  It
> > > > > works well with small scenes, but certainly not the staple engine
> to
> > > > > use in my opinion.
> >
> > > > > Also, Phys2D will not run worth a damn on Android.  I tried it and
> I
> > > > > even went through some heavy performance tuning.  Garbage
> collection
> > > > > is the major issue even after all I did.  I seriously doubt JBox2D
> > > > > will run well either.  I'll stick to what I said earlier, a
> ground-up
> > > > > solution by someone smarter than me is probably required.
> >
> > > > > On Mar 31, 9:49 am, "[email protected]"
> >
> > > > > <[email protected]> wrote:
> > > > > > Not tried but if you can provide us with some example source code
> or
> > > > > > put something on the market, I'm sure we could take a look.
> >
> > > > > > G1 performance is significantly faster than emulator, but there
> are
> > > > > > limitations.
> >
> > > > > > Particularly with garbage collection and memory allocation on
> code
> > > > > > that gets run continuously in loops, so I don't know how
> optimised
> > > > > > these physics engines are for this purpose.
> >
> > > > > > Would be interesting to find out though.
> >
> > > > > > On Mar 31, 12:52 pm, mscwd01 <[email protected]> wrote:
> >
> > > > > > > Oh I forgot to re-ask...
> >
> > > > > > > "Has anyone tested Phys2D or JBox2D on an actual device to see
> if they
> > > > > > > run better than on the emulator?
> >
> > > > > > > I have a feeling the performance will better on a G1 than the
> emulator
> > > > > > > for some reason!
> >
> > > > > > > On Mar 31, 12:51 pm, mscwd01 <[email protected]> wrote:
> >
> > > > > > > > I did take a look at Simpull, however the demo application
> failed to
> > > > > > > > run as it relied on some library which wasn't supplied or
> referenced
> > > > > > > > to - I just got annoyed after spending two days failing to
> get Phys2D
> > > > > > > > and JBox2D to work in Android and didn't bother trying to
> work out the
> > > > > > > > problems!
> >
> > > > > > > > I might give it another look though...
> >
> > > > > > > > On Mar 30, 10:41 pm, Streets Of Boston <
> [email protected]>
> > > > > > > > wrote:
> >
> > > > > > > > > I wonder how well this one works on Android:
> >
> > > > > > > > >  http://code.google.com/p/simpull/
> >
> > > > > > > > > -- Anton Spaans
> >
> > > > > > > > > On Mar 30, 4:58 pm, Anton <[email protected]> wrote:
> >
> > > > > > > > > >     I have a simple 2D physics engine written and
> running.  It uses
> > > > > > > > > > the now famous Jacobson physics tricks (Verlet
> integration and hard
> > > > > > > > > > constraints).  I can manage 40 balls on the screen, with
> fill n^2
> > > > > > > > > > interaction between balls.  I am working on spatial data
> structure
> > > > > > > > > > optimizations now to improve the computational complexity
> of the
> > > > > > > > > > collision detection code.  I run the constraint update
> loop five times
> > > > > > > > > > per frame and get 30 frames per second.  Once the engine
> is up and
> > > > > > > > > > running there are no memory allocations done in my
> program.  And once
> > > > > > > > > > the system settles down from the app launch there are
> very few GC
> > > > > > > > > > events from other programs.  Though they do still happen.
>  Viewing
> > > > > > > > > > LogCat I see a GC every 10 or 20 seconds because of some
> background
> > > > > > > > > > application.  But between those events I get a consistent
> frame rate.
> > > > > > > > > > I am using OpenGL for my rendering.
> >
> > > > > > > > > >     -Anton
> >
> > > > > > > > > > On Mar 30, 1:14 pm, mscwd01 <[email protected]> wrote:
> >
> > > > > > > > > > > Does anyone know of, or have implemented, a physics
> engine which runs
> > > > > > > > > > > smoothly in Android?
> >
> > > > > > > > > > > I have spent the last couple of days trying Phys2D and
> JBox2D, however
> > > > > > > > > > > both perform very poorly - I am struggling to get even
> a few objects
> > > > > > > > > > > to simulate smoothly as frequent garbage collection
> spoils it.
> >
> > > > > > > > > > > One question I do have is will these run smoother on an
> actual G1
> > > > > > > > > > > device or is the performance of the emulator accurate?
> >
> > > > > > > > > > > Thanks- Hide quoted text -
> >
> > > > > > > > > > - Show quoted text -
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to