Как WarCraft 3 помог мне в программировании
Добрый день, дорогие читатели. В этой статье я хотел бы поделиться историей о том, как известная компьютерная игра WarCraft 3 помогла мне в освоении программирования. Сразу хочу сказать, что я ни в коем случае не призываю никого повторять мой путь и начинать изучение программирования с этой игры. Так получилось, что после того, как я пристрастился к созданию пользовательских скриптов для этой игры, дальнейшее изучение программирования (в школе и университете) давалось мне с невероятной легкостью.
Всем, кому интересно, добро пожаловать под капот.
Прежде чем начать
Я с детства интересуюсь компьютерами. К сожалению, свой собственный я приобрел довольно поздно, а до этого у меня был только старенький компьютер с Basic в местном радиоклубе, где я был зарегистрирован, да походы с друзьями в компьютерные кафе, где мы играли в уже упомянутый WarCraft 3. Наконец-то сбылась мечта — в восьмом классе у меня появился компьютер.
Рабочая Конкуренция ⛏#warcraft3 #варкрафт3 #игры #озвучка
Конечно, первым делом я побежал к другу и достал диск с WarCraft 3. За установкой последовало несколько дней прохождения кампании, сражений за орков, альянс, ночных эльфов и нежить. Также я перепробовал множество карт, которые записал на один диск один и тот же друг. Уже тогда я был удивлен, как много можно сделать с движком этой замечательной игры. Вскоре мне надоели сражения, и я, как любопытный восьмиклассник, стал рыться в папках на жестком диске.
Когда я открыл папку с WarCraft 3, мне бросилась в глаза иконка файла под названием World Editor.exe». С замиранием сердца я дважды щелкнул мышкой. Запуск этой программы изменил мое будущее.
Знакомство с интерфейсом
Когда я запустил программу, я увидел следующее. Кнопки, панели, выпадающие списки и область, где можно изменить местность, поставить юнитов для разных игроков, деревья, дома и другие декорации. Конечно, я начал играть со всем этим, но когда я запустил свое творение, началась стандартная битва. Мне сразу же захотелось контролировать события в игре, менять поведение воинов и создавать собственных героев с пользовательскими способностями. Исследуя редактор мира дальше, я наткнулся на редактор сценариев, который был очень прост для понимания.
Триггеры с графическим интерфейсом
Сценарий карты состоит из т. н. Триггеры, каждый из которых состоит из трех частей — события, условия и действия. В каждой из частей можно добавить предметы, нажав на соответствующую кнопку. Нетрудно догадаться, что при наступлении указанного события в игре и выполнении указанных условий будут выполняться указанные действия.
С помощью довольно простого в использовании графического интерфейса можно настраивать те же события, условия и действия, которые нужны создателю карты. Поскольку игра была мне действительно интересна, я снова начал играть со всем этим, и, сам того не осознавая, изучил понятия циклов, ветвлений и т.д. п. Затем мне нужно было как-то сохранить единицы между триггерами, чтобы при определенных событиях происходили действия с нужными мне единицами. Я нашел редактор переменных.
WarCraft 3. Урок по WE #3 — триггеры ч.5 (таблица рекордов, меню паузы)
Именно здесь я обнаружил, что можно сохранять не только юнитов, но и практически все — числа, строки, способности, события, спецэффекты, игроков, баффы, очки карты и многое другое. нужные объекты можно хранить в массивах — я сразу подумал, что было бы очень удобно хранить героя для каждого игрока в массиве, потому что номер игрока будет соответствовать индексу его героя в массиве. Так, опять же незаметно для себя, я узнал, что такое переменная и ее тип, что такое массив, как и когда его можно использовать.
Открыв редактор объектов, я обнаружил инструмент для модификации и создания новых воинов, способностей, баффов, декораций и предметов. Конечно, назначение большинства характеристик предметов для меня было непонятно, тем более что перевод некоторых из них с английского оставляет желать лучшего.
Что было дальше
Набравшись энтузиазма, я сразу же захотел сделать что-то свое. За несколько дней я сделал карту а-ля «три коридора». Почти все герои там были стандартные, так как меня больше интересовала скриптовая часть — я сделал популярную в то время «систему выбора героя светлячка», неуязвимость башен, пока башня не разрушена более низким уровнем (кто играл на популярной карте Dota Allstars, тот поймет), усиление крипов с течением игры, а также случайно появляющиеся бонусы в виде рун или предметов в случайных местах. Так как интернета не было, развлекаться пришлось самому, расставляя вражеских героев по всем линиям и периодически заставляя их произносить заклинания. Это, конечно, не AI, но некоторый интерес добавило)
Как это помогло мне
На следующий год в школе мы начали изучать программирование. Язык для изучения — Паскаль. Мне наскучили уроки по переменным, условиям, циклам и массивам. Все это я уже знал, поэтому мне оставалось только запомнить синтаксис и названия встроенных функций. И программировать юнитов, предметы и заклинания было гораздо интереснее, чем смотреть на скучную черно-белую консоль.
Все квесты выполнялись с легкостью, за пару минут, я выполнил их за половину занятия. Преподаватель, заметив это, предложил более сложные задания, с которыми я также легко справился. В итоге поехал защищать честь школы на городскую олимпиаду, где занял первое место. Потом пошел на республиканский, где занял, если я правильно помню, 15 место из 200. Неплохой результат, особенно если учесть, что я отправился туда без какой-либо подготовки.
Это не все
Вскоре у меня появился интернет. Я получил доступ к огромному количеству ресурсов, посвященных созданию карт для WarCraft 3. Я пробовал делать простые 3D-модели и вставлять их в карту, рисовать иконки для заклинаний и предметов, открывать другие незащищенные карты и смотреть, как они реализованы.
Делать скрипты, нажимая на кнопки, надоело, хотелось чего-то более «программного», и я узнал, что эти GUI-формы — просто оболочка для скриптового языка JASS, который открывает больше возможностей для разработчика карт. Создание различных систем, заклинаний, спецэффектов — все это превратилось в сказку, и я еще больше заинтересовался программированием. Но о JASS я бы хотел поговорить в отдельной статье.
Многое о создании пользовательских карт для WarCraft 3. Охватывает множество аспектов — от создания красивого ландшафта, рисования иконок и создания модов до написания систем и защиты готовой карты от обнаружения, позволяя заинтересованным в ней людям получить опыт в различных областях: 3D моделирование и анимация, ландшафтный дизайн (звучит смешно), программирование, рисование, тестирование (да, карты тоже нужно тестировать).
Сейчас я учусь на четвертом курсе университета и увлекаюсь программированием. Касался Delphi и Visual Basic в университете, потом Java, теперь касаюсь C. Все ПЛ, которые я изучил, были для меня легкими в освоении. Спасибо, WarCraft 3.
- варкрафт 3
- обучение программированию
Источник: хабр.com
—>Warcraft 3 —>
Стандартные иконки из игры отличного качества и большого размера. подойдет как для «Иконки группы» вашего сайта, так и для вашей карты.
Скачать с сервера
Размер: 1.08 Mb
[1920×1043 | 367.5 кб.]
—>
[Карты — рукопашный бой] | |
Битва 2154 1.1 | |
![]() |
|
Скачать с сервера (3.06 Mb) | |
Комментарии: (0) |
—>
—>
[19 Jan 2023] | ||
Capibara TD V.0.2beta RU | [ TD] |
[14 Jan 2023] | ||
HEROES WARS V rus+ai v4.4.3 | [Arena] |
[12 Jan 2023] | ||
EoW[v1.53] Речные земли | [Melee] |
[Jan 08, 2023] | ||
Гладиаторы 4.99cks | [Арена] |
[08 января 2023] | ||
Majesty Lite | [Защита] |
[05 Jan 2023] | ||
EoW[v1.53] Оскверненная деревня | [Melee] |
[02 Jan 2023] | ||
EoW[v1.53] Алтарь Бури | [Melee] |
[Jan 01, 2023] | ||
HEROES WARS V rus+ai v4.4.2 | [Арена] |
[01 января 2023] | ||
Rifleman Hero Defense v0.37 | [Защита] |
[20 декабря 2022 г.] | ||
Deep Dark Water | [Выживание] |
—>
—>
[ Admin ] | [ 675 ] |
[ Dr-Thrax ] | [ 51 ] |
[ lawsonunity ] | [ 45 ] |
[ kamen121996 ] | [ 21 ] |
[ qbasic2005 ] | [ 16 ] |
—>
Новости: 1
Файлы: 961
Статьи: 29
Изображения: 282
Форум: 2720/7963
Комментарии: 137
Каталог: 2
Игры: 297
Видео: 8596
—>
Источник: warcraft3ft.информация