Добро
пожаловать!
Если вы впервые оказались на этом сайте, то в первую очередь я выражаю благодарность человеку, который оставил ссылку именно на эту страницу. Если вдруг когда-нибудь вы захотите поделиться ссылкой на этот проект, оставьте, пожалуйста, ссылку именно на home.html, потому что DNS резолвится сразу на содержание уроков - ни здрасьте, ни до свидания.
Данный сайт надеется являться путеводной нитью в деле написания игры, но также он может быть использован и как набор ориентиров в разработке собственного проекта на любом стеке технологий. Здесь реализация описана с использованием ОС GNU/Linux, языка C (когда необходимость в ООП станет явной - C++) и компилятора gcc.
В первую очередь стоит принять во внимание: хоть сайт и освещает процесс создания игры, путь, представленый здесь, является не "простым способом написать игру", а способствует "простому способу разобраться с подкапотными тонкостями и нюансами создания программного продукта". Если вы просто хотите "сделать игру", вам стоит сейчас же, вместо чтения сайта, установить какой-нибудь из актуальных движков/игровых конструкторов, или даже взять любимую игру и разобраться, как к ней делают моды, и закрыть этот сайт, иначе запала и мотивации никак не хватит. Так же сайт не является инструкцией по геймдеву в целом - это огромная сфера, охватывающее куда большее поле, чем просто написание кода - а на сайте даже диздока нет. А вот если вы любите игры, но при этом интересуетесь программированием, вам интересно как программно там всё устроено "изнутри", и ковыряться в коде вам хочется больше, чем расставлять юнитов, подправлять параметры оружия и даже, быть может, придумывать сами миры, тогда, очевидно, вам будет интересно следовать структуре уроков.
Здесь объяснено, как создать игру "с нуля". Но это "с нуля" - не в смысле "для полных новичков", а в смысле "с основ": сначала делая всё вручную, и переходя на использование готовых библиотек и инструментов, когда будем уверены, что понимаем как они сами функционируют. Тем не менее, следование программе сайта вполне доступно относительным новичкам в программировании. Для этого вполне достаточно знания базовых понятий: алгоритм, цикл, функция, булева алгебра, массивы. Если вы не владеете языком С, то вам придётся изучать его по ходу прохождения уроков, либо же реализовывать описываемое на языке по вашему выбору, ориентируясь на приводимый мной С/С++ код. Если вы не писали ранее хотя бы учебные программы более 100 строк, то, скорее всего, стоит заняться изучением программирования на более специализированных курсах. Остальные сложные концепции, как к примеру, OpenGL, будут вводиться постепенно и подробно. Акцент же будет сделан не на то, как это работает в общем случае, а на то зачем это здесь, на то как и почему эта концепция подходит в достижении конкретной цели - и, что самое главное, как это увязывается с ранее введёнными темами. При этом полноценного (формального) раскрытия механизма технической части не будет, и сама тема концепции (весьма желательно) должна быть освоена самостоятельно (в чём поможет сопутствующий каждому уроку список вопросов для самостоятельной работы).