Cross-platform toolchain
Posted: Sun Feb 12, 2012 7:35 pm
Hi all,
I'm part of a 2 man team working on our first game hopefully to be released later this year or early next year. From the start, we've been consciously targeting Windows, Mac, and (to some extent) Linux. Of course, we're designing our engine to abstract the system specific stuff like graphics (DirectX & OpenGL) in order to be able to keep most of the code shareable/useable across all of these OSes. One of the main issues we've been running into is creating/keeping up to date projects/build systems for each of the OSes. Initially we were manually creating Visual Studio 2010 projects/solution for Windows, Xcode 4 workspace for Mac OS X, and relying on makefiles on Linux. We checked these into our git repository but we quickly realized how easy it was for these to be out of sync as we were developing. We started looking at several solutions like premake, cmake, and even batch files to create the appropriate build environments. Our hope was that we would never need to have solutions/projects/workspaces/makefiles checked into git instead we would just check in the source code and asset files and update a config file which we could use to create the appropriate solutions locally when needed. For now, we've been using premake4 but it's not a perfect solution because not all settings are saved into the created solutions/workspaces and we still have to go in for example and set the working directory which is usually saved in the user preferences in VS. So all that being said, we're looking for a way to ease the pain of cross-platform development. As supporters of indie games and efforts like the Humble Bundle, we're reaching out to understand what others are using to achieve cross-platform nirvana? The reason I mention indies and the Humble Bundle is because I've seen a trend in most indies targeting more than one OS at release...and most if not all games on the Humble Bundles are usually cross-platform. I'm hoping someone that's going through the same issues and/or has found a decent approach to this issue might chime in with some help/knowledge.
Cheers,
-Omar
I'm part of a 2 man team working on our first game hopefully to be released later this year or early next year. From the start, we've been consciously targeting Windows, Mac, and (to some extent) Linux. Of course, we're designing our engine to abstract the system specific stuff like graphics (DirectX & OpenGL) in order to be able to keep most of the code shareable/useable across all of these OSes. One of the main issues we've been running into is creating/keeping up to date projects/build systems for each of the OSes. Initially we were manually creating Visual Studio 2010 projects/solution for Windows, Xcode 4 workspace for Mac OS X, and relying on makefiles on Linux. We checked these into our git repository but we quickly realized how easy it was for these to be out of sync as we were developing. We started looking at several solutions like premake, cmake, and even batch files to create the appropriate build environments. Our hope was that we would never need to have solutions/projects/workspaces/makefiles checked into git instead we would just check in the source code and asset files and update a config file which we could use to create the appropriate solutions locally when needed. For now, we've been using premake4 but it's not a perfect solution because not all settings are saved into the created solutions/workspaces and we still have to go in for example and set the working directory which is usually saved in the user preferences in VS. So all that being said, we're looking for a way to ease the pain of cross-platform development. As supporters of indie games and efforts like the Humble Bundle, we're reaching out to understand what others are using to achieve cross-platform nirvana? The reason I mention indies and the Humble Bundle is because I've seen a trend in most indies targeting more than one OS at release...and most if not all games on the Humble Bundles are usually cross-platform. I'm hoping someone that's going through the same issues and/or has found a decent approach to this issue might chime in with some help/knowledge.
Cheers,
-Omar