Это - копия документа, находившегося на http://dz.ru. Авторские права, если не указано иначе, принадлежат Дмитрию Завалишину и/или Евгении Завалишиной. Все изменения, внесенные мной, находятся в этой рамочке.Пожалуйста, прочитайте disclaimer. |
Я открыл для себя новый и удивительно сложный язык программирования. Язык, непохожий на Си++, Ассемблер, Пролог, Лисп, Плёнер, Рефал, Симулу... ну вы поняли идею. :-) Ни на что не похож. :-)
Язык этот - язык сценариев для игры Heroes Of Might And Magic III. Как нетрудно заметить, создание современных игр делится на два этапа - написание game engine и разрисовка, что называется, "уровней". Карт, сценариев - как ни назови, суть одна. Энджина предлагает программисту некоторый язык описания мира, и на нём этот мир нужно написать. Написать так, чтобы результат оказался интересен.
Это - чистой воды программирование. Но программирование, осложнённое несколькими мерзкими моментами. Во-первых, недетерминированность. Генератор случайных чисел непредсказуем. Предугадать все варианты развития событий нереально. Во-вторых, опосредованность. В руках программиста лишь косвенные инструменты - он может воздействовать не столько на события, сколько на решения персонажей игры, как компьютерных, так и живых. В-третьих, невозможность прослеживания всех последствий принятия того или иного решения.
Например, размещение на карте лишней халявной горки железной руды может привести к тому, что игрок не построит в нужный момент хранилище ресурсов, которое стоит дорого, но потом всю жизнь поставляет руду. В короткой игре это даст ему преимущество, а в длинной наоборот, преимущества лишит - ведь руду можно продавать, выгадывая деньги на ведение войны.
Это простой пример, одноходовка, но несложно описать двух-, трёх-, пятиходовки такого же плана. Описать несложно. Предсказать же, что из них реально произойдёт - невозможно.
Программирование уровней потому статистично. Уровень строится не по принципу просчёта каждого конкретного действия игрока, а общо, грубо, прикидочно. Конечно, можно создать уровень, в котором все игроки окажутся закованы в железные рамки, и действия их будут предопределены, но интересно ли будет его играть.
Конечно, нет. Интересно играть, когда есть свобода. Вот и мучается программер - чем свободнее игроку, тем сложнее автору. Обеспечить длительное развитие ситуации, сбалансированную игру, и в то же время избежать ситуации "хожу третий день, никого на горизонте" - нелёгкая задача. И нечасто встречаются хорошие её решения.
Интересно, существуют ли на эту тему теоретические, обобщающие работы? Или область ещё не выползла из кустарной эпохи? Есть ли кто, готовый отозваться и рассказать?
Сегодня я был бы вынужден разорваться пополам, если бы не был женат на своей жене. Так вот. Дело в том, что, так уж случилось, на один день были назначены два интересных для меня события. IREX начал конференцию по развитию некоммерческих и академических сетей в России, а Комптек - семинар по продуктам Cobalt Networks, тем самым "кубикам", с помощью которых провайдеры могут предоставлять услуги, а клиенты - ими пользоваться.
Сегодня я был бы вынужден разорваться пополам, но не стал - я поехал в Комптек, а Евгения - к IREX-ам. :-) Впрочем, туда я тоже успел, но к вечеру. К самому интересному. Я не про ужин. :-)
Начнём с кубиков. В Комптеке, правда, их ласково называют ночниками - уж больно нежно светится зелёненьким пластиковая вставка в передней части их корпуса. Дизайнеры - молодцы, столь скромными средствами (синий пластиковый корпус, плексиглас и два светодиода) добились весьма эстетного внешнего вида. Кубик можно и должно выставлять на видное место в конторе и всем говорить - "а через эту штуку мы работаем с Интернетом".
Технически и кубики, и rack-mount устройства не отличаются почти ничем. Это специальный компьютер на базе RISC-процессора, два Ethenrnet-интерфейса 10/100 (в некоторых модификациях аппаратуры запаян лишь один), COM-порт для подключения терминала в случае необходимости поковыряться в ОС или модема для dialup-on-demand соединения с Интернетом. Диски подсоединяются посредством интерфейсов IDE (есть во всех моделях, один шлейф) или SCSI (есть только в rack-версиях, и то не во всех). В кубиках присутствует один стандартный PCI-слот. Точнее, два, но в одном стоит "фазербоард" с процессором и памятью. Второй свободен и предназначен для нетривиальных применений устройства. (См. ниже.:)
Память во все Кобальты ставится самая обычная, диски тоже, так что если требуется апгрейд по этим направлениям - проблем нет. Софт там стоит тоже всем давно знакомый - Linux, так что и тут всё открыто для расширений. Пользуясь этим фактом, на базе Cobalt Cube можно выпускать свои продукты, включающие как исконные возможности куба/рэка, так и дополнительные, value added. К примеру, сам Комптек собирается предустанавливать на часть кубов Яndex-site за небольшие отдельные деньги. Возможно, найдутся и иные последователи.
А может и нет. Не принципиально. Кобальтовый Куб решает одну чётко поставленную задачу - подключить к Интернету офис, в котором нет опытного сисадмина. А возможно, и никакого нет - настройка куба делается за 5 минут, после чего он уже не требует к себе никакого внимания. Ну, если только с пятого этажа не ронять.
Что касается нетривиальных применений Cobalt Cube. Что любопытно, именно Куб обладает сочетанием нескольких важных свойств - в нём стоит довольно производительный процессор, есть винчестер, Linux, LCD-панель с несколькими кнопками, свободный PCI-слот и, наконец, он питается лишь от +12 вольт.
Трудно не заметить, что установка в него звуковой карты превращает кубик в полноценный автомобильный MPEG-плейер! :-) Увы, дорогой несколько - $1400. :-(
Жаль. Серьёзно. Несложная модификация конструктива, исключение из платы ethernet-ов и вынос LCD с кнопками на отдельный пульт, встраиваемый в приборную доску - и готов новый продукт. Конечно, винчестер придётся в таком разе заменить на ноутбучный, чтобы противостоять вибрации, а звуковую часть лучше не втыкать в PCI, а тоже разместить прямо на борту (по тем же причинам), но это не ах, как сложно.
IREX и некоммерческие сети.
Вообще эта сторона сетевой жизни мной незаслуженно обойдена и, увы, за пять минут не наверстать. В России существует изрядное количество сетей, ориентированных на обеспечение коннективити для образовательных и научных учреждений. В это направление вкладываются немалые деньги и часть оных проходит через IREX. Собственно, конференция была посвящена некоторому подведению итогов соответствующей деятельности, деятельности вообще в данном направлении, не обязательно проводимой под флагом IREX.
Если попытаться высказать общую мысль конференции, то, наверное, я бы сформулировал её так. Вначале деньги в этой стране тратились на создание собственно средств связи - академических сетей, отдельных каналов, провайдеров, короче говоря - физических сущностей, посредством которых всяк занимающийся наукой мог бы работать с Интернетом.
Сегодня акцент сместился. С собственным, академическими каналами всё гораздо лучше, стоимость доступа в Интернет даже у коммерческих провайдеров гораздо более приемлема, короче говоря, подключение - уже не та проблема.
Проблемой сегодня является использование. Ведь мало иметь канал, нужно иметь способ им воспользоваться. Если ещё короче - нынешней проблемой стал контент. Извините за ругательное слово.
Соответственно, проектам на эту тему в основном и была посвящена конференция. Впрочем, почему "была". Она ещё идёт и 17-го я собираюсь присутствовать хотя бы на второй её части - вот допишу этот выпуск и поеду.
Что же касается конца первого дня конференции, то плавное её течение было прервано приездом Анатолия Левенчука, коий провёл круглый стол на тему "Свобода слова". Признаться, если бы энергия, что выплеснул в зал Анатолий, попала бы на более подготовленную почву, случился бы небольшой ядерный взрыв. Ну, например, посадить в зал подписчиков списка banners, и война обеспечена.
Но в зале сидели большей частью учителя. Поэтому первые полчаса процесс шёл по принципу "Левенчук энергию выделяет, учителя поглощают". Они же дисциплинированные, они знают, что кто с микрофоном - тот и говорит. :-) А остальные - слушают. :-) Некоторой реакции от зала ведущий добился лишь к концу выделенного на круглый стол времени, и это очень обидно - сама постановка вопроса в среде людей, которым чужды нетривиальные особенности Интернета, весьма интересна.
Кстати. В рамках дискуссии неизбежно возник вопрос о юрисдикции и выходе из-под неё. Это классический пример - если мой сайт нарушает законы одной страны, ничто не помешает перенести его в другую и таким образом уйти из-под законов этой страны. Если эта страна закроет доступ своим жителям к моему сайту, жители смогут добраться до него через прокси. То есть даже в рамках имеющейся сети законы не действуют.
Но есть вариант развития событий ещё более неприятный для государств, склонных к чрезмерному регулированию Интернета. Дело в том, что веб-сервера можно размещать... на спутниках. До сих пор эта возможность, существовавшая физически, наталкивалась на вопрос "зачем". Вот ответ - чтобы уйти из юрисдикции Земли вообще.
Правда, нет ответа на вопрос, хорошо или плохо существование сей возможности. Не воспользуются ли ей в первую очередь асоциальные элементы.
И другой вопрос. Спутник же кому-либо принадлежит. Соответственно, на владельца можно оказывать давление. Значит ли это, что спутник лишь формально вне Земли, а фактически подчиняется законам той страны, в которой живёт его владелец?
Железные дороги - чрезвычайно интересная тема. :-) Оказывается, сайтов на эту тему в России довольно много. Но, пожалуй, из всего, что мне попалось за прошлые дни этот - самый ухоженный. Столько там всего любопытного! :-) Вот карта железных дорог Байконура.
Но самое, наверно, интересное - железнодорожный сленг. "Облизать пупок" - это ж песня!