choosing 3D library / platform for mobile and Desktop application - mobile

I want to build an application for mobile (ios,android) and Desktop (Windows) or Web.
The application will look like this: a 3D object which the user can play with the camera perspective around it and some menus.
What I need is to manipulate a 3D Object like torus or tube. by manipulate I mean: change materials and edit the object like a polygon. of course I also need menus and communication to a server.
*Optional: I am not sure if I need to load 3D model from a file.
What I don't understand is should I look for all in one solution or combine a cross platform framework with other libraries? Are Game engine suitable for this task?
My options so far:
Use Three.js with PhoneGap and write in java script
Use OGRE and write in C++ with some cross-platform framework that allow me to write in C++.
I never developed for mobile and I wonder about those cross-platform frameworks: does the application's size is big? does the application runs well? which obstacles should i have comparing writing separate applications for each platform?
Thank you for your help

Might want to look at libgdx .

Related

Cross-platform (desktop and mobile) 3D engine

I'm planning on creating a "simple" 3D game/app based on the heightmap demo at http://www.babylonjs.com. The game would really be no more than rotating the camera around an area with some assets, more of a tech demo.
However, that engine utilizes WebGL, which isn't supported on most mobile devices.
I'm looking for a 3D engine that could be used to create a similar app on desktops and mobile devices.
Would Ludei be suitable for this task?
Ludei looks interesting, I think I'll take a look into that myself.
For cross-platform development, take a look at libgdx. This is a framework that lets you write all your code in Java and then compile for various platforms (Windows/Mac desktop, Android, iOS.) I believe it can also compile to HTML5/JS/WebGL.
libGDX is great, unfortunately it lack of enough tutorials and material on 3D.

cocos2D or IwGame

I started developing a game application for Android, but as I progress I decided to switch to cross-platform environment. Performance is very important as there is some complex audio processing on the background. After few days researching the subject I came to conclusion that the most successful option is Marmalade SDK.
Now I need to decide if to use IwGame or Cocos2D-X or both for development. Both looks great and interesting. Have anyone used these and can share experience?
Thanks.
It depends on how much your game is dependent on the game engine. Cocos2D-x is more feature reach and heavy duty game engine, contributed by many open source developers, while IwGame engine is build by an individual (or may be a team of individuals) just for marmalade.
I've used Iwgame engine for 3D game camera rotation only and it was too easy to set it up and within a day I could make my game running fine. So if your needs are not high, just use IwGame .
Physics engine like Box2D and Chipmunks are said to be better linked with Cocos2D-x, however I've used them separately in marmalade project and faced no problems at all. So it's not a big deal to have a better linked physics engine.
To work on Cocos2D-x, you'll need to learn it first, while IwGame is not too complex to start. But once you worked with Cocos2D-x, it'll be easier for you to work on serious projects and you'll want to use only this.
IwGame offers a very powerful built-in mark-up language (XOML) that can make laying out game levels, designing animations, creating user interfaces very easy. IwGame also allows you to host your content on remote server and download it on demand. Oh, it also has built in support for ads and in-app purchasing.
Cocos2D is the more mature engine but I believe IwGame is more feature rich and easier to use.
I only use cocos2d-x (without Marmalade). I think it is pretty handy when making games, but the setup process and getting your first game to work aren't that easy.
I didn't try IwGame, so I cannot say much about it.
You can get a feel of what cocos2d-x games look like in my profile.

Options for developing 3D Web App

