Автор одной из самых популярных игр на Infostart.ru: как и зачем писать игры на 1С

01.08.2024      3944

Все игры на Infostart.ru мы публикуем бесплатно. Так мы получаем «полигон» для экспериментов, где каждый может попробовать свои силы в нестандартных задачах разработки. Ну и просто посмотреть, на что горазды коллеги. 

Мы поговорили с автором одной из самых популярных игр раздела – «Змейка». Эмиля Бочкова (Dipem P) рассказала, как появилась идея для разработки игры, стоит ли тратить на это время, и что дает такая практика специалисту.  

Зачем писать игры на 1С

Думаю, 1C-игры делают для развлечения и для того, чтобы бросить себе вызов: написать игру в системе, не предназначенной для разработки игр. Но вне зависимости от вида игры – будь то судоку, кроссворд или что-то динамическое, змейка или Марио – для создания полноценного «продукта» нужно многое учесть. Начиная с понимания логики игры, концепции и заканчивая спецэффектами и дизайном. И, естественно, понадобятся знания механизмов разработки в 1С, чтобы суметь с их помощью воплотить в жизнь свою идею.

Как родилась идея написать змейку на 1С

Как я работала над змейкой – наткнулась на Инфостарте на множество разных статей по играм и вдохновилась написать свою! 

«Змейку» я писала в свободное от работы время и совсем по чуть-чуть, потому что изначально была лишь идея, и разработка осуществлялась на ходу, с большими перерывами.

В силу того, что в сфере программирования на 1С я молодой специалист – с опытом чуть больше года, змейка писалась долго, почти месяц. Но зато это помогло мне взглянуть на 1С с другой стороны и почувствовать себя хоть немного, но разработчиком не только полезных для предприятий программных продуктов, но и разработчиком игр. Мне очень понравился этот опыт, ведь в свободное время я играю в видеоигры. Совместить хобби и работу было хорошим решением.

С чего начиналось построение игры

Любая игра начинается с логики построения. Есть ли в игре уровни? Будут ли они генерироваться или будет фиксированный, заранее заготовленный список уровней? В первом случае, например, нужно погрузиться в теоретическую часть и изучить алгоритм генерирования уровней в этой конкретной игре и суметь написать алгоритм, используя средства 1С. 

Особенность разработки игр конкретно в 1С заключается в том, чтобы эффективно подобрать метод реализации игры механизмами 1С – иногда это непростая задача. 

 

Вот так выглядит интерфейс «Змейки» на 1С

 

«Змейка» же довольно распространенная и простая задачка в программировании, так что идея для реализации сразу пришла в голову. Сложностей не возникло, разработка оказалась очень простой. Я использовала объект встроенного языка СписокЗначений для хранения списка координат тела змеи, каждый элемент из списка координат представляет собой пару цифр. По мере движения змеи список меняется, а при встрече с яблоком список удлиняется.

Самый распространенный объект для построения игры

На мой взгляд, самым распространенным объектом, используемым при разработке игр на 1С является «Поле табличного документа». С его помощью можно отрисовывать любой дизайн, в силу вашего терпения, конечно, так как недостаточно только нарисовать, нужно сделать так, чтобы и отображалось правильно, если в игре есть динамика. 

Все остальные объекты/методы, думаю, используются повсеместно, без них не обойтись и в любой другой задаче. Главное – грамотно ими воспользоваться.

Планы по развитию игры

После того, как игра была готова, я поделилась ей с коллегами, и мне порекомендовали опубликовать ее на Инфостарте. Как я и написала в статье, в будущем я планирую доработать змейку, добавив в нее новые возможности. Как уже отметили в комментариях к игре, коду требуется доработка: рефакторинг, чистка и оптимизация по мелочи. 

Основываясь на предыдущем опыте, хочется написать что-нибудь еще и при этом продумать лучше логику игры, заняться оптимизированием, поглубже изучить механизмы 1С.


Все игры на Инфостарт

Автор:


См. также

Новость Infostart Awards Сообщество

Две недели назад мы обновили премию INFOSTART AWARDS и объявили о ее перезагрузке. Сегодня представляем шорт-лист номинантов – заслуженных участников сообщества, чьи достижения в 2024 году оказались наиболее заметными.

06.02.2025    1016    vikad    4       

27

Новость Infostart Awards Сообщество

Изучив опыт предыдущих премий, мы решили обновить формат INFOSTART AWARDS и подчеркнуть самые значимые достижения года. Все, кто попадут в шорт-лист премии 2024 года, будут приглашены на конференцию TEAMLEAD & CIO EVENT 2025.

20.01.2025    1193    vikad    12       

12

Новость Сообщество

Дорогие участники сообщества, поздравляем с наступающим Новым годом. Пусть 2025 год станет для вас временем блестящих идей и удачных решений!

28.12.2024    1132    DaryaRasina    1       

9

