Client compile status

CyanWorlds.com Engine Project Management
cjkelly1
Member
Posts: 67
Joined: Mon Dec 29, 2008 6:08 am

Client compile status

Post by cjkelly1 »

It does not appear that Cyan used the MS dev projects to build the client. It will not build with them as-is, even if you somehow have all the needed SDKs. I believe they used a separate build system (for which I see no files). The comment in pnPrBuildId.cpp on line 42 seems to suggest that as well.

Code: Select all

// This line must NEVER be modified manually; it is automatically updated
// by the build server.
I have modified the projects and managed to build the client and the launcher, and they appear to work. I tried to use the same versions of the stuff Cyan used, to minimize updating issues. Currently, EAX is commented out (as we do not have the EAX 4.0 SDK), IJL is replaced with a modified version of IJG jpeg-8c (as licenses to use IJL can no longer be obtained), and I am going to attempt to either replace Bink with libavcodec or define it out (depending on if I can get it to work - I know how to get libavcodec to read from a .bik file, but need to shoehorn it into the client).

I do not yet have documentation ready, but I am wondering where would be an appropriate place on the wiki to put it?

I am curious. Has anyone else been working with the client source, and if so, any caveats to be aware of?
User avatar
JWPlatt
Member
Posts: 1137
Joined: Sun Dec 07, 2008 7:32 pm
Location: Everywhere, all at once

Re: Client compile status

Post by JWPlatt »

Wow, I never expected such a thing before release. Nice work, cjkelly1!
cjkelly1 wrote:I do not yet have documentation ready, but I am wondering where would be an appropriate place on the wiki to put it?
I just revised the structure of the CWE project wiki page. For now, let's see how it looks in section "1.2 Building The Client," currently at the end of this page:
http://squee.openuru.org/index.php?titl ... com_Engine

A sibling to the line you found in pnPrBuildId.cpp appears in pnPrBranchId.cpp:

Code: Select all

 // This value is manually changed upon each branch so that client applications
// built from this branch may not connect to servers built from another.
#define BRANCH_ID 1
COMPILER_ASSERT(BRANCH_ID != 0);

#else...
I'd like to know whose responsibility it was to know and remember that, and how often it was missed.
Perfect speed is being there.
User avatar
Mac_Fife
Member
Posts: 1239
Joined: Fri Dec 19, 2008 12:38 am
Location: Scotland
Contact:

Re: Client compile status

Post by Mac_Fife »

Depending on how complex the build instruction is, It might be worth creating a page of it's own and linking it from the CyanWorlds.com Engine and Cyan Worlds Sources And Tools pages. It's probably easier for long-term management (and readability) than having a big, all-in-one page.
Mac_Fife
OpenUru.org wiki wrangler
User avatar
JWPlatt
Member
Posts: 1137
Joined: Sun Dec 07, 2008 7:32 pm
Location: Everywhere, all at once

Re: Client compile status

Post by JWPlatt »

Yep, I thought so too. But for now, there's a single go-to place that's directly linked from the home page and easy for everyone to find out of the gate. Not to mention easier on my brain than figuring out the eventual topology of things up front.
Perfect speed is being there.
User avatar
JWPlatt
Member
Posts: 1137
Joined: Sun Dec 07, 2008 7:32 pm
Location: Everywhere, all at once

Re: Client compile status

Post by JWPlatt »

cjkelly1 wrote:It does not appear that Cyan used the MS dev projects to build the client. It will not build with them as-is, even if you somehow have all the needed SDKs. I believe they used a separate build system (for which I see no files).
Mark says the build server "is a set of python scripts and C++ code that they developed." But he also says they "only use MS dev tools" and "[he] can send me the errors he's getting and maybe I can see something that is missing or needs config differently."
Perfect speed is being there.
a'moaca'
Member
Posts: 163
Joined: Sat Dec 13, 2008 11:22 pm

Re: Client compile status

Post by a'moaca' »

JW,

Since obviously there are some changes to the source for this build, what is the process involved in getting them checked in?

I think there are three kinds of changes:
  • Build infrastructure changes (changes to the project files, and whatnot)
  • CWE source changes to comment stuff out/swap libraries
  • I hacked the jpeg library to provide the data format the client expects, so this is changes to a dependency
Are we going to be able to check in the changes for the first two before the announcement, or only afterwards? And the third has an additional question. Should we import the library, with the changes, into the tree, or should we plan to toss the library patch into the tree and then expect the patch to be applied to a vanilla jpeg-8c as part of the build?

The jpeg license allows for import of the code. It has a BSD-ish license that includes the "give us credit in the documentation" part.

- a'moaca'
User avatar
JWPlatt
Member
Posts: 1137
Joined: Sun Dec 07, 2008 7:32 pm
Location: Everywhere, all at once

Re: Client compile status

Post by JWPlatt »

Gosh. Warp speed, Mr. Sulu! You and cjkelly1 are brilliant. As I've said before, I really did not expect for you to be this far along. Although I've been pushing rarified for permission features, I wasn't pushing that hard. I think. So we're a bit happily behind on implementing the answer to your question.

Rather than go back and forth and figure it out for the the permanent case, let's just get it done. I'll be away anyway, and I don't want to hold up anyone. What would be good is to push a branch server-side and set the tip there. That's proper anyway, isn't it? You'll need r/w access, so, rarified, please do that for them. If rarified can set folder permissions so that only the branch is r/w to you and cjkelly1, I'd like that better. Whatever it takes so you all can continue your incredible progress.

So long as the libraries are GPLv3-compatible, push them. If there's any question, don't. Though rarified might have something to say about the build process. Please confer with him on that.
Perfect speed is being there.
User avatar
rarified
Member
Posts: 1061
Joined: Tue Dec 16, 2008 10:48 pm
Location: Colorado, US

Re: Client compile status

Post by rarified »

Hey guys, nice work!

As a means to give you working space, I've created an internal forked repository, "CWE-work" on the foundry that you both have read-write access to. It's an exact copy of CWE, and your mercurial tools should let you reparent your local copy of the repo from CWE to CWE-work without skipping a beat. Then you should be able to push your changes to CWE-work.

I havn't set anything up in Fisheye yet... may get to it tonight, may defer to tomorrow sometime. This lets you get changes visible to everyone though. The usual suspects of Project X all have read access to CWE-work.

_R
One of the OpenUru toolsmiths... a bookbinder.
cjkelly1
Member
Posts: 67
Joined: Mon Dec 29, 2008 6:08 am

Re: Client compile status

Post by cjkelly1 »

Completing my part today (instructions and changes), and then I will push to the repository. You should all be able to build your own clients from source by Wednesday, at the latest.
User avatar
Mac_Fife
Member
Posts: 1239
Joined: Fri Dec 19, 2008 12:38 am
Location: Scotland
Contact:

Re: Client compile status

Post by Mac_Fife »

I'm trying to flesh out a summary of the library/SDK licensing position - http://squee.openuru.org/index.php?titl ... s_and_SDKs - so is there any advice on the required libs and SDKs, or libs that have been "worked around", so that I can research and write up? I've just listed some "likely candidates" so far, so my list is probably incomplete/wrong.
Mac_Fife
OpenUru.org wiki wrangler
Locked

Return to “Management”