Всем доброго дня!
В одной из своих прошлых публикаций, где-то в комментах я высказал примерно следующее: «..на внешних компонентах можно и шутер в 1С написать!».
Так вот, я солгал! Шутер можно написать и на «голом» 1C, не используя никаких внешних компонент!
Единственное что нам пригодится «внешнего» — это объект HTML. В нем мы организуем дополнительный таймер и потоки звуковых спецэффектов с помощью короткого кода на JS. Графическим ядром сегодня у нас станет «табличный документ». Именно сюда по событиям от таймера мы будем выводить каждый кадр анимации.
В итоге, помимо собственно игрухи, у меня родилось некое подобие «игрового движка» для 1С. Конечно, на лавры Unreal Engine или Unity я не претендую, однако и здесь Вы сможете без труда добавить новые уровни, прокачать анимацию или, добавив новые графические ресурсы, полностью визуально изменить игру без всякого программирования. Ну а если Вы — программист… то 1С = Блупринт (для тех кто в теме) (~)(0)
Информация для программистов:
Кода здесь всего около 1400 строк. При этом сам геймплей — 200 строк, AI ботов — 50 строк! Так что, разобраться в этом не составит никакого труда, тем более, весь код содержит комментарии, а общие процедуры управления и вывода вынесены в отдельные текстовые блоки. Модуль обработки принципиально оставил пустым -код на ладони! Меняйте уровни, колдуйте над интеллектом ботов, придумывайте новые «фишки».
Из «вкусного» здесь :
— Организация стандартного управления игровым процессом с помощью клавиш UDLR.
— Организация управления второго геймера с помощью мыши.
— Многопоточный вывод звуковых спецэффектов
— HTML таймер, позволяющий повысить скорость вывода графики до приемлемых 20FPS (напрямую зависит от скорости процессора, т.к., разумеется ни о каком аппаратном ускорении речи идти не может). Стандартная обработка ожидания выдает всего 5-6 FPS, да и те не всегда. (не правда ли, дико звучит «FPS в 1С»)))
— Таймлайн для спрайтовой анимации и озвучки.
Информация для всех пользователей:
Данная обработка представляет из себя реинкарнацию популярной в 90-е годы XX-го века игры на игровых консолях Dendy, Nintendo и пр.: «BattleCity»(c)Namcot (Танчики ). Воспроизведен оригинальный геймплей, уровни и аудиовизуальный контент. Задача игрока защитить штаб, подбить как можно больше танков противника и заработать как можно больше очков. При уничтожении 20-ти танков игра переходит на новый уровень. В каждом уровне набор танков может меняться. При прохождении игроком 36-го уровня, игра переходит на первый уровень, при этом добавляется скорость.
36 уровень — экспериментальный, он отличается от «классических» уровней увеличенной картой, увеличенным набором противников для демонстрации работы игрового движка.
Есть кнопка Options позволяющая сразу переключиться на желаемый уровень и выставить себе побольше скорости и пуль. По умолчанию заблокирована.
Подробное описание — по кнопке F1 (помощь).
Обработка поставляется в неуправляемом режиме.
11.10.16 Версия 1.0.27 (файл 1C_Танчики_82_Мультиплеер):
1. Полностью переработан граф. движок . Теперь на тестовых стендах — 65-85 FPS. Хорошая скорость на платформе 8.2 на стенде i7-3.0GHz. Отличные результаты показал стенд i3-3.7GHz на платформе 8.3.
2. Добавлен мультиплеер!
3. Добавлен режим Kill’emAll (можно «мочить» друг друга)
4. Добавлен тайловый генератор (моделирование карт)
5. Добавлена возможность масштабировать карту и играть от первого лица
6. 3in1 — в обработке можно выбрать 3 разных по ресурсоемкости игры. Самая требовательная «World of Tanks» c включенной опцией Tile Engine.
Рекомендации:
— Для максимальной производительности уменьшайте окно с обработкой — чем меньше ячеек табличного документа выводится на экран — тем больше FPS!
-В режиме мультиплеера настоятельно рекомендую играть в стандартном режиме (Classic) в масштабе 100.
— Для каталога мультиплеера выбирайте самый быстрый винт.
— Ник не может быть больше 10 символов. Для правильной работы мультиплеера ники у всех игроков должны быть разными.
— При игре в режиме мультиплеера один игрок всегда должен начинать игру в режиме 3 (Create multiplayer), а остальные игроки — в режиме 4 (Connect to network)
— Проверьте зрение. Попробуйте поиграть в первую игру на масштабе 50. Это забавно)))
Приятного времяпрепровождения, и помните: «Работа прежде всего!»
Слава 1С!
Круто!
Волшебно)
Всегда удивляли такие программисты (в хорошем смысле этого слова). Которые на голом энтузиазме пишут подобные штуковины. Сколько ушло времени на эту разработку!!!))) Можно было написать пару заказных отчётов и заработать N-сумму денег! Нееет… Он пишет игруху из 90-х! Достойная вещица! Респект Вам и уважуха!
Так глядишь кто нибудь и Quake с half life сделает на 1с 🙂
Классно
А когда Hilf-Life будет на 1С?
Не работают:
{Форма.Форма.Форма(1070)}: Поле объекта не обнаружено (Картинка)
ЭлементИгры.Картинка = Новый Картинка();
(7) PrinzOfMunchen, Оч. странно — перед тем как выложить проверял на разных платформах и компах, в том числе на удаленке по rdp. Работает в режиме обычного приложения везде, не зависимо от конфигурации. Что за платформа? Если можно — скриншот.
(3) 1v7, Спасибо, рад что понравилось)))
Да нет, не волнуйтесь времени после того, как я наткнулся на ресурс со спрайтами этой игры прошло чуть больше 2х недель)) Причем основу я написал дня за три — там кода-то всего ничего, потом неделю искал средство увеличить скорость ну и на причесывание (затупливание АИ ботов и проверка столкновений) еще неделя ушла. Не в ущерб отчетам, короче)))
(6) Famza, )) у 1С проблемы с шейдерами. Боюсь здесь уже без ВК не обойтись.
А с ВК еще под 9 директом уже давно есть — только по сути то это не 1С а просто С…
Круто:) Первая игра, которую плюсанул и скачал!
Нашёл отличие от оригинала: твой снаряд не уничтожает снаряд противника. Т.е. они пролетают мимо друг друга и умирают оба!
Да, реально круто!
1С’ники теперь Вам должны — за популяризацию платформы )))
Спасибо, друзья, за столь лестные отзывы! Зашел и прям настоящее пятничное настроение))))
На счет уничтожения друг друга — это чтоб побольше мяса было (ну экшн все же))
Чтобы было как в классике, надо строки с 1300 заменить с
Показать
заменить на
Показать
Платформа 8.2.19.130:
{Форма.Форма.Форма(1070)}: Поле объекта не обнаружено (Картинка)
ЭлементИгры.Картинка = Новый Картинка();
Так хотел поиграть, и так не хотца разбираться((((
У кого появляется ошибка — запускайте на платформе 8.3. На 8.2 у области ячеек табличного документа не было свойства «Картинка»
(15) ASDF2, Т.е.
— неправда?)))
(16) Alex_E, По ходу, да))) Все это было написано на 8.3 на конфе в режиме эмуляции 8.2.13. Я без задней мысли и указал это.И везде где проверял, запускались уже обновленные платформы. Но я исправился!
И написал-таки под «голый» 8.2 , плюс оптимизировал сам графический вывод, поэтому сейчас на моем тестовом компе — 32 FPS и все работает под 8.2.19.130. Пришлось даже начальную скорость ограничить, т.к. боты не давали пройти даже первый уровень.
(0) Круто
Круто! А сетевая версия будет?)
Мужик! Реализация достойная уважения!)))
(10) «у 1С проблемы с шейдерами» — на этой фразе заржал в голос.
Чйорт, реально круто, неистово плюсую!
Пипец рабочему дню 🙂
Мультиплеер бы ещё запилить )
Круто!
Это песня! 🙂
Мультиплей по сетке еще сделайте, на работе все юзеры ошалеют 🙂
Pr-Mex в свое время сделал эмулятор Денди на чистом 1С без внешних компонент. Думаю, ему статья понравится. У вас, я так понял, не эмулятор оригинального кода, а именно портированная на 1С игра?
автору респект)
побольше бы таких интузиастов…
феерия!!
Так и не понял, какая кнопка отвечает за выстрел.
В хелпе и в статье также не нашел упоминания.
Нажимая все кнопки подряд обработка вешается, лечется только перезапуском.
(17)
на 8.3 будет работать только с 8.3.5
> Для объекта ОбластьЯчеекТабличногоДокумента реализованы свойства Картинка
(0) Круто! Остался без обеда )))
(26) Evil Beaver, На счет Pr-Mex и эмулятора Денди — интересно было бы взглянуть на эту разработку. Да, действительно это не NES, это написанная на 1С обработка. Из самой игры заимствованы ресурсы с картинками и звуки. Остальное — чистой воды вымысел))
(29) WellMaster,
Игрок 1,клавиатура:
Клавиша «Enter» — выстрел, выбор пункта меню
Клавиша «Вверх» — движение танка вперед
Клавиша «Вниз» — движение танка назад
Клавиша «Влево» — движение танка влево
Клавиша «Вправо» — движение танка вправо
Игрок 2, мышь
— Движение мыши в специальной области экрана по виртуальным
кнопкам «U»D»L»R» повторяет действия на клавиатуре,
остановка — перемещение мыши в центр этой области
— нажатие левой кнопки мыши — выстрел
(23) vlad.frost,
Под мультиплеером подразумевается
А более 2-х танков союзников?
B управление вражескими танком?
C второй танк — управляется также но с другого компа в локальной сети
D второй танк — управляется также но с другого компа в инете?
Ностальгия) Почти как Quake на осцилографе)
спасибо джедайский человек
(9) спасибо вам огромное! Вы — волшебник!
Сейчас объясню. Люди «старой формации», ну те самые, которые начинали свой путь в 1С на 1С 6.0 и на 1С 7.7, со времен появления 8 -ки (и типовых решений для нее), стали время от времени впадать в задумчивость относительно бурного роста в ней числа объектов, свойств, методов, (и, что самое печальное, астрономического роста числа строк, цикломатической сложности и прочих метрических показателей, включая число ошибок на 1000 строк кода).
Парадоксальность ситуации состоит в том, что бухгалтерия соседней конторы осталась работать на 7 -ке. и прекрасно себя чувствует, выдавая во вне точно такие же отчеты, за меньшие деньги, за меньшее время, за меньшие трудозатраты, при меньших расходах на компьютерные ресурсы.
Спрашивается, кто и чего ради трудился «во глубине 1С руд»?
На что ушли человеко-месяцы, человеко- годы, человеко-десятилетие?
Как там у классика? «1С, куда ж несешься ты? дай ответ. Не дает ответа. Чудным звоном заливается колокольчик; гремит и становится ветром разорванный в куски воздух; летит мимо все, что ни есть на земли, и, косясь, постораниваются и дают ей дорогу другие прикладные системы бухгалтреско- экономического направления.»
И вот явились Вы и совершили чудо. «Проявили пленочку». Теперь мы видим четкое и ясное изображение вместо сплошной серой заливки.
Вот же оно!
Во-первых, нам стало ясно кто — видимо, на рубеже 2000-х руководством 1С было решено подразделение разработчиков экономического софта «укрепить» специалистами из подразделения софта для «игр и развлечений». Которые оттеснив на задний план старую гвардию, привнесли и в платформу, и в типовые решения много занимательного из своей области.
Во-вторых, нам стало понятно чего ради — а для того, оказывается, чтобы, не выходя из рамок 1С среды программирования, можно было написать игру.
Поздравляем дружный коллектив с победой в этой гонке с …… А с кем они соревновались-то?
Аплодирую стоя!
А выстрел в позицию полтанка вбок работает? Чо-т в упор стрелял — не убил 🙁
ЗЫ: Максимально-точный термин!!! 😀 XDXDXD
Показать
(38) sa1m0nn, спс)
Ага, это я в новой версии пофиксил.
Вот тайловый движок допилю и выкину, будет как в варкрафте.
(34)
было бы круто)
(40) olgerd666,
Ага, сделал уже давно, и можно даже вчетвером))
Круть. Марио будет? )
Слава, извините, но Вы Красавец с больших букв 🙂
Спасибо, ребят!
На всякий случай — все изменения в файле «Game City 1C_82 Multiplayer», а то у меня отображается что скачиваются первые версии.
Мне почему-то файло на почту не приходит… 🙁
(45) Эммм.. ну это скорее вопрос к техподдержке Инфостарта.
(46) Да понятно что вы тут не причем… )
Достойно уважения
(32) Нужно найти @Pr-Mex здесь или на гитхабе и попросить у него эту разработку (если он ее не потерял)
Оставлю заметочку, дома гляну. )) Пока обработочку попилю )
Да, ждём Half-life )
(49) Ого, было бы круто посмотреть на эмуль Денди на чистом 1С)
Чувак, жму твою мужественную руку!