Spinning Topp Logo BlackTopp Studios
inc
cxx_training.h
1 // © Copyright 2010 - 2016 BlackTopp Studios Inc.
2 /* This file is part of The Mezzanine Engine.
3 
4  The Mezzanine Engine is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  The Mezzanine Engine is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with The Mezzanine Engine. If not, see <http://www.gnu.org/licenses/>.
16 */
17 /* The original authors have included a copy of the license specified above in the
18  'Docs' folder. See 'gpl.txt'
19 */
20 /* We welcome the use of the Mezzanine engine to anyone, including companies who wish to
21  Build professional software and charge for their product.
22 
23  However there are some practical restrictions, so if your project involves
24  any of the following you should contact us and we will try to work something
25  out:
26  - DRM or Copy Protection of any kind(except Copyrights)
27  - Software Patents You Do Not Wish to Freely License
28  - Any Kind of Linking to Non-GPL licensed Works
29  - Are Currently In Violation of Another Copyright Holder's GPL License
30  - If You want to change our code and not add a few hundred MB of stuff to
31  your distribution
32 
33  These and other limitations could cause serious legal problems if you ignore
34  them, so it is best to simply contact us or the Free Software Foundation, if
35  you have any questions.
36 
37  Joseph Toppi - toppij@gmail.com
38  John Blackwood - makoenergy02@gmail.com
39 */
40 #ifndef cxx_training_h
41 #define cxx_training_h
42 
43 /**
44  @page cxx_training_and_tools C++ Training and Tools
45  For many of the people on this team, these are tools and tutorials we learned with and use. We
46  keep some links and information here to make it easy for people to jump into our team. Please
47  don’t think that because you use different tools we don’t want your help, this is what we have
48  used and might recommend, not what everyone should use for everything. If you have some info,
49  particularly information about any tools or techniques not well covered we would love to include
50  it.
51 
52  @section cxx_training_and_tools_tools Coding Tools
53  Since we have an open policy towards helping non-developers get started, we
54  want to make it easy to get started as a developer and learn about our tools about our tools.
55 
56  @subsection cxx_training_and_tools_compilers Compilers and Development Environments
57  We primarily use G++/MinGW for a compiler, Code::blocks for our Development environment, and GDB
58  as our debugger. Code::blocks makes it all pretty seamless. There are a few different platforms
59  that we do not have comprehensive steps for working on because we have not ported Catch! and the
60  Mezzanine Engine to them yet. Please make appropriate revisions here once you have the steps to
61  do something new.
62 
63  - @ref dev_tools_windows — Complete for XP/Vista - Win7/10work but need details
64  - @ref dev_tools_linux — Complete and easy on Ubuntu, Fedora and others need details
65  - @ref dev_tools_mac — In Progress
66 
67  @n
68  Eventually we will need Dev tool pages for Mac OS, Iphone, Android, Several Consoles, Other
69  Mobile.
70 
71  @subsection cxx_training_and_tools_git Git - Source Revision Control
72  Git is our source control system. This is how we keep everyone up to up to date. See above for
73  instructions on getting Git for your workstation. To grab a copy of the code run the following
74  command from at a command line, or “git bash” terminal. If you are using a graphical git client
75  just use the URL portion of the command:
76 
77  @verbatim
78  git clone git://github.com/BlackToppStudios/Mezzanine.git
79  @endverbatim
80 
81  @n
82  For more details on Git usage see some third party tutorials:
83 
84  - @htmlonly<a href="https://www.atlassian.com/git/tutorials/">@endhtmlonly
85  Atlassian's Git tutorials
86  @htmlonly</a>@endhtmlonly
87  - @htmlonly<a href="http://git.or.cz/course/svn.html">@endhtmlonly
88  Git Comparison to SVN
89  @htmlonly</a>@endhtmlonly
90  - @htmlonly<a href="http://linux.yyz.us/git-howto.html">@endhtmlonly
91  Hacker’s guide to git
92  @htmlonly</a>@endhtmlonly
93 
94  @section cxx_training_and_training Training
95  Since this whole project is being built in standard C++ (or certain external libraries), we
96  thought it would be prudent to include some resources for learning it:
97 
98  @subsection cxx_training_and_tutorials Standard C++ Tutorials
99  If you have never used C++ and you need to somewhere to get started tutorials might be ideal:
100  - @htmlonly<a href="http://www.cplusplus.com/doc/tutorial/introduction/">@endhtmlonly
101  Cplusplus.com beginners Tutorial
102  @htmlonly</a>@endhtmlonly
103  — To help newer developers whet their appetite C++ Development.
104 
105  - @htmlonly<a href="https://www.google.com/search?q=c%2B%2B+tutorial">@endhtmlonly
106  Google “C++ tutorial”
107  @htmlonly</a>@endhtmlonly
108  for some very useful information.
109 
110  @subsection cxx_training_and_beyond_tutorials Beyond Tutorials
111  To expand on basic knowledge or round
112  - @htmlonly<a href="https://github.com/isocpp/CppCoreGuidelines">@endhtmlonly
113  C++ Core Guidelines
114  @htmlonly</a>@endhtmlonly
115 
116  - @htmlonly
117  <a href="http://www.justsoftwaresolutions.co.uk/threading/multithreading-in-c++0x-part-1-starting-threads.html">
118  @endhtmlonly
119  Just Software Threading tutorials
120  @htmlonly</a>@endhtmlonly
121  on the std::thread library.
122 
123  - @htmlonly<a href="http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/">
124  @endhtmlonly
125  How to link a library
126  @htmlonly</a>@endhtmlonly
127 
128  - @htmlonly<a href="http://duramecho.com/ComputerInformation/WhyHowCppConst.html">@endhtmlonly
129  Using Const How and Why
130  @htmlonly</a>@endhtmlonly
131 
132  - Angelika Langer has a fantastic article about
133  @htmlonly<a href="http://www.angelikalanger.com/IOStreams/Excerpt/excerpt.htm#Top">@endhtmlonly
134  c++ streams and streambufs
135  @htmlonly</a>@endhtmlonly
136  . It explains how to connect a stream to any serializable data source.
137 
138  @subsection cxx_training_and_gaming Gaming Sources
139 
140  - For more information on our internal graphics implementation there is the
141  @htmlonly<a href="http://www.ogre3d.org/forums/">@endhtmlonly
142  Ogre forums
143  @htmlonly</a>@endhtmlonly
144  .
145 
146  - For more information on our internal physics implementation there is the
147  @htmlonly<a href="http://www.bulletphysics.org/Bullet/phpBB3/">@endhtmlonly
148  Bullet forums
149  @htmlonly</a>@endhtmlonly
150  .
151 
152  - For more generic information on a broad range of topics relating to Game Dev there is the
153  @htmlonly<a href="https://www.reddit.com/r/gamedev">@endhtmlonly
154  Game Dev subreddit
155  @htmlonly</a>@endhtmlonly
156  or
157  @htmlonly<a href="http://www.gamedev.net/page/index.html">@endhtmlonly
158  GameDev.net
159  @htmlonly</a>@endhtmlonly
160  . However, your mileage may vary with those sites.
161 */
162 
163 
164 #endif