t:\dmd\src\phobos\std\c\stdio.d(117): Error: va_list is used as a type
t:\dmd\src\phobos\std\c\stdio.d(117): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\c\stdio.d(393): Error: identifier 'va_list' is not defined

t:\dmd\src\phobos\std\c\stdio.d(393): Error: va_list is used as a type
t:\dmd\src\phobos\std\c\stdio.d(393): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\c\stdio.d(394): Error: identifier 'va_list' is not defined

t:\dmd\src\phobos\std\c\stdio.d(394): Error: va_list is used as a type
t:\dmd\src\phobos\std\c\stdio.d(394): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\c\stdio.d(396): Error: identifier 'va_list' is not defined

t:\dmd\src\phobos\std\c\stdio.d(396): Error: va_list is used as a type
t:\dmd\src\phobos\std\c\stdio.d(396): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\c\stdio.d(446): Error: identifier 'va_list' is not defined

t:\dmd\src\phobos\std\c\stdio.d(446): Error: va_list is used as a type
t:\dmd\src\phobos\std\c\stdio.d(446): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\c\stdio.d(447): Error: identifier 'va_list' is not defined

t:\dmd\src\phobos\std\c\stdio.d(447): Error: va_list is used as a type
t:\dmd\src\phobos\std\c\stdio.d(447): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\c\stdio.d(449): Error: identifier 'va_list' is not defined

t:\dmd\src\phobos\std\c\stdio.d(449): Error: va_list is used as a type
t:\dmd\src\phobos\std\c\stdio.d(449): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\c\stdio.d(451): Error: identifier 'va_list' is not defined

t:\dmd\src\phobos\std\c\stdio.d(451): Error: va_list is used as a type
t:\dmd\src\phobos\std\c\stdio.d(451): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\array.d(6): Error: identifier 'Error' is not defined
t:\dmd\src\phobos\std\array.d(6): Error: Error is used as a type
t:\dmd\src\phobos\std\array.d(6): class std.array.ArrayBoundsError base type mus
t be class or interface, not void
t:\dmd\src\phobos\std\string.d(826): Error: identifier 'string' is not defined
t:\dmd\src\phobos\std\string.d(826): Error: string is used as a type
t:\dmd\src\phobos\std\string.d(826): Error: identifier 'string' is not defined
t:\dmd\src\phobos\std\string.d(826): Error: string is used as a type
t:\dmd\src\phobos\std\string.d(826): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\string.d(902): Error: identifier 'string' is not defined
t:\dmd\src\phobos\std\string.d(902): Error: string is used as a type
t:\dmd\src\phobos\std\string.d(902): Error: identifier 'string' is not defined
t:\dmd\src\phobos\std\string.d(902): Error: string is used as a type
t:\dmd\src\phobos\std\string.d(902): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\string.d(3459): Error: identifier 'va_list' is not defined

t:\dmd\src\phobos\std\string.d(3459): Error: va_list is used as a type
t:\dmd\src\phobos\std\string.d(3459): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\stdio.d(128): Error: identifier 'string' is not defined
t:\dmd\src\phobos\std\stdio.d(128): Error: string is used as a type
t:\dmd\src\phobos\std\stdio.d(128): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\stdio.d(146): Error: identifier 'string' is not defined
t:\dmd\src\phobos\std\stdio.d(146): Error: string is used as a type
t:\dmd\src\phobos\std\stdio.d(146): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\stdio.d(292): Error: identifier 'string' is not defined
t:\dmd\src\phobos\std\stdio.d(292): Error: string is used as a type
t:\dmd\src\phobos\std\utf.d(49): Error: identifier 'Error' is not defined
t:\dmd\src\phobos\std\utf.d(49): Error: Error is used as a type
t:\dmd\src\phobos\std\utf.d(49): class std.utf.UtfError base type must be class
or interface, not void
t:\dmd\src\phobos\std\format.d(71): Error: identifier 'Error' is not defined
t:\dmd\src\phobos\std\format.d(71): Error: Error is used as a type
t:\dmd\src\phobos\std\format.d(71): class std.format.FormatError base type must
be class or interface, not void
t:\dmd\src\phobos\std\format.d(80): Error: identifier 'string' is not defined
t:\dmd\src\phobos\std\format.d(80): Error: string is used as a type
t:\dmd\src\phobos\std\format.d(80): Error: cannot have parameter of type void
t:\dmd\src\phobos\std\format.d(448): Error: identifier 'va_list' is not defined
t:\dmd\src\phobos\std\format.d(448): Error: va_list is used as a type
t:\dmd\src\phobos\std\format.d(448): Error: cannot have parameter of type void

