Oddly Posted May 9, 2017 Share Posted May 9, 2017 In game development, knowledge of design is more important than most give credit for around here. I was browsing through old bookmarks and decided I'd share my collection of game development articles that I have saved over time. [Remember: Just because these articles aren't in your preferred or current working language, does not mean they do not apply. These concepts are not solely for the language the tutorials are shown in.]  - Update - I have been working on a new game engine using the information i get from articles I share here. I am writing a full documentation to the design process of that engine. This article can be found in the link below. https://1drv.ms/w/s!AjfWuGQffpNdgkk6j5j0meclYAo_ This article is a work in progress, updates made to this article will be pushed to this post: https://www.ascensiongamedev.com/community/topic/1718-wipgame-engine-development/  Design Patterns:  Observer Pattern: This is used in game design to create event handlers and in some cases even used to implement plugin and modding systemshttps://en.wikipedia.org/wiki/Observer_patternhttp://www.oodesign.com/observer-pattern.html Finite State Machines: A pattern used to control game object states to determine when an action is and isn't permitted in game.https://en.wikipedia.org/wiki/Finite-state_machine http://gameprogrammingpatterns.com/state.html Game-Loop Pattern: (Probably the most important Game Design Pattern, super simple to learn, used for physics, updates, and rendering)http://gameprogrammingpatterns.com/game-loop.html  Graphics Rendering:   OpenGl Complete guide, for learning low level graphics rendering:https://learnopengl.com/#!Getting-started/OpenGLLibraries of Interest: GLFW, a C++ graphics library for creating windows and managing double buffer context: http://www.glfw.org/ SFML, a high level graphics rendering library, great for mid level developerst: https://www.sfml-dev.org/   Game Physics:   General Physics:I honestly haven't read this article, but it looked good for over all (mostly 3D) physics:https://web.cs.wpi.edu/~rich/courses/imgd4000-d09/lectures/D-Physics.pdf 2D Collision Detection Methods:https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection (by mozilla)3D Collision Detection Methods:https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection (by mozilla)  Side Scroller Physics: https://gamedevelopment.tutsplus.com/tutorials/basic-2d-platformer-physics-part-1--cms-25799   Game Ai:  A* (a-star) path finding algorithm: Used to detect the quickest route an AI can travel to a given pointhttps://en.wikipedia.org/wiki/A*_search_algorithm http://www.policyalmanac.org/games/aStarTutorial.htm (Beginner's Article) http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html (Advanced article, by Stanford University)Have not read, but seems to contain good resource on various AI patterns:http://julian.togelius.com/Treanor2015AIBased.pdf  (more to come, for this section later)  Networking Development:  Types of Network Protocols:https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Definitionhttps://en.wikipedia.org/wiki/User_Datagram_Protocol UDP Definitionhttp://www.diffen.com/difference/TCP_vs_UDPPlanning and Designing Networks:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-829-computer-networks-fall-2002/index.htm (by MIT)MMO Network Design: Seriously recommend this to anyone writing or editing an engine. This is how MMO Networks are truly meant to be built.https://www.ibm.com/developerworks/library/ar-powerup1/ (by IBM)PEER-TO-PEER Network Design:https://gamedevelopment.tutsplus.com/tutorials/building-a-peer-to-peer-multiplayer-networked-game--gamedev-10074http://pm.inf.ethz.ch/publications/getpdf.php?bibname=Own&id=GrolimundMueller06.pdfTCP Network Design Patterns:https://vichargrave.github.io/articles/2013-02/tcp-ip-network-programming-design-patterns-in-cpp (Mostly for C++ devs, but good concepts)  Multiplayer Games and Networking (UDP vs TCP): http://ael.gatech.edu/cs4455f13/files/2013/08/Networking_Multiplayer.pdf (By Georgia Tech) http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/   Database Structuring:  MMO Database Structure: (for a hypothetical MMO) http://www.vertabelo.com/blog/technical-articles/mmo-games-and-database-design  Game Development (General):  Creating A Map System:https://gamedevelopment.tutsplus.com/tutorials/an-introduction-to-creating-a-tile-map-engine--gamedev-10900  General 2D Game Development Tutorial:http://oos.moxiecode.com/blog/index.php/tutorials/   Test Driven Development (General):  Test Driven Development, Wikipedia: https://en.wikipedia.org/wiki/Test-driven_development  Unit Testing with C++, Visual Studio Magazine https://visualstudiomagazine.com/articles/2013/03/08/unit-testing-with-c-plus-plus.aspx  RESTful Services:   About Restful Services:https://en.wikipedia.org/wiki/Representational_state_transferWriting your own REST Api's with NodeJs:https://www.codementor.io/olatundegaruba/nodejs-restful-apis-in-10-minutes-q0sgsfhbdhttps://hackernoon.com/restful-api-design-with-node-js-26ccf66eab09https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4 (pretty in detail, this is article is awesome)http://adrianmejia.com/blog/2014/10/01/creating-a-restful-api-tutorial-with-nodejs-and-mongodb/ (With MongoDb if you're into that kind of stuff)Good Practices for writing RESTful Services: (meant for nodejs, but some applies for all languages)https://blog.risingstack.com/10-best-practices-for-writing-node-js-rest-apis/~ I've been writing my REST API for GaiaEngine in node, so that's why there are all node related ~   Libraries Of Interest (WIP):  C++Boost/Asio: (a large selection of libraries built to expand the C++ Standards, including an excellent networking library)http://www.boost.orghttps://codeyarns.com/2014/06/06/how-to-build-boost-using-visual-studio/ (and this tutorial to save your ass when trying to figure out how to build it)  QT: (primarily used for C++ Cross Platform User Interface design, but also contains content including web calls) https://www.qt.io https://www.qt.io/ide/ (qt creator, official ide and form designer for QT)  Software Security and Vulnerabilities  NodeJs Security and vulnerabilities with NPM: https://community.risingstack.com/writing-secure-node-js-code-danny-grander/   YOUTUBE OF INTEREST ExtraCredits, a youtube channel dedicated to discussing "Why Games Matter": https://www.youtube.com/user/ExtraCreditz  [I will update this list each time i find enough well prepared learning materials] Feel free to post articles if you have them. i'll glance through them, if they're note worthy i'll add them to the list. Mighty Professional, PinkAngel, italo and 4 others 7 Link to comment Share on other sites More sharing options...
Hanox Posted May 9, 2017 Share Posted May 9, 2017 This is dank af boyy. Oddly 1 Link to comment Share on other sites More sharing options...
Hanox Posted May 9, 2017 Share Posted May 9, 2017 For a lot more useful resources and some more Dank knowledge :Â https://game-development.zeef.com/ Pigot 1 Link to comment Share on other sites More sharing options...
Pigot Posted May 9, 2017 Share Posted May 9, 2017 1 hour ago, JimmyJumpdrive said: In game development, knowledge of design is more important than most give credit for around here. I was browsing through old bookmarks and decided I'd share my collection of game development articles that I have saved over time. [Remember: Just because these articles aren't in your preferred or current working language, does not mean they do not apply. These concepts are not solely for the language the tutorials are shown in.] Game Design Patterns:  Reveal hidden contents Observer Pattern: This is used in game design to create event handlers and in some cases even used to implement plugin and modding systemshttps://en.wikipedia.org/wiki/Observer_patternhttp://www.oodesign.com/observer-pattern.html Finite State Machines: A pattern used to control game object states to determine when an action is and isn't permitted in game.https://en.wikipedia.org/wiki/Finite-state_machine http://gameprogrammingpatterns.com/state.html Game-Loop Pattern: (Probably the most important Game Design Pattern, super simple to learn, used for physics, updates, and rendering)http://gameprogrammingpatterns.com/game-loop.html   GAME PHYSICS:  Reveal hidden contents  General Physics:I honestly haven't read this article, but it looked good for over all (mostly 3D) physics:https://web.cs.wpi.edu/~rich/courses/imgd4000-d09/lectures/D-Physics.pdf2D Collision Detection Methods:https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection (by mozilla)3D Collision Detection Methods:https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection (by mozilla)  Side Scroller Physics: https://gamedevelopment.tutsplus.com/tutorials/basic-2d-platformer-physics-part-1--cms-25799   GAME AI:  Reveal hidden contents A* (a-star) path finding algorithm: Used to detect the quickest route an AI can travel to a given pointhttps://en.wikipedia.org/wiki/A*_search_algorithm http://www.policyalmanac.org/games/aStarTutorial.htm (Beginner's Article) http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html (Advanced article, by Stanford University)Have not read, but seems to contain good resource on various AI patterns:http://julian.togelius.com/Treanor2015AIBased.pdf  (more to come, for this section later)   GAME NETWORKING:  Reveal hidden contents Types of Network Protocols:https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Definitionhttps://en.wikipedia.org/wiki/User_Datagram_Protocol UDP Definitionhttp://www.diffen.com/difference/TCP_vs_UDPPlanning and Designing Networks:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-829-computer-networks-fall-2002/index.htm (by MIT)MMO Network Design: Seriously recommend this to anyone writing or editing an engine. This is how MMO Networks are truly meant to be built.https://www.ibm.com/developerworks/library/ar-powerup1/ (by IBM)PEER-TO-PEER Network Design:https://gamedevelopment.tutsplus.com/tutorials/building-a-peer-to-peer-multiplayer-networked-game--gamedev-10074http://pm.inf.ethz.ch/publications/getpdf.php?bibname=Own&id=GrolimundMueller06.pdfTCP Network Design Patterns:https://vichargrave.github.io/articles/2013-02/tcp-ip-network-programming-design-patterns-in-cpp (Mostly for C++ devs, but good concepts)   [I will update this list each time i find enough well prepared learning materials] Feel free to post articles if you have them. i'll glance through them, if they're note worthy i'll add them to the list.  16 minutes ago, Hanox said: For a lot more useful resources and some more Dank knowledge : https://game-development.zeef.com/ Thank you guys, very useful!! Hanox 1 Link to comment Share on other sites More sharing options...
Oddly Posted May 10, 2017 Author Share Posted May 10, 2017 Update, added Networking articles discussing TCP and UDP Update, added an article on MMO Databases Update, added articles on NodeJs REST Services Hanox 1 Link to comment Share on other sites More sharing options...
Hanox Posted May 10, 2017 Share Posted May 10, 2017 Update with this : Â Playlists with Youtube videos about game design. Pigot 1 Link to comment Share on other sites More sharing options...
Oddly Posted May 10, 2017 Author Share Posted May 10, 2017 Update, Added General Game Development section with articles on Drawing Maps and General 2D Game Development Tutorials Update, Published a personal work in progress article to the top of the post  Update, articles I'm saving to be read later will be posted in these comments and added accordingly when I've completed reading them: I'm also spending today reading articles on Unit Testing for work, these articles will also be added here. https://visualstudiomagazine.com/articles/2013/03/08/unit-testing-with-c-plus-plus.aspx  Articles to read: http://wiki.c2.com/?GameModelingDatabase  Up coming topics:  Unit Testing: https://visualstudiomagazine.com/articles/2013/03/08/unit-testing-with-c-plus-plus.aspx  Network Security Link to comment Share on other sites More sharing options...
Oddly Posted May 11, 2017 Author Share Posted May 11, 2017 Update, Added QT to the list of libraries of interest, I will be using QT for Gaia's user interface. Link to comment Share on other sites More sharing options...
Oddly Posted May 14, 2017 Author Share Posted May 14, 2017 Update, added a section on Security and Vulnerabilities. Added Article on NodeJs Security regarding Node Package Manager (NPM), highly recommend for anyone doing NodeJS Development Link to comment Share on other sites More sharing options...
Oddly Posted October 30, 2017 Author Share Posted October 30, 2017 On 5/9/2017 at 2:10 PM, Crest said: Graphics Rendering: Â Â Reveal hidden contents OpenGl Complete guide, for learning low level graphics rendering:https://learnopengl.com/#!Getting-started/OpenGLLibraries of Interest: GLFW, a C++ graphics library for creating windows and managing double buffer context: http://www.glfw.org/ Â Â Â Â Updates! Added a section on Graphics rendering as I am beginning to learn OpenGL myself. This is some advanced stuff for anyone who is interested in learning game programming at its core. For anyone who is looking for a library that is easier for intermediate level developers, I recommend checking out SFML, I'll add some links to that later. (Note: OpenGL in this area is for C++, same as GLFW, however there may be GLFW wrappers for other languages just as SFML has wrappers for C#, Python, Ruby and a few other major languages.) Â Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now