Обновить
123
0
Дмитрий Толмачёв@beetleinweb

Пользователь

Отправить сообщение
Пока я бы хотел сосредоточится на эволюции их софта, а не их железа.

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

А также рынок виртуального железа, который ближе к виртуальному софту — память, процы, системы охлаждения и т.п. И даже сами прошивки и настройки прошивок. Т.е. одна прошивка может купить другую. Для расширения своих возможностей или для моделирования поведения врага у себя в голове, виртуальность в виртуальности :)

И толпа юнитов перед десантированием сначала делает себе апгрейд на энную сумму, одинаковую обоих для противников. Собственно, тогда даже количество юнитов будет определяться не игроком, а суммой. Будет выбор — накупить самого дорогого оборудования и собрать 10 супер-пупер юнитов, или 10000 китайских :)
Ну, проблема-то просто решается — пивко ставится в центр поля, и кто успел, тот и… :) У пабов иногда такие бои устраиваются, что аж любо дорого на YouTube выложить :)
Ладно, всё это можно, но пока мало кому нужно (?). Нужна пропаганда «здорового образа игрежа на компьютере», чтобы и сердцу и уму. Пока же в основном всем хватает мозжечка :) Вот в этом плане идей здорово не хватает, не знаю я, как сколотить хотя бы небольшое комьюнити вокруг игры для программистов (пусть даже не этой конкретной, или этой, но переделанной до неузнаваемости).

Вот с этим бы разобраться. Поможет тут сервер или нет. Чисто социопсихология… и экономика, к сожалению. У меня хост 20GB трафа на год проплачен, но понятия не имею, на сколько этого ресурса хватит. И не хотелось бы корпеть-кодить-тестить месяцами, а потом убедиться, что это никому не нужно (десяток энтузиастов не в счёт, они и без сервера таблицу рейтингов построят).
А если серьёзно, то артналёт и авиация пока за рамками модели. Все юниты пока идентичны по железу. Т.е. это шашки, а не шахматы. Вот когда разыгрывать шашечные комбинации надоест, тогда можно будет переделать шашки на шахматы. Добавив, к примеру, более быстрых юнитов, но реже бьющих. Или более медленных, но уж если ударит, так трое лягут :)
Думаю, пройдёт не одно поколения, пока они научатся собирать из пикселов аналог ядерной бомбы. Гении там всякие нужны, уран и проч. При этом им ещё надо будет отбиваться от противника. У Саддама вон не получилось, не успел.
Да нет, и не думал стебаться :)

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

Но для описываемого сложного поведения похоже нужно будет две вещи им дать — память и общение. Не обязательно, может быть, но с этим гораздо быстрее дело пойдёт.
А как быть с клиентом? Обзор всего широкоформатного поля высокого разрешения одним взглядом — одна из основных черт скромного обаяния :) Возможно, какая-нибудь из современных технологий (flash, silverlight, etc) тут поможет, я просто не в курсе.

Но если даже на это забить, и в браузере показывать только небольшую часть поля, то идея уже имеет право на реализацию.

В конце концов, можно вообще не показывать игр на сайте, показывать только статистику результатов, таблицу рейтингов. Т.е. посетитель гоняет своих юнитов против чужих у себя на машине. Потом видит, что его юнит добился неплохих результатов, и высылает код на сервер. Сервер, погоняв юнита у себя, суёт его результаты в таблицу. Возможно, с небольшим видеороликом самых жарких моментов боёв, чтобы другие могли заценить не только внутреннюю красоту кода (можно и не публиковать, кстати), но и внешние проявления этой красоты.
Конечно, эта мысль приходила в голову одной из первых. Настоящие пираты, идущие в обход. Ущелья и мостики, где горстка спартанцев может противостоять армии. Углы, куда можно загнать и окружить. Домики, где десяток юнитов может укрываться от армии и партизанить, охотясь на отбившихся от стада одиночек…

Но решил отложить, как только увидел, насколько ещё много тактик и стратегий можно накодить просто в чистом поле. Преградой тут служат даже свои собственные юниты. Обязательно вернусь к этой идее (и множеству других), если покажется, что потенциал степных войн исчерпан.
Да, ~неделя до НГ — не лучшее время для кодинга :)

По тактике… В этом вся разница программирования «сверху вниз» и «снизу вверх». Надо представлять себя не полководцем, а юнитом. У них сейчас нет памяти, нет понятия о времени. Они не видят поле с высоты птичьего полёта, и понятия не имеют, где находятся. Насколько я помню, они даже стен не видят, пока рогом не упрутся.

И вот исходя из такой ситуации, глядя их глазами — как тут собираться в группы не хаотично? :) Этих парашютистов раскидало рандомным генератором по всему полю (ну по половине, мало что меняет).

Возможное решение (экспромпт): все стоят на месте, кроме увидевших врага. Они бегут организованно отступают в тыл (тыл в противоположной стороне от линии фронта, логично?). Заметив бегущего отступающего товарища, сослуживцы бегут в ту же сторону. И эта волна, по идее, пройдёт до «задней стенки». Уперевшиеся в неё рогом бегут обратно. Увидев бегущих навстречу, паникёры останавливаются в ступоре, потом с воодушевлением бегут рядом уже обратно. Уплотнившаяся волна равномерно достигает линии фронта и зачищает территорию. Не так эффективно, как рой, зато гораздо быстрее.

