Войти

Моя первая игра! Возможно ли такое?

Блог

Определяемся
Ну… Пора бы уже определиться с тем, как мы будем это всё делать и как это будет выглядеть…

Изначально, когда ко мне только пришла идея сделать римейк, то я представил именно 2D платформер с новой графикой, но в таком случае это было бы слишком легко и не так интересно в реализации, т.к. в данном случае оригинал остался бы все-равно лучше. Поэтому пришла идея делать это в 3D, т.е. все тот же платформер, вид сбоку, но модели и окружение в трехмерном пространстве. Ну… что… на стадии техно-демки будет  видно: есть ли в этом смысл.

Делать будем под Windows. Новомодный WebGL и прочие технологии и движки в браузерах, Android'ы и iPad'ы мне почему-то неинтересны.
Долго думал, что использовать для разработки и рассматривал три варианта:
    1. C++ или C# на готовом графическом или игровом движке
    2. С# с использованием фреймворка XNA или OpenTK
    3. С++ с использование DirectX или OpenGL/OpenAL

От первого варианта сразу отказался, т.к. на мой взгляд – это было бы не создание игры с точки зрения программирования, а больше бы походило на работу с различными конструкторами, т.к. игровая логика до боли проста.
Между вторым и третим вариантом размышлял очень долго, т.к. очень хотелось попробовать написать игру на C# (этого я еще не далал, только системные утилиты) и опробовать фреймворк XNA от Microsoft. Но в итоге решил, что так я не изучу досконально технологии и алгоритмы, которые сейчас используются, поэтому остановился на третьем варианте, а конкретно на C++ и OpenGL/OpenAL. Почему-то мне кажется, что OpenGL больше подходит для детального и глубокого изучения 3Д, да и как-то больше по "джедайски" :) Тем более, что я ярый фанат творчества Джона Кармака (idSoftware), а он использует только OpenGL (насколько мне известно). Ну а редакторы будем делать на C# и OpenTK, чтоб максимально упростить себе жизнь в неинтересной и рутинной для меня работы...

Получилось следующее:
Движок:
    - IDE: Visual C++ 2010 Express
    - Библиотеки: WinAPI, OpenGL, OpenAL
Редакторы:
    - IDE: Vidual C# 2010 Express
    - Библиотеки: .NET 4.0, OpenTK

Для тех, кто не в курсе. У Microsoft есть абсолютно бесплатные для коммерческого использования IDE, а конкретно Microsoft Visual Studio 2010 Express Edition (есть и русская версия), в состав которого входят Visual Basic, Visual C++, Visual C#, WEB Develop, и лично на мой взгляд: это самые лучшие IDE... А OpenTK - это аналог фрейворка XNA, только основанного на OpenGL/OpenAL/OpenCL, с наличием математической библиотеки, по сути это аналог XNA...

Но начинающим разработчикам (хотя я и сам таким являюсь) крайне (местами категорически) рекомендую начинать с варианта C# и XNA, или хотя бы трезво оценить все за и против. Да и насколько мне известно издатели казуальных игр очень плохо смотрят на игры на OpenGL, а некоторые издатели их вообще не принимают.

Что бы меньше напрягать гугл и форум gamedev.ru сделал следующее:

    1. Пошел в книжный магазин и купил пусть и старые, но судя по оглавлению очень нужные книжки: OpenGL. Программирование компьютерной графики, OpenGL. Трехмерная графика и язык программирования шейдеров, Расширения OpenGL
    2. Скачал Nvidia OpenGL SDK, Doom 3 SDK, Quake Wars - ET SDK, UDK, Unity, Ogre, Irrlight.
    3. Внес в избранное следующие страницы:
        http://www.gamedev.ru/
        http://www.gamedev.net/
        http://www.opengl.org/sdk/
        http://www.opengl.org/wiki/
        http://nehe.gamedev.net/
        http://www.humus.name/
        http://code.google.com/p/gl33lessons/
        http://steps3d.narod.ru/articles.html
        http://www.swiftless.com/
        http://www.g-truc.net/

Вы не подумайте, я не любитель копипаста, просто предпочитаю такую стратегию:
    1. узнать об актуальной технологии
    2. изучить спеки и примеры
    3. изучить реализации профессионалов
    4. если что-то не понятно, то спросить у гугла и gamedev.ru
    5. написать свою реализацию

Ссылка
22 фев. 2011

Предисловие...
Сам не знаю, что сподвигло меня завести свой блог, может это просто желание как-то задокументировать лично для себя процесс. А именно: можно ли не имея никакого представления о том как пишутся современные игры написать простенький платформер и как далеко можно продвинуться в этом плане (хотя в школьные годы увлекался написанием игр, но это было очень давно и все забылось, а то что помнится - технически сильно устарело и уже давно не используется).
Итак, будем писать простенький платформер - римейк одной очень старой игры, в которую я играл в далеком 1992 или 1993 годах. Это была первая игра которую я увидел на своем первом компьютере и из-за которой я в те годы решил связать свою жизнь с IT.
А блог буду вести еще из-за того, чтоб кто-нибудь мог подсказать и направить на правильный путь. Писать "игру" буду в свободное от работы и семьи время, поэтому будет очень медленно, но лично я очень сильно надеюсь, что этот эксперимент дойдет до максимально возможной стадии.

Подытожим цели "проекта":
1. Провести эксперимент: до какой стадии можно дойти в написании простенького платформера, не имея соответствующих знаний.
2. Проверить: можно ли полагаться на помощь gamedev.ru коммунити.
3. Собрать информацию о технологиях и алгоритмах, которые используются в современных компьютерных играх.
4. Описать по шагам этапы создания игры и перечень используемой литературы и ресурсов Интернет для помощи таким же новичкам как и я.

Поехали!

Ссылка
20 фев. 2011