vujadin / BabylonHx

Port of Babylon.js 3D engine to Haxe.
http:/paradoxplay.com/babylonhx
Apache License 2.0
187 stars 43 forks source link

BasicScene Failure (Windows) #34

Closed dresch86 closed 9 years ago

dresch86 commented 9 years ago

I tried to build for windows but I am getting the following error:

Error: The specified target path "bin_lime/windows/cpp/bin/" does not exist

vujadin commented 9 years ago

Hi,

you'll have to create all "bin_*" folders "by hand" (bin_lime, bin_snow etc) If you're still having problems let me know.

You can also specify build folder in "project.xml", currently at line 5 you have this: change path="bin_lime" to path="your_own_path" but remember to create "your_own_path" folder "by hand" before build (bin_lime folder should be created in the root folder of your project).

On Sat, Jul 18, 2015 at 6:52 AM, primesoftware notifications@github.com wrote:

I tried to build for windows but I am getting the following error:

Error: The specified target path "bin_lime/windows/cpp/bin/" does not exist

— Reply to this email directly or view it on GitHub https://github.com/vujadin/BabylonHx/issues/34.

dresch86 commented 9 years ago

I have a root folder "D:\Documents\Projects\HaxeGame\engine" that I set as path=. I created all the directories by hand and tried to build for both windows and HTML5 using lime.

When I try to build for Windows I get "'BabylonHx_Lime.exe' is not recognized as an internal or external command, operable program or batch file." No files are written.

When I try to build for HTML5 a browser pops up that says "Not Found" and Web Console says "The character encoding of the plain text document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the file needs to be declared in the transfer protocol or file needs to use a byte order mark as an encoding signature."

vujadin commented 9 years ago

Lets go step by step then... Run from cmd line: haxelib list and let me know what is the output.

Also check your Haxe version, it should be 3.2.0

"'BabylonHx_Lime.exe' is not recognized as an internal or external command, operable program or batch file." - you get this one because there is no BabylonHx_Lime.exe file, build probably failed. Have you installed VisualStudio ? Running this from cmd line should set it up for you: haxelib run lime setup windows

About html5 build, can you zip html5 bin folder after the build and send it to me so I can inspect generated .js file ? Its located in "bin_lime/html5/bin".

On Sun, Jul 19, 2015 at 4:05 AM, primesoftware notifications@github.com wrote:

I have a root folder "D:\Documents\Projects\HaxeGame\engine" that I set as path=. I created all the directories by hand and tried to build for both windows and HTML5 using lime.

When I try to build for Windows I get "'BabylonHx_Lime.exe' is not recognized as an internal or external command, operable program or batch file."

When I try to build for HTML5 a browser pops up that says "Not Found" and Web Console says "The character encoding of the plain text document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the file needs to be declared in the transfer protocol or file needs to use a byte order mark as an encoding signature."

— Reply to this email directly or view it on GitHub https://github.com/vujadin/BabylonHx/issues/34#issuecomment-122614311.

vujadin commented 9 years ago

Hi, can you try to build with this command: haxelib run lime test project.xml windows that should work...

dresch86 commented 9 years ago

Results of haxelib list: C:>haxelib list actuate: [1.8.6] hxcpp: [3.2.102] lime-samples: [2.4.0] lime: [2.5.0] nme: [5.4.2] poly2trihx: [0.1.4]

Results of haxelib run lime test project.xml windows] D:\Haxe Libs\babylonhx>haxelib run lime test project.xml windows com/babylonhx/physics/plugins/Body.hx:3: characters 7-24 : Class not found : oim ohx.math.Mat33

D:\Haxe Libs\babylonhx>

Visual Studio Express and Community Edition is definitely installed. How do I send the HTML5 directory? I am new to Github so please pardon my newbness.

dresch86 commented 9 years ago

P.S. - I've seen errors relating to missing matrix packages when trying to build babylonhx before.....I don't remember if I was trying to build for Android, Windows, or HTML5 though.

vujadin commented 9 years ago

Hi, OimoHx is physics engine used in some examples. You can find it here: https://github.com/vujadin/OimoHx

Just drop oimohx folder in root folder of your project.

Also, some examples are using .obj, .ply or .stl file loaders. These are located in BabylonHx_Extensions project, you can find the code here if you need it: https://github.com/vujadin/BabylonHx_Extensions

I've updated info on the website as another user had similar issues... Sorry for the trouble.

You can send me zip via email which can be found at the contact section on website http://babylonhx.com/#contact

dresch86 commented 9 years ago

I added OimoHx and the extensions but still no good. Now it says this.....

D:\Haxe Libs\BabylonHx>haxelib run lime test project.xml windows C:\HaxeToolkit\haxe\std/cpp/_std/haxe/ds/WeakMap.hx:46: lines 46-80 : Module hax e.Constraints does not define type IMap

