Вопрос: С чего начать новичку в изучении c# для gamedev?

Лучший ответ:
Для C# (пишется с большой буквы) установи cреду разработки Visual Studio Community (ссылка). 

В первую очередь тебе нужно выучить C#. Чтобы у тебя дошло до автоматизма написание кода. Первое время ты будешь сильно подвисать на каждой мелочи. Простейшие ошибки будут ставить в тупик. Наверняка, сюда задавать вопросы, что нормально. Это дело не быстрое, невозможно с полного нуля за неделю всё выучить, уйдёт от полугода. И нужно на это будет тратить много времени, желательно даже каждый день. Без знания языка и умения писать в стиле ООП простые приложения я уверен, что в Unity делать нечего.

Рекомендую создать Решение (Solution) на C# в Visual Studio и в него добавлять проекты по темам из книги. 
Пример проектов в решении:
Изучение C# (.sln)
1. Переменные, циклы (.csproj)
2. Классы (.csproj)
3. Наследование (.csproj)
4. Делегаты и события (.csproj)
Только проекты называй по-английски.
Прочитал главу, сделал примеры из книги, написал везде комментарии с пояснениями. Делай так, чтобы потом можно было вернуться к этим проектам и быстро вспомнить, что забылось. После того как ты будешь много времени тратить на обучение и чтение книги, у тебя всё лучше и лучше будут запоминаться детали языка. Именно за счёт траты большого кол-ва времени и обучения на длительном промежутке времени всё и выучится само. Я не зубрил ничего почти.

Очень хорошее объяснение по C# здесь. Сразу скажу, уроки очень старые, но очень хорошие (там про платформу .NET Framework, но ничего нет про .NET Core, а теперь уже просто .NET (начиная с 5) и многого другого). Можно посмотреть эти уроки, после них начать читать книгу по C#, пусть из уроков много будет знакомо, но, скорее всего, в книге ты узнаешь новые детали и учить будет легче.

Ещё такой курс более современный, его не смотрел.

Кстати, чтобы не терять интерес, ты конечно можешь установить себе Unity, найти уроки по созданию 2D платформера, даже начать делать по урокам первую игру, но я тебе советую периодически как посидел над Unity возвращаться к книге и читать её дальше и так пока всю не прочитаешь. Я так и учил C#. Писал приложение, так как именно это было интересно, и периодически возвращался к книге. 

Алгоритмы. Можешь почитать хотя бы что-то простое для начала. Например, 
Алгоритмы. Вводный курс | Кормен Томас Х.

https://qna.habr.com/q/848533#answer_1745621

Книги есть такие:
C# 9.0. Справочник. Полное описание языка (ссылка)
Язык программирования C# 7 и платформы .NET и .NET Core | Джепикс Филипп, Троелсен Эндрю (ссылка)

Возможно даже
C# для чайников | Мюллер Джон Поль, Семпф Билл (здесь C# 7.0). ISBN: 978-5-907144-43-9

Худший ответ:
Можешь потратить кучу времени на подробное изучение C#, VisualStudio, Unity, потом ты все что изучил забудешь и оно тебе надоест. А можешь учить по ходу создания программ на C# и игр в Unity (Unity самый простой и мощный игровой движок для новичков). Например, если до этого не учил языков вообще, то посмотри уроков 15 (больше не надо) из этого плейлиста https://www.youtube.com/playlist?list=PL0lO_mIqDDF...

Дальше немного практикуйся на C#, напиши пару консольных программ типа калькулятора (и не обычный скучный калькулятор, который +, -, *, / знает, а добавь в него корень, степень, факториал, логарифм и другие операции). Потом напиши программу в который нужно вбить дату рождения, а она посчитает сколько тебе лет и сколько осталось дней до следующего ДР. Напиши какую ни будь лотерею, типа "Введите число от 1 до 20", потом пусть рандом выберет случайное число из этого диапазона и если оно совпадет с тем, что указал пользователь, то он выиграл. Вот такие мелкие проекты дадут тебе понятия как писать мелкие программы, чтобы дальше было легче. Если что-то не знаешь, например, как выбрать рандомное число, то загугли. Не знаешь как получить дату и время, гугл в помощь. И так когда пишешь любую программу впервые не зная что писать, используй гугл. Только не вздумай сразу где-то на форумах задавать такие вопросы, до тебя таких как ты было тысячи и им уже дали ответы на эти вопросы, так что используй эти ответы.