I am developing a webapp which the most challenging aspect is the 3D model section. It also contains other things such as drag and drop and a sliding bar with arrows each side which the user can go through to select different items.
I have been looking into WebGL but it seems IE doesn't support it without using a plugin. This isn't ideal so I was wondering what other options I have.
Flash? Silverlight? Anything else?
Silverlight is WAY too rare to be used for any meaningful development, and ajax is simply not stunning enuogh. That leaves us with Flash, which in my opinion, is the best of the three options. Flash Player 11 introduces the new Stage3D API which can create pretty stunning 3D graphics. There are also many AS3 libraries for 3D rendering. I prefer Away3D
Just found this, which looks promising.
http://iewebgl.com/
Edit: Disregard, seems the user has to download the executable for it to work.
at the moment flash is most popular plugin for 3D based web apps. which is cross browser, but no mobile browsers support :(
Many technologies and every one have his disatvantages

Toolkit options to write a crossplatform mobile app in 2012?

I'm currently investigating the alternatives for crossplatform development for Android and iPhone (Windows 8 could be a nice addition). The app is basically a "map with an asociated app", and certainly not a game.
Searching here I see many outdated advice and tools from 2010/2011, but since then Apple has changed their policies and surely new things have appeared.
My current list and light research (might have facts wrong) is:
Monotouch/Monodroid: .NET (Mono) framework. Create "native" apps on both platforms. Requires rebuilding UI code (or similar things).
Appcelerator: Javascript framework to compile native apps.
Corona: Similar to Appcelerator.
Phonegap: Similar idea, but looks like it uses a wrapper to appify HTML5 content
SenchaTouch: Another HTML5 based platform.
Wink: Yet another HTML5 toolkit.
XVLM: Android to ObjC compiler, probably creating ugly iOS apps.
Unity3D: For games only.
Moai: For games only.
So, there are three main ideas, with some frameworks implementing each, it seems to me:
Have an abstraction layer over native iOS/Android code and build for each platform using the provided layer. (Monotouch, Unity3D)
Use HTML5 (coding in Javascript) and some kind of wrapper to "appify" the web content. (PhoneGap,Sencha,Wink)
Code using a framework that will output as a compilation pass (or similar) a native app for each supported platform (Moai, XVLM,Appcelerator,Corona)
The questions:
Is there a fourth idea I haven't yet found?
Is there any blatant mistake in my research for any of the specified frameworks?
Is there any known problem for map integration with any of these ideas or specific frameworks?
Only a partial answer:
Ad 2. Appcelerator / Titanium is more than just HTML5. I read this pretty extensive comparison between PhoneGap and Titanium the other day on Hackers News. I found it very informative. The link points to the HN comments, the link to the actual article is at the top.
My main experience is with Mono for Android and MonoTouch, so I can't personally speak much to the other options. I personally find it to be the best option there is, as it allows you to share a large amount of your code across the platforms (even extending to non-mobile platforms if you stick with .NET), while still allowing for a 100% native UI, which is extremely important. If you're looking for resources on getting started, I have this video which discusses approaches and libraries for sharing a lot of code across platforms, and also this book which covers the same thing, but also expands to talk about how to do things like store data, use maps, access the network, etc.
I also want to mention MonoGame, which is absent from your list. MonoGame is an open source XNA implementation that sits on top of Mono to allow you to target iOS/Android/Max OS X.
From what I have experienced, if you want to have a native app go Mono, if you don't need native go PhoneGap. Native is best of the UI is very important, ie games or fairly graphical apps. But from business type app, CRUD, Phone gap works well.

Manipulation with GIS content on the web using the WebGL

I have task to create program for manipulation with 3d content on the web. When I said 3d content i mean
on 3d map (witch i have and it is something like *.sdm) which i should load into browser and work some basic operation with it (rotate screen, change camera etc...).
Because i am totaly n00b i want to ask a couple of questions:
1. How to load maps into browser. Just for notice that my map have sdm extension. Is this possible?
2. What i should use for represent 3d content. I am thinking of GLGE framework for webGL, if it is possible of course
What should be the most painless and the most effective way to do this? Maybe i was totally wrong when choose webGL?
Programs that use WebGL aren't mature enough to do what you want. Within the next few years, when GIS applications start popping up it may be possible, but not now.
Also, keep in mind that WebGL is what gives you access to a low-level graphics library. It does not directly have anything to do with GIS data.
You may want to take a look at OpenLayers (2d, javascript based) or WorldWind-Java (3d, jogl/java based). Both of these programs can display map information in a browser.
http://openlayers.org/
http://worldwind.arc.nasa.gov/java/

Resources