железо и софт
January 10, 2022

Опыт программирования и создания игр

Страшно подумать -- согласно OneNote, начал я пописывать эту заметку аж 09 июля 2014 года о_О После затянувшегося написания черновика, таки сподобился добить его и выложить запезь!

Программированием начал заниматься во времена первого домашнего компьютера (386SX), в тёплом, ламповом MS DOS с графической оболочкой Norton Commander, в среднем школьном возрасте, где то с 1994 года. Программировал в Бейсике.

Снимок экрана взят из открытых источников в Сети

Картинка не моя, к сожалению. Скрин показывает главный экран программы. Виден интерфейс графической оболочки DOS'a а-ля Norton Commander. Ностальгия… =)

В том же среднем школьном возрасте посещал в областную научную библиотеку, где брал советские детские (!)(ну, для среднего школьного возраста :)), книжки выпуска примерно 88-91-х годов, посвящённые программированию на Бейсике и работе "IBM PC совместимых" © персональных компьютеров.

Типа такой:

Фотография взята из открытых источников в Сети

Где то начиная с середины 90-х годов, народ массово избавлялся от такого ненужного при демократии, гласности и капитализме хлама, как тоталитарные несвободные советские книги и периодическая литература. В то время присвоил на правах находки подборки разных научно-популярных и военно-морских журналов. Среди этого сокровища было несколько номеров замечательного журнала "Техника молодёжи", где в конце 80-х публиковали уроки программирования графики.
См. коллаж.

Снимки и коллаж сделаны автором заметки

Полагаю, сама программа Basic (Бейсик) впервые появилась на первом домашнем компе от первого знакомого "компьютерщика" -- Сергея Новожилова. Да, запомнил его имя, поскольку этот человек в те древние времена в профессиональном плане был образцом для подражания.
Так же в свалке старого хлама домашнем архиве сохранилась гибкая дискета с объёмом памяти 720 килобайт, с дистрибутивом Бейсика.

Снимок сделан автором заметки

Вот именно этот диск мне дала учительница информатики и вычислительной техники, в конце учёбы в школе. Она же задарила книжку по программированию в Бейсике, советского полукустарного ротапринтного издания.

Снимки и коллаж сделаны автором заметки

Продолжим.
Поскольку доступа к играм иного, чем через того знакомого компьютерщика, призываемого вызываемого родителями, не было, а в литературе тех времён рассказывали про всякое интересное, то появилось желание делать игры самому.
Бывалые задроты тотчас же вспомнят бессмертное: "Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова.." :)))) До такого не опускался додумался, поскольку ещё не открыл для себя журнал "Магазин игрушек".
Пытался сделать платформенную аркаду. Придумал игре название -- "Таинственный мир". В словарике подобрал название: "Mystery Peace", хотя по смыслу надо было "... World" :) Начал рисовать пиксельную графику в Paint'e: меню, уровни, персонажей. Те картинки в формате BMP до наших дней не дожили, сгинув вместе с первым компом, который отец забрал, когда в 1997 году, незадолго до моего дня рождения, принёс в семью новый крутой комп (Pentium 90, 8 Gb мозгов, винт на 1 Gb, видеокарта S3 Trio 3D! \m/).
Так же чутка программировал графику и очень чутка напрограммировал анимацию непосредственно в Бейсике. Далее этого не продвинулся ввиду очень, ОЧЕНЬ базовых знаний в Бейсике, а так же отсутствия единомышленников (эта тема потом будет преследовать по пятам с завидным постоянством…). Заканчивая тему Бейсика для истории отмечу, что в своё время даже запилил свой типо вирус, типо удаляющий всё содержимое диска С: :о))))

Чуть позже, когда вышел второй Варкрафт, который ВНЕЗАПНО не запускался на моём 386-м компе (о чём упомянуто в отдельной записи), решил запилить свой Варкрафт с набегами и орками :) Начал в Пэйнте рисовать спрайты юнитов. Предложил нашему учителю по информатике сделать совместный проект: типо он программирует, а я рисую. Однако он не оценил порыва малолетнего задрота.... :)
А некоторым малолетним энтузиастам в те времена что-то подобное удавалось. Самый знаменитый пример -- Prince of Persia. В 1996 году, когда открыл для себя замечательный журнал "Магазин игрушек" в лице его пятого номера, узнал про конструктор игр "Klik and Play". Прочитав статью, снова загорелся игростроительством. Однако в городе эту программу не нашёл, а интернет у меня появился только в 1999 году, когда вопрос уже потерял актуальность. Так мир потерял ещё одного малолетнего игростроителя :))))
В прошлом позапрошлом году встретил информацию об одном человеке, делавшем игру в Klik and Play с 90-х и уже в наше время таки её доделавшего. Вот это целеустремлённость!

