Anton1978

Anton1978

Пикабушник
Дата рождения: 3 января
6736 рейтинг 17 подписчиков 22 подписки 10 постов 2 в горячем
Награды:
Пикабу 17 лет!5 лет на Пикабу
4

И снова про бесконечный космос⁠⁠

Снова здравствуйте мои дорогие читатели.

Всех, кто интересуется моим проектом спешу обрадовать, что он продолжает развиваться. Несмотря на то, что поседение 3 недели у меня был завал на работе (пришлось сдавать и готовить к сертификации основной проект), я находил время и на разработку игры Nomos: Last sector.

Так как времени было не много я успел только:

  1. Добавить 120 корпусов кораблей. NPC радостно их покупают и через 4-6 часов космос становиться очень пестрым. Но не думайте что это дофига, большинство кораблей фракционные (специальные для полиции, торгашей пиратов итд), где-то половина оставшихся для всех. Так же я добавил NPC предпочтения, чтобы они целенаправленно старались купить корабли своей фракции.

Звезды смерти поступили в продажу, если конечно у вас есть деньги

Звезды смерти поступили в продажу, если конечно у вас есть деньги

Занятно, но когда я запустил игру на 8 часов то заметил, что пираты предпочитают покупать корабли для полиции. Вот не знаю почему.

2. Научить NPC создавать флотилии (а да, пираты теперь объединяются в банды), впрочем, полиция от них не отстаёт. Но тут обнаружилась проблема, бои рассчитывались неправильно. Но, даже после исправления некоторые системы оказывались буквально захвачены пиратами и для этого не пришлось внедрять новую механику, всё происходит естественным путем.

3. Сгенерировать и обработать в фотошопе около 250 иконок для нового оборудования (старые иконки пушек и двигателей будут заменены). Само оборудование будет внедрено попозже. Среди него: камбуз, генератор топлива, солнечные панели, средства маскировки и многое другое

4. Поскольку мне намекнули что мой GUI плох, я поработал над его улучшением. Черт, да так самому стало удобнее.

вот серьёзно, видно стало лучше, но и это не предел

вот серьёзно, видно стало лучше, но и это не предел

5. С кораблей теперь берут деньги за парковку (а вы как думали, халява закончилась) и если денег нет и продать нечего корабль просто… банкротится и навсегда удаляется из игры. Вместо него рождается новый, с новым капитаном первого уровня.

6. И самое главное, я полностью заменил старую систему квестов и диалогов и написал с нуля новую.

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

Диалоги буквально зависят от того что есть у капитана в трюме, сколько у него людей на борту, какие у него характеристики C.A.P.T.A.I.N. , его криминального рейтинга и отношений с NPC (которые можно улучшить).

даже в глубоком космосе есть место маленьким житейским радостям

даже в глубоком космосе есть место маленьким житейским радостям

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

А самое приятное, что я внедрил систему поддиалогов. Что это? Смотрите, технически любой диалог это JSON файл, который парсится и создаёт задачи для ядра игры: отобразить что-то на сцене, нарисовать другой арт, вывести набор кнопок для ответов, давать награду, забрать квестовй предмет итд. Но я добавил еще одну возможность – загрузить новый JSON . так диалог можно расширять бесконечно и уводить его в другое русло. Например, вы просто болтаете с NPC о ценах и тут одна ключевая фраза меняет всё – она просто загружает новый диалог для квеста, так что игрок этого не замечает.
Сейчас я использовал это всего один раз, при диалоге с губернатором колонии, но в перспективе квест вам сможет давать вообще любой NPC.
А еще я сделал погрузку дополнительных сцен прямо в разговоре. Сказали ключевую фразу и вот вам уже не сцена диалога, а сцена обмена. И кто знает, может быть потом имеет смысл добавить мини игры, теперь технически это возможно.

чай ? кофе? поторгуем ?

чай ? кофе? поторгуем ?

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

разберемся что там стряслось на камбузе или ну их?

разберемся что там стряслось на камбузе или ну их?

ну вот в чем дело, а HR его так рекомендовал

ну вот в чем дело, а HR его так рекомендовал

Так что несмотря на то, что времени у меня было мало, кое-что новое было добавлено. Надеюсь, к Новому году уже будет минимальный работающий продукт.

Сейчас еще предстоит сделать:

  1. Еще улучшить GUI, тут есть куда расти

  2. Сделать больше квестов

  3. Добавить особые здания в пиратские базы и другие колонии, не относящие себя к звездной империи.

  4. Исправить один серьёзный баг, который мешает сохраняться (пожалуй, займусь этим уже сегодня)

  5. Добавить окно загрузки (всё-таки 2-3 секунды у меня тормозит игра при смене сцены, надо это замаскировать)

  6. Сделать мини игру, я пока не придумал правила, только концепцию

  7. Внедрить четыре новые фракции NPC : военные, вторженцы из иного мира, почтовая служба, бродячие актеры

  8. Дописать исследование поверхности планет, а то я его забросил. Сейчас там можно ходить по поверхности и всё.

  9. Начать думать над механиками ендгейма, свой астроид, своя фирма, своя колония и может не одна.

Всем удачи и да прибудет с вами чистый вакум.

