Battle City на 1С

04.05.17

Задачи пользователя - Игры

Данная обработка представляет из себя реинкарнацию популярной в 90-е годы XX-го века игры на игровых консолях Dendy, Nintendo и пр.: "BattleCity"(c)Namcot (Танчики ). Воспроизведен оригинальный геймплей, уровни и аудиовизуальный контент. Никаких внешних компонент не использовано. Написано на "голом" 1С82 в неуправляемых формах. Добавлен мультиплеер.

Скачать исходный код

Наименование Файл Версия Размер
BattleCity1C_82
.epf 725,12Kb
65
.epf 1.015 725,12Kb 65 Скачать
BattleCity1C_83
.epf 723,08Kb
270
.epf 1.0 723,08Kb 270 Скачать
Game City 1C_82 Multiplayer
.epf 1,85Mb
58
.epf 1.0.27 1,85Mb 58 Скачать

Всем доброго дня!

В одной из своих прошлых публикаций, где-то в комментах я высказал примерно следующее: "..на внешних компонентах можно и шутер в 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С!

Танчики в 1С BattleCity 1C таймеры в 1С Первый шутер в 1С

См. также

"Уголки" на 1С

Игры Платформа 1С v8.3 Узбекистан Абонемент ($m)

Игра "Уголки" на 1С - ностальгия детства !!!

1 стартмани

09.06.2021    7917    8    Rafael-87    5    

19

Игра "Змейка" на управляемых формах (клиент)

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Пишем игру с динамическим обновлением игрового поля и управлением с клавиатуры на управляемых формах, отправляем на github.

1 стартмани

07.06.2021    6793    3    alexey_kurdyukov    0    

7

Игра "The Game"

Игры Платформа 1С v8.3 Россия Бесплатно (free)

Движок RPG игры на языке 1С.

04.06.2021    16718    348    moiseeves    25    

81

Игра "King's Bounty"

Игры Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

Легендарная игра "King's Bounty" теперь и на 1С!

3 стартмани

26.05.2021    9891    33    Caliban    25    

54

Самые красивые шахматы для 1С на управляемых формах

Игры Платформа 1С v8.3 8.3.14 Россия Абонемент ($m)

Здравствуйте, представляем Вашему вниманию классическую игру – Шахматы! Написана игра средствами 1С, на управляемых формах. Программный код представляет собой с аккуратностью составленную систему, содержащую лаконичные логические приемы и описательные имена переменных, объектов и функций. Программа полностью отлажена и многократно протестирована. Оригинальный авторский дизайн фигур, иконок и кнопок приятен глазу. Игра содержит большое количество функций, настроек и режимов игры, включая сетевую игру, тренировку с ботом или игру на двоих. Не упустите возможность найти ряд технических решений, применимых для реализации различных задач, а также поиграть в вечную игру с отличным оформлением! Желающие научиться программировать на управляемых формах могут многое почерпнуть в этой конфигурации.

5 стартмани

18.02.2021    11423    27    compmir    32    

67

Морской бой для 1С: 8.3

Игры Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Игра на управляемых формах, запуск на любых конфигурациях. Морской бой – популярная игра с простыми правилами. Задаваясь вопросом, как выиграть в морской бой, игроку в этом всегда поможет удача, а если с вами будет играть опытный и давний соперник, который уже знает, как можно находить корабли соперника, тогда задача усложняется!

30.11.2020    6753    330    AlexDen    6    

14

Сапер на управляемых формах

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Обнаружил, что на компе нет стандартных игр, включая сапера. Написал свою версию.

1 стартмани

23.09.2020    7402    2    VitSim    5    

6

Морской бой в 1С (обычные и управляемые формы)

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Классическая популярная игра "Морской бой" для 1С (обычные и управляемые формы)

1 стартмани