С среднем школьном возрасте учебная программа предусматривала уроки информатики и вычислительной техники. В школе был класс, оборудованный новейшими советскими компьютерами (выпуска примерно 1988-90 годов), которые на 1995-96 года ещё котировались, несмотря на чёрно-белые CGA-мониторы и дубового дизайна манипуляторы типа "мышь".
Фотка не моя, но я не смог пройти мимо такого ностальгического раритета. Вот ровно так они и выглядели! %-))

Фотография взята из открытых источников в Сети

На то время (1995-1997 годы) комп в классе был только у меня и ещё одного одноклассника-товарища.
Позже, 7-8 классах уроки труда были заменены на некие занятия по выбираемым направлениям, проводимым на базах ПТУ колледжей и некоторых школ с углубленным изучением различных предметов: столярно-плотницкое дело, кулинарное дело, основы экономики, использование ЭВМ, программирование и т.п.
Ессно, вместе с друзьями-одноклассниками вновь загорелся идеей запилить свою игру и выбрал программирование. Там учили основам программирования на примере языка "Паскаль".

Откопал в домашних архивах вот такое рукописное творчество на языке программирования Pascal:

Придумано, записано и сфотографировано аффтаром заметки :-)

Тем не менее, долго этот номер продолжаться не мог, поскольку куча циферок в совокупности с не самой дружелюбной к малолетним долбаёбам учительницей, быстро свели интерес к теме на нет. Тогда то мне умные люди говорили о наличии у меня "гуманитарного склада ума", не раскрывая ужасающих подробностей и последствий для будущего XD

Летом 2006 года, на рабочем компе каким-то образом оказалась игра Colobot, где надо было программировать роботов на Луне.
В первых миссиях надо просто указывать алгоритм действий и смотреть, как выполняется задание. А ближе к середине игры, с усложнением заданий, помимо алгоритмов надо писать уже непосредственно код программы на местном примитивном языке программирования.
Игра очень понравилась своим творческим потенциалом и таки прошёл несколько миссий. Потом застопорился на первых миссиях с непосредственным программированиям и забил, по причине нехватки времени. А вот наш стажёр увлёкся и прошёл почти всю игру.
Будучи человеком с гуманитарным складом ума не могу не отметить определённые трудности в освоении программирования и вообще точных наук. Если быть точным, то не трудности, а, скорее, отсутствие усидчивости.
Некоторые энтузиасты занялись этой, с позволения сказать, проблемой, и выложили на Хабре статью "Как научить программировать гуманитария". В тексте много интересных и местами таки точных сведений об особенностях мышления гуманитариев относительно программирования! :)
Другим примером поощрения обучению программированию являются разной степени унылости успешности специализированные игры. Из списка пробовал только вышеупомянутый Colobot.

Вот этот демотиватор хорошо раскрывает знания большей части населения о программировании и работе программ.

Картинка взята из открытых источников в Сети

Имея хотя бы и микроскопический опыт программирования, но всё же опыт, поначалу такое вызывало удивление. Так же вызывало удивление признание некоторых сослуживцев старше меня на 10-12 лет, что они не понимают принципов работы телевизора и для них процесс преобразования сигнала в кабелях или волнах в изображение является полумагической тайной. Я сам знаком с этим принципом не досконально, но в целом работа телевидения мне понятна.

Тем не менее, не смотря на большие трудности с освоением программирования, я уважаю эту сферу творчества. Уважаю за возможность творить что угодно программное и программно-аппаратное с нуля. Так же ценю программирование за схожесть с лингвистикой (языки, хуле :о)). Подмечено сходство интересов при изучении языков людей и языков программирования. Порой сожалею, что у меня не математический склад ума... :о)