Как стать автором
Обновить

Комментарии 83

НЛО прилетело и опубликовало эту надпись здесь
Да? Вот ведь неграмотный я. =(
Знал же что надо Health писать!
НЛО прилетело и опубликовало эту надпись здесь
Тогда уж потрудитесь запомнить и tsya.ru ;)
НЛО прилетело и опубликовало эту надпись здесь
Ну, зато теперь запомните =) Всяко польза
«Пишется» без мягкого знака пишется.
Вы, сударь, знаете толк в извращениях :)
Универсальный коммент для блога «Ненормальное программирование»
НЛО прилетело и опубликовало эту надпись здесь
Без подписи под первым скрином долго думал что изображено. А так довольно таки прикольно. Буду по ssh на VPS играться когда совсем грустно )
Я это предвидел, для того и подписал. =)
Я когда увидел фотографию вообще решил, что это Portal :D
Хм, а мне нравится ваш ход мыслей! :crazy:
Отлично кажется теперь у вас есть идеи для следующей вашей работы на досуге (:
Возможно, вас заинтересует ASCII Portal
Вот это проект! Буду ждать релиза :)
Супер!
Почитал с интересом, кое-что почерпнул :)
Спасибо автору.
Чёй-то я не понял, управление WASD а выход Q?
Да, а что вас смущает? Но вообще выход и по Ctrl+C точно так же работает.
Смущает Q рядом с W и A в запале можно и промахнуться.
Окей, учту в будущем. Может когда-нибудь Brainfuck мне приглянется…
А что мешает переделать?
Ну да, изменить потребуется всего 1 символ. =)
вы сможете играть в эту игрушку «в запале»? :)
Ух, круть. А если бы еще и по сетке, то вообще было бы супер)
А то на работе все скучают, играть не во что :)
К сожалению текущего FPS не совсем достаточно для комфортной игры. А консольный пошаговый сетевой шутер — это что-то совсем запредельное.
Эх, жаль.
Вы так говорите о запредельном, как будто это что-то плохое. Учитывая, что Вы написали 3D(!) шутер(!!) на Bash(!!!), слышать это достаточно странно.
НЛО прилетело и опубликовало эту надпись здесь
Где вы были неделю назад?! Я бы взял вас на работу.
Неделю назад автор все еще писал игру, я предполагаю.
FreeBSD console

нажал f
Thanks: command not found
Press any key to continue…

# bash --version
GNU bash, version 4.1.7(0)-release (i386-portbld-freebsd8.1)
Copyright © 2009 Free Software Foundation, Inc
Честно говоря, так как я совсем новичек в этом, подсказать мало что могу. Он у вас почему-то пытается завершить выполнение при нажатии на f, и мало того пытается выполнить содержимое echo.
Он что-нибудь выводит на экран перед вылетом?
Вот так пройдет пара дней и игра появится на github'е, а автор оригинала поднимет сайт для технической поддержки игроков. Монетизация через рекламу в бегущей строке… в платной версии с сетевой игрой :)
У меня падает вот на этой строке: newTime=$((`date +%s` * 100 + (10#`date +%N` / 10000000)))
Это строчка одна из немногих, которые были скопированы из одной из перечисленных в начале игр, и дожила до конца неизменной и почти не осознанной.
Что тут происходит я понимаю, но пока не вижу где это используется в вашей программе.
То место где это используется закомментировано. Предназначалось для защиты от зажиманий клавиши.
Я вам на github сделал pull request, с этими правками у меня заработало под MacOS, пойду спать.
Спасибо. Не знал что \e и \033 не везде одно и то же.
Вывода на экран не будет, у вас срабатывает trap на выход, где всё зачищается.

Дело в том, что date +%N в freebsd вернёт просто «N», оттуда и ошибка.
> Честно говоря, так как я совсем новичек в этом, подсказать мало что могу.

Комментарии такого типа всегда вводят меня в ступор и приводят к взрыву мозга. Я боюсь представить, что автор натворит, когда перестанет быть новичком :)))
У меня под «Маком» пришлось кое-что поправить, чтобы экран нарисовался, но если что-то нажать, тоже выходит. В каком-то месте игра не совместимая с posix, вылетает.
Клёво. И монстр реально страшный:)
это какадемон спиной…
по моему это «абсолютное оружие»…
Интересно, а сколько времени ушло на разработку?
Пара недель, в свободное от учебы, работы и прочей жизни время.
Крутая крутатень!!! Вы прям вдохновляете! Спасибо, действительно интересно, буду и сам что-то пытаться сделать.
На какое «разрешение» (размер консоли) рассчитано?
Пробовал 80x24, 100x24, 155x40 (полный экран), вашей картинки не увидел.
107х43, вроде. Изначально было 128x36, но потом ужал по горизонтали и добавил интерфейс.
Кстати, я всё-таки решил проблему реал-таймого опроса клавиатуры для игры и написал «Арканоид» на баше. Этот же способ можно и в вашем шутере применить :)
Ого! Я потратил на попытки решения этого вопроса около трети всего времени разработки, но ответа так и не нашел. Огромный плюс вам за это. =)
Блин, плюс раньше уже поставил. =(
Ну тогда просто спасибо.
Ура, адаптировал вашу игру, чтобы на «Маке» у меня завелась, буду играть :) Спасибо вам за неё!
Я хотел написать про «арканоид» на Хабре, но всё как-то откладывал :)
писать кусок на с++ это как то не труъ баш.
так же можно написать все что угодно на чем угодно используя всякие там ffi.