Do I need to disconnect Phobos? If so, how?

I've also noticed that the build instructions on the Wiki are quite out of date. The file that was yage/src/yage/main.d is now all.d, and the yage/proj folder has build files by a different name than what is in the instructions. Perhaps this could be updated?

Sorry, I'm working on this a little bit each day. It seems that while the above did succeed in some fashion, it didn't produce any visible output. If I remove the -clean section I end up with a bunch of object files, but if anything else is being output I don't know what it is. And if I try to build the demo1 files, I get linker errors.

Overall it would really help if I could know what all packages I need, where they need to be in relation to each other, whether you're using sc.ini files, what versions of tango/tangobos you're using, etc.

If you look in the proj folder, there's a build script that takes care of everything for you (maybe I should just put it in the root so it's easier to find).

dmd -run buildyage.d should be all you need to do on Windows or Linux. The project currently works with tango 0.99.7 + tangobos, but I'm still phasing out the tangobos and hope to move to tango 0.99.8 soon. You can also modify the config at the top of buildyage.d to select between building demo1 or demo2.

Sorry it took me so long to get back to you on this, I really should check this forum more often.

Okay, I downloaded the 0.99.7 Tango + Tangobos binary release for Windows. I unzipped that to C:\tango and set my PATH to include C:\tango\bin. My PATH doesn't include the dmc or dmd packages from Digital Mars at all. Now I go to yage, which has been checked out from SVN and updated to the newest revision (r130), enter the proj directory and do:

Well, so I decided to say the heck with it and make my own build script that I knew how to debug myself.

I've made a library (.lib) version of Yage+Derelict and included .di files for everything so anyone can build their own app without having to build Yage. That can be downloaded from here. I've tested it against demo1, and it builds out fine.

Sorry that you had so much trouble building it. I recently moved to tango 0.99.8 to fix some xml issues I was having, but I think your problems may have been deeper than that. I think that once I'm finished with the transition from phobos to tango, building it will be easier once again (the build script is also in this transition--works for me, but I'll test it more thoroughly when phobos is removed). In the mean time, keep emailing or posting here if you need more help.

Haven't had time to boot into windows yet, but noticed that the build script has issues when the path has a space in it.

Nope, no spaces in the folder paths I'm using. If you can modify buildyage.d to output more data under -verbose I can put it here, but I guess it's not a big deal for the moment.

Quote:

Out of curiosity, what's your interest in yage?

Hopefully to build a few games. I'm dissatisfied with the quality and originality of multiplayer casual games, and D seems like a pretty ideal language for gaming since there's no speed hit, the compiler's free, the language is safer and simpler to use than C++, and you can use any C libraries you could ever want.

Having never used a game engine before (though I've coded up some simple 3D libraries just to verify I know the basic math), something small and even incomplete like Yage seems pretty ideal. Once I understand the code possibly I'll add to it, but at the moment I can't say anything. My full-time job now is to create a game, so something should be coming out from me decently soon now.

There's an open source Java engine called jMonkeyEngine that might be a good source for stealing code, since Java is more easily converted to D than C++, which is what all other 3D engines seem to be in.

Your trouble with the build script inspired me to write a new build script. I called it cdc (Compile D Code) and put it in the ./build folder. It works similarly to bud/dsss except that it's a single d script file (so it can easily be included with any project), and accepts folders as well as files for input. I'll probably eventually create a separate project for it on dsource, but for now I was curious if it worked for you. buildyage.d now calls it directly.

Clever build script, :) After a few min scanning your forums here, I installed tangobos and updated tango to the latest revision. I was left with only one build error that I was able to quick and dirty patch in to submission with a short look at tangos API.

One of the easiest Zero to Built experiences I have had dealing with Open Source projects.

Yea I have Tango 0.99.8, it wont compile with 99.7 due to minor changes in directory structure.

Win vista 64 bit

the error, (tolower) was undefined, in yage.resource.manager.d since I have no idea where it was supposed to be defined I scanned Tango API and replaced it with (toLower) from tango.text.Unicode after adding an Import.

That doesn't actually resolve the issue but it builds :)
I thought it was probably caused by minor dependency version issues but was to lazy (I know your shocked right?) to actually track down where it was supposed to be defined at.

I actually haven't programmed in a long while but I am considering using Yage in a non game project provisionally code named Glimpse :P a concept modeler attempting to build a 3D Paradigm representation to easily keep track of concept dependencies, assumptions, and inferences. I have found words to be highly cumbersome vectors for concepts/ideas, and it would be just plain neat to be able to communicate more efficiently using a less lossy medium.