15.06.2020    6767    9    Denr83    0    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. GROOVY 2506 05.08.16 10:11 Сейчас в теме
Круто!
wolder; serverstar; SerVer1C; Dmitri93; AleksKol; корум; AlexGroovy; +7 Ответить
2. Lancelot-2M 115 05.08.16 10:49 Сейчас в теме
3. 1v7 235 05.08.16 11:44 Сейчас в теме
Всегда удивляли такие программисты (в хорошем смысле этого слова). Которые на голом энтузиазме пишут подобные штуковины. Сколько ушло времени на эту разработку!!!))) Можно было написать пару заказных отчётов и заработать N-сумму денег! Нееет... Он пишет игруху из 90-х! Достойная вещица! Респект Вам и уважуха!
sunduk85; Alex_8; 1c_uZer; AleksKol; uncle_Vasya; +5 Ответить
9. slava_1c 546 05.08.16 14:03 Сейчас в теме
(3) 1v7, Спасибо, рад что понравилось)))
Да нет, не волнуйтесь времени после того, как я наткнулся на ресурс со спрайтами этой игры прошло чуть больше 2х недель)) Причем основу я написал дня за три - там кода-то всего ничего, потом неделю искал средство увеличить скорость ну и на причесывание (затупливание АИ ботов и проверка столкновений) еще неделя ушла. Не в ущерб отчетам, короче)))
wolder; serverstar; +2 Ответить
37. leasing 5 17.08.16 00:25 Сейчас в теме
(9) спасибо вам огромное! Вы - волшебник!
Сейчас объясню. Люди "старой формации", ну те самые, которые начинали свой путь в 1С на 1С 6.0 и на 1С 7.7, со времен появления 8 -ки (и типовых решений для нее), стали время от времени впадать в задумчивость относительно бурного роста в ней числа объектов, свойств, методов, (и, что самое печальное, астрономического роста числа строк, цикломатической сложности и прочих метрических показателей, включая число ошибок на 1000 строк кода).
Парадоксальность ситуации состоит в том, что бухгалтерия соседней конторы осталась работать на 7 -ке. и прекрасно себя чувствует, выдавая во вне точно такие же отчеты, за меньшие деньги, за меньшее время, за меньшие трудозатраты, при меньших расходах на компьютерные ресурсы.
Спрашивается, кто и чего ради трудился "во глубине 1С руд"?
На что ушли человеко-месяцы, человеко- годы, человеко-десятилетие?
Как там у классика? "1С, куда ж несешься ты? дай ответ. Не дает ответа. Чудным звоном заливается колокольчик; гремит и становится ветром разорванный в куски воздух; летит мимо все, что ни есть на земли, и, косясь, постораниваются и дают ей дорогу другие прикладные системы бухгалтреско- экономического направления."

И вот явились Вы и совершили чудо. "Проявили пленочку". Теперь мы видим четкое и ясное изображение вместо сплошной серой заливки.
Вот же оно!
Во-первых, нам стало ясно кто - видимо, на рубеже 2000-х руководством 1С было решено подразделение разработчиков экономического софта "укрепить" специалистами из подразделения софта для "игр и развлечений". Которые оттеснив на задний план старую гвардию, привнесли и в платформу, и в типовые решения много занимательного из своей области.
Во-вторых, нам стало понятно чего ради - а для того, оказывается, чтобы, не выходя из рамок 1С среды программирования, можно было написать игру.

Поздравляем дружный коллектив с победой в этой гонке с ...... А с кем они соревновались-то?
dvsidelnikov; ErshKUS; japopov; Lancelot-2M; корум; +5 Ответить
4. TODD22 18 05.08.16 11:49 Сейчас в теме
Так глядишь кто нибудь и Quake с half life сделает на 1с :)
5. nagaitseff 173 05.08.16 11:54 Сейчас в теме
6. Famza 84 05.08.16 12:24 Сейчас в теме
А когда Hilf-Life будет на 1С?
10. slava_1c 546 05.08.16 14:13 Сейчас в теме
(6) Famza, )) у 1С проблемы с шейдерами. Боюсь здесь уже без ВК не обойтись.

А с ВК еще под 9 директом уже давно есть - только по сути то это не 1С а просто С...
21. necropunk 9 10.08.16 09:43 Сейчас в теме
(10) "у 1С проблемы с шейдерами" - на этой фразе заржал в голос.
jeyrico; dj_serega; madonov; sa1m0nn; catsam; shard; pbahushevich; +7 Ответить
7. PrinzOfMunchen 83 05.08.16 12:49 Сейчас в теме
Не работают:
{Форма.Форма.Форма(1070)}: Поле объекта не обнаружено (Картинка)
ЭлементИгры.Картинка = Новый Картинка();
8. slava_1c 546 05.08.16 13:37 Сейчас в теме
(7) PrinzOfMunchen, Оч. странно - перед тем как выложить проверял на разных платформах и компах, в том числе на удаленке по rdp. Работает в режиме обычного приложения везде, не зависимо от конфигурации. Что за платформа? Если можно - скриншот.
11. klinval 338 05.08.16 14:18 Сейчас в теме
Круто:) Первая игра, которую плюсанул и скачал!