а не крупновато для хелло ворлда?

у меня он выглядел вот так

echo 'Hello, World'
Ну если внимательно присмотреться к статье, то станет понятно, что C++ код не участвует в скрипте. Он используется для предварительной подготовки выводимой информации, которая впоследствии используется для инициализации массивов в начале скрипта.
Почему же ненормальное программирование? Раньше так 3D и делали:

image

Радио 86-РК, игра «MAZE».
ЯП не тот. «MAZE» на ассемблере была написана, а здесь bash.
Правая половина напомнила игрушку старых сименсах — «Лабиринт». Там даже на нестандартный угол повернуться можно. image
Помнится, ещё в школе, когда впервые увидел Дюну-2, был очень впечатлён. Но графика на наших i80286 очень тормозила, и я решил сделать стратегию к текстовом режиме.
Была и рандомная, генерация ландшафта, и карта (полноэкранная, по нажатию Таб), и юниты двигались, можно было даже разглядеть направление юнита. В общем, полная Дюна-2 в текстовом режиме.
Это был мой первый исходник размером больше 35 килобайт.)
> Поэтому накладывается ограничение на генерируемый лабиринт — в нем не должно быть ни одного квадратика 2 * 2 без стен

Есть (была) очень хорошая книга «The Programming Game» (Точно не вспомню, дома лежит), которую написали разработчики первого Doom. Там очень подробно разбирается технология RayCasting. Все проблемы решаются «убеганием луча» от наблюдателя, сначала по X (только вертикальные линии на карте), затем по Y (только горизонтальные). Сравнивая два значения удаленности мы определяем дальность до стены (меньшее значение).
Вот и все…
Мне кажется что это все равно на баше будет работать очень и очень долго, хотя возможно я ошибаюсь.
А чем вам квадратики 2x2 не угодили то?
Ну в них пришлось бы делать прорисовку больше чем на один уровень. А это с той технологией отрисовки, которую использовал я, невозможно или очень геморройно.
sh lab2.sh
lab2.sh: 5: Syntax error: "(" unexpected

Как запустить то?
Извиняюсь, сглупил. Надо было без sh запускать.
выпадает с ошибками такого плана:

bashgame.bsh: line 216: DIR_Y: readonly variable
: command not found217:
")syntax error: invalid arithmetic operator (error token is "
bashgame.bsh: line 220: SHOT_RADIUS: readonly variable
: command not found221:
: command not found228:
")syntax error: invalid arithmetic operator (error token is "
: command not found230:
")syntax error: invalid arithmetic operator (error token is "
: command not found232:
: command not found234:
: command not found236:
: command not found237:
: command not found238:
'ashgame.bsh: line 239: syntax error near unexpected token `{
'ashgame.bsh: line 239: `OutOfRange(){

запускаю через
bash bashgame.bsh.
что я делаю не так?
Хм, честно говоря не знаю. Попробуйте поменять на bashgame.sh и запускать ./bashgame.sh (предварительно прописав chmod +x bashgame.sh)
[root@xxxx html]# chmod +x bashgame.sh
те же ошибки…
[root@xxxx html]# sh --version
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Copyright © 2005 Free Software Foundation, Inc.
Попробуйте обновиться до 4й версии.
все, понял. Надо научиться скачивать проект полностью, а не только сурс-код.
Зато я не понял. Там проект состоит из 1 скрипта, остальное — не относится непосредственно к нему.
ну вот как только я скачал весь каталог полностью — все заработало. Когда скопировал сурскод со страницы гитхаба — ругался ошибками.
Ой-вей, надеюсь, вы хорошо изучили скрипт прежде чем из-под рута его запускать.
это рут виртуальной машины. Да и если бы там было что-то, тут бы уже давно отписали.
ну вот как только я скачал весь каталог полностью — все заработало. Когда скопировал сурскод со страницы гитхаба — ругался ошибками.
Напоминает одну из игр, которая шла с установщиком ASPLinux.
И вот спустя n-ое количество лет появился горизонтальный скроллер на баше с поддержкой мультиплеера piu-piu )
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.