Да вытокаў #2

Oct 02, 2007 15:27

Мінулым разам я дастаў са стала жахі першых крокаў васьмібітнага праграмавання. А зараз можна закрануць тэму, як я ўпершыню пачаставаў чэрствага хлебу кіравання праектам.

Пачну зусім здалёк. Яшчэ недзе ў 1989-90 годзе, калі савецкая хардварная прамысловасць выпускала толькі БК-0010, а я не задаваўся пытаннем пра адрозненні 8 і 16-бітнай архітэктураў, у Палацы Моладзі існаваў клас з "Ямахамі". А сцукі-японцы ўмелі не толькі рабіць хардвар, але і пісалі неблагі софт для яго. Ва ўсялякім разе, тагачасныя хіты кшталту Vampire Killer, Metal Gear, King Valley спецыялісты цёпла ўспомняць і зараз. Аднак клас з "Ямахамі" быў адзін, а жадаючых карыстацца ягоным рэсурсам болей, чым дастаткова, Таму шмат што можна было тольки пабачыць, але не памацаць; асабліва ў каляровым выглядзе, а не ў адценнях зялёнага.

Так, двойчы мне трапіў на вочы сакабанападобны пазл -- Eggerland Mystery-II, узроўні якога кансультатыўна праходзілі ўсім натоўпам.


Графіка, музон, якасць заданняў -- усё гэта натуральна захапіла мяне. Шкада толькі, што пасля другога разу гулька болей у рукі не трапіла. Аднак не трэба забывацца, што ўвосень 1990 года ў маім доме завёўся побытовы антысемітызм кампутар, за паўгады замагяння з якім я прайшоў абільна паліты крывёю шлях ад праграмавання на кастраваным басіку да стварэння праграмаў на голым асемблеры (бо інакш графічныя дзеянні ніяк не набывалі неабходнай хуткасці); а недзе праз год я ўжо адчуваў, што мог амаль усё, і пачаў прыцэньвацца к вырабу ўласнага клону Eggerland-II.

Дарэчы, малдаванскае КБ, нарадзіўшае мой Вектар, ад самага пачатку знаходзілася пад моцным уплывам менавіта ямахаўскай, а не сінклераўскай архітэктуры, таму прэцэдэнты нядрэнна партаваных за кошт архітэктурнага падабенства ямахаўскіх гульняў былі мне добрым абгрунтаваннем уласных амбіцыяў.

Не будзем, аднак забывацца, што арыгінал я бачыў зусім нядоўга, таму тое, што павінна было атрымацца, мусіла быць пераломленым праз маю свядомасць у шматлікіх месцах і мець толькі нейкія агульныя рысы з першакрыніцай. Першае, з чаго я пачаў, быў "райдэр" з пастаноўкай:


Другім момантам, які быў выбраны ў якасці ключавога, быў маштаб праекту: ён павінны быў пераўзысці ўсё, што існавала на той момант для гэтага кампутару. Гэта было параўнальна нецяжка: партаваныя арыгінальная праграмы-пазлы, безумоўна, існавалі, але іх было не так шмат, а "вырабы айчыннага вытворцы" ў лепшым выпадку мелі дзве з трох істотных якасцяў: хуткасці, цікавасці, працягласці. Той вырадак, які прыдумаў кампілятар паскалю для гэтага кампутара, павінен быць распяты столькі разоў, колькі гульняў гэтым кампілятарам створана: пакрокавыя аркады з нулявым сэнсам -- гэта было сапраўдным пракляццем для вольнага часу. Таму ўсё стваралася на голым асемблеры, без займання функцыяналу з бібліятэк. Уласна кажучы, бібліятэк і не было, як не было і сеціва, у якім іх было б можна нашукаць -- жудасны быў час.

Што ж тычылася аб'ёму самой гульні -- тут я магу ганарыцца сабой, бо адразу прыняў правільнае рашэнне, раскідаць праектаванне ўзроўняў на дваіх сябраў: кожны з нас праектаваў адзін "паверх", таму мы толькі пазначылі некалькі кропак міжпавярховага пераходу, пакінуўшы астатняе на ўласны густ кожнага з нас. Вось, напрыклад, як выглядаў праект майго ўзроўню:


А так выглядалі кантрольныя раздрукоўкі майго і аднаго сяброўскага ўзроўню:



Размеркаванне намаганняў было вельмі слушнай ідэяй: я атрымаў канчатковы аб'ём у 60 узаемазвязаных скрыноў, непадобных па стылі, і нават нікога не забіў аб сцяну :) А прычынаў забіць было шмат: 64К памяці на ўсё, уключаючы зыходны асемблерны тэкст, сам асэмблер, дадзеныя, праграму і відэапамяць -- Біллі Г. са сваёй заяваю пра дастатковасць 640К на ўсе задачы не так ужо і памыляўся. Да таго ж, у яго быў прадугледжаны як мінімум дыскавод, а мне мае памылкі ў кіраванні памяццю і арганізацыі бясконцых цыклаў каштавалі значна даражэй, бо захоўваць кожны крок на магнітную стужку было лянотна, а аднаўленне "серады распрацоўкі" пасля чарговага губляння ўсяго напрацаванага займала з меншага каля 10 хвілінаў. Да, не забудземся яшчэ на надзейнасць стужкі ў якасці носьбіта інфармацыі, калі глючны фрагмент запісу можна было гадзінамі аднаўляць, спрабуючы прачытаць яго з розным рэгуляваннем чытаючай галоўкі. Дададзім сюды яшчэ ручную лінкоўку. Пасля такіх выпрабаванняў дробныя фіглі-міглі сучаснай адладкі ўжо наўрад ці напужаюць мяне -- прышчэпка ручным усходам сонца ў юнацтве была, відаць, пажыццёвай.

Урэшцэ, нашая брыдоціна набывала рысы закончанага прадукта (ці намагалася іх набыць насуперак нашым дзеянням) і трэба было намаляваць нейкую морду для праграмы, прычым такую, каб прадэманстраваць лепшыя бакі нашай магутнасці. Спадзяюся, усе памятаюць, што на двары 1992 год: сканер (нават ручны) ёсць прадметам раскошы, дый сродкаў пераносу файлаў паміж кампутарамі рознай архітэктуры таксама негуста. Таму рашэнне амаль ляжыць на паверхні: лепшы бок праграмы -- гэта яе аўтары, хітрыя морды якіх павінны быць першым, што ўбачыць юзер.
Менавіта гэтая фаза і была тым самым ручным усходам з паралельным зацьменнем: бралася звычайная фотка, пераснімалася на ксераксе з павялічэннем да А4, паверх яе разліноўвалася сетка з міліметровым крокам, а пасля -- спыніце дыханне, смяротны нумар! -- слупок за слупком пабайтна уводзіліся hex-коды атрымаўшыхся бітавых масак:


(У цэнтры и справа -- kong_en_ge і ip_ адпаведна)

Ну, і некалькі параўнальных скрыноў майго і ямахаўскага твораў:



(за прапушчаны прыназоўнік "of" у назве краіны нагамі не біць -- з ім фарматаванне па цэнтры не атрымоўвалася)










З тымі рэсурсамі, якія ў мяне былі, атрымалася ўсё даволі прыстойна. За месяц гулька распаўсюдзілася да Валгаграду і Ташкенту і нават набыла ў прадаўцоў сафту рэцэнзію: "Працяг 'Rotors' і 'Pairs'" (а гэта ўжо былі партаваныя з Ямахі гульні), так што праз год я пайшоў працаваць, маючы магучы фундамент уласнай самаацэнкі.

А ў сапраўдны Eggerland (першы і другі) я ў рэале згуляў ужо шмат пазней, калі напрыканцы 98 году атрымаў сталы доступ да Сеціва і зліў добры эмулятар для PC і старыя добрыя гульні. Дарэчы, з эмулятарам пытанне "бессмяротнасці" рэалізоўваецца на сісэмным узроўні -- шляхам захоўвання і аднаўлення ўсяго вобразу машыны. Вельмі зручна і не завязанае на тое, у якія моманты прадугледжваў захоўванне стану аўтар гульні :) Свой жа ж гульнёвы праект я, нягледзячы на значнае спрашчэнне ўмоваў распрацоўкі, так і не партаваў на PC -- момант прапушчаны і наўрад ці ўжо вернецца.

Дарэчы, тут з пару тыдняў таму да мяне звярнулася адно быццам бы перыядычнае выданне калякампутарнай тэматыкі з пытаннем, што б я параіў аўтару, які напісаў уласную праграму -- куды пайсці, як прасунуць яе і, уласна, як атрымаць задавальненне ад усяго гэтага. Мой адказ на гэтую правакацыю адзін: калі аўтар здолеў давесці свой праект да фінальнай стадыі, ён ужо і сам добра ведае, што і як; а калі ўсё бачыцца толькі ў перспектыве -- лепш і не брацца :)

пра сябе, прафесія

Previous post Next post
Up