Показать полностью 6
10

Как написать живой космос за 40 дней и не сойти с ума (но это не точно)⁠⁠

Здравствуйте дорогие читатели, коллеги и игроки.

Итак, меня зовут Антон, и последнее время я увлекся игростроем. О своих успехах в этой отрасти я писал ранее Моя первая игра на itch.io и тут И снова про мою первую игру на itch.io.

Итак сегодня речь пойдет о новом проекте, который я назвал Nomos: Last sector. Вначале я планировал быстренько сделать нечто наподобие Merchant of the Skies, но в космосе. Но то-ли залюбовался на звезды, то ли сильно грезил о космосе, короче проект сейчас больше похож на смесь Космических рейнджеров и Distant Worlds. Это огромный 2D симулятор приключений в бесшовном космосе.

Итак, к делу, сам проект я начал делать его примерно 1 сентября 2026, сразу по окончании предыдущего. Был придуман небольшой лор и диздок, ибо я не люблю работать без техзадания (как говориться без ТЗ результат ХЗ).

Лор довольно прост: это сугубо научный лор без всякого глупого фэнтэзи и магии. Поэтому в игре реализованы: звезды, планеты, кометы, облака Оорта, космические драконы, аномалии и огромный квазар в центре.

Вначале я предполагал, что игрок просто летает с планеты на планету и спекулирует товарами, но сейчас в игре есть 100500 способов заработать: выполнять получения NPC, добывать полезные испускаемые в астероидах, исследовать аномалии (которых уже 4 типа), подбирать грузы в космосе и собственно торговля никуда не делась. В перспективе еще один вид заработка – перевозка пассажиров, NPC этим уже зарабатывают. А вот куда потратить деньги, над этим я еще работаю.

Вид на космос, маленькие хвостатые головастики на самом деле космические корабли. Хорошо видно облако Оорта

Вид на космос, маленькие хвостатые головастики на самом деле космические корабли. Хорошо видно облако Оорта

И так, на сегодня 12 октября 2026 симуляция работает без сбоев. Запущено 300 систем, вокруг каждой звезды крутиться в реальном времени от 3 до 9 планет (пояса астероидов реализованы как планеты, но их текстура подменяется системой частиц). У каждой планеты есть 30% шанс на появление кольца и от 0 до 3 спутников, некоторые спутники — это космические станции (фактически просто заменена текстура, но зато станция всегда обитаема). На обитаемых планетах от 1 до 5 городов. Между ними ровно 1000 кораблей: торговцы, шахтеры, полицейские, пираты, пассажирские лайнеры, ученые и пальщики. Список профессий может быть расширен, например я думаю сделать бродячие актерские труппы или даже почтовые дилижансы в космосе, перевозящие золото.

Но зум работает, на самом деле можно посмотреть и ближе

Но зум работает, на самом деле можно посмотреть и ближе

Сейчас я думаю, как реализовать военных, так как в игре пока нет глобального противостояния – она изначально про торговлю и экономику. Но это легко поправить. Реализован авторасчет боя между NPC, который привязан к показателям пилота, экипажа и оборудования. Пираты постоянно кого-то грабят, а полицейский патрули их ловят.

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

Корабли это не просто спрайты, у кораблей есть капитаны, а у городов губернаторы. Все они привязаны к RPG системе, которую я назвал C.A.P.T.A.I.N. Предчувствуя вопросы – да это калька с системы S.P.E.C.I.A.L. известной по франшизе Fallout.

Но в нашем случае это привязано к космосу :

C.A.P.T.A.I.N.

Charisma (Обаяние) — влияет на цены у торговцев, награды за квесты и мирные исходы в диалогах текстовых квестов.

Agility (Пилотирование / Реакция) — уклонение в космическом бою, починка корабля вручную в критической ситуации, реакция в квестах.

Perception (Внимательность) — обнаружение скрытых угроз на сканерах, поиск тайников на планетах, чтение скрытых мотивов NPC.

Technology (Техно-наука) — хакерство, знание инопланетных языков, ремонт оборудования, использование продвинутого оружия.

Intellect (Интеллект / Логика) — решение головоломок в текстовых квестах, тактические бонусы, исследование аномалий.

Nerve (Выдержка / Сила воли) — сопротивление ментальным атакам, критические попадания в бою, способность блефовать.

А список собственно навыков постоянно расширяешься. Перков и трейтов пока нет, их надо будет сделать потом, когда будут работать все механики, так как именно на механики они и должны влиять.

хорошо быть котом, а котом губернатором еще лучше

хорошо быть котом, а котом губернатором еще лучше

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

жизнь в колониях очень разная

жизнь в колониях очень разная

и зависит от района в котором вы её наблюдаете

и зависит от района в котором вы её наблюдаете

А вот экономика городов устроена очень интересно. У колоний есть типы правления, население, довольство и главное они производят ресурсы и товары. Все это завязано на систему построек. При генерации каждой новой игры городам раздаётся технологический уровень (от 0 до 20), здания так же имеют уровень. Затем город заполняется случайными зданиями от 0 до своего уровня. Так как каждое здание потребляет ресурсы и производит товар, это обеспечивает дефицит и производство товаров. И в случае дефицита цена на товар в городе растет, а если на складе товара много, то падает. Самый настоящий закон спроса и предложения в действии. Кстати, в игре уже 110 типов товаров и около 90 зданий.

