- Game Programming Patterns: Game software is hard. Read this FREE online textbook for some good software design tips that will make your life so much easier.
- At the very least read the three chapters on decoupling patterns. Decoupling is very important when working on software teams and when working on something complicated like a game.
- Fix Your Timestep!: Absolutely essential article on how to write your game's update loop.
-
- Probably the most relevant are:
- stb_image.h (everyone will need this)
- stb_easy_font.h (font rendering is a pain in the ass)
- stb_perlin.h (procedural generation is awesome)
- Probably the most relevant are:
- GLFW: Hopefully you are all using this already.
- GLEW: This is mostly useful for anyone developing on Windows (where it's an absolute necessity). Don't ever load OpenGL extensions manually; use this library.
- imGUI: Awesome GUI library. The OpenGL GUI library ecosystem is a mess, and this is the only really good option. Note that it is geared towards development UIs and is awesome at doing that. If you want something that you can artistically control, you'll need to look elsewhere.
- For production (pretty, user-centric) UI, I recommend just drawing textured quads. As long as you don't need anything more complicated than buttons, progress bars, text, and static images, you'll be far better off just writing these yourself than trudging through the tepid mire of OpenGL GUI libraries. IMO.
- GWEN: If you really insist on using a GUI library that you can skin, GWEN is your best bet. Be prepared to deal with the ABSOLUTELY ZERO documentation that exists. Seriously. Hope your IDE has intellisense.
- FXAA: Article about FXAA, blah blah blah. FXAA is great because it's a simple shader you can throw into your game as a one-pass post processing effect.
- Outdoor Lighting: Great article on how to do realistic lighting for an outdoor scene, especially terrain.
- Multiresolution Ambient Occlusion: High level article on how to produce a convincing AO effect. The author is writing from a procedural generation and offline rendering viewpoint, but the ideas are still useful for realtime.
- Assimp: Ridiculous name. Awesome library. The only thing worse than font rendering is asset loading. Don't spend three weeks trying to write a 3DS loader that barely works. Don't use OBJ like it's the 80's. Use this so that you can import whatever your artist sends to you (or whatever you are able to find for free on the internet).
- See stb_image.h above for texture loading.
- PhysX: My personal favorite. Recently made open source by Nvidia. Used in a lot of big commercial titles
- Bullet: Another very strong choice.
- I have no strong opinions in this area, and there are a lot of other good options.
- Don't make a networked game in 10 weeks. But if you must, read the Game Networking and Networked Physics articles by Gaffer on Games