When I try to build in FlashDevelop for HTML5 I get even more errors: cmd: "C:\HaxeToolkit\haxe/haxelib" run lime build "project.xml" html5 -release -Dfdb C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:34: characters 16-31 : haxe.io.BytesData has no field byteLength C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:191: characters 19-40 : Too many arguments C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:191: characters 19-40 : Function 'new' requires no arguments C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:219: characters 19-51 : js.html.ArrayBuffer should be haxe.io.BytesData C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:219: characters 19-51 : js.html.ArrayBuffer should be Array C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:219: characters 19-51 : For function argument 'data' C:\HaxeToolkit\haxe\std/haxe/io/FPHelper.hx:276: characters 5-16 : haxe.Int64 has no field set_low C:\HaxeToolkit\haxe\std/haxe/io/FPHelper.hx:277: characters 5-17 : haxe.Int64 has no field set_high C:\HaxeToolkit\haxe\std/haxe/io/FPHelper.hx:286: characters 5-16 : haxe.Int64 has no field set_low C:\HaxeToolkit\haxe\std/haxe/io/FPHelper.hx:287: characters 5-17 : haxe.Int64 has no field set_high C:\HaxeToolkit\haxe\std/js/html/compat/DataView.hx:132: characters 25-32 : Cannot access private field low C:\HaxeToolkit\haxe\std/js/html/compat/DataView.hx:133: characters 25-33 : Cannot access private field high C:\HaxeToolkit\haxe\std/js/html/compat/DataView.hx:135: characters 25-33 : Cannot access private field high C:\HaxeToolkit\haxe\std/js/html/compat/DataView.hx:136: characters 25-32 : Cannot access private field low C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:66: characters 19-72 : js.html.ArrayBuffer should be haxe.io.BytesData C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:66: characters 19-72 : js.html.ArrayBuffer should be Array C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:66: characters 19-72 : For function argument 'data' C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:128: characters 16-21 : Cannot access private field low C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:129: characters 20-26 : Cannot access private field high C:\HaxeToolkit\haxe\std/haxe/io/BytesBuffer.hx:189: characters 24-32 : Int should be haxe.io.BytesData C:\HaxeToolkit\haxe\std/haxe/io/BytesBuffer.hx:189: characters 24-32 : Int should be Array C:\HaxeToolkit\haxe\std/haxe/io/BytesBuffer.hx:189: characters 24-32 : For function argument 'data' C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/UInt8Array.hx:50: characters 54-69 : Int should be haxe.io.BytesData C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/UInt8Array.hx:50: characters 54-69 : Int should be Array C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/UInt8Array.hx:50: characters 54-69 : For function argument 'data' C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/Float32Array.hx:50: characters 54-69 : Int should be haxe.io.BytesData C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/Float32Array.hx:50: characters 54-69 : Int should be Array C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/Float32Array.hx:50: characters 54-69 : For function argument 'data' C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/Int32Array.hx:50: characters 54-69 : Int should be haxe.io.BytesData C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/Int32Array.hx:50: characters 54-69 : Int should be Array C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/Int32Array.hx:50: characters 54-69 : For function argument 'data' C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/Int16Array.hx:50: characters 54-69 : Int should be haxe.io.BytesData C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/Int16Array.hx:50: characters 54-69 : Int should be Array C:/HaxeToolkit/haxe/lib/lime/2,5,0/lime/utils/Int16Array.hx:50: characters 54-69 : For function argument 'data' C:\HaxeToolkit\haxe\std/js/_std/haxe/io/Bytes.hx:113: lines 113-116 : Public field getInt32 is not part of core type Build halted with errors. Done(1)

vujadin commented 9 years ago

Those are really strange errors. I've checked this one: C:\HaxeToolkit\haxe\std/cpp/_std/haxe/ds/WeakMap.hx:46: lines 46-80 : Module hax e.Constraints does not define type IMap

But haxe.Constrains does define IMap interface ?! Can you check on your side, "C:\HaxeToolkit\haxe\std\haxe\Constrains.hx" should have at line 43: interface IMap<K,V> {

To be sure your haxe installation and everything else is fine you can download and try lime samples: https://github.com/openfl/lime-samples

If those fail too, you might try to reinstall haxe and see if that helps.

vujadin commented 9 years ago

It seems that your haxe installation is indeed messed up. Older versions of Haxe (prior to ver 3.2.0) really don't have IMap interface in "C:\HaxeToolkit\haxe\std\haxe\Constraints.hx", it was added in latest release. I suggest that you uninstall Haxe and remove "C:\HaxeToolkit" folder and then install latest Haxe.

dresch86 commented 9 years ago

OK, got MUCH further this time and it compiled! There are 2 minor errors about missing files. I am just not sure where to put them (i.e. bin, haxe, or, obj):

C:\BabylonHx> haxelib run lime test project.xml windows .........

link.exe -out:ApplicationMain.exe -nologo -machine:x86 -subsystem:windows,5.01 - libpath:lib user32.lib @obj/msvc18-ncxp/all_objs Creating library ApplicationMain.lib and object ApplicationMain.exp Engine.hx:164: BabylonHx - Cross-Platform 3D Engine | 2015 | www.babylonhx.com Tools.hx:533: Image 'assets/img/graygrad.jpg' doesn't exist! Tools.hx:382: File 'assets/models/suzanne.obj' doesn't exist!

Also, when distributing the program which directory should be distributed? Just bin or haxe and obj too?

vujadin commented 9 years ago

You should put them in the path shown in those errors. If you downloaded complete repo you'll find 'assets' folder there (in the project root) and in it you put those assets (create 'img' and 'models' folder 'by hand'). In the build process those assets will be copied to 'bin' folder for each target you build for, for example: 'bin_lime/html5/bin' , 'bin_lime/windows/cpp/bin' etc... And yes, you distribute only content of those 'bin' folders.

dresch86 commented 9 years ago

The assets folder in project root only has lime.svg in it.

vujadin commented 9 years ago

Indeed - only lime.svg is in it. I'm not providing assets for the examples - you're supposed to use your own. But those can be easily downloaded from website: http://babylonhx.com/demos/instances2/assets/img/graygrad.jpg http://babylonhx.com/demos/instances2/assets/models/suzanne.obj

dresch86 commented 9 years ago

Ah! Much thanks for the assistance! Everything seems to be working now. I've got a few projects to work on, but after that I may consider programming a Unity-like editor for BabylonHx. I really think Haxe is the way to go for the future.