и чего тут только нет, на самом деле много чего нет

и чего тут только нет, на самом деле много чего нет

Тип правления определяет список запрещенных товаров, так при теократии запрещены книги и алкоголь, а при анархии разрешено всё (только вот и налоги не собираются). На данный момент в игре 18 типов правления.

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

здания в колонии, эй - флаг генерируется случайно, как и названия планет и городов

здания в колонии, эй - флаг генерируется случайно, как и названия планет и городов

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

И самое странно что всё это на Godot, даже не на с++ а просто на GDscript и в одном потоке. При этом единственное проседание производительности есть при смене сцены, когда игрок попадает на глобальную карту, например при генерации игры или взлете с космопорта.
Как тебе такое Тодд Говард ?

Подводя короткий итог. Вышло немного сумбурно, но описать всё за раз невозможно. Если будет желание пишите и я расскажу больше о мире , о игре и о том как всё это умудряется работать. А пока что сделано многое, предстоит сделать еще больше. Космос живет, игрок тут только маленький винтик, которому предстоит стать огромной машиной.

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

Всем удачи.

Показать полностью 7
7

И снова про мою первую игру на itch.io⁠⁠

И снова здравствуйте.
Привет, для ЛЛ : я сделал игру, раздаю её бесплатно на itch.io , скачивать не нужно, она есть и в web версии. Прошу взглянуть и высказать своё фу проекту, а то и похвалить (да ладно, я знаю, что ни кто хвалить не будет). А сейчас я её очень неслабо обновил, убрал мелкие баги, добавил несколько ачивок и главное - сделал редактор уровней. А так же начал работу над новым проектом.

Подробнее:

Это продолжение моих терзаний и изысканий в области геймдева, начало которых я описывал тут Моя первая игра на itch.io

Прошло немного времени и я сделал улучшение проекта как и обещал.

  1. Были найдены мелкие баги, в частности особенно хочется поблагодарить пользователя пикабу @rationalizator который помог выявить непроходимость 9го уровня.

  2. Были устранены некоторые проблемы локализации, в частности в окне настроек вместо Громкость звука писало техническую информацию.

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

  4. И самое главное, в игру добавлен полноценный редактор уровней. Да, как в старых играх вроде Super Mario Maker или Lode Runner. Именно на нем и его создании я и хочу остановиться подробнее.

Итак, теперь вы можете рисовать свои полноценные уровни и не только тестировать их, но и играть всю игру с ними.

Редактор доступен из основного меню

Редактор доступен из основного меню

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

Внешний вид редактора

Внешний вид редактора

Вам само собой соблюдать эти правила не обязательно.
И так к делу, что представляет из себя редактор: на мой взгляд ничего сложного. Вы выбираете 1 из 20 уровней для редактирования , при этом он отобразиться в окне, мышкой выбираете что именно хочется нарисовать (стену, алмазы, камни итд) и начинаете творческий процесс. Вы можете даже поставить на сцену несколько игроков, но предупрежу – работать будет только один, остальные просто будут удалены при запуске уровня.
Чтобы облегчить процесс создания уровня, в редакторе есть кнопка Тест – она позволяет немедленно запустить лабиринт и поиграть в нем. Тест как я считаю должен быть частью любого подобного редактора. Ну просто, а вдруг вы решили отредактировать 18й уровень и доходить до него просто чтобы посмотреть это глупо.
Если результат вас устроил, то можно нажать кнопку Сохранить, в этом случае ваш уровень будет записан в специальный файл, где храниться альтернативные основным уровни. Во время игры система проверит, есть ли запись в этом файле и, если там есть запись о нужном в данный момент уровне будет загружен именно ваш лабиринт.  Если записи нет то отработает уровень зашитый в код по умолчанию.
Понятно что если уровень вышел неудачно или просто надоел, вы можете его стереть полностью, вернувшись к первоначальному варианту. Именно для этого есть кнопка – Очистить. Технически она просто убирает из системного файла с альтернативными лабиринтами запись о текущем уровне.
Кнопка Выход вернёт вас в основное меню игры, чтобы можно было продолжить играть.
И конечно есть две кнопки со стрелками, я не мог не добавить в редактор такие действия как Redo и Undo (даже не знаю, как это правильно перевести, но такое есть в любом профессиональном редакторе) и конечно к ним привязаны клавиши Ctrl + X и Ctrl + Y. Что они делают? Да то же что и во всех редакторах – отменяют ваши действия если что-то пошло не по плану.

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