Но есть в этой тактике… эээ… WALLMAN'ов (так их пока назову) одна неувязочка. Десант необязательно высадят ровно на одной половине. Хотя, как я уже писал, если равномерно перемешать, то кучность по любому уже не поможет, тут нужен микроконтроль.
Вспомнил ещё более раннее «детство», спец-училище :) Компьютеры тогда видел только издалека и на картинке, играл «вручную» на деньги, по 10 копеек за фишку. Поллиста в неплохие по тем временам суммы складывались :)
… траектории юнитов, полные от начала игры или постепенно растворяющийся след за последние 50 квантов времени, скажем.

«Трупы», т.е. места где кого-то забили до смерти. «Капли крови», т.е. места, где юнит терял здоровье.

И дофига всяких т.д. в запасе :)

А вот асимметричные распределённые системы, с разными типами IUnitBody, это даже в GUI уже заложено. Вот только быстро понял, что и с одним типом такого можно наворотить… Т.е. шахматы — хорошо, но сначала шашки :)
Чуть выше отписал. Долго вспоминал, где зарыл основное. Что ещё добавить? Недоволен, что изначально выбрал клеточно-шахматрую модель. Нереалистично. GPS наше всё. И бить, подобравшись вплотную — средневековье. Стрельбу надо было реализовать, конечно. Короче, не против основательно переделать этот мир :)

Многих сбивают с толку линии к крестикам, принимают за лазеры. Это все лишь указатели курса, куда на данный момент стремиться попасть юнит. Это или враг, или друг, или случайная точка.
#define UNITDEF_LIFES 50
#define UNITDEF_ACTIONS 1
#define UNITDEF_EYESHOT 200

Разумеется, можно переопределить. Сейчас юнит видит в радиусе 200 пикселов (если можно так выразиться, в их двумерном мире окружность, множество точек равноудалённых от центра — квадрат :) ), и его 50 раз надо стукнуть, чтобы забить до смерти. Одно действие в один квант времени, т.е. или бей, или беги. Не восстанавливаются. Бьют, подобравшись вплотную.
Сам это так же назвал, зачисткой. Хотя на самом деле термин не совсем подходит. Комрады роятся одной или несколькими группами, и ждут, когда случайный Берсерк проползёт рядом. Поэтому игра иногда очень долго заканчивается на большом поле. Бродит где-нибудь парочка заблудших часами…

Вот если бы рой вытягивался в цепь и действительно прочёсывал местность… В общем, есть что дописать.
Win-only — поскольку учить меня в те времена было некому, самоучка, а какой у самоучки выбор? Всё усыпано самоучителями «Windows для чайников». А интернет тогда был только в сказках. Про существование Linux'а, например, узнал довольно поздно и был весьма удивлён, что в мире существует не одна операционная система. Чёрт, и даже не две! :)

А потом с чем только не приходилось работать. Даже под z/OS на мейнфреймах.
В первоначальной редакции текста была фраза, типа «подскажите, какая нужна лицензия, чтобы выложить код свободный от лицензий». Потом убрал, решил, что не смешная шутка. А зря :)

ОК, спасибо, теперь буду знать. Если буду куда выкладывать, укажу WTFPL… Блин, посмотрел что это значит :)) Ещё раз спасибо :)
Ладно, признаюсь, есть ещё одна причина, по которой не решусь пока выкладывать в подобные места. Стыдно :) Я же говорю, только начинал тогда прогать. Детство. Здесь-то поймут, а где ещё — не знаю.

Я начинал тестером, очень хотел стать программистом, вот и хватался за что попало. Это всё написал за неделю на коленке. И тут как раз подвернулся шанс перейти из тестерского отдела в программисты.

А проектик этот у меня взял начальник тестерского отдела как тренажёр для начинающих тестеров. К традиционному собеседованию добавили задание на дом: найти баги в этом моём опусе. Потом начальник мой бывший как-то сказал: «Твоя программа просто неисчерпаемый источник багов». Без обид ответил: «Как исчерпаете, я вам их ещё напишу». Гм, может уже пришло время дописывать? :)
Изначальный смысл игры, природный — не развлекалово дабы убить время. Игра из щенят должна сделать волка. Это они в детстве друг друга игриво покусывают. При этом отрабатывают навык рвать глотку. В общем, игра — дело такое, серьёзное :)

К сожалению, современные игры в этом плане сильно проигрывают даже щенячьим. Непрактичны.

А эта (и подобные) хоть научит практическому программированию. И не так уж важно, чем человек потом по жизни будет заниматься, прогать стайки пылесосов или медицинских наноботов. Главное — он будет это делать лучше, чем другие, и рвать глотки конкурентам :)
Повторюсь, решил не засорять репозитории. Там и так навалом дохлых проектов. Если у этого будет шанс на реинкарнацию, можно будет выложить.
А что за проект? Просто я не зациклен на своём, это я так, увидел тут на Хабре посты про игры программистов пошли косяками, ну и достал свою старую детскую поделку с дальней полки, пыль сдул, поностальгировал.

Насчёт реального времени — а оно сильно надо, если всё равно нет возможности управлять юнитами «вручную»? Идея в том, чтобы «рендерить» партии заранее. А потом можно посмотреть любой момент с любой скоростью, с любого ракурса в любом увеличении (поскольку рендерится не картинка, и лишь предварительные данные для её быстрого вычисления). Т.е. устраивать разбор партий как в шахматах, кода всё давно сыграно. Тут вполне сгодится stdin/stdout.

Информация

В рейтинге
Не участвует
Откуда
Челябинск, Челябинская обл., Россия
Дата рождения
Зарегистрирован
Активность