Algorithm Design Course

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!

I’m self-taught, I don’t have a degree, but I have encountered almost all of those topics you mentioned when I started researching and developing complex AI (Behaviour Trees, GOAP, and others), so maybe an AI course would work, just for the sake of making it practical, or maybe a shader course since those things are super math-heavy.

The RPG and Math courses are also a great starting point, they cover a lot of those topics between the two.

1 Like

Yeah but they don’t directly tackle the problem of algorithm knowledge.

I agree that every course should teach not only theory but the practical appliance of got knowledge. For example, I’ve visited some courses that haven’t been so useful. Currently, I attend additional classes, the studying is very hard as there is a lot of practical tasks, but with the help of https://edubirdie.com/custom-research-paper I hope to get new useful skills. In any case, everyone should take some measures if he/she wants to achieve some goals/ Every try is a kind of experience and teach something.

1 Like

Privacy & Terms