Новость Infostart Awards Сообщество

У нас несколько новостей для тех, кто уже подал заявку на премию Infostart Awards. И для тех, кто еще не подал, но собирался это сделать. Рассказываем об изменениях подробнее.

27.12.2024    1318    DaryaRasina    11       

7

Новость Сообщество Стартмани

С 1 декабря с авторов больше не будет удерживаться комиссия 20% при скачивании файла за стартмани.

29.11.2024    3137    DaryaRasina    29       

37

Новость Infostart Awards Сообщество

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

27.11.2024    951    DaryaRasina    5       

25

Новость Сообщество

Компания Инфостарт расширяет команду специалистов и открывает набор на вакансию разработчика 1С.

13.11.2024    2766    DaryaRasina    5       

19

Новость Сообщество

Объявляем прием заявок на премию Infostart Awards 2024 открытым и напоминаем о правилах отбора лауреатов.

12.11.2024    4668    DaryaRasina    25       

34
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 868 01.08.24 17:09 Сейчас в теме
Во многих играх требуются часы реального времени (если то не пасьянсы), что в 1С невозможно получить. Поэтому различные механики просто НЕ реализуемы.
10. bayselonarrend 2448 03.08.24 20:55 Сейчас в теме
(1) У некоторых хватает мужества даже в таких условиях делать по-большому)) Грех не вспомнить легенду
https://infostart.ru/1c/tools/1448104/
19. SerVer1C 868 06.08.24 12:04 Сейчас в теме
(10) В обычных формах можно было юзать виндовые контролы, что упрощало разработку (где-то тут даже были танчики из денди (nes)), а вот в управляемых формах визуализировать что-либо очень трудно.
2. RustIG 1836 01.08.24 18:30 Сейчас в теме
Никогда не вникал в алгоритм Змейки, но вот прочитал статью - и подумал, что, наверное, последнюю клетку хвоста удаляем, одну новую клетку головы рисуем - так двигается Змея, при увеличении длины тела Змеи - клетку хвоста не удаляем.
Остальное подсказано в статье - храним координаты расположения каждой клетки тела в массиве, при росте длины тела Змеи - размерность массива увеличивается.
Используем массив структур, каждая структура хранит - абсциссу (Х-координату) и ординату (У-координату).
В этой игре интересен как алгоритм хранения и движения Змеи, так и визуализация - перерисовка клеток табличного документа.
У программиста проявляется умение писать алгоритмы и умение работать с элементом формы документа - табличным документом.
Кто научится оперировать массивами структур, тому легче будет даваться понимание формата джейсон.
Пользуясь случаем, напишу, что подобная связка "массив структур" используется в такой работе как Обход объекта рекурсивно.
Еще очень удобно передавать с сервера на клиент подобную связку - массив структур. Пригождается, поскольку с сервера на клиента нельзя передать таблицу значений. Такие дела, коллеги
3. catman92 01.08.24 21:04 Сейчас в теме
(2) Рекомендуется не преобразование в массив структур, а ПоместитьВоВременноеХранилище
4. RustIG 1836 01.08.24 21:17 Сейчас в теме
(3) не понимаю вас...
как такового преобразования в массив структур в виде платформенной процедуры или функции нет в 1с и не бывает.
Массив структур наполняется и заполняется самим алгоритмом, написанным программистом.
Далее, чтобы сохранить данный массив структур между передачами между сервером и клиентом, и чтобы непосредственно передавать между сервером и клиентом данный массив структур - уже требуется такой финт ушами - как ПоместитьВоВременноеХранилище.
Я именно так представляю алгоритм.
6. catman92 02.08.24 09:05 Сейчас в теме
(4) Я о том, что можно просто сразу поместить таблицу значений во временное хранилище
7. RustIG 1836 02.08.24 13:08 Сейчас в теме
(6) если оперировать таблицей значений, то "да".
5. user1681028 25 02.08.24 07:21 Сейчас в теме
Отвечу кратко - абсолютно незачем. Есть миллион практических и сложных задач, свойственных для платформы и отрасли. Придумывание же себе подобного рода задач означает, что у вас нет достаточной нагрузки или интересных направлений для развития.
bayselonarrend; +1 3 Ответить
8. RustIG 1836 02.08.24 13:14 Сейчас в теме
(5) вы можете начать сразу со сложной задачи отрасли - и или ничего не придумаете (и потеряете время), или придумаете для узкого круга сценариев, и однажды вылетит ошибка... или начнете с "малого" - разбора и решения олимпиадных задач по программированию , нетривиальных задач по программированию. Именно в играх заложены самые нетривиальные способы хранения данных и алгоритмы...
тренируйтесь и развивайтесь - на играх уже известно много открытых алгоритмов, а вот сложные еще не решенные задачи в отрасли - по ним еще открытых алгоритмов нет, поэтому на них не получится тренироваться.
emilyabochkova; +1 Ответить
9. bayselonarrend 2448 03.08.24 20:46 Сейчас в теме
(8) Почему практическая задача не может быть простой?