Нашёл отличие от оригинала: твой снаряд не уничтожает снаряд противника. Т.е. они пролетают мимо друг друга и умирают оба!
корум; SvoyakMartin; +2 Ответить
12. nodalt 9 05.08.16 15:43 Сейчас в теме
Да, реально круто!
1С'ники теперь Вам должны - за популяризацию платформы )))
13. slava_1c 546 05.08.16 19:35 Сейчас в теме
Спасибо, друзья, за столь лестные отзывы! Зашел и прям настоящее пятничное настроение))))
На счет уничтожения друг друга - это чтоб побольше мяса было (ну экшн все же))
Чтобы было как в классике, надо строки с 1300 заменить с
			
	                       Если Найти(НайдТанк[0].Type,"П") тогда
					//Просто пуля
				ИначеЕсли Найти(НайдТанк[0].Type,"Н")  тогда
					//Это ништяк
				ИначеЕсли НайдТанк[0] = Actor тогда
					//это тот же объект
				ИначеЕсли НайдТанк[0].Whose = Actor.НомерСтроки-3 тогда
					//это пуля этого танка
				ИначеЕсли НайдТанк[0].НомерСтроки-3 = Actor.Whose тогда
					//это пуля этого танка
				Иначе
					возврат  Новый Структура("Что,Х,У","POS:"+СокрЛП(СтрЗаменить(НайдТанк[0].НомерСтроки,Символы.НПП,"")),й,ы);
				КонецЕсли;	
Показать

заменить на

		
		Если НайдТанк[0] = Actor тогда
					//это тот же объект
				ИначеЕсли НайдТанк[0].Whose = Actor.НомерСтроки-3 тогда
					//это пуля этого танка
				ИначеЕсли НайдТанк[0].НомерСтроки-3 = Actor.Whose тогда
					//это пуля этого танка
				ИначеЕсли Найти(НайдТанк[0].Type,"Н")  тогда
					//Это ништяк
				ИначеЕсли Найти(НайдТанк[0].Type,"П") тогда
					//Это пуля
					возврат  Новый Структура("Что,Х,У","POS:"+СокрЛП(СтрЗаменить(НайдТанк[0].НомерСтроки,Символы.НПП,"")),й,ы);
				Иначе
					возврат  Новый Структура("Что,Х,У","POS:"+СокрЛП(СтрЗаменить(НайдТанк[0].НомерСтроки,Символы.НПП,"")),й,ы);
				КонецЕсли;	
Показать
14. Alex_E 2355 05.08.16 20:16 Сейчас в теме
Платформа 8.2.19.130:
{Форма.Форма.Форма(1070)}: Поле объекта не обнаружено (Картинка)
ЭлементИгры.Картинка = Новый Картинка();
Так хотел поиграть, и так не хотца разбираться((((
15. ASDF2 288 07.08.16 09:11 Сейчас в теме
У кого появляется ошибка - запускайте на платформе 8.3. На 8.2 у области ячеек табличного документа не было свойства "Картинка"
16. Alex_E 2355 07.08.16 09:17 Сейчас в теме
(15) ASDF2, Т.е.
Написано на "голом" 1С82 в неуправляемых формах.
- неправда?)))
17. slava_1c 546 08.08.16 03:32 Сейчас в теме
(16) Alex_E, По ходу, да))) Все это было написано на 8.3 на конфе в режиме эмуляции 8.2.13. Я без задней мысли и указал это.И везде где проверял, запускались уже обновленные платформы. Но я исправился!
И написал-таки под "голый" 8.2 , плюс оптимизировал сам графический вывод, поэтому сейчас на моем тестовом компе - 32 FPS и все работает под 8.2.19.130. Пришлось даже начальную скорость ограничить, т.к. боты не давали пройти даже первый уровень.
30. avasl 74 11.08.16 10:40 Сейчас в теме
(17)
на 8.3 будет работать только с 8.3.5

> Для объекта ОбластьЯчеекТабличногоДокумента реализованы свойства Картинка
18. Жолтокнижниг 258 08.08.16 21:59 Сейчас в теме
19. tristarr1 58 10.08.16 08:23 Сейчас в теме
Круто! А сетевая версия будет?)
20. ixilimuse 191 10.08.16 08:37 Сейчас в теме
Мужик! Реализация достойная уважения!)))
22. sound 535 10.08.16 10:46 Сейчас в теме
Чйорт, реально круто, неистово плюсую!
Пипец рабочему дню :)
dj_serega; sa1m0nn; gigapevt; +3 Ответить
23. vlad.frost 186 10.08.16 11:09 Сейчас в теме
Мультиплеер бы ещё запилить )
Zhilyakovdr; pbahushevich; +2 Ответить
34. slava_1c 546 11.08.16 15:09 Сейчас в теме
(23) vlad.frost,

Под мультиплеером подразумевается

А более 2-х танков союзников?
B управление вражескими танком?
C второй танк - управляется также но с другого компа в локальной сети
D второй танк - управляется также но с другого компа в инете?
40. olegmedvedev 65 22.09.16 15:51 Сейчас в теме
(34)
второй танк - управляется также но с другого компа в локальной сети
было бы круто)
41. slava_1c 546 22.09.16 19:32 Сейчас в теме
(40) olgerd666,
Ага, сделал уже давно, и можно даже вчетвером))
24. Nuuq 76 10.08.16 12:29 Сейчас в теме
25. Serjik78 1289 10.08.16 13:02 Сейчас в теме
Это песня! :)

