A UF group project that attempts to create a limited Legend of Zelda clone.
- This is so we can communicate.
- This is so we can interact with the computer. Its also cross platform so you don't have to install Linux.
Git
- This is so we can track changes and merge our code togethe.
Any IDE
- With the proper setup, it shouldn't matter what IDE you are using or even what OS.
- Build generator system. You run it and it makes the correct build files for your system.
- It is extremely important to have tests to verify the project.
We should meet very often. Code with a very collabration based project and we need to communicate in person to effectively work.
When you submit your code to this main repo, I will review your code. I will mainly be follow standard practices of C++. For more specific examples go to the .pdf I linked below. No one will remember all of them and neither will I. Just keep write and slowly improve your code.
Please have some form of documentation with your code.
Do one thing at time. If you are working on physics, focus on writing physics. If you need to display modules to work with, ask the dude that is working with display, pull his/her code and work from that.
The build system will be Cmake because it is cross platform and works with all major IDEs including Visual Studio.
Hopefully these links will help you on the project.
Git is a tool that allows us to track changes and combine the changes. The real value of git is with projects that demand the collaboration. The above link will pretty much have everything you need to know.
Most of the time its going to be something like this:
- Fork the main repo on github // you do this via github, you are basically have a local copy of this repo on your account.
- git add. // stages your changes
- git commit -m "added more memes" // write your changes to the branch
- do the first two again until you are happy with your repo
- git pull upstream master // upstream is the main repo that I control. You are making sure that you are up to date with the main repo.
- deal with merge conflicts // you pulled changes from the main remote that may progressed ahead of you. So it may conflict with your code. No problem, git helps you deal with them.
- git push origin master // origin is basically the url to a remote repo. You are uploading code to github
- Make a pull request on github *// politely ask for me to take your changes and add them to the main repo. I will review your code.
Using modern C++ to make games. It's a presentation at CppCon (a conference where the coolest people go to). The guy walks through using SFML to develop a simple game.
If you want an example of modern C++ look at my repo magic_sqaure.
- This is a wonderful FAQ that touches on a lot of topics about C++.
Bjarne Stroustrup on Writing Good Code
- Creator of C++ talks about good code here.
- This is a draft for common core practices that the entire C++ community should use. Very good and readable.
Effective C++ and Modern Effective C++
- These are two EXTREMELY good books on writing high quality C++. If you ask me, I can let you "borrow" my "physical" copy of the book.
C++ Code Standard for things that go vroom vroom
- Actually explains why you do certain things. Use this as a jumping point to research more points about C++.
This is honestly not the most important thing. SFML is stands for Simple Fast Multimedia Library. It is a way to interact with your keyboard, audio, and display things. While signifact, it WILL NOT guide the design of our game.
There are other examples of open source Legend of Zelda games. You should take a peek at them and see what they do.
Tutorial on what we are trying to do
These two sub-reddits are very good for learning things. Use the search bar with the terms "C++" or "game" and you will find a lot of handy things.