| Q&A |
Ogre3D
iPhone
David Rogers
Ogre3D Team
Dec. 2009 |
| |
 |
“[...]
scene management, advanced material usage and high performance
rendering that Ogre provides for the desktop are also
available on the iPhone. You can create beautiful scenes
with large poly counts and still get an excellent framerate.”
<
Ogre3D on the iPhone |
|
| |
|
| Q1 |
You
have joined Ogre3D Team in order to port Ogre3D to the iPhone.
What's the actual state of this project? |
| A1 |
Actually
I joined the team after I had finished the first revision
of the port. Some time in March or April I decided that I
needed something help hone my skills but I also wanted to
help others. I had explored Ogre in the past and had been
using the iPhone SDK since it was introduced. I saw that an
iPhone port was on the Help Wanted page of their wiki so I
decided that it was what exactly what I wanted to do. I was
pleasantly surprised when Steve Streeting asked me to join
the team. It's been a huge learning experience and a great
deal of fun. The iPhone port is very stable and has received
a quite a bit of testing. Starting with the upcoming 1.7 release
of Ogre, iPhone OS will become a supported platform just like
Windows, Linux and Mac OS X. Currently, it is available for
anyone to try out in the Ogre Subversion repository. |
| |
|
| Q2 |
What
are the principal limitations between the PC version and the
iPhone? |
| A2 |
There
are actually very few limitations. Features that require the
use of shaders such as compositing are not yet supported but
all other features such as skeletal and camera animation, billboarding,
particles, scene querying and management work great. Of course,
the iPhone is a very powerful mobile device but not as powerful
as today's desktop PCs so you must plan your project accordingly. |
| |
|
| Q3 |
Is
it possible to create an iPhone game using Ogre3D without a
Mac? What is the development environment? |
| A3 |
Presently
the development environment is Xcode on Mac OS X. But because
Ogre is cross platform, has a number of GUI, Physics, AI and
input libraries that can be easily incorporated with Ogre, it
is possible make a game on any platform and then port it fairly
easily to the iPhone.
The same tools that people use to create content for other platforms
can also be used for iPhone development. Create meshes in Blender,
3DS Max, or Maya. Edit scenes with Ogitor. All assets created
can be used without modification on the iPhone. |
| |
|
| Q4 |
How
do you handle the differences between iPhone 3G and 3Gs (openGL
ES 1.1 and 2.0)? |
| A4 |
Only
OpenGL ES 1.1 is supported currently, but support for 2.0 is
a high priority that is already in development. Because 2.0
has many fundamental differences from 1.1 (no fixed function
pipeline and addition of the shading language), it needs to
be a separate render system. Much like DirectX and OpenGL, you
will have to either choose one at runtime or the highest supported
version will be automatically chosen for you at runtime. |
| |
|
| Q5 |
Actually
different engines export to iPhone (Unity 3D, Shiva, Torque),
how do Ogre3D complete with those solutions? |
| A5 |
Ogre
can't be directly compared to those engines because it is only
a rendering engine, while they are complete game engine and
content creation solutions that include AI, physics, scripting,
etc. Many engines similar to Unity 3D, Torque, etc. require
developers to use a scripting language often based on Javascript
which is then compiled down to machine code or interpreted at
runtime for the platform that you choose. This can be very nice
because it they provide a single interface for content creation
and coding regardless of platform and has a shorter learning
curve but at the cost of performance.
Ogre is written in and provides interfaces for C++ for high
performance. There are also a few wrappers for languages such
as .NET, Python and others and also wrappers for a large selection
of third party commercial and open source libraries. While I
can certainly see the benefits of other engines, I prefer Ogre
because of the control and flexibility that it gives me. You
have the flexibility to choose which libraries you want to use
for physics, AI, audio, etc. That flexibility gives you the
option to create a toolkit that your development team is most
comfortable with which can decrease development time.
If speaking strictly about rendering, the same scene management,
advanced material usage and high performance rendering that
Ogre provides for the desktop are also available on the iPhone.
You can create beautiful scenes with large poly counts and still
get an excellent framerate. |
| |
|
| Q6 |
Is
there already some iPhone Apps based on Ogre3D engine? |
| A6 |
Several
people on the Ogre forums have talked about using Ogre for iPhone
projects but I haven't heard any details about them yet. Since
iPhone is just becoming a supported platform most anything that
has been made so far is for exploration or proof of concept.
It would be great to see some existing games made with Ogre
ported to the iPhone as well as brand new projects that use
Ogre in brand new, creative and innovative ways. I'm excited
to see what people will do with Ogre on the iPhone with the
1.7 release. |
| |
|
| Q7 |
There
are several ways to add a user interface on Ogre3D (CeGUI, Hikari...).
How to build a UI with the iPhone? |
| A7 |
Because
Hikari depends on Flash, which is poorly suited to mobile devices
such as the iPhone, it is not supported. Other powerful libraries
like QuickGUI, BetaGUI, CEGUI for example should have no problems.
As long as you can compile it for the iPhone then almost any
GUI library should work just fine. I expect that most of the
popular GUI libraries available for Ogre will have few issues,
if any. The same philosophy applies to other library wrappers,
developers should be able to harness the resources and tools
that they are already using in their development and content
creation pipelines.
Starting with the 1.7 release, Ogre has a new Sample Browser
which has it's own GUI system. It only required some small changes
to work on the iPhone. Resizing and repositioning some UI elements
was all that was needed. |
| |
|
| Q8 |
What
are your advice for people who want to develop 3D content with
iPhone? |
| A8 |
Use
your imagination, don't shy away from doing something different
and crazy. Not only will it get you noticed but it is essential
for the evolution of gaming. The ease of development for the
iPhone makes it a fantastic environment for experimentation.
Hardware-wise the iPhones and iPod Touches are close to fifth
generation consoles(Dreamcast, GameCube, etc.). The focus
is more on clever design and input than cutting edge graphics.
Don't get me wrong, the graphics are strong but can't be compared
to the Xbox 360 or PS3. Much like the Wii, the iPhone allows
developers to innovate in user interfaces and input in dramatic
and previously unavailable ways.
The iPhones' accelerometer lets you treat the device as a
controller. Just like how the Wii Remote can be used as a
steering wheel. Remember playing Super Mario Bros., watching
your friends jerk the controller up when they wanted to jump?
Actually using that motion to jump has become a reality now.
It helps to think of the iPhone as a console. Pay special
attention to memory management and learn about the tricks
that console developers have been using for years. Become
great friends with artists. Burn lighting effects into textures,
use shading on textures to hide a low poly count and use compressed
textures.
|
| |
|
| Q9 |
Ogre3D
have been used for TorchLight - a game that receive good critics
- do you think that the differences between expensive engines
(CryEngine, Unreal) and Open Source engines is getting low?
|
| A9 |
I
think it is starting to. The potential is definitely there.
Many commercial engines are tightly integrated with all subsystems
while with Open Source you can choose all systems yourself and
create your own custom game engine. There may be some legwork
that you will need to do to tie them all together. You may find
wrappers already made to put it all together. While there may
be some more work for the developer to do to get exactly the
system and tools that they want, it gives them a large amount
of freedom which can be invaluable.
The Open Source model also gives you the advantage of community
support. Plugins and other code can easily be contributed to
help others implement the same techniques that are used in commercial
engines. Plus, commercial engines can cost thousands of dollars
and engines such as Ogre are free. I would say that the development
cost to assemble a game engine from Open Source projects is
far less than licensing a commercial solution. |
| |
|
| |
|