Мультиплей по сетке еще сделайте, на работе все юзеры ошалеют :)
26. Evil Beaver 8120 10.08.16 13:36 Сейчас в теме
Pr-Mex в свое время сделал эмулятор Денди на чистом 1С без внешних компонент. Думаю, ему статья понравится. У вас, я так понял, не эмулятор оригинального кода, а именно портированная на 1С игра?
32. slava_1c 546 11.08.16 14:47 Сейчас в теме
(26) Evil Beaver, На счет Pr-Mex и эмулятора Денди - интересно было бы взглянуть на эту разработку. Да, действительно это не NES, это написанная на 1С обработка. Из самой игры заимствованы ресурсы с картинками и звуки. Остальное - чистой воды вымысел))
49. Evil Beaver 8120 04.05.17 10:45 Сейчас в теме
(32) Нужно найти @Pr-Mex здесь или на гитхабе и попросить у него эту разработку (если он ее не потерял)
52. olegmedvedev 65 10.05.17 17:40 Сейчас в теме
(49) Ого, было бы круто посмотреть на эмуль Денди на чистом 1С)
27. artik1994 10.08.16 16:39 Сейчас в теме
автору респект)
побольше бы таких интузиастов...
28. mike_grig 120 11.08.16 08:21 Сейчас в теме
29. WellMaster 104 11.08.16 09:23 Сейчас в теме
Так и не понял, какая кнопка отвечает за выстрел.
В хелпе и в статье также не нашел упоминания.
Нажимая все кнопки подряд обработка вешается, лечется только перезапуском.
33. slava_1c 546 11.08.16 14:54 Сейчас в теме
(29) WellMaster,

Игрок 1,клавиатура:

Клавиша "Enter" - выстрел, выбор пункта меню
Клавиша "Вверх" - движение танка вперед
Клавиша "Вниз" - движение танка назад
Клавиша "Влево" - движение танка влево
Клавиша "Вправо" - движение танка вправо

Игрок 2, мышь

- Движение мыши в специальной области экрана по виртуальным
кнопкам "U"D"L"R" повторяет действия на клавиатуре,
остановка - перемещение мыши в центр этой области
- нажатие левой кнопки мыши - выстрел
31. premierex 204 11.08.16 12:37 Сейчас в теме
(0) Круто! Остался без обеда )))
35. DiBas 11.08.16 15:26 Сейчас в теме
Ностальгия) Почти как Quake на осцилографе)
36. stas1976 14 12.08.16 15:22 Сейчас в теме
спасибо джедайский человек
38. sa1m0nn 28 29.08.16 13:58 Сейчас в теме
Аплодирую стоя!
А выстрел в позицию полтанка вбок работает? Чо-т в упор стрелял - не убил :(
ЗЫ: Максимально-точный термин!!! :D XDXDXD
Ништяки = Новый Массив();
Ништяки.Добавить(Спрайты.lopat.Картинка);
Ништяки.Добавить(Спрайты.granat.Картинка);
Ништяки.Добавить(Спрайты.star.Картинка);
Ништяки.Добавить(Спрайты.kaska.Картинка);
Ништяки.Добавить(Спрайты.tank.Картинка);
Ништяки.Добавить(Спрайты.freezer.Картинка);
Показать
39. slava_1c 546 14.09.16 05:13 Сейчас в теме
(38) sa1m0nn, спс)

Ага, это я в новой версии пофиксил.
Вот тайловый движок допилю и выкину, будет как в варкрафте.

42. CSiER 35 30.09.16 14:54 Сейчас в теме
43. dj_serega 392 11.10.16 11:30 Сейчас в теме
Слава, извините, но Вы Красавец с больших букв :)
44. slava_1c 546 11.10.16 12:49 Сейчас в теме
Спасибо, ребят!
На всякий случай - все изменения в файле "Game City 1C_82 Multiplayer", а то у меня отображается что скачиваются первые версии.
45. DrBlack 23 27.03.17 11:24 Сейчас в теме
Мне почему-то файло на почту не приходит... :(
46. slava_1c 546 28.03.17 11:57 Сейчас в теме
(45) Эммм.. ну это скорее вопрос к техподдержке Инфостарта.
47. DrBlack 23 28.03.17 12:37 Сейчас в теме
(46) Да понятно что вы тут не причем... )
48. maksa2005 534 04.05.17 08:10 Сейчас в теме
50. KazanKokos 10 04.05.17 10:53 Сейчас в теме
Оставлю заметочку, дома гляну. )) Пока обработочку попилю )
51. Dzenn 874 04.05.17 18:00 Сейчас в теме
53. sertak 314 20.08.18 12:04 Сейчас в теме
Чувак, жму твою мужественную руку!
Оставьте свое сообщение