Вот теперь я уверено скажу - в этой игре я реализовал всё что хотел. Конечно, изначально были планы и на другие механики. Так, например мне хотелось сделать подвижных врагов – дронов или злых роботов, которые бы пытались остановить нашего SUB-ROBOT 04 от его бесстрашной миссии, но это бы означало что робота нужно было вооружить и в целом превратить головоломку в аркаду. Так же была мысль сделать классическую головоломку с лазерным лучом и подвижными зеркалами. Была идея сделать выключатели, и отключать ими ловушки и еще много чего.
Но поразмыслив я решил не перегружать игрока, а оставить эти идеи для второй части. Её можно будет сделать уже более похожей на платформер или игру с видом с верху, дорисовать анимацию для SUB-ROBOT 04 и нарисовать врагов, а потом уже развернуться по полной. Сейчас же важно избежать ошибки всех долгостроев и выпустить хоть что-то работающее. Что, к моему удивлению, и было сделано всего за месяц.
Так что в данный момент я считаю, что проект завершен, хотя обещаю моментально реагировать на найденные баги, если таковые еще остались.  В целом в планах пока только техподдрежка Core Burrow (видимо это будет Core Burrow I ) и работа над следующим проектом.
И нет, это пока не вторая часть. Новый проект я уже начал писать, но пока даже не дал ему названия. Это будет симулятор космического торговца, нечто похожее на Merchant of the Skies , но в космосе и со своими особенностями , например боями и исследованиями аномалий которых так не хватало в Merchant of the Skies не смотря на всю его глубину.  

Рабочее название нового проекта - Nomos : Last sector

Рабочее название нового проекта - Nomos : Last sector

А на сём прощаюсь, всем приятно провести время.

Показать полностью 3
14

Моя первая игра на itch.io⁠⁠

Привет, для ЛЛ : я сделал игру, раздаю её бесплатно на itch.io , скачивать не нужно, она есть в и в web версии. Прошу взглянуть и высказать своё фу проекту, а то и похвалить (да ладно, я знаю, что ни кто хвалить не будет).

Подробнее.
Привет меня зовут Антон, мне 48 и я 30 лет тружусь в ИТ сфере (да, я начал заниматься этим когда это ещё не было мейнстримом).

Занимался всем, от ремонта ПК и сисадминства до ИТ безопасности и руководства ИТ отделом, но последние лет 7 работаю разрабом на Qt\c++. Однако истиной моей мечтой всегда было делать игры. Сейчас, когда моя жизнь стала поспокойнее, я решил реализовать свою мечту. И пусть я даже ничего с этого не заработаю, но хоть получу удовольствие от процесса.
Итак что я имел для реализации год назад:

  1. Стабильную работу, чтобы не думать о мелких расходах

  2. Небольшие знания программирования

  3. Желание сделать хотя бы простую игру, а в идеале игру своей мечты

  4. Не малейшего представления о том, как всё эти игры делают

За год я изучил какие есть движки, какие языки в них можно использовать, попытался их освоить, написал себе диздок и лор будущей игры аж на 83 страницы, нагеренировал к ней кучу артов,  попытался научиться рисовать 2D и 3D, понял что художник их меня еще хуже чем программист, отчаялся и забил на Unreal Engine и игрострой в целом, стер все свои наработки в акте отчаянья, одумался и восстановил их из копии, а месяц назад начал писать маленькую, но работающую игру на Godot вместо огромной игры своей мечты на Unreal.
Итак что за проект и как я его делал:

Сам проект называется Core Burrow, название ничего не значит и по сути просто выбрано случайно, чтобы не быть похожим на остальные бесчисленные игры, выходящие тысячами каждый день.

Итак, в чем идея игры. Так как я застал эпоху Commodore 64 и Atari то решил начать с малого и отдать дань уважения играм эпохи 80х. Игра в целом навеяна такими шедеврами той эпохи как Boulder Dash и The Adventures of Robbo и что греха таить - при разработке я вначале пытался копировать их стиль и механики. Но на самом деле получилось не плохо, через какое-то время пришла идея добавить в игру немного лора и хорора (для таинственности) и ряд других механник.
В целом Core Burrow это смесь того самого Boulder Dash и The Adventures of Robbo с добавлением большого числа текстовых сообщений для погружения в лор. В игре есть камни которые могут упасть на голову, стреляющие пушки, алмазы которые надо собирать (спойлер - на самом деле это кристаллы памяти сумасшедшего суперкомпьютера ) и многое другое.
И есть герой, вот такой забавный робот – «Разведчик 'SUB-ROBOT 04'». За него и играем.

«Разведчик 'SUB-ROBOT 04'» в процессе создания

«Разведчик 'SUB-ROBOT 04'» в процессе создания

Слабой стороной игры я считаю её лабиринты. Откровенно говоря, можно и лучше – больше и масштабнее, хотя для первой игры сойдет, их всегда можно переделать.

Процесс разработки. Собственно, на Godot и его GDScript я вначале смотрел с недоверием. В конце концов ни где кроме Godot эта технология не встречается. Был большой соблазн писать на C#, но как выяснилась сборка на C# не работает в WEB, так что я отбросил лишнюю гордость и полез в документацию Godot. Оказалось, что не так страшен черт, как его малюют. Самое сложно там это не сам язык, он проще Python. Страшно обилие строенных классов и их методов, вот от них действительно разбегаются глаза. Особенно если не знать, для чего они. После системного программирования и GUI на Qt многие вещи казались мне тут не совсем очевидными. Не смейтесь, но на помощь пришел ИИ, оказывается с его помощью можно не только сочинять глупые рассказы и рисовать мемы, но и не плохо обучаться незнакомым языкам программирования.
За пару дней я узнал, что есть в Godot в целом (ну или большую часть) и много нового об игровых технологиях и алгоритмах. Это дало мне понимание почему в игровых движках всё работает именно так, а не иначе. Блин, великая вещь нейронки.
Смешно, но такие вещи как цикл программы или сигналы были мне хорошо знакомы по Qt. А вот тайлы это что-то новое. Должен заметить, что работа с тайлами в Godot это настоящее искусство, мне показалось, что движок специально под них заточен. Не думаю, что нужно делать урок по тайлам, их полно в интернете, но не отметить их прекрасную работу в Godot было просто невозможно.

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

