Пестрая подборка гифок на водную тематику
1
![Пестрая подборка гифок на водную тематику Гифка, Ассорти, Вода, Длиннопост](https://cs13.pikabu.ru/post_img/2024/03/11/9/171016617415486268.jpg)
2
![Пестрая подборка гифок на водную тематику Гифка, Ассорти, Вода, Длиннопост](https://cs14.pikabu.ru/post_img/2024/03/11/9/171016617611105449.jpg)
3
![Пестрая подборка гифок на водную тематику Гифка, Ассорти, Вода, Длиннопост](https://cs13.pikabu.ru/post_img/2024/03/11/9/1710166177168688478.jpg)
4
![Пестрая подборка гифок на водную тематику Гифка, Ассорти, Вода, Длиннопост](https://cs14.pikabu.ru/post_img/2024/03/11/9/1710166183191135289.jpg)
5
![Пестрая подборка гифок на водную тематику Гифка, Ассорти, Вода, Длиннопост](https://cs14.pikabu.ru/post_img/2024/03/11/9/1710166184125689364.jpg)
6
![Пестрая подборка гифок на водную тематику Гифка, Ассорти, Вода, Длиннопост](https://cs14.pikabu.ru/post_img/2024/03/11/9/1710166185155189083.jpg)
1
2
3
4
5
6
📌 Игры в этом списке 📌
1. 00:10 - Tiny Chaos ▶ 🛡️https://store.steampowered.com/app/2500680/Tiny_Chaos/
Описание игры: Динамичный экшен в стиле рогалик. Сражайтесь с ордами монстров и боссами. Выживайте, повышайте уровень, улучшайте атрибуты и навыки.
2. 01:06 - Grym Wonder ▶ 🏹https://store.steampowered.com/app/2243080/Grym_Wonder/
Описание игры: Сражайтесь без устали мире игры Grym Wonder, созданной в стиле power-fantasy с элементами rogue-lite, где вы один на один с тысячами монстров и их предводителей.
3. 02:03 - Barold: Inferno ▶ 🗡️https://store.steampowered.com/app/2213430/Barold_Inferno/
Описание игры: "Barold: Inferno" - это захватывающая игра в жанре roguelike с элементами подземелья. Сражайтесь со слизью, демонами, богами и порочными людьми в девяти кругах ада, используя различное оружие, способности и улучшения.
4. 02:54 - Fantasy Madness: Bloodbath ▶ 🪽https://store.steampowered.com/app/2185180/Fantasy_Madness_B.....
Описание игры: Fantasy Madness: Bloodbath - это roguelike action-survival игра, в которой силы природы сражаются с ордами зла. Получайте новые навыки, добывайте мощные предметы и побеждайте всех, кто встанет на вашем пути... Во что бы то ни стало!
5. 03:52 - Splash Carnival ▶ 💢 https://store.steampowered.com/app/2870950/Splash_Car..
Описание игры: Spash Carnival - это roguelike-шутер с пейнтбольным оружием. Вооружайтесь разнообразным низкопробным оружием, брызгайте на врагов и двигайтесь вперед!
6. 04:32 - Artifact Seeker ▶ 🧩https://store.steampowered.com/app/2510720/Artifact_Seeker/
Описание игры: На континенте Аврориум, который был захвачен Королем Демонов Пустоты, герои добывали артефакты различными способами, побеждали большое количество врагов и постоянно совершенствовали свою силу, чтобы в конце концов победить Короля Демонов и спасти мир.
7. 05:52 - Pesticide Not Required ▶ 🐸https://store.steampowered.com/app/2479320/Pesticide_Not_Req.....
Описание игры: Выкашивайте бесчисленные посевы и уничтожайте тварей, создавая при этом разрушительные для игры способности! Pesticide Not Required - это экшен-roguelite игра с элементами фермерского симулятора, которая предлагает огромное количество статов и особых характеристик персонажа, чтобы создать дико разнообразные возможности для бега.
8. 06:47 - Arksync ▶ 🤖https://store.steampowered.com/app/1828800/Arksync/
Описание игры: Созданная на пепелище шутеров с двумя палками, Arksync развивает жанр с помощью стремительного движения игрока и боя. Выживайте, покупайте оружие, утилиты и улучшения, а затем рискуйте всем, сражаясь за выживание и забирая домой игрушечного медвежонка.
9. 08:17 - Maniac ▶ 🔞 https://store.steampowered.com/app/1482380/Maniac/
Описание игры: Вы когда-нибудь уставали от всего этого? Готовы к переменам? Хотите поставить все на хаос и разрушение? Маниак - игра, в которой мир идет против вас, а ваше безумие порождает хаос!
10. 09:42 - When the Light Dies ▶ 🔦https://store.steampowered.com/app/2185990/When_the_Light_Di...
Описание игры: When the Light Dies — игра на выживание с элементами roguelite. Погрузись в мир непроглядного мрака и мерзлых пустошей, где тебе предстоит в одиночку противостоять тьме и ужасам, которые она таит.
Видео и музыка предназначены для информационных целей 16 + 🎮
Все авторские права принадлежат их законным владельцам. 💽
Примечание: Дата выпуска может быть изменена. 💢
Программисты и игроделы, привет! Полгода назад я писал про наш путь к открытию первой пиксельной игровой. Сегодня хочу рассказать, как мы решили проблему разработки игр путём перехода с Go на Lua и публикации исходников, а также о планах делиться частью выручки со сторонними разработчиками.
Мой основной язык разработки – Go, соответственно он и был выбран для разработки сайд-проекта, а значит и все игры для проекта изначально тоже были написаны на нём. Но ровно в тот момент, когда сайд-проект превратился в тыкву самостоятельный бизнес, встал вопрос целесообразности использования Go для написания игровых механик. Сам по себе язык отличный и прекрасно справляется со своей задачей, но хотелось упростить процесс найма людей для разработки игр, и в воздухе маячила идея открытия свободного доступа сторонним разработчикам.
Нужна была удобная платформа для разработки, а т.к Go – язык компилируемый, то было сложно сделать стенд для тестирования кода, не предоставляя доступ к исходникам игрового контроллера. Поиск решения привёл меня к идее использовать скриптовый язык Lua.
Как оказалось, язык Lua – очень простотой в изучении и использовании, но в то же время один из самых быстрых и производительных скриптовых языков программирования! Де-факто он является стандартом в игровой индустрии и используется, например, в таких играх, как World of Warcraft, Roblox, Minecraft и Angry Birds.
Для интерпретации Lua скриптов на Go есть неплохая виртуальная машина GopherLua. По производительности она сравнима с Python версией, но, конечно, уступает нативной реализации на C. Но нам не космолёт строить, логика игр часто весьма простая, и в крайнем случае сложные вычисления можно будет вынести обратно на сторону Go.
Интегрировать машину в существующий Go код оказалось весьма просто и заняло буквально пару дней. Она позволяет как выполнять Lua код из Go, так и вызывать Go код из Lua. Я был приятно поражён гибкостью такого решения и очень пожалел, что откладывал момент интеграции так долго.
Для управления игрой я выделил 11 обязательных методов (я ни разу не игродел, соответственно буду рад обсудить ваши варианты):
StartGame(gameJson, configJson) – старт игры. Тут декодируем игровой и конфиг json для инициализации игры и её стартового состояния;
NextTick() – тик игрового мира, здесь обычно описана вся основная логика. В текущих реалиях вызывается ПРИМЕРНО каждые ~35мс (28 кадров в секунду), но ориентироваться на время периода нельзя, вместо этого нужно использовать абсолютное время. Не вызывается, когда игра на паузе или завершена;
RangeFloor(setPixel, setButton) – опрос снапшота пола, вызывается в тот же игровой тик следом за NextTick(), чтобы забрать состояние пола для отрисовки;
GetStats() – забор статистики игры, вызывается сразу за RangeFloor() для получения информации для отрисовки игрового табло;
PauseGame() – событие паузы игры;
ResumeGame() – событие снятия игры с паузы;
SwitchStage() – дополнительный рычаг админу для переключения этапа, может быть полезен в некоторых играх;
PixelClick(click) – событие клика/отпускания пикселя;
ButtonClick(click) – событие клика/отпускания кнопки;
DefectPixel(defect) – событие дефектовки/раздефектовки пикселя;
DefectButton(defect) – событие дефектовки/радефектовки кнопки;
Нас тут коллеги из Испании спрашивали: а как вы делаете так, чтобы не отправлять людей домой в случаях, когда что-то сломалось?
Отвечаем: у нас есть механизм дефектовки – это когда пиксель/кнопка, не реагирующие на нажатие, выводятся из игры и не блокируют игровой процесс. Чаще всего цвета они отображать могут, а нажиматься – уже нет. Таким образом, ни в одной игре на такие пиксели или кнопки больше не будет назначено задание и игроки в большинстве своём даже не замечают, что с полом что-то не так.
Иногда картина выглядит, прямо скажем, очень печально, особенно после нагруженных выходных дней, когда времени на ремонт/замены совсем нет:
Но мы работаем над качеством: в новой версии весовые датчики будут вдвое мощнее, а кнопки станут емкостными без физического нажатия.
После определения основных методов управления игрой мы переписали несколько наших ранее реализованных простых игр с Go на Lua. Исходный код можно посмотреть в репозитории github.com/pixel-quest/pixel-games, там же есть идеи некоторых игр в очереди на разработку + скромная Wiki с документацией.
Жизнеспособность идеи была подтверждена, игры работали как надо. И даже управление аудиоплеером удалось прокинуть в Lua без особых проблем. Оставалось дело за малым – удобной платформой для тестирования скриптов.
Хотелось иметь онлайн платформу, в которой можно писать код игры и тут же запускать его на виртуальном пиксельном полу для тестирования. За основу был взят наш существующий админ-интерфейс, написанный на Vue. Я его сильно урезал в части функционала управления электроникой, оставил только виртуальный пол и прикрутил навороченный текстовый редактор в виде VS Code.
Для обеспечения прозрачного механизма отладки я сделал на вебсокетах проброс ошибок в виде всплывающих нотификаций и добавил возможность вывода в Lua коде дебаг сообщений log.print() прямо в консоль разработчика в браузере. Также есть валидация json при сохранении конфигов.
Пока что поддерживается работа только с одним набором файлов (скрипт, игровой и конфиг json'ы) и нет истории изменений, так что надо быть очень аккуратным при сохранении или запуске игры. Эти доработки есть в планах, а пока что тестируем саму концепцию.
Пинг-понг на виртуальном полу, исходники есть в репозитории
Так как я опасаюсь лавинной нагрузки, с которой может не справиться мой говнокод дешевый VPS, я пока что не готов выкладывать прямую ссылку на ресурс, но я готов буду выдать доступ всем заинтересованным при личном обращении в специальном телеграм чате: @pixel_quest_games
Эта статья является своего рода проверкой интереса сторонних разработчиков к нашей платформе. Сейчас мы напрямую платим фрилансерам за разработку, но в перспективе мы готовы выделять процент от выручки (в том числе всех будущих франчайзи) на выплаты авторам новых игр. Также рассматриваем идею создания портала, где каждый сможет выгружать свои игры и в реальном времени видеть статистику запусков и сумму вознаграждения. Можно даже онлайн камеры подключить, как у ДоДо. Но даже сейчас, если написанная вами игра окажется популярной, то мы в частном порядке придумаем, как платить вам роялти с каждого запуска! Огромных доходов здесь и сейчас не обещаю, но в перспективе пары-тройки лет это может оказаться весьма выгодной инвестицией вашего сегодняшнего времени: у нас весьма амбициозные планы на рост партнерской сети, и вы сможете получать вознаграждение с каждой из будущих локаций сети, где будет запущена ваша игра. Уже сейчас мы готовим к открытию 5 новых городов, в т.ч один за пределами РФ…
Также мы рассматриваем сотрудничество с детскими школами программирования и готовы предоставлять скидки на посещение комнаты для тестирования игр. Насколько нам известно, у многих родителей в детских школах программирования есть запрос, чтобы их ребенок по итогам обучения почувствовал, что на программировании можно зарабатывать. Мы хотим построить систему, в которой ученики смогут разрабатывать игры, и впоследствии получать роялти с каждого запуска его игры реальными клиентами.
Буду рад конструктивной критике в комментариях, а также вашим идеям для новых игр!
Кому интересно следить за развитием проекта Pixel Quest, подписывайтесь на наш телеграм канал @pixel_quest. Я пишу там исключительно сам и не чаще одного раза в 4-7 дней, маркетологов выгнал, больше планирую рассказывать про техническую составляющую проекта с постепенным уклоном в IT, плюс ежемесячно публикую финансовые отчёты.
Одна вакансия, два кандидата. Сможете выбрать лучшего? И так пять раз.