Дальше, научился C#, учи Unity, ну как учи, изучи основы, вот классный небольшой курс: https://www.youtube.com/playlist?list=PL0lO_mIqDDF...

Ты освоишься и будет уже достаточно легко. Дальше можешь тупо в юутбе вбивать темы (*см. внизу) и изучать каждую, чтобы знать что там есть и как этим пользоваться.

Потом пиши небольшие проекты, найди на ютубе видео, где люди делают игру и тупо повторяй за ним. Вот несколько примеров:
https://youtu.be/1ziJAD8Mazc
https://youtu.be/Ux6wQQIHimQ
https://youtu.be/tXVXa7A1FXU
https://youtu.be/GqB-Urh61Fg

И самое главное, не пытайся сразу сделать какую-то GTA V, не выйдет, и смысла нет. Либо убьешь не один год и выйдет фигня, либо все ровно убьешь кучу времени, потом надоест, ты забросишь проект, а потом вообще забросишь и геймдев. Делай вот как, ставь себе задачу сделать игру за 24 часа, 48 часов, за 5 дней, за неделю, но не больше, при этом старайся делать их максимально качественными, не нужно писать кривой код, лучше сделай маленький простой проект, но с крутым кодом, чем большой проект с говнокодом и кучами багов. Так ты научишься, во-первых делать игры быстро, во-вторых очень быстро наберешься опыта, в-третьих тебе не будет надоедать по полгода работать над одной игрой, в-четвертых у тебя накопится огромное количество законченных проектов, если будешь в бедующем идти работать на программиста игр, то сможешь показать кучи своих законченных проектов, шанс что тебя примут вырастет в 10 раз.

Ещё совет, не нужно находить платные курсы, платить деньги и надеется что тебя там всему научат. Во-первых всему научить невозможно, во-вторых даже после курсов ты будешь писать игр и позабываешь все что учил, все ровно придется идти в гугл и спрашивать "а как сделать управление джойстиком для андроид в юнити, смотреть онлайн юутб без регистрации и смс". Учи все сам, бесплатно, в интернете на эту тему море информации.

И да, не бойся ошибок, если что-то не работает, не запускается, вылетают ошибки и прочее, это хорошо, так как тебе придется искать решение ошибок в интернете и ты научишься правильно гуглить и находить именно то, что тебе нужно. Даже если ты уже неделями не можешь решить какой-то баг или ошибку (у меня такое бывало), все ровно не сдавайся, ищи ответ (тут уже можно задавать вопрос на форумах, если просто найти в гугле решение не удается так долго). Сколько сотен разных ошибок у меня было, иногда казалось что я не смогу её решить, это сложно, надо забрасывать проект... Но ни одну ошибку я не оставил без решения, да, могут уйти недели на поиск решения, но все ровно решение есть.

*А вот тот самый список с темами по изучению Unity (Я нашел его на каком-то сайте с курсом по юнити, это типа программа курса. Темы которые знаешь, можешь пропускать):
Темы
1. Знакомство с Unity
2. Классы: GameObject, Transform, Input, Vector.
3. Физика в игре, компоненты Rigidbody и Colider + Trigger
4. Canvas и настройка UI
5. Корутины и Invoke
6. Класс Mathf, Префабы, Instantiate
7. Таймер в игре
8. Как стучаться к другим скриптам 
9. Ежедневные бонусы
10. Application и менеджмент сцен
11. Свет в игре
12. День и ночь в игре
13. Шейдеры и материалы
14. Компонент Animation и Animator
15. Внутреигровые покупки (Покупки в игре за реальные деньги)
16. Unity ADS
17. PlayerPrefs и сохранение сцены
18. Метод OnDrag
19. RayCast
20. NavMesh и Terrain
21. Управление персонажем под Android/iOS
22. ParticleSystem
23. Sound 2D и 3D
24. Мультиязычность
25. Как зашифровать игру от взлома
26. Уведомления на Android/iOS
27. Настройки графики Quality
28. Пост обработка
29. Компилинг игры под PC и Android/iOS


Возможно я поздно отвечаю на этот вопрос))) Но все ровно сюда ещё ходят люди и читают, так что это будет для них. Надеюсь, не много текста)))