Прежде всего, увеличьте свои базовые теоретические знания в том, что вы еще не знаете. Изучите теорию и напишите несколько коротких примеров.
Пример базового теоретического фона включает в себя:
- Алгоритмы и структуры данных
- Разработка программного обеспечения (UML, шаблоны проектирования, ООП)
- Операционные системы и параллельное программирование
Затем рассмотрите возможность изучения дополнительного языка (например, Java или C #). - Изучение дополнительных языков помогает лучше понять плюсы и минусы любого языка, который вы используете, и помогает вам изучить лучшие практики, которые вы, возможно, не знаете.
Далее выберите новый домен (веб-программирование, компьютерная графика, обработка изображений, компьютерное зрение, доступ к данным, ...). Изучите теорию и напишите несколько коротких примеров.
Затем создайте большой пример, который инкапсулирует многоуровневое приложение, обрабатывающее доступ к данным, пользовательский интерфейс и определенный домен, который вы выбрали. Сделайте акцент на архитектуре приложения (убедитесь, что его части как можно слабее связаны).
Надеюсь, вы узнаете, как освоить новые подходы и технологии и интегрировать их с хорошей архитектурой.
Специально для игрового программирования я рекомендую выбрать следующие домены / технологии:
- Основы обработки изображений
- Любая конкретная технология интерфейса
- Основы компьютерной графики
- Любой конкретный графический движок (например, DirectX, OpenGL, OGRE, ODG, Java3D, ...)
- Основы механической физики
- Любой конкретный физический движок (например, PhysX, ...)
- Любой конкретный игровой движок (например, XNA, ...)
- Многопоточное программирование
- Распределенное программирование
Редактировать:
Как научиться:
- Прочитайте и запустите примеры из CodeProject.
- Просмотрите несколько книг в библиотеке или магазине книг / электронных книг, пока не найдете пару книг, которые вам нравятся (которые соответствуют вашему стилю чтения + охватывают темы, которые вы хотите прочитать).
- Читайте блоги.
- Попробуйте вещи и спросите на StackOverlow, когда вы застряли.