При том что механик было сделано не мало. Падающие камни и земля как в Boulder Dash, бомбы и пушки с автострельбой как в The Adventures of Robbo, разноцветные двери и разноцветные ключи к ним, телепорты, заброшенные сервера для чтения лора и главное игрок, который со всем этим взаимодействовал. Всё это позволяет создавать действительно сложные лабиринты.

Сами лабиринты я рисовал в прямо в TileMapLayer с помощью встроенных в редактор средств, так что остро стоял вопрос как заставить камни падать, а бомбы взрываться. Вопрос решился просто, камни, бомбы и другие интерактивные элементы заменялись на сцены Area2D прямо при старте лабиринта. А замену выполняет … скрипт игрока. Каждый раз на новой сцене у него отрабатывает void _ready():  так что там вызывается метод для обхода всех тайлов на уровне и замены некоторых их на сцену bomb или rock . И нет, заменяются не все тайлы, в этом просто нет необходимости. На самом деле у падающих камней и бомб нет физики, они проверяют соседний тайл и если там пустота начинают проигрывать анимацию падения (перемещения на соседнюю клетку - twin) и по прошествии анимации мгновенно перемещаются на нужную позицию. Если там в этот момент игрок – ему сразу хана, если и под этой клеткой ничего нет, то продолжаем падение.

игра в процессе тестирования

игра в процессе тестирования

Так что никакой перегруженности лишними вычислениями – CPU по возможности отдыхает.
А чтобы все это красиво смотрелась на многие тайлы наложен шейдер, который так же не загружает CPU (только GPU – но этот пусть работает) .
Итак в результате получилась гремучая смесь из кое-как нарисованной мной векторной графики, музыки с Suno (вот только не надо смеяться и показывать пальцем, кто тут из нас композитор? ) звуков со стоков и моего говнокода (опять же кое где его помогал писать бесплатный Gemini ибо в шейдерах я не смыслю).
К своему удивлению я так же узнал что у itch.io есть образ для сборки проектов на Godot, но нет никакого api для создания ачивок. Если первое очень обрадовало, так как сразу удалось настроить полноценный CI/CD на GitLab (делаю git push и игра обновлена), то второе откровенно расстроило – ачивки нужны, раз уж я делаю свой минимальный работающий продукт.
Вопрос был решен радикально – своя система ачивок. Ну да, это не настоящие ачивки, это их имитация. Просто GUI сделан так, что при достижении определенных результатов появляется всплывающее окно похожее на получение ачивки и программа ведет учет получения этих ачивок в специальном скрытом файле. Вы получаете псевдо ачивки и можете их увидеть в соответствующем меню игры

Достижение: Блинчик – вас раздавило камнем

Достижение: Блинчик – вас раздавило камнем

И коллекция ваших достижений))
Там же можно сбросить свои ачивки (технически вы просто очистите файл системного сохранения) и получить их заново.

список достижений

список достижений

Так как игра во многом является оммажем старым играм, я реализовал демонстрацию игрового процесса, то что в старых играх называлось Attract Mode. На него можно посмотреть на самой первой сцене при просмотре стартового меню. Робот будет имитировать хождение по карте и пытаться что-то делать. На самом деле все его движения четко запрограммированы, если присмотреться, то можно увидеть, как он ходит по одному и тому же маршруту. Как говориться мелочь, а приятно.
Чтобы не растягивать статью, пожалуй, подведу небольшой итог.
Что сделано:

  1. готов минимальный продукт – в игру можно играть, её можно пройти.

  2. Реализованы все механики (хотя можно и расширить их список)

  3. Сделано 20 уровней

  4. Сделаны кат сцены начала игры и победы

  5. В конце игры можно увидеть статистику – ничего особенного, просто сколько раз вас убило током, сколько собрали кристаллов итд

  6. Все красиво свистит и пердит

  7. Я придумал свою систему ачивок не привязанную не к одному API

  8. Настроен CI/CD для itch.io

  9. Черт, я узнал много нового, воистину - век живи век учись.

Что можно улучшить:

  1. Расширить количество получаемых ачивок, раз есть такая система, то можно и её расширить. Спойлер: уже нарисовал 6 новых иконок для новых достижений.

  2. Надо сделать редактор уровней, как в старом Lode Runner или Mario Forever. Пусть кому хочется рисует свои лабиринты.

  3. Графика и код, мне есть куда расти. Доделаю этот проект, переделаю брошенные проекты (сейчас их два) и напишу такую крутую игру чтобы все сказали вау.

