mziwisky / bullet-ane

Adobe AIR native extension for the Bullet physics simulation library
40 stars 10 forks source link

Away3D 4.1.6 #3

Closed air-fx closed 9 years ago

air-fx commented 9 years ago

Hi! I'd like to thank you for this extension - You've done a great work! It has a great performance on mobile :)

I've used this ane with away3d 4.1.4 with no problems, but updating to 4.1.6 caused errors:( because they added (at least) decompose method to away3d.core.math.Matrix3DUtils class.

Other point - x64 support for iOS required from February 2015 (https://forums.adobe.com/message/6850180#68501800 )

I've downloaded your source to re-build by myself.. But (I've just read the readme:( ) I dont have Mac :( I've downloaded Mac Image for virtual machine (vmware).. with no success 'cause my CPU is AMD.. I'll try completely clear Mac install.. but I'm not sure it will power on (

If you have a configured working project, can you re-build ane with latest away3d framework and iOS-64 support, please? :)

Thanks in advance!

mziwisky commented 9 years ago

Thanks for the compliments, and I'm glad you've found the ANE useful!

I'm sorry to say that I haven't done any AS3 development for many moons, and I no longer have access to a FlashBuilder license, so I can't rebuild the package. I once spent some time trying to build it without FlashBuilder, but I didn't come up with a solution. If you know of a way, please let me know about it, and I'll give it a go. It's frustrating that there are (apparently) no good free dev tools for the platform. I've heard good things about FlashDevelop, but I don't have a Windows box.

If any other repository watchers out there are able to fulfill this request, please do -- I'm very open to pull requests.

jonathanhart commented 9 years ago

You can build it for free using the AIR SDK and the "adt" tool that comes with it..

On Mon, Mar 9, 2015 at 3:57 PM, Michael Ziwisky notifications@github.com wrote:

Thanks for the compliments, and I'm glad you've found the ANE useful!

I'm sorry to say that I haven't done any AS3 development for many moons, and I no longer have access to a FlashBuilder license, so I can't rebuild the package. I once spent some time trying to build it without FlashBuilder, but I didn't come up with a solution. If you know of a way, please let me know about it, and I'll give it a go. It's frustrating that there are (apparently) no good free dev tools for the platform. I've heard good things about FlashDevelop, but I don't have a Windows box.

If any other repository watchers out there are able to fulfill this request, please do -- I'm very open to pull requests.

— Reply to this email directly or view it on GitHub https://github.com/mziwisky/bullet-ane/issues/3#issuecomment-77962649.

mziwisky commented 9 years ago

thanks for the tip -- i'll try to look into it within the week

mziwisky commented 9 years ago

Sorry, but I'm just not able to figure this out. The documentation for asc is pretty lousy, so I can't get my aneBulletLib.swc and aneBulletDefault.swc libs built. If anyone can figure out how to do this on a Mac without FlashBuilder, let me know, and I'll follow your directions on my machine.

air-fx commented 9 years ago

Hi, mziwisky!

Sorry for the late reply (

I guess you've downloaded air sdk for AS Compiler instead of sdk for flex :)

Here is full package (portable) for compiling Flex app and building AIR app using Ant build:

https://89.28.68.75/ownCloud/public.php?service=files&t=4872d5fc7b97872801126bd892ad88c1 If you uncompress it to "C:/AneWin" it should work as is. But it's for Windows :(

You can use build files from the project as a sample.

I've uploaded standalone AirSDK, FlexSDK and Ant for win and mac here: https://89.28.68.75/ownCloud/public.php?service=files&t=913e897793e8d474d5795c0e84bd5277

To config flex+air you need to edit env.AIR_HOME path in flexSDK/env.properties file; and paths from Project/build/build.env.properties.

To run Ant build: C:\AneWin\SDK\apache-ant-1.8.0\bin\ant -f C:\AneWin\Project\build\build.xml

Official links:

Adobe AIR sdk (scroll down to "Note: Flex users will need to download the original AIR SDK without the new compiler."): http://www.adobe.com/devnet/air/air-sdk-download.html

Flex SDK:http://flex.apache.org/download-binaries.html or complete installer: http://flex.apache.org/installer.html

Apache Ant: https://www.apache.org/dist/ant/binaries/ How to install on MacOS X: http://www.rendered-dreams.com/blog/2014/2/24/Quickly-Install-Apache-ANT-on-Mac-OS-X

Away3D: http://away3d.com/download/ Away3D v4.1.6: https://github.com/away3d/away3d-core-fp11/archive/v4.1.6.zip


IOS-64: https://developer.apple.com/news/?id=10202014a


Hope this will help :-)

mziwisky commented 9 years ago

I'm sorry @air-fx, but I really need exact directions for building bullet-ane on a mac without FlashBuilder. The problem is that I can't figure out how to use the AS3 compiler. It's virtually undocumented. Using ant to run the bullet-ane build script is no problem, but as a prerequisite, the aneBulletLib.swc and aneBulletDefault.swc libs must be built first. That's the step that I'm tripped up on.

jonathanhart commented 9 years ago

You can build a swc on Mac from command line using mxmlc, a tool that comes with the AIR sdk.

On Mar 28, 2015, at 3:42 PM, Michael Ziwisky notifications@github.com wrote:

I'm sorry @air-fx, but I really need exact directions for building bullet-ane on a mac without FlashBuilder. The problem is that I can't figure out how to use the AS3 compiler. It's virtually undocumented. Using ant to run the bullet-ane build script is no problem, but as a prerequisite, the aneBulletLib.swc and aneBulletDefault.swc libs must be built first. That's the step that I'm tripped up on.

— Reply to this email directly or view it on GitHub.

mziwisky commented 9 years ago

How do I build aneBulletLib and aneBulletDefault? What command do I type into the command line?

air-fx commented 9 years ago

Hi, mziwisky! Can you help building ios lib? I'll do the rest.

I've installed yesterday macos and xcode, opened project, but there are lot of errors (missing headers and files) ((

mziwisky commented 9 years ago

@air-fx I got an email notification from github with a comment from you that included a download link to BulletANE.7z. I don't know why I don't see that comment in this thread, but I downloaded it, set the FLEX_HOME variable in build/build-ane.properties, and did an ant build on my machine. It spit out this swc: https://drive.google.com/file/d/0B6dnCLpBxaF8Y1hGUU5SdDV2OVk/view?usp=sharing

If that's not what you need, then I need more guidance from you on how to build it. I.e. specific, step-by-step instructions.

air-fx commented 9 years ago

Hi, mziwisky! I've builded and packed Android extension and it works, but cannot build iOS using Xcode. As I understand, you work on Mac. Will be very helpful if you'll compile the mac lib (libBulletANE.a file) :)

mziwisky commented 9 years ago

@air-fx give this a try -- includes libs for both ios and ios simulator https://drive.google.com/a/instructure.com/file/d/0B92fyFy5CN5jaVdOZDM2UVlXcVU/view?usp=sharing

mziwisky commented 9 years ago

@air-fx sorry, i think that link may be inaccessible. try this one: https://drive.google.com/file/d/0B6dnCLpBxaF8ZW1LUkc5UnB3UjQ/view?usp=sharing

air-fx commented 9 years ago

Thanks for ios files!! but.. :( Error: Apple App Store allows only universal applications. "libBulletANE.a" is not a universal binary. Please change build settings in Xcode project to "Standard Architecture" to create universal library/framework.

As I found 'iOS Device' target should be selected in xCode; and ARCHS_STANDARD, arm64 armv7 armv7s architecture

You can check if .a is 64-bit: $ xcrun -sdk iphoneos lipo -info libBulletANE.a you should see some clang warning and finally at last line... Architectures in the fat file: libBulletANE.a are: armv7 arm64

air-fx commented 9 years ago

Hi, mziwisky Is there any news on 64bit lib? Did you tried to build? Thanks :)

mziwisky commented 9 years ago

@air-fx i think i got it to build. try this: https://drive.google.com/file/d/0B6dnCLpBxaF8WTZIWFM0d1dIMTA/view?usp=sharing

air-fx commented 9 years ago

@mziwisky yep, compiler accepted this file, .ane was built. But compiling the app crashed:

     [java] Undefined symbols for architecture arm64:
     [java]   "__ZN21btConvexInternalShapeC2Ev", referenced from:
     [java]       _createSphereShape in libane.bulletphysics.a(SphereShapeAPI.o)
     [java]   "__ZTV13btSphereShape", referenced from:
     [java]       _createSphereShape in libane.bulletphysics.a(SphereShapeAPI.o)
     [java]   NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
     [java]   "__ZN11btConeShapeC1Eff", referenced from:
     [java]       _createConeShape in libane.bulletphysics.a(ConeShapeAPI.o)
     [java]   "__ZN14btCapsuleShapeC1Eff", referenced from:
     [java]       _createCapsuleShape in libane.bulletphysics.a(CapsuleShapeAPI.o)
     [java]   "__ZN11btRigidBody10setDampingEff", referenced from:
     [java]       _RigidBodysetLinearDamping in libane.bulletphysics.a(RigidBodyAPI.o)
     [java]       _RigidBodysetAngularDamping in libane.bulletphysics.a(RigidBodyAPI.o)
     [java]   "__ZN16btCollisionWorldC1EP12btDispatcherP21btBroadphaseInterfaceP24btCollisionConfiguration", referenced from:
     [java]       _createCollisionWorldWithDbvt in libane.bulletphysics.a(CollisionWorldAPI.o)
     [java]   "__ZNK17btCollisionObject20forceActivationStateEi", referenced from:
     [java]       _CollisionObjectforceActivationState in libane.bulletphysics.a(CollisionObjectAPI.o)
     [java]   "__ZN16btDbvtBroadphaseC1EP22btOverlappingPairCache", referenced from:
     [java]       _createCollisionWorldWithDbvt in libane.bulletphysics.a(CollisionWorldAPI.o)
     [java]       _createDiscreteDynamicsWorldWithDbvt in libane.bulletphysics.a(DiscreteDynamicsWorldAPI.o)
     [java]   "__ZN17btCollisionObjectC1Ev", referenced from:
     [java]       _createCollisionObject in libane.bulletphysics.a(CollisionObjectAPI.o)
     [java]   "__ZN23btDiscreteDynamicsWorldC1EP12btDispatcherP21btBroadphaseInterfaceP18btConstraintSolverP24btCollisionConfiguration", referenced from:
     [java]       _createDiscreteDynamicsWorldWithDbvt in libane.bulletphysics.a(DiscreteDynamicsWorldAPI.o)
     [java]   "__ZN15btCylinderShapeC1ERK9btVector3", referenced from:
     [java]       _createCylinderShape in libane.bulletphysics.a(CylinderShapeAPI.o)
     [java]   "__ZNK17btCollisionObject18setActivationStateEi", referenced from:
     [java]       _CollisionObjectsetActivationState in libane.bulletphysics.a(CollisionObjectAPI.o)
     [java]   "__Z22btAlignedAllocInternalmi", referenced from:
     [java]       _createCollisionObject in libane.bulletphysics.a(CollisionObjectAPI.o)
     [java]       __ZN21UniqueObjectsCallback15addSingleResultER15btManifoldPointPK24btCollisionObjectWrapperiiS4_ii in libane.bulletphysics.a(CollisionWorldAPI.o)
     [java]       _createCompoundShape in libane.bulletphysics.a(CompoundShapeAPI.o)
     [java]       _createDiscreteDynamicsWorldWithDbvt in libane.bulletphysics.a(DiscreteDynamicsWorldAPI.o)
     [java]       _createGeneric6DofConstraint in libane.bulletphysics.a(Generic6DofConstraintAPI.o)
     [java]       _createRigidBody in libane.bulletphysics.a(RigidBodyAPI.o)
     [java]       _createBoxShape in libane.bulletphysics.a(BoxShapeAPI.o)
     [java]       ...
     [java]   "__ZNK17btCollisionObject8activateEb", referenced from:
     [java]       _CollisionObjectactivate in libane.bulletphysics.a(CollisionObjectAPI.o)
     [java]   "__ZN16btCollisionWorld11contactTestEP17btCollisionObjectRNS_21ContactResultCallbackE", referenced from:
     [java]       _CollisionWorldcontactTest in libane.bulletphysics.a(CollisionWorldAPI.o)
     [java]   "__ZN15btCompoundShapeC1Eb", referenced from:
     [java]       _createCompoundShape in libane.bulletphysics.a(CompoundShapeAPI.o)
     [java]   "__ZN21btCollisionDispatcherC1EP24btCollisionConfiguration", referenced from:
     [java]       _createCollisionWorldWithDbvt in libane.bulletphysics.a(CollisionWorldAPI.o)
     [java]       _createDiscreteDynamicsWorldWithDbvt in libane.bulletphysics.a(DiscreteDynamicsWorldAPI.o)
     [java]   "__ZN23btGeneric6DofConstraintC1ER11btRigidBodyS1_RK11btTransformS4_b", referenced from:
     [java]       _createGeneric6DofConstraint in libane.bulletphysics.a(Generic6DofConstraintAPI.o)
     [java]   "__ZN15btCompoundShape13addChildShapeERK11btTransformP16btCollisionShape", referenced from:
     [java]       _CompoundShapeaddChildShape in libane.bulletphysics.a(CompoundShapeAPI.o)
     [java]   "__ZN18btStaticPlaneShapeC1ERK9btVector3f", referenced from:
     [java]       _createStaticPlaneShape in libane.bulletphysics.a(StaticPlaneShapeAPI.o)
     [java]   "__ZN10btBoxShapeC1ERK9btVector3", referenced from:
     [java]       _createBoxShape in libane.bulletphysics.a(BoxShapeAPI.o)
     [java]   "__ZN35btSequentialImpulseConstraintSolverC1Ev", referenced from:
     [java]       _createDiscreteDynamicsWorldWithDbvt in libane.bulletphysics.a(DiscreteDynamicsWorldAPI.o)
     [java]   "__ZN11btRigidBody10setGravityERK9btVector3", referenced from:
     [java]       _RigidBodysetGravity in libane.bulletphysics.a(RigidBodyAPI.o)
     [java]   "__Z21btAlignedFreeInternalPv", referenced from:
     [java]       _createCollisionObject in libane.bulletphysics.a(CollisionObjectAPI.o)
     [java]       __ZN21UniqueObjectsCallback15addSingleResultER15btManifoldPointPK24btCollisionObjectWrapperiiS4_ii in libane.bulletphysics.a(CollisionWorldAPI.o)
     [java]       __ZN20btAlignedObjectArrayIPK17btCollisionObjectED2Ev in libane.bulletphysics.a(CollisionWorldAPI.o)
     [java]       _createCompoundShape in libane.bulletphysics.a(CompoundShapeAPI.o)
     [java]       _createDiscreteDynamicsWorldWithDbvt in libane.bulletphysics.a(DiscreteDynamicsWorldAPI.o)
     [java]       _createGeneric6DofConstraint in libane.bulletphysics.a(Generic6DofConstraintAPI.o)
     [java]       _createRigidBody in libane.bulletphysics.a(RigidBodyAPI.o)
     [java]       ...
     [java]   "__ZN11btRigidBodyC1ERKNS_27btRigidBodyConstructionInfoE", referenced from:
     [java]       _createRigidBody in libane.bulletphysics.a(RigidBodyAPI.o)
     [java]   "__ZN11btRigidBody12setMassPropsEfRK9btVector3", referenced from:
     [java]       _RigidBodysetMassProps in libane.bulletphysics.a(RigidBodyAPI.o)
     [java]   "__ZN31btDefaultCollisionConfigurationC1ERK34btDefaultCollisionConstructionInfo", referenced from:
     [java]       _createCollisionWorldWithDbvt in libane.bulletphysics.a(CollisionWorldAPI.o)
     [java]       _createDiscreteDynamicsWorldWithDbvt in libane.bulletphysics.a(DiscreteDynamicsWorldAPI.o)
     [java]   "__ZN11btRigidBody16addConstraintRefEP17btTypedConstraint", referenced from:
     [java]       _RigidBodyaddConstraintRef in libane.bulletphysics.a(RigidBodyAPI.o)
     [java]   "__ZN11btRigidBody19updateInertiaTensorEv", referenced from:
     [java]       _RigidBodysetMassProps in libane.bulletphysics.a(RigidBodyAPI.o)
     [java]   "__ZN11btRigidBody19removeConstraintRefEP17btTypedConstraint", referenced from:
     [java]       _RigidBodyremoveConstraintRef in libane.bulletphysics.a(RigidBodyAPI.o)
     [java] ld: symbol(s) not found for architecture arm64
     [java] Compilation failed while executing : ld64

I'm using AirSDK 18.0.0.180. Tried to change ios min version in iosplatform.xml from 5.0 to 5.1.1 and to 6.0 as recommended here with no result (

air-fx commented 9 years ago

The others suggestions is to Clear xcode build project cache and set the Build Active Architecture Only to No for both Debug & Release. And verify build settings of all linked(dependency) projects. :-/

mziwisky commented 9 years ago

I'm sorry @air-fx, but I'm unable to support you with this any longer. Perhaps you can get access to a Mac at a local library or school, or purchase a cheap used one from craigslist or eBay. Best of luck.

air-fx commented 9 years ago

@mziwisky can you provide latest sources you've build? Can you archive all you have pls includin downloaded sources, libs... complete filder :)

mziwisky commented 9 years ago

@air-fx everything i've built is linked in this issue. i'll leave those public. the only changes i had to make to the codebase to build the latest apple libraries had to do with the way pointers were cast to 32-bit uints. that change has been pushed to the develop branch of this repo, so you should be able to pull it and build for yourself. let me know if you need any other help -- i'll try to answer questions, but i'm afraid I can't work on building it myself for the foreseeable future.