Основы программирования Корсаров

Добавлен , опубликован
Содержание:
СТАТЬЯ В РАЗРАБОТКЕ
Storm Engine, игровой движок Корсаров, написан на C++. Весьма популярный язык для игр.
А что касается скриптовой части игровых движков - никакой стандартизации в те времена небыло и чуть менее, чем в каждой игре, скриптовый язык был проприетарным (самописным, уникальным).
Хотя конкретно в случае Корсаров всё не так плохо - в основе лежит тот же C++. Однако, как можно заметить по расширению .c у скриптов, от него там мало что присутствует, кроме синтаксиса (да и тот скорее следует стандарту С99).
В этом курсе я буду объяснять особенности скриптового языка Корсаров, а также основы С++, которые к нему применимы.
Материал рассчитан на новичков, а также людей вообще не знакомых с программированием. В ходе обучения вы получите весь необходимый минимум для работы со скриптовой частью игры.
Опытные программисты могут просто пробежаться глазами по разделам выискивая красные плашки ОСОБЕННОСТЬ. Под ними я стараюсь описывать всё, что работает не так, как ожидается, а также большинство проприетарных решений.

Благодарности

  • Основой для доброй половины уроков из данного курса послужили авторские уроки по С++ Дмитрия Бушуева, за что ему выражается чистосердечная пацанская уважуха.
  • Благодарность Rosarak за множественные правки и подсказки.

`
ОЖИДАНИЕ РЕКЛАМЫ...
38
Зачем notepad++, когда есть нормальные IDE типа vscode с нормальной инспекцией кода?
Если это обрезанные плюсы, то там подойдет любой c++ инспектор
Ответы (5)
23
ScorpioT1000, там нету почти ничего, кроме синтаксиса. Это все еще лучше, чем JASS, но далеко не LUA.
За инспекцию кода - согласен.
Когда разгребусь с более насущными вопросами - сделаю статью по использованию какого-нибудь инспектора.
38
avuremybe, по идее там h файлы только ему правильно показать если они есть, либо написать свои, но исключить из компиляции, чтобы функции понимал
38
avuremybe, скорее всего юзать dllimport
Тогда она будет парситься, но не будет добавляться в компиляцию
Хотя если много либ, может можно указать в настройках workspace этому инспектору папку до них просто. В vscode все настройки делятся на workspace (сохраняется в папке .vscode проекта) и на user
про расширение с инспектором тут code.visualstudio.com/docs/languages/cpp
23
ScorpioT1000, файлы заголовков там используются вообще не так, как это принято в С++
В них лежат дефайны, которые выполняют роль глобальных переменных в скриптах, еще могут лежать массивы строк для диалогов.
Разумеется, их можно использовать по назначению, но разработчики оригинала так не делали, а все итерации модмейкеров тупо повторяли "как заведено".

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

В начале статьи есть ссылка на исходники движка.
Можешь посмотреть, если заинтересовало.
Это не отражает ВСЕЙ тщетности бытия, потому что там допиленная комьюнити версия, из который убрали большинство костылей, но всё, что существует на данный момент (официальные игры и аддоны) - базируется не на нем, а на оригинале.
23
ScorpioT1000, я пока не вник достаточно глубоко в это всё, поэтому мало что могу рассказать.
Но пациент очень интересный.
За ссылки спасибо, я изучу.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.