I am part of a student project working to create a free educational chemistry browser game, but we can't decide on which plug-in to use (Flash, Java, Unity...).
The game will consist of 2d graphics and short movie-scenes and it will mainly be a drag-and-drop game.
We want it (the plug-in) to be supported for the next several years and compatible with most (if not all) PCs and tablets - so Flash is already out of the question.
We're horrible programmers, but we have some funding, so we will outsource the actual programming, which means that it is also relevant whether we can find people able to work with the plug-in.
So which plug-in would you recommend to our needs? Pros and cons are very welcome.
Also please do tell if I've left out some relevant points!
I think the best option is to avoid plugins entirely.
Apple iPad and iPhones don't support flash as you know, but they don't support any other plugins either.
Flash is supported on most (but not all) Android tablets and phones up to and including Android 4.0. But Adobe (makers of the flash plugin) have discontinued it and said that it will not be supplied for Android versions above 4.0.
Even on Android 4.0, users who have installed and are using the Chrome browser instead of the default browser, will not be able to view flash because even though the Android 4.0 OS might have a flash plugin, the Chrome browser when installed on Android 4.0 has not been designed to use it.
Android apps are written in Java, but the Android web browser doesn't actually include a plugin for running Java applets. Plugins are basically being phased out across the board, regardless of the OS or browser.
The best strategy:
To reach the widest number of users
Regardless of the type of PC, tablet, or browser they use
And which will not result in the game becoming unsupported by browsers in in the long term
is to design your app using web standards.
These days, HTML 5 Canvas, CSS, JavaScript, and other technologies, which have been standardized to be supported across all web browsers, allow complex animations/graphics inside the browser, support drag and drop, and support playing video, without using any plugins at all. You could look at outsourcing development to a team which knows these technologies.
Since you are also looking at video, be aware though that there is an ongoing debate surrounding the <video> tag in HTML 5 (the feature which allows videos to be played without plugins). Basically it has been agreed that all browsers will allow videos to be played without plugins, but the actual format of the video which the tag should support, was left out of the standard (due to disagreements) and so has not been decided.
The candidate video formats being debated include WebM/VP8, H.264/MPEG-4 AVC and Theora.
The workaround to this issue, is that the HTML 5 <video> tag allows you to list multiple sources for a video (i.e. multiple files on your server, all for the same video but in different formats). So if you save your videos in the most common formats, the browser can then choose the best format that it supports.
The HTML 5 video format debate therefore would not impact the design of your game (much), it just might give you a headache in needing to save videos in multiple formats. If you do this then your game would have wide compatibility across all of the major browsers.
Related
I'm preparing to deploy a game developed using LIBGDX for both android and Desktop computers. Is there a way to put ads in a desktop application? I'd like to generate revenue from the desktop ads too.
You'd have to stick a browser widget in your desktop application and display adverts in there. JEditorPane's HTML support is pretty primitive, however, so you'd have to search for an embeddable Java browser or a custom subclass of JEditorPane which supports modern HTML (I think JEditorPane support stops at HTML 3.2). There are some freely available alternatives just a Google search away.
Off the top of my head, I can't think of any advertising networks geared towards desktop applications at all, so the browser approach is probably your only real shot at doing what you want.
I heard that we can use Adobe Flash Builder to develop apps for android. But I have a doubt, can we create any type of application? are there any limitations to adobe flash applications?
I know flash is good for games and internet applications.
I am confused, which is better for android app creation? Java or Flash?
Advantages of using Flash:
One code base, many (iOS, Android, Blackberry) platforms
Easy navigation between view (as iOS does not have a hardware back button)
Good for apps which serve as a front end for RESTful web services
Supports gestures, camera, vibration, contacts
Disadvantages of using Flash
Performance takes a hit when you try to do image processing and other heavy stuff
Cannot access front camera
Doesn't give you as much control as Java
Advantages of using Java
Can exploit Android OS to its fullest
Performance is better in case of complex apps
Disadvantages of using Java
Cannot use the code-base to target other platforms
IMHO, it depends on the use-case of your app.
Major disadvantage: Adobe has announced that they will stop
developing/supporting Flash on Android
It'll be a long time before desktop will follow, considering that most users are IE users (Google analytics supported) and remember that IE9 still has VERY limited support for HTML5 where as Flash has 99% global cover on PCs.
So until such time as all browsers have much more HTML5 support, Flash will still be here for a while - whether it's here for good, perhaps not - but Adobe are already creating their new Flash Development tool to output HTML5 as well as SWF files. But like all file types, they will eventually have their day - but it's not yet that time.
java with android sdk is 100% and Flash with adobe air is 70%(approx).becase adobe provide same functionality like android sdk useing "Native code" but some functionality that cant allow by flash.
another thin is that version problem.you can continue with 2.2 or higher.
some Broadcasting functionality are not there
Advantage::
flash game building are easy and just 2 to 3 step to convert it into apk or iphone formate.
Major disadvantage: Adobe has announced that they will stop developing/supporting Flash on Android. Desktop flash will soon follow. So if you are starting a new project, unless its expected lifetime is fairly short, forget about Flash.
The Three20 project is really nice for building iPhone apps quickly using common libraries:
https://github.com/facebook/three20
Is there anything like this for Android?
Not exactly, but working at a company with a partially three20 based iPhone app developed in parallel with the Android version, I think about 50% of what 320 does you get right out of the platform on Android, minus a little polish. For example, 320's Navigator and TextEditor are basically baked in on Android - the platform's native text editing components can stretch dynamically on their own, and task navigation and back-button history is handled automatically on Android, with URL handling baked in to the intent filter and resolution system.
You can get much of the rest of 320's functionality out of reusable libraries like ignition or GreenDroid (at least with regards to caching and images loading in lists), without the weight and lock-in a fairly monolithic framework like 320 can add to your app. There's a few bits that these solutions miss (three20's zoomable photo viewer, for instance), but there's usually acceptable hackarounds for quick usage (an Android WebView makes a pretty decent image viewer substitute, for instance).
Once upon a time there was an SO wiki page gathering a bunch of those resources, but alas, that's gone away. You can get a pretty good set by looking for popular Android projects on GitHub or Google Code, though.
See Do android developers commonly use 3rd-party UI/networking libraries like Three20 on iPhone?
i searched on net for web apps compatibility on mobile and pc browser finally i decided.make 2 websites one is for mobile browser and other is for pc browser.how to find out requested is mobile or pc and how to redirect website for mobile or pc.
If there is any other way for compatibility.Please let me know and give your good suggestion for this
Thanks in advance
Well, actually you can do it in different ways. The best solution is some script which checks the UserAgent first. I kow, its not that save, 'cause its easy to change the agent but why should someone do it and with which benefit of it ;)
So this should be your solution. Also you can optimize the websites to the specfic target device/browser. For example, for devices like iPhone, Android or WinMob you ould use Javascript Frameworks to work withthe website content.
I made a little post on another question which could help you aswell: Is there an equivilent of jQTouch that covers iPhone, Android, WebOS and Blackberry OS?
This is not as simple as one may think.
First, determine if the web app is accessed from a mobile device is not easily done. What is a mobile device? Is iPad a mobile device? Should all devices with a resolution less than 1024*768 be handled as "mobile devices"?
Second, designing a web application to make it compatible for all different devices - which in turn can have many different browsers installed - is not a piece of cake.
But fortunately there are some solutions as well.
There is WURFL -
http://wurfl.sourceforge.net/ - which
is an open source alternative.
Device Atlas -
http://deviceatlas.com/ - a
commercial alternative.
Mobizoft C4M - http://mobizoft.com/ -
another commercial alternative with
both an API as well as some
prepackaged solutions.
Wordpress mobile pack - http://wordpress.org/extend/plugins/wordpress-mobile-pack/
Any of them can be used to switch a mobile device to a special mobile adapted site. They can also be used to build/adapt a mobile friendly site, depending on what you need.
When you have built an mobile friendly site you should first of all test it devices with different resolutions/os/browsers. Another useful site is http://mobiready.com where you can validate the site.
A final tip is to consider which devices to support. Only iPhone/Android? Maybe have a full version for these devices and a simpler version for all other devices. Depends what your requirements are.
Good luck!
I'm working on a large website project that makes heavy use of in-page graphing of data. To make the graphs interactive (the old paradigm was to post data to the server, have the server render the graph as a jpg, then send it back to the browser) we've started building the graphs in Java. It's a smooth system, but the website is still very much computer-dependent.
I'd like the site itself to work as a device-aware web application - switching layouts based on user agent strings to render a mobile-optimized version for cell phones and PDAs. But I'm concerned about the nebulous support for 3rd-party applets (Java, Flash, etc) when it comes to platforms like the iPhone.
So if you were building a web application that could be accessed either through a standard web browser or an iPhone/Blackberry/Palm device, what would you do to still display interactive graphs? Is there a workaround for using Java on the iPhone? Is there another platform we should pursue all together?
If you want to support more browsers, you may want to look at using Javascript to help decide what to do.
You could generate the graphs using the canvas element, and if the browsers doesn't support that element then you could use a Flash app, and if that doesn't work, have the graphs developed on the server and use the <img> tag and just refresh.
This third approach could also work if the browser doesn't have javascript enabled.
This way you can handle the various situations and get away from having to run Java in the browser.
The iPhone and Android browsers support HTML5 features such as "canvas", which you may want to look into. The browsers on BlackBerry phones are somewhat behind the times - they are finally releasing a WebKit-based browser for their upcoming 6.0 OS but all of the current in-market devices are quite limited in terms of browser capabilities. For those devices you're probably best off just using a static server-generated image.
I would use a JS charts library and gracefully downgrade to images when you detect an older browser.