Protected const String CONTENT_ROOT = project properties include: Treat warnings as errors "All" + Release version Debug Info "none". mklink /D C:\ C:\SnakeDemo.XNA\bin\x86\Debug\ Important: create a directory symbolic link using mklink to Content folder in order to run system tests. Add the following 4x new C#/.NET projects to solution:
After the code sample has be fully tested in isolation, additional clients are added to share "Common" code using SVN Externals. The following code sample builds the snake simulation initially as an XNA solution. Ensure all sub-nodes have branches, tags and trunk folders:
Add 1x sub-node for XNA library and 4x sub-nodes for each client: WP7, Windows, Android, iOS. This post uses the following convention to substitute "$DEMO" for root node of all demo code samples:Īs an example, let's scale the XNA and System Testing snake simulation to demonstrate SVN Externals.Ĭreate top level Demo node in Subversion SVN.
This post assumes you already have Tortoise SVN installed on Windows and svnx installed on Mac OS/X.Īlso, consider configuring the $SVN_EDITOR on Windows and Mac OS/X in order to edit SVN properties: Here all common code in external repository linked through "Common" directory across multiple clients. SVN Externals allow an Subversion repository to be checked out within a directory in that workingĬopy. In order to avoid problems with Copy + paste programming to multiple clients, SVN Externals was used.
The majority of game code was written in an external library and scaled out across multiple game clients including Android and iOS. From here, you can pretty much continue like an XNA project, except adding content is more of a pain (add to content project, set content processor for new files, build project, add new files as link in code project, set processor and copy if newer.In 2015, Candy Kid was written in XNA as a simple maze chase video game. It took me days to figure just this bit out. Sorry for the wall of text but MonoGame does a horrible job of explaining any of this. Once the xnb files are in your Content folder, you need to change their processor type from Compile to Content, and change copy to directory to "Copy if Newer". You want to "Add as Link" (click the arrow on the right hand side of the Add button). To add the content, you right click the folder, click "Add Existing" and find the. Now in this MonoGame project, you'll have a Content folder (unlike XNA which has a Content Project). As far as I can tell, you need a separate project for each platform. Then you need an actual MonoGame game project. They are output separately as MonoGame does some magic/jiggery-pokery to the files depending on the target platform. This way you can easily build the content for all desired platforms. xnb files in the project directory/bin/platform folder. Then at the top of the VS window, you must select your output platform (Windows for this example) and then right click your project and Build (don't try to debug or run it, it will fail). For every asset you must make sure that the Content Processor is set correctly (so a texture would be 'MonoGame Texture', it should be pretty obvious once you find it). This is where you will load all your images, fonts, models, sounds, etc. It is a little confusing at first but you need to create a MonoGame Content Project. There may be some parts that haven't been implemented but I haven't found any yet. Technically, XNA code can be copied to MonoGame and still work. Having an XNA project and a MonoGame project is just going to cause hassle. If you're going go with MonoGame, you'll want to do pretty much everything in MonoGame. Feedback Friday Screenshot Saturday Soundtrack Sunday Marketing Monday WIP Wednesday Daily Discussion Quarterly Showcase Related communities 1 For questions, get in touch with mods, we're happy to help you.
Free assets OK, be sure to specify license. If you need to use screenshots, that's ok so long as is illustrates your issues.ĭo not solicit employment. Use discord, /r/indiegames, /r/playmygame or /r/gamedevscreens.īe specific about your question. Feedback, praise, WIP, screenshots, kickstarters, blogs, memes, "play my game", twitch streams.