тренируйтесь и развивайтесь - на играх уже известно много открытых алгоритмов, а вот сложные еще не решенные задачи в отрасли - по ним еще открытых алгоритмов нет, поэтому на них не получится тренироваться


Если не игры, то все как бы, тренироваться больше и не на чем. Геймдев - единственный подходящий полигон на пути настоящего 1Сника))

Я ничего не имею против того, что автор статьи занимается тем, что ему нравится. Но и с (5) согласен: имхо, не могу себе представить алгоритм в игре (реализуемой на 1С), который мог бы дать "тренировку" в решении задач, с которыми 1Сник РЕАЛЬНО может встретиться в настоящей работе. В чем тренировка? В том, чтобы научиться использовать "Самые нетривиальные способы хранения данных и алгоритмы"© при разработке учетных бизнесовых систем на 1С? На 1С, весь смысл которого скрывать максимум подобных технических проблем и нюансов под капотом платформы, а программисту оставлять работу только в domain-specific части. Сразу "Код в стиле барокко" вспомнился

Для "тренировки", если кому-то нравится такой формат, есть задачник на спеца. Для самореализации (я думаю, в данном случае, конкретно это больше играет) есть куча несложных, но отраслевых задач. Да, без готового алгоритма, но кому вообще было бы интересно писать подобный проект в области, где все уже 100 раз решено и разжовано?
Прикрепленные файлы:
12. RustIG 1836 03.08.24 21:01 Сейчас в теме
(9) не к месту прикрепили постер
13. bayselonarrend 2448 03.08.24 21:01 Сейчас в теме
(12) к месту
14. RustIG 1836 03.08.24 21:02 Сейчас в теме
(9) тренируйтесь на чем хотите, "хоть на котиках ", у меня в этом плане нет ограничений...
15. bayselonarrend 2448 03.08.24 21:04 Сейчас в теме
(14) спасибо, что разрешили
11. RustIG 1836 03.08.24 20:59 Сейчас в теме
(5) - у вас есть хобби?
- да, люблю рисовать после работы
- значит вы мало загружены на работе или у вас нет интересных направлений...
emilyabochkova; Viktor_Ermakov; +2 1 Ответить
16. user1681028 25 05.08.24 07:42 Сейчас в теме
(11) А мы не про хобби говорили, по забавному совпадению в качестве хобби я и сам делаю игры для мобилок. Отлично расширяет кругозор - заниматься и кодом и дизайном и вообще всем. А в статье конкретный посыл "как и зачем писать игры на 1С", мое мнение - не стоит. Тем более это и не игры получаются, а фигней на палочке.
17. RustIG 1836 05.08.24 09:32 Сейчас в теме
(16)
А мы не про хобби говорили, по забавному совпадению в качестве хобби я и сам делаю игры для мобилок. Отлично расширяет кругозор - заниматься и кодом и дизайном и вообще всем. А в статье конкретный посыл "как и зачем писать игры на 1С", мое мнение - не стоит.


Сколько людей - столько и мнений.

Странно, что вы это написали. Если сейчас не видите разницу между своим ответом и ответом автора, то прочитайте через год. Взгляните по-другому на всю переписку.
Цитирую текст статьи :
В силу того, что в сфере программирования на 1С я молодой специалист – с опытом чуть больше года, змейка писалась долго, почти месяц. Но зато это помогло мне взглянуть на 1С с другой стороны и почувствовать себя хоть немного, но разработчиком не только полезных для предприятий программных продуктов, но и разработчиком игр. Мне очень понравился этот опыт, ведь в свободное время я играю в видеоигры. Совместить хобби и работу было хорошим решением.
18. RustIG 1836 05.08.24 09:50 Сейчас в теме
(16)
- у вас есть хобби?
- да, люблю рисовать после работы
- значит вы мало загружены на работе или у вас нет интересных направлений...


У меня посыл был другой - с намеком и далекоидущий. Вы прямолинейно воспринимаете написанное. Замените слово "хобби" на слово "интерес". У каждого он свой.

Ваш аргумент про незагруженность специалиста и отсутствие интересных направлений - он не жизнеспособный.
Быть постоянно загруженным и участвовать постоянно в интересных направлениях - это не цель жизни и даже не смысл жизни. Это способ заработать на жизнь, а если направление интересное - то это еще и способ не выгореть на работе.

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

И, наверное, стоит помнить, что "всему свое время и место". Если у специалиста появилось желание попрограммировать игры на 1С - то это не навсегда, и через время желание пройдет, а накопленный опыт останется.

ПС. Я минус вам не ставил. Не понимаю, зачем эмоции выражать - когда мы обсуждаем предметно. На работе ведь минусы коллегам не ставите, за то что они выразили свое мнение...
Оставьте свое сообщение