Personally, I always use visual studio, which is free.
If you can't agree on a common one, then you can use a tool like CMake to automatically generate project files for several different IDEs.
Ah. Good point, I had forgotten about Express.
Personally, I always use visual studio, which is free.
If you can't agree on a common one, then you can use a tool like CMake to automatically generate project files for several different IDEs.
Should the repository include the boost library if it's used?I'd normally say yes, because I like to have all the project dependencies in there, so you can just check out the repo and build on any PC.
I'd normally say yes, because I like to have all the project dependencies in there, so you can just check out the repo and build on any PC.
[quote name='simpler' timestamp='1306311262' post='4815486']Should the repository include the boost library if it's used?
I don't know if I'd go quite as far as Hodgeman suggests -- though I can certainly see what he's getting at, and in a professional environment the additional risk-mitigation delivered by that solution is worth the cost of maintaining it. I've seen quite a number of AAA build systems ranging from "just VS project files" to very complicated messes implemented in no less than 4 distinct languages -- of the dozen or so I've seen across as many game studios, I'd say that its a nearly-even split between those that do include all the tools and those that assume a suitable suite of tools has been installed somewhere on the system.
IMO, what should be in the repository is all the *source* data (code, art assets, configurations, scripts, third-party headers/libraries, etc) that is necessary to build the software. This probably also includes the source data for any necessary in-house tools that are specific to the primary application.
A couple things to consider:
Be wary of unnecessary or user-specific files pouting your repository -- things like Windows' thumbnail files or machine/user-specific config files (such as Visual Studio user preference files) -- most Revision Control Systems let you configure that files ending in certain extensions are to be ignored, which is what I'd recommend.
Following on, its probably best not to check in any intermediate files -- its too easy for an unsuspecting dev to change them, and then wonder what's going on when the intermediate file has been regenerated. A good example of this is not to include makefiles or VS Project files in a repo if you are using CMake. In fact, disallow those file types from the repository as described above. This can be seen as an extension of the "DRY" principle (Don't Repeat Yourself) -- its good for databases, its good for code, and it turns out that its good for repositories too (which are basically databases of code).
An argument can be made for keeping the code/build and art repositories as separate entities. Artists and programmers tend to work quite differently, so it should be no surprise that they may not be served well by a single tool -- imagine teaching your art team how to use GIT, or shackling your code team to some fancy GUI-based VCS. Also many of the typical text-focused VCSs don't deal well with binary files like sounds or images, or don't provide/integrate with additional tooling (such as visual diff programs). Another argument, is that art seems to be holding, at least for now, to the old checkout-modify-checkin model, while many coders now prefer the more-modern, decentralized workflows made possible by DVCSs such as Git, Mercurial, Bazaar, Fossil and others. Using this separated setup, you would have a 3-part build -- one part builds the tools and executables, another builds the finalized art assets from the source assets ("cooks" them), and another sucks up all those files to create the disc-image or installer package.
MyFont.LoadFromFile("gui\\fonts\\arial.ttf", 50);
I'd normally say yes, because I like to have all the project dependencies in there, so you can just check out the repo and build on any PC.
[quote name='simpler' timestamp='1306311262' post='4815486']Should the repository include the boost library if it's used?
I'd normally say yes, because I like to have all the project dependencies in there, so you can just check out the repo and build on any PC.
[quote name='simpler' timestamp='1306311262' post='4815486']Should the repository include the boost library if it's used?