I am starting to build an app for Android and iOS and I want to do it with the right tools.
I started with html5 canvas, but it looks like it won’t work on older phones (low fps). So I would like suggestions on what tools/engine to use.
Here’s what the app will look like
The app will display some animation (e.g. a basketball bouncing off the wall and hitting other balls). This will be a simple 2d animation, but the balls will have to rotate 3d-like. User will watch this animation without any user input.
After carefully watching the animation, user will be presented with a multiply choice question. Based on his answer, he will receive a new level (new animation to look at). And so on it goes…
What I have so far
I have made a sort-of physics engine with javascript/canvas. With it I can create my animations in a drag-n-drop way and then output a file detailing this animation. Basically, the file describes linear and angular velocities and accelerations of each ball. For example,
Ball1:
from (time = 0) to (time = 0.75), has:
speed = (vx, vy),
acceleration = (ax, ay),
rotationalSpeed = (wx, wy, wz),
rotationalAcceleration = (alphax, alphay, alphaz)
from (time = 0.75) to (time = 1.14), has…
...
Ball2: ….
Using this information, it is easy to calculate the correct position and rotation of each ball at any time. All I have to do now is animate the balls. I need to be able to draw the ball (sphere with appropriate textures) in the correct position and correct rotation. And I need to achieve high enough fps doing this.
What I would like
I would like to take the animation details files (like the ones I described above) and import them as levels. Then, when user is at a certain level, I would like to show him the appropriate animation.
I need the app to be able to:
- Animate smoothly (even on older phones),
- display text description for each animation (describing what user needs to look at),
- get user input after animation (multiple choice),
- auto-select new level, based on all previous user results,
- display progress charts,
- have no problem handling 1000+ levels.
So here’s the question
What do I use to code this?
I don’t really care about the program language at this point. I do care about performance though. And I would like to use most (if not all) of the code for both Android and iOS.