Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

My team has developed a game using Flash (with Lua embeded) that targets Windows. And we want to port that game to Android (also iOS in the future).

It's acceptable to rewrite the Flash part of client. And some other team in our company recommended Unity3D to replace the Flash part.

Since we have no experience in Android/iOS development, we would need to learn some new tool/language anyway. So we would like that learning still be useful after the porting and when we starting a new game.

Any thoughts?

Edits:

I think it is worth noticing the background of the game : the project is started by a tester and developer, both without knowing much about flex and actionscript. They built the game while learning, so most of the code is hard to maintain. I and other two developers joined the project after a year or so when one has leave (and the other be our manager). The other two developers are just graduates with little experience and little knowledge of flex. I am good at the server part and the c# language.

Based on the fact that the code is hard to maintain (and we do need to change a lot of code to make the game easier to playe in a mobile device), and I am good at c# (and learning). I still tend to do the porting with Unity, which could get better performance and possibly save time.

share|improve this question
    
You can actually just compile to an APK using Flash Air. ( FlexSDK allows this and the Adobe IDE as well ) but performance can be crap though. If you need to do a port go with LibGDX or a library that compiles both to android and ios –  Sidar May 7 '13 at 9:14
    
I suggest doing what Sidar suggested. If you open an Air Mobile project in FlashDevelop, it explains how to compile the project for Android and iOS. Is is wasteful to learn a new tool when you have not even begun to master the current one, you are using? –  Arthur Wulf White May 11 '13 at 12:44
add comment

2 Answers

One of the many advantages of ActionScript 3.0 and Flash is that the content your create can be viewed on any device with little to no work (on porting) needed from the developers. To see your game on mobile devices, follow the instructions and if you get stuck on a certain step, please feel welcome to ask. Learning a whole new framework just to do what Flash is designed to do in another framework is wasteful at best. If you want to learn a new framework cause you wish to expand your horizons, that is not a question covered in the Q&A site.

http://www.gamefromscratch.com/post/2011/08/04/I-want-to-be-a-game-developer.aspx

Taken from FlashDevelop (The instructions are general):

AIR for Android instructions

  1. Configuration:

    • edit 'bat\SetupSDK.bat' for paths to Flex SDK and Android SDK (default should be ok)

    • install your device's USB drivers: http://developer.android.com/sdk/oem-usb.html

    • enable "USB debugging" on your Android device: Parameters > Applications > Development > USB Debugging
  2. Creating a self-signed certificate:

    • run 'bat\CreateCertificate.bat' to generate your self-signed certificate,

    (!) wait a minute before packaging.

  3. Build from FlashDevelop as usual (F8)

  4. Run/debug the application on the desktop as usual (F5 or Ctrl+Enter)

  5. Install AIR runtime on your device:

    • run 'bat\InstallAirRuntime.bat'
  6. Running/debugging the application on the device:

    6.a. Build/Debug directly on device

    • edit 'Run.bat' and change the run target 'goto desktop' by 'goto android-debug'
    • build & run as usual (Ctrl+Enter or F5) to package, install & run the application on your device

    6.b. Debug occasionally on device

    • Debug-build from FlashDevelop (F8)
    • run 'PackageApp.bat' to package and install a debug version of the application
    • start FlashDevelop debugger: Debug > Start Remote Session
    • start the application on device
    • the application should connect to FlashDevelop interactive debugger as usual
  7. Packaging for release:

    • Release-build from FlashDevelop (F8)
    • run 'PackageApp.bat' and select Android/normal target

AIR for iOS instructions

  1. Configuration:

    • edit 'bat\SetupSDK.bat' for path to Flex SDK (defaults should be ok)
  2. Build from FlashDevelop as usual (F8)

  3. Run/debug the application on the desktop as usual (F5 or Ctrl+Enter)

  4. Configure for iOS packaging in 'bat\SetupApplication.bat': Take a deep breath, pay the Apple tax and read extra carefully this tutorial:

    • http://www.codeandvisual.com/2011/exporting-for-iphone-using-air-27-and-flashdevelop-part-three-generating-developer-certificates-provisioning-profiles-and-p12-files/ Now this is how to create the p12 key entirely on Windows (steps 1. to 8.):
    • http://connorullmann.com/2011/04/air-2-6-and-ios/ Then for each project you'll have to go to on Apple's iOS Provisioning Portal:
    • create a new App ID with: name of the project and ID indicated in 'application.xml',
    • create a new Provisioning Profile: select App ID & registered devices that will be allowed to install the app. Once you have obtained a .p12 and .mobileprovision file from Apple's Provisioning Portal:
    • save a copy of your .p12 and .mobileprovision certificates in the 'cert\' folder in your FlashDevelop project. (make sure to keep an extra copy of these 2 files in a safe place) Finally edit 'bat\SetupApplication.bat' and complete the following lines:

    • IOS_DEV_CERT_FILE: path to your iOS developer 'p12' key ('cert\' folder, if you have followed the instructions above)

    • IOS_DEV_CERT_PASS: developer certificate's password if you don't set it, remove "-storepass %IOS_DEV_CERT_PASS%" from the IOS_SIGNING_OPTIONS, you'll be prompted to type it when packaging.
    • IOS_PROVISION: path to the project's Provisioning Profile file For example: set IOS_DIST_CERT_FILE=cert\iphone_dev.p12 set IOS_DEV_CERT_FILE=cert\iphone_dev.p12 set IOS_DEV_CERT_PASS=YourPassword set IOS_PROVISION=cert\YourFileName.mobileprovision
  5. Running/debugging the application on the device: Note: if are testing your application for performance, always package for release (see step 7.)

    6.a. Build/Debug on device

    • edit 'Run.bat' and change the run target 'goto desktop' by 'goto ios-debug'
    • build as usual (Ctrl+Enter or F5) to package
    • you'll still have to manually upload & run the app on the device
    • the application should connect to FlashDevelop interactive debugger as usual

    6.b. Debug occasionally on device

    • Debug-build from FlashDevelop (F8)
    • run 'PackageApp.bat' to package and install a debug version of the application
    • start FlashDevelop debugger: Debug > Start Remote Session
    • start the application on device
    • the application should connect to FlashDevelop interactive debugger as usual
  6. Packaging for release:

    • edit in 'bat\SetupApplication.bat' to add your "distribution" certificate (IOS_DIST_CERT_FILE) Note: you can package ad-hoc IPAs using your developer certificate.

    • Release-build from FlashDevelop (F8)

    • run 'PackageApp.bat' and select either iOS/"ad-hoc" for installation on test devices or iOS/App Store for upload in the iOS App Store.

Tips: - iFunBox: iTunes replacement; installs app faster even if app version doesn't change, - TestFlightApp: ad-hoc distribution service http://testflightapp.com - HockeyKit: self hosted ad-hoc distribution https://github.com/TheRealKerni/HockeyKit - Manual ad-hoc distribution: http://samvermette.com/71

share|improve this answer
add comment

I would suggest Unity3D as you mentioned. It is without a doubt the most resourceful game development tool on the planet at the moment. (bold but true)

You should be able to remake your client in no time with the resources Unity3D has available.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.