Короче, приглашаю всех посмотреть мой проект тут https://greatskydrake.itch.io/core-burrow
Если зайдет хоть одному человеку я старался не зря.

Показать полностью 4

Хроники МУРа: Операция «Белая Кошка»⁠⁠

История основана на реальных событиях. Все участники, проживают в одной квартире вместе с автором.

На дворе был сорок шестой год. Москва, как старый кот после тяжёлой драки, зализывала раны, но боль ещё не отступила. В воздухе, помимо дыма из печных труб, витал горький привкус войны, а на улицах зияли прорехи разрушенных домов, похожие на пустые глазницы. В кабинете старого начальника уголовного розыска, Кота Винтика, пахло махоркой и запахом сырых газет. Сам Винтик, видавший виды чёрный кот с прищуренными глазами и измятым ухом, медленно крутил усы, глядя на своего лучшего опера. В его глазах отражалась тяжёлая усталость, которая, казалось, была старше самого города.

Напротив сидел Кот Федя, шотландский вислоухий в черную полоску с короткими жёсткими усами. Он был из тех, кто не любил лишних слов, предпочитая им дело, но и его лапы непроизвольно напряглись, когда Винтик двинул по столу толстую папку.

— Дело, Федя, дюже серьёзное. Банда, называет себя «Белая Кошка». Во главе — кошка Белка. Подельники — котяра-силач Пушок и шустрый Снежок. Промышляют на продовольственном складе. Тащат кошачий корм... В стране разруха, у людей крохи на столе, а у этих — горы консервов. Одним словом, беспредел. Они не простые, Федя. Все наши обычные методы провалились. Подумай, как к ним подступиться. Придумай план. Я верю в тебя.

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

После разговора с Винтиком Федя вышел на улицу. Запрыгнув на подножку старого, дребезжащего трамвая, он ехал на окраину Москвы, в свою комнату в общежитии. Из-за запотевшего стекла он смотрел на пролетающие мимо дома. В голове крутилась одна мысль: как поймать банду, которая, словно призраки, растворялась в московских подворотнях. Он перебирал варианты: засада, слежка, допрос... Но все они казались бесполезными. Они были слишком осторожны. Он спустился с трамвая и, минуя темные дворы, вошел в старое здание. Комната была маленькой, с обшарпанными стенами, и в ней было только самое необходимое: жёсткий матрас, стол да две миски на полу. Никаких излишеств, никаких домашних украшений. Всю свою жизнь Федя посвятил работе, и этот аскетичный быт был отражением его полного самоотречения. Здесь не было места для семьи или личного комфорта — только для долга. Федя лёг на матрас, уставившись в потолок, и вдруг его осенило. Единственный способ — стать одним из них, войти в их логово. Он встал, подошёл к столу, взял в лапы карандаш и начал набрасывать план. Единственный путь — внедриться.

Федя начал работать. Он не спешил, методично собирая информацию. Заняв место на задворках, он пустил слух, что он бывалый кот-карманник, беглец с северных окраин. Поначалу его игнорировали. Дни напролёт он просиживал на холодных подоконниках, питаясь крохами, которые удавалось найти. Он сближался с другими беспризорными котами, слушая их разговоры, отыскивая ниточки. Постепенно его репутация росла, и вскоре на него вышли.

Сначала появился Пушок, огромный, пушистый, сиамского окраса, с виду увалень, а в глазах — огонь и хитрость. Он был сыт и ухожен, его шёрстка блестела под светом уличных фонарей, что резко контрастировало с серыми, голодными котами вокруг.

— Говорят, ты лихой кот, — пророкотал Пушок, смерив Федю взглядом. — Пойдём, есть разговор.

Он отвёл Федю в старый подвал, который служил логовом банды. Внутри не было грязи и сырости, как в других подвалах, а стоял густой, манящий запах консервов и рыбы. В центре логова, на мягком старом диване, окружённая горами еды, сидела сама Белка. Её шёрстка, белоснежная и пушистая, сияла в полутьме, а глаза, как два изумруда, не выражали и капли милосердия. Рядом с ней, неторопливо уплетая что-то из большой миски, сидел Снежок, чёрный и пушистый, с видом знатока всех подворотен, будто он всё на свете знает, но ничего никому не скажет. Роскошь этого места поразила Федю. Их лапы утопали в горах сухого корма. Никакой разрухи, никакой нужды — только изобилие. Это был другой мир, построенный на чужом горе, и Федя почувствовал, как в нём закипает праведный гнев.

— Ну, лихой, что у нас по району? — начал допрос Снежок. — Чьи дворы под Павелецкой, кто рыбу с Дорогомиловского тащит?

Федя, не моргнув глазом, ответил, как по учебнику: — Под Павелецкой всем заправляет Рыжий. А на Дорогомиловском — банда одноглазого Бориса. Но в последнее время там шарятся какие-то чужаки, говорят, что из Тулы.

Пушок, огромный и пушистый, недовольно покачал головой. — А про крышу на «Трехгорке» что слышал? Там намедни шухер был.

Федя знал, о чём говорит Пушок. Это было известное в уголовном мире место, где часто завязывались драки. Он прищурился, чтобы глаза выглядели более измождёнными. — Видел там пару оперов, в наглую крутились. Видать, по чужому следу пошли. Я держался подальше.

