I´m very interested in the tools an libraries that are used to develop a game like PA. My english is not that good, so i just post a list with points/questions about a few things 1. What compilers are used for the different platforms? 2. What libs are used to get events from the OS (SDL, SFML for example)? 3. What libs are used for openGL/openGL extensions? (GLEW?) 4. What sourcecodecontrollsystem (SVN for example) is used with PA? Perhaps i get some more points later. I hope my questions are not unreasonable, i´m really interested in that stuff.
1. VS 2010 on Windows, Clang on mac and gcc on linux. 2/3. The system bindings / OGL stuff is bound using QT (that's where we get our webkit from too). 4. Perforce
Props on using QT, though I'm a little surprised someone would use it for game development. I guess if you're conservative in the features you use, it should perform nicely.
That's up to the individual. Personally I work in the mainline. For a while we used hg with the engine but we moved to perforce to get more industrial strength tracking of binary assets and for compatibility with our current art tools. I would have preferred sticking with hg personally but we have to take the whole project into account.
Perforce is one of the few systems that can handle large binary data. You can throw gigs and gigs of stuff at it and it won't choke.
You'd be surprised. We managed to kill it a fair few times with stuff like that. Edit: With a smaller number of games (2,3, unless you have PA and SMNC on different servers) it shouldn't be that much of an issue, though. Also fewer branches if you're generally working in mainline. No integ -> submit -> EVERYTHING locking.
Wow, how much data were you throwing at it? My last big project prior to PA, we were throwing tens of terabytes at it monthly, and it still held up like a champ. Of course, we had pretty huge storage arrays being run by IT, but still... I've always been a huge fan of Perforce, though less so since they forced us to move to P4V.. i just need to get all my command line tools setup again. >.<
Agreed. I loved P4Win and changing to P4V made me sad for the longest time. I have a tool to abstract perforce away from anyone that it scares. Generally perforce held up Okay to things. If your model is pretty narrow i.e. people working in mainline or one or two branches then it's pretty okay with things. We found that when we worked on a branch model then things started having more issues (admittedly some were because people set up crazy workspaces with //game1/... //game2/... etc in it and then syncing to their entire workspace (We found that at about 12 million scanrows your perforce server starts weeping)). We trialled out a system where people physically couldn't submit to mainline (as a followup for a couple of titles where mainline didn't work for large periods of time, and by the time it was green again people would all submit at once and break it again). We used branches and an automated system that checked that changes worked with mainline before submitting them. On our last project it meant that mainline was green ~99.98% of the time (It broke 3 times, and they were all my fault). Branches are Perforce's greatest nemesis when they're large: P4 Integ blocks P4 Submit, and then P4 Submit blocks everything else, which can lead to a lot of boredom, especially if people aren't using -v in P4 Integ.