This post is a collection of best practices, tools, and recommendations that may be useful to our team.
Code Review
Refer to our guidelines for code reviews in our team here: http://wartothecore.com/2016/09/teamwork-code-reviews/
For general CR advice, see this: https://smartbear.com/learn/code-review/best-practices-for-peer-code-review/
Unity
This article have some interesting Unity best practices that can really come in handy: http://devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/
Article about UI optimization: https://create.unity3d.com/Unity-UI-optimization-tips.Be sure to check the link to the 2016 updates to that article.
Common Unity pitfalls: https://unity3d.com/how-to/unity-common-mistakes-to-avoid
Azure
Azure tables design guidelines: https://docs.microsoft.com/en-us/azure/storage/storage-table-design-guide
Tools
There is a difference between getting things done and getting them done right quickly. Learning the right skills will help you get it done right and the right tools will help you cut down the time you spend getting there. Here are a few picks.
- [Essential] Resharper. Any serious developer needs one of the three main productivity plugins. This is the one we recommend. Resharper makes you about 40% more efficient and cuts down development time in our project by more than a half.
- [Recommended] OzCode. If you find you spend a significant portion of your time debugging, then this is the tool you need to consider. It makes debugging much easier.
- [Convenient] Visual SVN. This little tool makes it really easy to work with SVN right from VS and helps you avoid forgetting to check in files.
Reporting Problems/Bugs/Exceptions
- If you ever hit a bug that’s not your own, report it immediately in the public channels. If nobody acknowledges the task, then go ahead and create a bug on our issue tracker.
- Whenver you report an error whether in the channels or on the issue tracker, ALWAYS provide the full stack trace if you have one. If you don’t have the direct stack trace, provide the relevant logs as attachements.
Important Software Engineering Topics
There are certain software engineering skills that make you a better software engineer. Here are some suggested topics that are relevant to us.
- C# and .NET
- Design Patterns
- SOLID principles
- Writing testable code
- Dependency Injection. Read this for a good introduction to dependency injection using Microsoft Unity (Which is not the same as Unity 3D).
Suggested Readings
- Clean Code
- Head First Object-Oriented Analysis and Design
- The Art of Unit Testing (There’s an old online copy hosted here)
- Design Patterns by the Gang of Four
- Game Programming Gems series
- Best Practices in Asynchronous Programming article.
- The Art of Game Design : A book of lenses.
- Other game design reading list.
Recent Comments