Белка наблюдала за всем молча, её глаза-изумруды пристально изучали Федю. Казалось, она видит его насквозь.

— Ты, значит, из нашей породы? — промурлыкала она, обводя Федю оценивающим взглядом. — Что ж, покажи себя.

Федя, не моргнув глазом, ответил: — Чтобы показать, нужно иметь чем жить. На такой работе проколешься в два счёта. Положите мне на сберкнижку сорок тысяч, и я ваш.

Наступила напряжённая тишина. Пушок оскалил зубы, готовясь броситься. — Ты, серый, вообще понял, с кем говоришь? — зарычал он. — Нам тут умников не надо!

Снежок ощетинился и выступил вперёд: — А не зажрался ли ты, бродяга? Сорок тысяч! Тебе ж и за полсотни лет столько не собрать!

Белка лениво подняла лапу, призывая их к молчанию. — Что ж, лихой, — промурлыкала она, — твоя наглость мне нравится. Но ты перегнул палку. Мы не благотворительный фонд. Утром Пушок сходит в сберкассу и положит тебе на книжку двадцать пять тысяч. Больше не дам. Если не устроишь, уходи сейчас. У нас тут, знаешь ли, с такими разговорами не шутят.

Федя, не моргнув глазом, вызвался стать «наводчиком» на новое дело. Он знал, что делает, но внутри всё сжималось от мысли о предательстве. Они спланировали всё до мелочей: Пушок должен был отвлекать сторожа, Снежок — блокировать вход, а Белка с Федей — проникнуть внутрь.

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

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

Федя, не тратя времени на раздумья, кинулся за Пушком. Лапы утопали в россыпи сухого корма. Пушок, огромный и сильный, увернулся от первого броска. Но Федя был быстрее. Он рванул с места, настиг Пушка, и они сцепились в яростной схватке. Пушок пытался вырваться, царапался, но Федя, хоть и был меньше, держал крепко, не давая ему и шанса.

В это время Винтик, в прошлом не менее грозный опер, настиг Белку на самом верху. Между ними не было слов, только хищные взгляды. Но вдруг он всмотрелся в её глаза, и в его памяти, словно на старой плёнке, пронеслось воспоминание: те же самые изумрудные глаза, та же белоснежная шёрстка, только тогда она была беззаботным котёнком, а он — молодым котом, только что принятым в МУР. Они оба были молоды и полны надежд.

— Матрёна? — его голос был тихим, почти неуверенным.

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

— Винтик, — выдохнула она, и в этом имени было столько разочарования, что Федя, стоявший в стороне, замер.

— Я думал, ты... Я думал, ты погибла в сорок первом, — прошептал он, и его ухо дёрнулось. — Как ты могла...

— А как мог ты? — её голос дрожал от сдерживаемых слёз. — Ты обещал, что мы будем вместе. Ты сказал, что война нас не разлучит. А потом я ждала тебя, ждала, когда ты вернёшься, а ты... Ты стал частью системы, Винтик. Ты забыл о своих словах, о своей клятве.

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

Снежок тем временем, яростно сопротивлялся. Его не просто нашли в мешках — он оказался настоящей головной болью для оперов. Когда первый из них, молодой котяра по кличке Рыжик, попытался схватить его, Снежок извернулся, нанеся ему точный удар в нос. Рыжик с визгом отскочил. Второй опер, матёрый, с орденом на груди, попытался прижать Снежка к стене, но тот проскользнул мимо, как угорь, и скрылся в тени стеллажей. Он был невероятно быстрым и проворным, используя каждый ящик и мешок как укрытие. Но оперов было слишком много, и они окружили его. Снежок, видя, что выхода нет, решил идти до конца. Он ощетинился, зашипел, и его чёрная шёрстка встала дыбом. Он бросился на ближайших оперов, вцепившись когтями в их униформу. Только когда два ветерана-опера окружили его и, действуя согласованно, обездвижили, он, наконец, сдался.

Федя подошёл к Пушку, крепко держа его за шиворот. Пушок, увидев, что дело проиграно, забился в лапах у опера.

— Отпусти! — завизжал он. — Отпусти!

Федя только сильнее сжал хватку.

И тогда, глядя на Федю и его товарищей-котов, Пушок закричал на весь склад, так что эхо пошло по рядам с кормом:

— Волки позорные!!! Не хочу, не хочу! — заголосил Пушок, а потом затянул надрывным голосом: — Да на черной скамье, на скамье подсудимых, прокурорская дочь и какой-то жиган...

Белку и Снежка тоже арестовали. На допросе они сдались и признались во всём. На следующее утро в МУР завезли пять ящиков первосортной колбасы. Федя, вернувшись на место схватки, услышал едва слышный писк. За коробкой с кормом он нашёл маленького котёнка, сбившегося в комочек. Он был крошечным, но глаза и окрас не оставляли сомнений — это был сын Пушка.

