The only similar course idea request is this one: UE4/C++ AI, Algorithms, and Data Structures
However, I think what should be covered in this course should essentially be focused directly around passing algorithm-style coding interview questions. Websites like leetcode, and hackerrank are extremely common during coding interviews for game studios. I’ve interviewed with EA, Riot Games, Sledgehammer, TreyArch, Blizzard, Naughty Dog, and about 10~ or so more companies (which I’ve wrote in a google spreadsheet for my own notes). Literally every single one of them has had some sort of coding test. I would say that EA was the easiest one I’ve done so far. The smite game studio also has a coding test on topics like 3d math if you’re applying to be a gameplay engineer. They will test you on usage of Dot and Cross products, which is why I’ve been trying so hard to learn these.
In terms of algorithms, I think this course should train us to learn to solve the algorithms ourselves. Talking from personal experience, very few of us in this community would be able to work professionally in games. I currently got a job working in games after almost a year and a half of searching. I’m so happy about it. However, I also know that in the back of my mind if I get laid off I will not be able to get a new job very easily due to my lack of knowledge on algorithms (which is mostly taught in university, and I’m self-taught because my degree is game design, not computer science).
This only applies to engineering jobs by the way. Being a producer, a level designer or something else they will give you different tests. Level designers will be given level design tests, and vfx artists will get a test to create vfx…etc.
I think the course could cover the following topics:
Big O notation, and teaching someone how to learn to determine Big O space and time complexity on their own.
Recursion - Develop a pow (power) function, coin change, fibonacci (Example of power function: https://leetcode.com/problems/powx-n/, it can be done in log(n) time complexity if I remember correctly)
String algorithms - palindrome, find all permutations, or number of potential permutations
Linked Lists - sort n-linked lists, reversing a linked list
Graphs - DFS, BFS, Dijkstra’s, A*, what are graphs, directed, undirected, weighted, unweighted…etc
Trees - Prim’s algorithm, dfs, bfs, reversing a tree
Stacks - Matching brackets problem
Queues - explaining the use cases of a queue
Matrices - there’s a few matrix type questions I’ve encountered
Hash Tables - when to use, space/time complexity
The course should have one part focused on defining the things above, and then a second part going over the thought pattern of how someone could go about solving these questions on their own. Teaching someone to teach themselves to solve the algorithms is really what I want to see. Perhaps even spending a large portion of the course going over how to solve problems.
I hope this isn’t too much! Thumbs up please guys!