Школьные поделки: Battlecruiser & DeathCraft

    ОСТОРОЖНО! Концентрированная ностальгия! Описанное здесь морально устарело много-много лет назад. Более того, оно устарело до того, как было реализовано. Из статьи вы не узнаете ничего нового.
    В давние-давние времена, когда Embarcadero CodeGear Borland Delphi RAD Studio C++ Builder был версии 4, когда Autodesk 3ds Max Discreet 3dsmax 3D Studio Max был версии 3, когда 80 Гб и 200 МГц были не в холодильниках, а в компьютерах, когда Интернет был неведомым и таинственным существом, каждое прикосновение к которому было магическим… я учился в старших классах школы и учился программировать. А также моделировать. И ещё всякое-разное по мелочи.
    Подозрительный скриншот:




    Папа был ментом-программистом (сейчас просто мент коп). И купил он комп — теоретически для подработок, но вертолётный завод как-то слишком резко усох, и комп использовался (по назначению) редко. Несколько раз наблюдал картину: всякие кнопочки, формочки, всякое-разное нажимается, а потом оно работает (был это C++ Builder). Глаза загорелись: это же круто — рисуешь кнопочки, а потом оно само что-то делает! Меня пустили формочки порисовать.
    Однако возникла проблема: кнопочки рисуются, но вот что-то работать не хотят! Внезапно выяснилось, что в чудо-программе одним рисованием кнопки не задвигаются, нужно писать какой-то странный непонятный код. Мне сунули книжку по Билдеру. Внезавно выяснилось, что перед её прочтением весьма полезно хоть немного знать Си… Мне сунули книжку по Си.
    Получилось странное: книжка по Си с программами, которые в Билдере нифига не работают (понятно, что запустить при умении можно, однако такого рода шаманствам я был необучен), и книжка по Билдеру, которая требует познаний в Плюсах (вот здесь класс, вот здесь метод, вот здесь заголовочный файл...). Но что-то начинало шевелиться. Перепечатывание кода из книжки — занятие не для слабонервных (это потом я уже узнал, что к книжке ещё диск полагался...), но жажда познания тащила. И самое интересное: в самом конце книжки по Билдеру была программа, работающая с графикой. Выводились спрайты! Цветные картинки, фигурно обрезанные, с анимацией! (Все, наверное, уже поняли, что за книжка у меня была — в те времена её кривой скан прилагался к каждому пиратскому диску с Билдером.)
    Суть метода: берём картинку, будущую прозрачную область заполняем чёрным цветом, рядом располагаем маску: объект — чёрным, фон — белым. Выводим на канву сначала маску в режиме SrcAnd, потом картинку в режиме SrcPaint. Чтобы это всё не умерцалось, сначала рисуем всё в картинку в памяти, потом выводим на канву на форме. Был раскрыт секрет магии! И понеслось…

    Battlecruiser



    Краткая сводка:
    Жанр: side-scroller
    Графика: спёрта из StarCraft (юниты), спёрта из Motoracer (экран победы)
    Звуки: спёрты шут знает откуда (у меня валялась куча звуков, выковырянных из игр)
    Музыка: спёрта шут знает откуда (кто-нибудь знает, откуда мог взяться hitgm.mid?)
    Используемый софт: C++ Builder, Sound Recorder, MS Paint

    Скрин из игры:

    Попробовал C++ Builder 6 — эта программа завелась! Правда в режиме совместимости со хрюшкой (старый TMediaPlayer накрывается медным тазом без режима совместимости). Несмотря на наличие подробной инструкции к каждому уровню, пройти толком не удалось… сложно.
    Скачать игру Battlecruiser (770 KB, сорцы и исполняемый файл прилагаются, запускать в режиме совместимости)
    Однако моим любимым жанром был RTS, поэтому довольно скоро я сел писать свою версию угадайте чего…

    DeathCraft



    Краткая сводка:
    Жанр: real-time strategy
    Графика: спёрта из StarCraft, нарисована самостоятельно
    Звуки: спёрты шут знает откуда
    Речь: записана своя
    Музыка: спёрта шут знает откуда
    Используемый софт: C++ Builder, 3D Studio Max, MS Paint, Sound Forge
    В процессе написания игры я учился 3D-моделированию.
    Знакомый скриншот?

    Вы когда-нибудь пробовали пользоваться 3D Studio Max на Pentium 200 MHz, 32 MB RAM? Скажу я вам, процесс хорошо тренирует нервы. Студия только грузится минут 10-15… рендеринг самых простых моделек по минуте… рендеринг одного кадра космического полёта из прилагаемого примера минут по десять… некоторые вещи типа кисточки весов модификатора кожи просто подвешивали компьютер… Но! Можно рисовать крутые вещи!
    Изначально к игрушке прилагался ролик-заставка с двумя роботами, идущими с дулами друг на друга. Перед тем, как показать почтенной публике, решил перерендерить видео, но его не нашёл. Нашёл сцену с другим роботом, примерно той же эпохи. Теперь на заставке этот робот.
    Последний кадр анимации, пора жать Start.

    Вы когда-нибудь пробовали пользоваться C++ Builder на Pentium 200 MHz, 32 MB RAM? Это, конечно, не 3D Studio Max, но компиляция элементарного проекта типа моего (хотя он тогда для меня казался совсем не элементарным) могла занимать под минуту.
    C++ Builder 6 со старым проектом:

    Вы когда-нибудь… а хотя не, Sound Forge на древних компах работал вполне себе шустро. Теперь к эффектам эха, ускорения, замедления, разворота из стандартной Sound Recorder добавились эффекты с непонятными названиями типа Flanger и Wah-wah. Звуки можно было нормально увязывать друг за дружкой. Звучало круто. Даже динозавр говорит моим голосом.
    Давайте запустим:

    Некоторые юниты выдернуты из StarCraft. Тогда я не знал, что графику можно выдёргивать кошерными способами, и пользовался старым-добрым Print Screen. И редактировал в MS Paint. Старался принтскринить в зимних локациях, чтобы пиксели было легче отковыривать. Вы спросите: MS Paint и 3D Studio Max — не странный ли наборчик? Странный. Однако откуда мне было знать про другие редакторы — про эти ваши интернеты я тогда и не слыхивал. Я ж ни одно решение загуглить не мог — или сам, или никак. Папа со своими базами данных в моих игрушках тоже ни в зуб ногой…
    Некоторые юниты нарисованы в 3D Studio Max. Как и весь софт, брался он на «чеховском рынке» (казанская версия «горбушки»). Книжку мне родители купили. Туториал к программе страшный, ужасный, на английском и без исходников прилагался (или это уже в следующей версии было?..). Что-то наковырялось. В основном роботы.
    В игре есть AI. Противник строит здания (по списку, располагает по кругу относительно командного центра), строит собирающие юниты (до лимита), строит атакующие юниты (до лимита), атакует игрока (при наборе минимума атакующих юнитов). AI никакой, в общем-то, но своё дело знает, и игрока выносит весьма эффективно.
    Противник строит бараки всей охапкой SCV и тренирует подкрепление:

    Алгоритм поиска пути отсутствует, юниты упираются в первое же препятствие, так что их лучше отправлять по диагонали — если все препятствия прямоугольные, то их можно будет обойти. Юниты имеют неприятную особенность слипаться в одну точку. Для юнитов игрока задаётся разброс, а вот комп иногда ходит одной неубиваемой стопкой (привет Civilization).
    Роботы на защите родной базы:

    Иногда эффекты рисовались на совесть, иногда было лень, и лепились графические примитивы.
    Яичница:

    Код… код ужасный. Если обычно программист видит свой код после пары лет и ужасается, то представьте, каково мне…
      for(i=0;i<MAX_BUILD;i++)
        if(Building[i].alive){
          if(Building[i].hits<=0)Building[i].dying=true;
          if(Building[i].dying){
            int boomcount=1;
            switch(Building[i].type){
              case 0: case 1: case 2: boomcount=5; break;
              case 3: boomcount=1; break;
            }
            sndPlaySound("Sound\\Boom\\Boom1",SND_ASYNC+SND_NODEFAULT);
            for(int k=0;k<boomcount;k++){
              for(j=0;j<MAX_BOOM;j++)
                if(!Boom[j].alive)
                  break;
              if(boomcount==1){
                Boom[j].x=Building[i].x+Building[i].sqleft*16+Building[i].sqwidth*8-22;
                Boom[j].y=Building[i].y+Building[i].sqtop*16+Building[i].sqheight*8-25;
              }
              else{
                Boom[j].x=Building[i].x+Building[i].sqleft*16+random(Building[i].sqwidth*16);
                Boom[j].y=Building[i].y+Building[i].sqtop*16+random(Building[i].sqheight*16);
              }
              Boom[j].alive=true;
              for(int x=Building[i].sqleft;x<Building[i].sqwidth+Building[i].sqleft;x++)
                for(int y=Building[i].sqtop;y<Building[i].sqheight+Building[i].sqtop;y++)
                  StopGrid->Cells[Building[i].x/16+x][Building[i].y/16+y]="0";
              Boom[j].type=0;
              Boom[j].npic = (boomcount==1)?(0):(random(11)-10);
            }
            Building[i].alive=false;
          }
          if(Building[i].type==3){
            int bx = (Building[i].x+Building[i].sqleft*16+Building[i].sqwidth*8)/16,
                by = (Building[i].y+Building[i].sqtop*16+Building[i].sqheight*8)/16,
                ux, uy;
            if(Building[i].atkunt==-1){
              Building[i].atkpos=0;
              Building[i].npic=0;
              for(j=0;j<MAX_UNIT;j++)
                if(Unit[j].player==0&&Unit[j].alive&&Unit[j].visible){
                  ux = (Unit[j].x+Unit[j].centerx)/16;
                  uy = (Unit[j].y+Unit[j].centery)/16;
                  if(sqrt((bx-ux)*(bx-ux)+(by-uy)*(by-uy))<Building[i].atkr){
                    Building[i].atking=true;
                    Building[i].atkunt=j;
                    if((Unit[j].atked&&DistUB(i+10000,j)<DistUB(Unit[j].atkedby,j))||
                                    !Unit[j].atked){
                      Unit[j].atked=true;
                      Unit[j].atkedby=i+10000;
                    }
                    break;
                  }
                }
            }
            else{
              j=Building[i].atkunt;
              ux = (Unit[j].x+Unit[j].centerx)/16;
              uy = (Unit[j].y+Unit[j].centery)/16;
              if(sqrt((bx-ux)*(bx-ux)+(by-uy)*(by-uy))>Building[i].atkr||
                      Unit[j].player!=0||!Unit[j].alive||!Unit[j].visible){
                Unit[Building[i].atkunt].atked=false;
                Building[i].atkunt=-1;
                Building[i].atking=false;
                Building[i].atkpos=0;
                Building[i].npic=0;
              }
            }
            if(Building[i].atkunt!=-1){
              Building[i].turn=-1;
              j=Building[i].atkunt;
              float x=Unit[j].x+Unit[j].centerx-Building[i].x-Building[i].sqleft*16-
                              Building[i].sqwidth*8,
                    y=Unit[j].y+Unit[j].centery-Building[i].y-Building[i].sqtop*16-
                              Building[i].sqheight*8;
              int sval=41, lval=241, A=(y==0)?(99999999):(x/y*100);
              if(y==0)y=0.1;
              if(A>=-sval && A<=sval          && y<=0) Building[i].turn=0.1;
              if(A>=-lval && A<=-sval && x>=0 && y<=0) Building[i].turn=1.1;
              if(abs(A)>=lval         && x>=0)         Building[i].turn=2.1;
              if(A>=sval  && A<=lval  && x>=0 && y>=0) Building[i].turn=3.1;
              if(A>=-sval && A<=sval          && y>=0) Building[i].turn=4.1;
              if(A>=-lval && A<=-sval && x<=0 && y>=0) Building[i].turn=5.1;
              if(abs(A)>=lval         && x<=0)         Building[i].turn=6.1;
              if(A>=sval  && A<=lval  && x<=0 && y<=0) Building[i].turn=7.1;
              if(Building[i].turn<=-0.9&&Building[i].turn>=-1.1)Building[i].turn=0.1;
            }
            else{
              Building[i].turn+=0.25;
              if((int)Building[i].turn>=8)Building[i].turn=0.1;
              Building[i].turn = int(Building[i].turn/0.25)*0.25;
            }
            if(Building[i].atking){
              Building[i].atkpos++;
              if(Building[i].atkpos>=10) Building[i].atkpos=0;
              if(Building[i].atkpos==1||Building[i].atkpos==3||Building[i].atkpos==5){
                sndPlaySound("Sound\\Special\\Atk1",SND_ASYNC+SND_NODEFAULT);
                j=Building[i].atkunt;
                Building[i].npic=1;
                Unit[j].hits-=Building[i].atkfrc;
                if(Unit[j].hits<=0){
                  Unit[j].hits=0;
                  Unit[j].dying=true;
                }
              }
              else
                Building[i].npic=0;
            }
          }
        ...
        


    И вот такая простыня — на две с лишним тысячи строк.

    DeathCraft: инструкция



    Юниты:
    • 0 SCV: собирает ресурсы, строит здания, производится в Command Center. И минералы, и газы добываются в Refinery.
    • 1 Vulture: боевой юнит противника, стреляет лазером, скоростной, производится в Barracks.
    • 2 Wraith: летающий юнит игрока, не атакует, летает, скоростной, производит высадку Dinosaur, производится в Barracks.
    • 3 Car: ничего не делающий юнит игрока.
    • 5 Robot: боевой юнит игрока, стрелят яичницей, медленный, производится в Barracks.
    • 6 Dinosaur: боевой юнит игрока, не атакует, мало жизней, при взрыве сносит к чертям все юниты в радиусе взрыва.


    Здания:
    • 0 Command Center: производит SCV, сюда они носят добытые ресурсы.
    • 1 Refinery: место добычи ресурсов с помощью SCV.
    • 2 Barracks: место постройки боевых юнитов.
    • 3 Gun: боевое здание противника.


    Управление мышью: выделение юнитов и зданий левым кликом, команда идти и атаковать правым кликом. Выделения области нет, но есть выделение всех юнитов выбранного типа на экране с помощью Ctrl.
    Управление клавиатурой:
    • Стрелки: перемещение по карте
    • H: следование за выбранным юнитом
    • P: пауза
    • Delete: удаление юнита
    • C+U+F12: чит-код для создания юнита. Потом нужно ввести на нумпаде две цифры — код юнита и (опционально) две цифры — номер игрока. Например, C+U+F12, 0500 переключит в режим создания роботов игроку с помощью мыши. Чтобы отключить, снова нажать C+U+F12.


    Подсказки:
    • Защищайте Refinery! В первую очередь противник будет сносить это здание.
    • Если не успели построить армию, а противник уже напал, то сброшенные с самолёта динозавры вас спасут.
    • Стройте много, стройте быстро.


    Скачать игру DeathCraft (5.3 MB, сорцы и исполняемый файл прилагаются, запускать в режиме совместимости)
    Ещё я собирался написать про платформенную аркаду и новую версию стратегии реального времени (обе — уже с исключительно своей графикой). Но я утомился, да и шут знает, нужно ли писать — если эта статья окажется читателям Хабра неинтересной, то можно не тратить время впустую.
    За сим откланяюсь. А вы, уважаемые читатели, что писали в школьные и студенческие годы?
    UPD 1: Несколько читателей сообщило, что вылетают ошибки «No MCI device open». Перезалил файл. Теперь при запуске можно указать аргумент --no-video, тогда видео-файл грузиться не будет.
    UPD 2: Другой вариант решения проблемы: установить кодек с XVid.org.

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 115

      +2
      Как-то на лабораторке я случайно узнал, что можно кнопку двигать по форме, задавая ей координаты. К концу пары у меня была готова игрушка «Пятнашки». :)

      А еще я писал третью диаблу. Текстовую :)
        +2
        И как диабла? Играть было можно?
          0
          Ну что-то уже выклёвывалось, но потом всё кончилось. Я писал то её на лабах в инсте, потому что компа не было дома. А потом флешку потерял.
            +12
            В таких ситуациях программисты делятся на 2 типа: те, кто по памяти пишут заново и всё намного круче получается, чем было, ну и конечно же тех, кто забивает на это дело :)
              0
              Мой друг в конце прошлого века учился на программиста, ходил с курсовой на дискетке, заботливо обернутой фольгой. Но в утренней давке в общественном транспорте многомесячный труд поломался. Это курсе на втором было. Закончить-то закончил, но обида в душе осталась. Теперь он мебельным производством заведует.
          +3
          а я писал ASCII файтинг ))
            +1
            Боюсь спрашивать: он выжил?
              0
              Нет, даже если бы нашелся эмулятор ДВК-2 )
              +1
              О, я тоже. Вот времена-то были!
            +6
            Просто проникся, не оторваться было от чтения. Думается, у каждого есть схожие истории… Спасибо за кусочек ностальгии :)
              0
              А я, курсовую оформлял в стиле Heroes III. Делал скриншоты рамок и кнопок, и запихивал в Делфи.
              +16
              Кто то в детстве просто играл в игры на компе, а кто то играл создавая игры на компе. Замечательное детство. Хотя лучше сказать юношество.
                +5
                Кто-то в детстве занимался детством, кто-то… Хех.

                Но вообще, пожалуй, это было самое плодотворное время. Столько всего изучил. Сейчас бы я точно не ушёл в тот же 3ds Max до такой глубины.
                  +3
                  Хорошо им, игры были.
                  а мне бк 0010-01 купили, а дальше — сам :) Что игры можно купить — я не знал :) (мне тогда было ~10)
                  Пришлось осваивать бейсик по книжке «ПРОГРАММИРОВАНИЕ НА ФОРТРАНе» (!)
                  (ну она была единственной в книжном магазине по программированию).
                  Ктож знал, что программировать можно на разных языках :)
                    0
                    Хорошо им, компьютеры были.
                    А я БК-0010 видел только раз в неделю на уроках «Вычислительной техники». Неделю писал программы на бумажках, потом за полтора часа набивал, отлаживал.

                    Эх, вот романтика была!
                      +1
                      Да я два года компьютер рисовал на бумажке и родителям подсовывал. :)
                      Вот они и сжалились. Правда подключать его к телеку пришлось самому — доставать схему телевизора и впаивать в нужное место видеовыход. (как я до этого в 9 лет додумался — ума не приложу, наверное радиокружок помог)

                      Но вообще, лучше бы его не было.
                      Стал бы тогда нейрохирургом.
                      Делал бы реально что-то полезное :)

                        0
                        У меня только к концу школы «Искра» появилась. Брутальный был компьютер. =)
                  +2
                  Мои игровые амбиции не уместились в школьные 48кб и как-то не сложилось дальше. )
                    0
                    Снимаю шляпу. Я в то время максимум дошел до редактирования графики в SC и смог сделать свой кривенький скин. Ни о каких собственных RTS не было и речи.
                      0
                      Мне только мод для q3 удалось сделать со сменой эффектов базуки и railgun.
                      Грубо говоря базука перестала убивать (и использовалась для прыжков), а рельса убивала с первого раза любого (даже с квадом).
                      До ботов не добрался :(
                        +2
                        простите за занудство, но квад таки не дает никаких бонусов к защите, на то он и quad damage
                      +7
                      Тоже пронастольгировал — никогда не думал что стану программистом — началось всё с того, что кто-то случайно забыл у меня диск с Visual Studio 6 и докой по MFC.
                        +25
                        Так вот как размножаются программисты!
                          0
                          Ну. Подкинули человеку первую дозу.
                        0
                        Ну, третий Max грузился конечно не 10-15 минут на 200 MHz 32 RAM, а минуты две, но все равно спасибо за ностальгию :)
                          +5
                          Могу сказать точно, что у меня Макс запускался больше двух минут. Не знаю, от чего зависело.

                          Вообще, скорость запуска — не самое страшное. Страшное — это 14-дюймовый ЭЛТ-монитор, который выдаёт сносные герцы только на 800x600, при котором в 3ds Max невозможно работать в принципе, и выдаёт 60 Гц на 1024x768, при котором в 3ds Max хоть какие-то кнопки на экране помещались. Кто сидел за 60-герцовым «телевизором», тот знает, что это такое… Ещё этот монитор тускнел и тускнел…
                            +1
                            Я сидел. Сказочные ощущения. На большом мониторе еще и цветовые искажения по углам.
                            +1
                            У меня он до сих пор установлен, 4 секунды на 4х ядрах с ссд.
                              0
                              LightWave был шустрее, но к максу 3.1 он уже был анахронизмом.
                            +7
                            90-й год.
                            Написал графический редактор на офисном компе с ZXSpectrum внутре и алфавитно-цифровом дисплее.
                            Написал такой же редактор на бейсике для домашнего спектрума и телевизора.
                            Отсутствие опыта и интернета (внешних источников «а так нельзя») сильно снимает всякие тормоза с мышления, хехе
                              +1
                              Хех, трогательно. Запускал под Wine, первая игра запустилась без проблем (только без звука), а вот вторая рисует пустую форму и alert «No MCI device open» бесконечно.
                              Честно, приятно поражен.
                                0
                                Перезалил файл, можете попробовать снова. Теперь при запуске можно указать аргумент --no-video, тогда видео-файл грузиться не будет (проблема, скорее всего, в нём — у меня такие симптомы, если файл видео убрать).
                                  +1
                                  Ну да, так заработало под Wine :) Только я не нашел как выйти, а после ручного останова осталось разрешение 640х480 :) Но для самодельной, стратегия и правда нереально крута :)
                                    0
                                    Выходится с помощью Alt+F4, конечно. :) Винда при этом восстанавливает временно применённое изменение разрешения.
                                      +1
                                      Пробовал, не получилось :) Наверное, потому что linux. Вышел переключившись в консоль и набрав
                                      killall Deathcraft.exe
                                      Но это нисколько не испортило впечатлений. Особенно от того как ИИ меня жестоко растоптал прислав почти сразу ко мне на базу кучу машинок, которые мне устроили локальный армагеддон :)
                                      В начале 00х, тоже был захвачен идеей сделать свою игру. Даже делал что-то типа изометрической карты, по которой бродил одинокий персонаж, причем вроде даже умел обходить препятствия, но серьёзного результата, вроде, не было.
                                      Еще, помню, сделал две игры, линии и шарики(которые по 3 надо было уничтожать, а сверху падали новые), выдрав спрайты шариков из Zuma. Прием при выборе шариков была даже анимация вращения. Затем записал на болванки, пригодные для печати, напечатал на них картинку с цветами и поздравлениями и подарил на 8 марта маме и тете.
                                        +1
                                        Вчитался в статью чуть внимательнее, мы еще и земляки, оказывается :) Тоже все диски затаривал на «Чешке», потому что школа была через дом от этого рынка, да и не знал других мест с дисками. Как сейчас помню, купил там Quake II за 20руб и это казалось дико дорого! Его еще раза 3 обменивал на другие диски в последствии.
                                +3
                                Понравилось:
                                В давние-давние времена, когда 80 Гб и 200 МГц были не в холодильниках, а в компьютерах
                                  +5
                                  Странно, а меня это удивило.

                                  Я моложе автора на 7 лет, но первый свой компьютер помню с двумя режимами в 133 МГц и режимом «турбо» в 166 МГц, так вот, в этом монстре на винчестере было всего 3гб. Так после установки windows + родительских программ нужных для работы (winrar, total commander, word etc) места на жестком диске оставалось либо на Warcraft 2000 либо на Heroes 3, в большое неудобство выливалось желание перейти с одной игры на другую. Для этого соответственно требовалось копировать сохранения из первой игры, удалять ее, искать другой диск (игры запускаются только с диском опять же отсылка к былым временам), устанавливать и только тогда запускать вторую игру. Помню бывали дни когда я занимался этим по 3-4 раза на дню.

                                  И раз уж пошло дело к ностальгии — помню, что меня сильно огорчал тот факт, что на этот компьютер ни в какую не хотел запускаться Heroes 8 (тогда это был культ), который я запустил уже на Pentium 3 800Мгц спустя пару лет — это первая игра, которая открыла для меня жанр нынешней Elder Scrolls V — «песочница», впрочем, Heroes 8 это хардкорная песочница.
                                    +4


                                    Даже сегодня она выглядет потрясающе, а я ее так и не прошел… *ушел искать диск*
                                      +8
                                      Ну всё же не Heroes 8, а Мight & Magic 8, и да, тоже ушёл искать диск :-)
                                        0
                                        Сколько раз проходил MM6, 7 и 8 уже не вспомнить. Особенно радовали установки с коллекционного издания со всеми тремя частями сразу. А вы тут картинку такую запостили, так что да, тоже *ушёл искать диск*.
                                          0
                                          Heroes 3 устанавливались всего в пару сот мегабайт если прямо во время установки удалять из папки с музыкой (которая была для каждого города и локации своя) файлы mp3. После такого вмешательства игра продолжала работать, звуки все оставались, пропадала только фоновая музыка, которая, впрочем, на моем 486-DX2-66 все равно тормозила.
                                            0
                                            3 герои на 486м это пять )) Я во вторых на таком резался некоторое время.
                                            0
                                            И вам спасибо за ностальгию!
                                            У меня такой же первый комп был в личном пользовании (не считая Atari 800XL)
                                            MM6 была одной из моих первых по-настоящему любимых игр. И до сих пор остаётся любимой. Повезло обменять диск с простенькими игрушками в магазине на зацарапанный, но читающийся диск с «Мандатом небес» (Пожалуй, с лучшей локализацией, от GSC)
                                            8-ку я уже на следующем компьютере прошёл. Несколько раз. Впрочем, как и 7-ку.
                                            А вот 6-ку перепрохожу периодически, прошёл раз 30 уже.

                                            Кстати, рас тут и так оффтопик, то посоветую патчики для ММ6-8 от GrayFace'а:
                                            sites.google.com/site/sergroj/rus/mm
                                            и для Heroes 3.5 WoG:
                                            sites.google.com/site/sergroj/rus/wog
                                            Не сочтите за рекламу.
                                            0
                                            Да, насчёт 80 гигов вполне могу ошибаться. 80 гигов запомнились мне тем, что это был размер подыхающего винта, на котором была половина моей жизни. Вероятно, были какие-то винты до него. Я же не сразу стал в железках разбираться.

                                            Гм, да, определённо ошибся. У меня сейчас система и софт на 160-гиговом винте, и он далёк от заполнения. И это современный раздутый софт.
                                              +1
                                              На моем первом компе было 470 мб на винчестере, 40МГц (80 МГц с турбо!) и вин 95. Места оставалось после установки оооочень мало ) а 3гб это уже дофига будет:)
                                                0
                                                У меня был 66 МГц и 512 МБ, и я до сих пор не понимаю, почему мне тогда этого места было вполне достаточно, в то время, как сейчас это кажется вообще смешным.
                                                  0
                                                  КР580 (2,0 МГц), за место винтов — касеты магнитофонные )))
                                                  Бейсик. Самописная игра — на тебя летят планеты, стрелками стараешься их обойти)))
                                                    0
                                                    386DX 33Mhz 4MB ram, 128MB hdd.
                                                    Умудрился на него с 4-го раза (вылетали бсоды при устнановке — перегревается проц) поставить Win 95.
                                                    0
                                                    У меня длиннее короче: 486-й на 20 МГц (с кнопкой Turbo, разгонявшей его до умопомрачительных 40 МГц, при которых Warcraft 2 уже не тормозил при проигрывании музыки [а без турбо можно было кое-как играть только в полной тишине]), 8 мегов оперативки и винт на 20 МБ, на котором спокойно крутились DOS (емнип, третий), Нортон и пара-тройка мелкомегабайтных игрушек. Потом на это чудо как-то влезла Windows 3.11 и заверте…
                                                    P.S. В Warcraft 2 можно было играть с компакт-диска, правда, созраняться при этом не получалось =).
                                                +2
                                                Скриншоты вызвали ностальгическую слезу. Попытался запустить в режиме совместимости (стоит Win7 64), начало выдавать бесконечный поток окошек «No MCI device open», а так хотелось посмотреть…
                                                  0
                                                  Странно. У меня тоже 64-битная семёрка. Это сразу при запуске, или форма успевает отобразиться? Проблема может быть в видео, но кодек XVID, воспроизводиться должно…
                                                    0
                                                    Сразу после запуска появляется ошибка с «В системе нет установленного драйвера», за ним бесконечно с периодом, примерно, в полсекунды появляются ошибки с «No MCI device open». Если зажать enter и перебороть поток окон, форма появляется, ничего кроме кнопок не видно, поток ошибок меняется на поток «Access violation at adress 004359B8 in module Deathcraft.exe/ Read of address 00000008.», которые уже подвешивают систему основательно. Самый экзотический способ упасть для приложения, который я встречал.
                                                      0
                                                      Перезалил файл, можете попробовать снова. Теперь при запуске можно указать аргумент --no-video, тогда видео-файл грузиться не будет (проблема, скорее всего, в нём — у меня похожие симптомы, если файл видео убрать).
                                                        +1
                                                        Установка кодеков с XVid.org решает проблему, наслаждаюсь игрой.
                                                          +1
                                                          Игра очень хардкорна, намного сложнее первоисточника.
                                                  +10
                                                  Да, отсутствие интеренета… сейчас даже трудно представить, что в таких условиях людям удавалось делать ВЕЩИ!

                                                  Когда увидел заставку 3D Studio MAX чуть не заплакал!
                                                  Тогда версия 3 и 3.1 отличались больше, чем сейчас 2009 и 2010!

                                                  Спасибо! Пишите еще!
                                                    0
                                                    Тоже смахиваю ностальгическую слезу. Спасибо вам )
                                                    • UFO just landed and posted this here
                                                        0
                                                        Как скролл-шутер поживает?
                                                        • UFO just landed and posted this here
                                                            +1
                                                            Ну как… такие вещи сохранять надо. Я до сих пор страдаю, что не сохранил анимаций в LOGO — штуковине с черепашкой, бегающей по экрану и оставляющей следы: спирали, скрипичные ключи, анимации, бегающие человечки…
                                                            • UFO just landed and posted this here
                                                                0
                                                                Осталась ценность историческая ;) Хотя у самого не ладится с хранением старых творений (
                                                        +1
                                                        Спасибо за позитив. я в то время на basic'е всякую рассчитывательную мелочевку писал, благо кто-то подарил qbasic на русском с русскими хелпами + версию англ но с компилятором в exe.
                                                        Калькуляторов как-то не было, а 286, стоявшие в классе информатики/математики, на ура вот так юзались. Калькулятор первый инженерный уже приобрел в выпускных классах, скорее для галочки.
                                                        сейчас уже год на c# и несколько лет на bash/powershell скрипты пишу…
                                                          0
                                                          Практически моя история…
                                                            0
                                                            Историческая справка:
                                                            1. QBasic шёл парой файлов в составе MS-DOS (и впоследствии Windows 9x).
                                                              Официальный русский дистрибутив MS-DOS включал официально русифицированный QBasic.
                                                            2. «как QBasic, но с компиляцией» назывался QuickBasic и был отдельным продуктом (десятка три файлов: библиотеки, примеры, непонятные конвертеры...)
                                                              В России, насколько знаю, он не распространялся официально.

                                                            Просто чтоб не путали эти две программы.
                                                              0
                                                              А еще был QBX
                                                                0
                                                                Как подсказывает Википедия, QBX — это обновлённая среда разработки для QB (сам компилятор не обновлялся).
                                                            +2
                                                            Hitgm.mid из игры War Wind (список файлов игры)
                                                              0
                                                              Точно! Оно!

                                                              YouTube: War Wind Soundtrack

                                                              YouTube: War Wind Soundtrack 04 - Hit The Rocks
                                                                0
                                                                Третья ссылка в гугле? Хорош
                                                                  0
                                                                  Ссылка в гугле? Возможно, у меня гугл сломался, но на запрос «hitgm.mid» он мне выводит только бесполезный список proflab.fani.ru/MNL/proflab_mp3_listing_49.html (ну, теперь ещё мою статью).
                                                                    0
                                                                    Делать скриншот лень:

                                                                    Возможно, вы имели в виду: hit fm.mid

                                                                    Результаты поиска

                                                                    Школьные поделки: Battlecruiser & DeathCraft / Хабрахабр habrahabr.ru/post/157377/ автор: Alexander Prokhorov 3 ч. назад – Музыка: спёрта шут знает откуда (кто-нибудь знает, откуда мог взяться hitgm.mid?) Используемый софт: C++ Builder, Sound Recorder, ...

                                                                    Proflab mp3 music collection proflab.fani.ru/MNL/proflab_mp3_listing_49.html 8 ноя 2005 – Forestgm.mid, mid, 17 589, \-=MIDI music=-\Gothic. Gothic.ply, ply, 1 772, \-=MIDI music=-\Gothic. Hitgm.mid, mid, 52 923, \-=MIDI music=-\ ...

                                                                    LTD.TXT - War wind - jjgogacz - http://chomikuj.pl docs9.chomikuj.pl/334560766,PL,0,0,LTD.... - Перевести эту страницу MID DARKGM MID 46,013 06-24-96 4:05p DARKGM.MID FORESTGM MID 17,589 06-24-96 4:05p FORESTGM.MID HITGM MID 52,923 06-24-96 4:06p HITGM.
                                                                +1
                                                                А я где-то 8-11 класе тоже писал свою фентезийную стратегию, а в последствии рпг. В последних версиях был скриптовый язык, редактор карт, редактор анимаций с возможность импорта анимаций из АОЕ.

                                                                Жаль хостинг с скриншотами, и игрой уже не работает.
                                                                  +2
                                                                  Может, выложить куда-нибудь в другое место?
                                                                    +2
                                                                    да вот хостинг где я держал игру уже не работает.

                                                                    Со всех версий, запустилася только предпоследняя (ей уже лет 9). Скриншоты:1 2
                                                                    Тут уже был туман войны, 3d звук, АІ, скриптовый язык, анимация зданий, магия, оружие.
                                                                      +1
                                                                      Круто!
                                                                  +8
                                                                  Старые добрые времена без интернета. Когда свою единственную книгу документацию к турбо бейсику ценил как некоторые люди библию.
                                                                    +8
                                                                    >>Вы когда-нибудь пробовали пользоваться 3D Studio Max на Pentium 200 MHz, 32 MB RAM?
                                                                    Нет, не пробовал.
                                                                    Я пользовался на Am486DX4-100/24/850+1600/S3Virge/2
                                                                    Кому-то этот набор цифр даже скажет что-то =)
                                                                    • UFO just landed and posted this here
                                                                        0
                                                                        странный перекос, четверка и сразу 2 винта огромной ёмкости.
                                                                        и по озу вопрос )
                                                                        +3
                                                                        У нас был класс в котором было 12 девчонок и 6 парней (в том числе и я). И мы вшестером одно время не занимались ничем другим, кроме написания различного рода программ на Спектруме.
                                                                        Сначала на бейсике, потом на асме. Ковыряли игрушки, пытались снимать защиты с них. Кто-то пробовал музыку писать на AY.
                                                                        Писали просто на листочках бумаги реализации каких-нибудь алгоритмов, а потом мерялись у кого меньше тактов и памяти занимает :)
                                                                        Вдвоём с другом писали оконную операционку аля Виндовс — на мне было ядро и IO, на нём оконная подсистема.
                                                                        Золотые времена, я после этого никогда не занимался чем-то более захватывающим. Сейчас — это работа, профессия.
                                                                          +4
                                                                          девочкам то понравились реализации алгоритмов?
                                                                            +2
                                                                            бедные ваши девочки :)
                                                                              0
                                                                              Ну это я позже понял. Тогда мы были увлечены до предела :)
                                                                              А к алгоритмам они были безразличны.
                                                                              +1
                                                                              я вот плеер для трекерной музыки писал, 10 что-ли форматов поддерживалось.

                                                                              image
                                                                                0
                                                                                Нехилая версия. :)

                                                                                Всё сами писали, в том числе разбор форматов, эффекты и прочее, или всё-таки пользовались хоть какими-то сторонними наработками?
                                                                                  0
                                                                                  Плееры выдирались целиком, некоторые немного правились.
                                                                                  +2
                                                                                  Lenght — знатная очепятка =). Все мы учили английский по чему попало…
                                                                                    0
                                                                                    Наверное, симбиоз Light и Length
                                                                                      0
                                                                                      В моей первой игрушке из статьи была такая же ошибка, но я подло её исправил. :)
                                                                                  +3
                                                                                  первая школьная игра на бейсике — монополия :)
                                                                                  • UFO just landed and posted this here
                                                                                      +1
                                                                                      а я помню как сделал в 6м классе игру-лабиринт с предопределенными уровнями. сейчас возможно даже найду на старом харде в шкафу
                                                                                        +4
                                                                                        Мне запомнилась написанная в студенческие годы (1992 год) в соавторстве с моим другом программа Sprite Editor и Animator.

                                                                                        Писалось всё на IBM PC XT/AT, на шестом Турбо Паскале с вставками на ассемблере. Управление в редакторе спрайтов было только клавиатурным. Про компьютерную мышь мы тогда и не слышали. Рисовалось всё точками и линиями. Затем спрайты сшивались в анимацию, которую можно было отдать вместе с плейером (exe-файл, размером чуть больше килобайта) и проиграть на другом компьютере.

                                                                                        Что нас удивило, что программа пошла в народ, как говорится. Делали мы её для своих нужд, были наполеоновские планы по созданию своей игры, наподобие Kings Bounty, но студенты стали рисовать с её помощью разные забавные анимации и мы находили их на разных компьютерах в разных кабинетах.

                                                                                        Так как доступного машинного времени не было, мы напрашивались поработать в компьютерные классы, когда там не было занятий. Нам не верили, подозрительно выясняя, не собираемся-ли мы играть, коварно обманув лаборанток. И писали так свои программы, в частности Sprite Editor & Animator.

                                                                                        Однажды, когда мы занимались отладкой модуля анимации, в компьютерный класс вошёл наш преподаватель программирования. Заметив нас, от подошёл и стал за спиной, наблюдая за нами. Постоял, посмотрел несколько минут и ушёл. А на экзамене, который состоялся через несколько месяцев, когда я вышел брать билет, попросил у меня зачётку и поставил туда пятерку.
                                                                                          0
                                                                                          Вот это финал!
                                                                                            0
                                                                                            Логичный финал. Меня тоже на экзамены по программированию не пускали. :)

                                                                                            С другой стороны, за то, что я такой шибко умный нашёлся, меня забанили на лекциях про Ворд и Эксель (шёл 3-й курс...). И автоматом этот вредитель только 4 ставил. Перед лицом вызубривания настроек в Ворде лень победила…
                                                                                          0
                                                                                          На спекки пытался писать, что-то подобное на игры, но быстро как-то остыл, был сильный недостаток литературы… А потом, как-только появился дома комп, мне дали в руки Clipper… с тех пор я помешанный на базах данных, что и продолжается с 1995 года…
                                                                                            +1
                                                                                            «рендеринг самых простых моделек по минуте… рендеринг одного кадра космического полёта из прилагаемого примера минут по десять…»

                                                                                            У нас один кадр в универе ренедрил больше суток анимацию модели робота, никого к компу не подпускал, не спал, почти не пил и не ел… Лихие 90-тые!
                                                                                              +3
                                                                                              Сразу вспоминается «программистский ностальгический» ролик:
                                                                                              www.youtube.com/watch?v=zWZybFMQNqw
                                                                                              Времена Спектрума я уже не застал, поэтому начинал с Искры.
                                                                                              Чёрно-белый монитор, 640К памяти (проверяло оно эту память перед загрузкой по минуте, очень медленно).
                                                                                              Начал с Турбо Паскаля, потому что Си давал отвратительно низкую скорость компиляции (пока компилится программа, можно было сбегать попить чаю).
                                                                                              Потом пришел MASM. Книжка по нему до сих пор лежит в столе, потрёпанная до дыр, рассыпающаяся. Выглядит так, словно её на матричном принтере печатали:


                                                                                              Особенность школы — масса свободного времени.
                                                                                              Тогда все увлекались двумя вещами: вирусами и текстовыми квестами. Некоторые даже пытались совмещать (пройди квест, чтобы вирус удалился с твоего компа. В случае ошибок «монстры» могли сожрать пару программ или сделать иную пакость).
                                                                                              Особенно доставляли такие квесты, где требовалось не выбирать нужное действие из списка, а вводить команды вручную. Что-то вроде «идти к южному терминалу», «повернуть налево», «осмотреться». Пройти такой квест можно было лишь в том случае, если за спиной стоит автор и подсказывает, что именно надо вводить. Иначе прохождение напоминало попытку разобраться в Linux без документации и с не установленными man'ами.
                                                                                              Главная проблема того времени — полнейшее отсутствие документации. Добыть что-нибудь кроме Фигурнова было чрезвычайно сложно, а интернетом даже не пахло. С тех времён у меня сохранился «хомячий инстинкт»: вот вроде в сети можно что угодно найти, а всё равно мало-мальски интересные материалы до сих пор сохраняю на диск.
                                                                                                +3
                                                                                                Да, были времена. Правда я еще времена ДОС застал. Ну и паскаль, куда же без него…

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

                                                                                                Помните редактор трекерной музыки Fast Tracker? Была там игрушка — змейка, с уровнями и тд. Вот захотелось мне когда-то ее повторить, только покрупнее — почти на весь экран. Для этого помню дизасмил Fast Tracker, выпиливал оттуда уровне и в итоге написал вот это:



                                                                                                  0
                                                                                                  Огромное спасибо за статью. Я хоть и не программировал так рано, но прекрасно понимаю Ваши чувства. Сам помню только как в детстве играл в советский (или уже российский) аналог спектрума. И ДОС вспоминается… А потом бегло от Win98 до XP.
                                                                                                    +3
                                                                                                    Книжка со спрайтами в конце — это я полагаю книжка Владимира Шамиса? Где еще в первой главе вместо Hello World он писал про купающихся в море негритят? :)
                                                                                                    Была таже самая ситауция — книжка по С++, из которой примеры не компилируются в C++ Builder, и вот эта книжкой Шамиса, которую понять было очень тяжело не понимая хорошо С++. И тоже помню как я прозрел, когда дошел до главы со спрайтами. Ну и похоже что писать стратегии в те времена было модно: о)
                                                                                                    image
                                                                                                      +1
                                                                                                      «Чтобы это всё не умерцалось, сначала рисуем всё в картинку в памяти, потом выводим на канву на форме.»
                                                                                                      Чтобы еще лучше не умерцалось делаем синхронизацию с обратным ходом луча развертки — пока он идет назад меняем содержимое буфера:)
                                                                                                        0
                                                                                                        В окне виндовса? Имхо вы чего-путаете, молодой человек
                                                                                                          0
                                                                                                          я про полноэкранный режим, конечно же
                                                                                                        0
                                                                                                        Извините, но названиe себя оправдывает.

                                                                                                          0
                                                                                                          В статье прямо под ссылкой для скачивания описана эта проблема и пути её решения.
                                                                                                          +1
                                                                                                          Мда. Автору респект и уважуха…
                                                                                                          А я вспоминаю журнал «Техника — молодежи» с листингом игры «Сокобан» на Бейсике с первым уровнем лабиринта. Как я его изучал скрупулезно. С этой игрушки все и пошло…
                                                                                                            0
                                                                                                            О, да. Знатная реализация.
                                                                                                            0
                                                                                                            Все сишники с Билдера начинали?
                                                                                                            Я в то время изучал в универе аналитическую геометрию и т.п. и пробовал писать свой движок. попробовал, понравилось.
                                                                                                            Позже ушел в геймдев и познакомился с VisualStudio.
                                                                                                            А начиналось все так — знакомый, был программистом. и когда у моего 586 что-то «ломалось» я отдавал ему винт и он все там записывал заново. И однажды я увидел там 3D Studio R3, позже и R4 — это предшественники Max-а. Начал там простенькие ролики делать. Да, 3D Studio Max тормозил у меня безбожно.
                                                                                                            Когда узнал что такое Maya — ошалел. Вот она по 10 минут грузилась, это точно. И дисок с V3.0 я положил в ящик «до лучших времен». Через год достал и долго тупил с желанием нарисовать хоть что-то *)
                                                                                                            И примерно через пару лет стал писать плагины и скрипты для Maya и Max.
                                                                                                              0
                                                                                                              Думаю, большая часть начинала все-таки с Borland/Turbo C или Watcom C.
                                                                                                              +1
                                                                                                              А я в свое время писал двумерный шутер, с графикой, звуками, музыкой и практически полными функциональными возможностями из Hexen (скрипты, загрузка WAD сохраненных редакторами уровней для Hexen, правда делать их надо было специфично, 2Д все же вместо псевдо3Д).
                                                                                                              На Borland C 5.0 кажется. Потом портировал на Watcom C с работой под DOS extender, т.к. EMS/XMS были довольно медленными, а low memory не хватало.
                                                                                                              Жаль, исходники утеряны давно, ностальгия иногда мучает =)
                                                                                                                +1
                                                                                                                > Однако возникла проблема: кнопочки рисуются, но вот что-то работать не хотят! Внезапно выяснилось, что в чудо-программе одним рисованием кнопки не задвигаются, нужно писать какой-то странный непонятный код

                                                                                                                Замечательно, в 12 лет было такое же откровение.

                                                                                                                Only users with full accounts can post comments. Log in, please.