Федя осторожно взял дрожащего малыша на руки. И в этот миг перед глазами Феди пронеслось его собственное детство. Не двор, не подворотня, а стерильный, безжизненный питомник, где он родился. Он никогда не знал тепла материнской лапы, не чувствовал её запаха. Его мир состоял из белых стен, чистых мисок и холодных полов. Он сам был "товаром", одним из многих, кого продадут в хорошие руки. Он знал, что такое быть одиноким, не зная своего рода, своей семьи. Глядя на этого сиамского котёнка, он видел не сына бандита, а самого себя — маленького и потерянного.

Сердце Феди сжалось. Он прижал малыша к себе, и тот прижался к нему.

— Живи, позорный волк, живи… — прошептал Федя, обращаясь и к арестованному Пушку, и к его сыну. Но он знал, что для того, чтобы в мире был порядок, нужно было нарушить клятву, и на его душе навсегда останется след от этого выбора.

Спустя несколько дней Федя был вызван в кабинет Винтика. Начальник сидел за столом, на котором вместо папок с делами лежала бархатная подушечка. На ней, поблёскивая в свете настольной лампы, покоился новенький ошейник с небольшой металлической пластинкой.

— Ты, Федя, — произнёс Винтик, — заслужил эту награду. За доблесть и отвагу.

Винтик встал, подошёл к Феде и сам надел на него ошейник. Металл был прохладным и тяжёлым.

— Но цена, — тихо сказал Федя. — Цена велика. Я не смог отпустить его. Он оставил после себя... наследника.

Винтик положил лапу ему на плечо. — За всё приходится платить, сынок. За всё. Зато теперь в городе на одного волка стало меньше. И на одного героя больше. Ты сделал выбор. И котёнок будет жить. А это важнее, чем все наши правила.

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

Эпилог
Прошло несколько лет. Москва расцвела, город стал чище, а в МУРе на Петровке сменилось уже несколько поколений. Но двое старых друзей по-прежнему сидели на своих местах. Федя, уже не просто опер, а начальник своего отделения, с гордостью носил свой старый ошейник. Рядом с ним, на подоконнике, где когда-то сидел сам Федя, теперь сидел молодой, сильный кот. Он был сиамского окраса, но глаза его горели не огнём хитрости, а пламенем справедливости.

Никто не знал, кто его настоящий отец, и никто ему об этом не говорил. Для него отцом был Федя, который научил его всем правилам улицы, а также и правилам чести. Малыш ловил мышей и никогда не воровал. Он был быстрым, как ветер, и храбрым, как его приёмный отец.

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

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

Показать полностью
439

Ответ Forelist в «Суд удовлетворил иск Генпрокуратуры к издателю "Мира танков"»⁠⁠5

Всё проще , я уверен что у Лесты исправление багов и вообще развитие игры - не приоритетная задача. И людей у них для этого нет.

Я год назад откликнулся на вакансию Лесты, вот эту https://spb.hh.ru/vacancy/68381561

qt/c++ и графика, как раз моя тема. Ну думаю - почему и нет.

Не прошел, но это нормально, все бы ничего, но есть ньюанс. Разговор с сотрудниками Лесты был настолько неприятный, что эти люди вызвали у меня омерзение на физическом уровне (это не метафора).

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

Затем собеседование вел какой-то парень - типа техническое собеседование, первый вопрос был - как службы обмениваются данными друг с другом? Ну я ему рассказал про шаредмемори, про сокеты итд. Оказалось он имел ввиду рестапи, про шаред мемори впервые слышит - этот человек не знает разницы между микросервисами и службами. Потом он меня добил, незнанием элементарных вещей, например при разговоре о многопоточке он настаивал, что каждый элемент ГУИ работает в отдельном потоке(да да, каждая кнопка), когда я ему объяснил про патерн подписчик, он настаивал, что это тоже многопоточный патерн - блядж, мужик перепутал патерны Подписчик и Потребитель.

Дальше по ходу дела, выяснилось что он джавист, а про Qt даже не разу не слышал (еще раз - вакансия на Qt/c++). Но типа ему пофик, я мол и так разбираюсь в программировании. Ага, я вижу.

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

Сам разговор строился тоже не дай Боже - меня постоянно перебивали , не дослушав ответ и спрашивали снова о простых терминах. Ты вообще спрашиваешь меня или сам не знаешь ? Я уже и где знал, просто отвечал - не знаю, ибо задолбал. Надо бы в жопу послать.

После собеса кинул их в ЧС и запретил им просмотр моего резюме на HH.

Обратите внимание, вакансия всё еще висит - они не нанимают людей. Им не нужны были разрабы, им нужны только маркетологи и финтек.

Так что в топку эту фирму. Развивать свою продукцию они не планируют. Новых игр не создают.

Показать полностью
122

Потерялся кот⁠⁠

Добрый день.

Помогите пожалуйста найти потерявшегося кота, пропал кот Барсик, проживал по адресу Санкт-Петербург, ул Декабристов д.28 . Кот домашний на улице не разу не был, мы за него очень волнуемся.

Если у вас есть информация о его местонахождении, пожалуйста позвоните хозяйке - +7 952 363-78-68 (Рита).

Потерялся кот
Показать полностью 1

Богоугодное дело⁠⁠

Всем лучи добра.

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

Неужели кто-то все еще ведется на это ?

Богоугодное дело
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества