Test
test
test
Поздравляю всех с Новым 2023 годом! Если вам нечем заняться в эти праздничные выходные, то можете порисовать пиксели в моём аналоге r/Place (а также pxls.space и pixelcanvas.io) под названием PixelPlace.
Если кто-то не знает, кратко обрисую правила игры: Всем игрокам выдаётся огромный холст для рисования, но есть нюанс - рисовать можно только по одному пикселю по истечению таймера (в моём случае 1-10 секунд, появится надпись GO!) Размер таймера не всегда 10 секунд, он меняется в зависимости от количества игроков.
Я поработал над оптимизацией, теперь в игре нет лагов и задержек, всё работает плавно и максимально быстро.
Преимущества моей игры в сравнении с аналогами:
На выбор огромное количество цветов, чтобы удовлетворить любые хотелки игроков.
Режим одиночной игры, чтобы можно было сначала нарисовать свой арт без таймера, а потом поверх него рисовать уже в режиме мультиплеера.
Хочу выразить благодарность участникам группы Пиксельный уют и Himmel12 за тестирование и предложения по улучшению игры.
PixelPlace разработана на игровом движке Godot, открытый исходный код прилагается. Не пытайтесь запустить её на телефоне, игра не адаптировалась под мобилки.
Amnesia: The Dark Descent и Amnesia: A Machine For Pigs с этого дня распространяются по лицензии GPL3.
Моддинг был важной частью Amnesia. За годы существования The Dark Descent на ModDB накопилось более тысячи модов и дополнений. Разработчики чрезвычайно благодарны всему сообществу. Пришло время отплатить фанатам тем же, и Frictional Games выложили исходный код игр под лицензией GPL v3:
Помимо кода самих игр присутствует и код редактора.
При этом создатели игры сохраняют за собой авторские права, пользователи же имеют право пользоваться самим кодом в рамках GPL3 — можно изменять, копировать и распространять материалы.
Как пишут разработчики, они могли бы уже давно опубликовать код игры, но всегда были более важные дела. Но теперь, когда Amnesia: The Dark Descent исполнилось 10 лет, а до Amnesia: Rebirth осталось меньше месяца, они решили всё-таки порадовать сообщество.
В студии надеются, что это поможет не только моддерам, но и начинающим разработчикам, которые только знакомятся с геймдевом.
Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi
Не моё, пост с Хабра
Наступил тот долгожданный мной день, когда я наконец могу представить эту разработку. Проект был начат ровно год назад, 1 сентября 2018 года, по крайней мере в репозитории RRS на Gtihub первый коммит имеет именно такую дату.
Пассажирский поезд на станции Ростов Главный
Что такое RRS? Это открытый кроссплатформенный симулятор подвижного состава колеи 1520 мм. Читатель закономерно задаст вопрос: «Позвольте, а для чего нужен этот проект, если симуляторов железнодорожной тематики, как коммерческих, так и открытых, достаточное количество?» За ответом на этот вопрос я и предлагаю заглянуть под кат
История проекта
Когда-то давным давно, в 2001 году, увидел свет Microsoft Train Simulator (MSTS), породивший в нашей стране огромное сообщество ж/д-симмеров. За несколько лет, которые просуществовал этот проект (пока Майкрософт не забросила его, занявшись более интересными для неё вещами, типа обанкрочивания Нокии и т.п.) проект оброс массой созданных для него дополнений: маршрутов, подвижного состава, сценариев.
На основе MSTS, в последствии, был создан ряд других проектов, такие как OpenRails, RTrainSim (RTS) и прочие дополнения и производные. Появились и коммерческие проекты, такие как знаменитейший Trainz. И все бы хорошо, но многих любителей ж/д транспорта эти продукты не устраивают по вполне объективным причинам — они никак не отражают специфику отечественного подвижного состава, эксплуатируемого и разрабатываемого на постсоветском пространстве. Особенно остро это проявляется при взгляде на то, как реализуются тормоза поезда — ни в одном из перечисленных проектов нет и не будет нормальной реализации автоматических тормозов системы Матросова.
В неблизком уже, 2008 году появился другой проект — ZDSimulator, разработанный Вячеславом Усовым. Проект замечателен тем, что вышеперечисленные недостатки он учитывает и исправляет, при этом изначально ориентирован на подвижной состав русской колеи. Но есть одно большое «но» — проект проприетарный и закрытый, архитектурно не допускающий внедрение в него собственного подвижного состава.
В связи со всем вышеперечисленным возникла идея создания симулятора, который позволял бы разработчику дополнения для него получить полный контроль над физическими процессами, протекающими в подвижном составе. Сродни космическому симулятору Orbiter, для которого я разработал в свое время дополнение в виде семейства ракет носителей на базе Р-7. Год назад я взялся за эту работу и ушел в нее с головой. 26 декабря 2018 года увидела свет вот эта технологическая демка.
Моя работа была замечена энтузиастами, и известный в кругах ж/д-симмеров, создатель визуального контента для ZDsimulator Роман Бирюков (Ромыч РЖДУЗ) предложил мне помощь и сотрудничество в дальнейшем развитии проекта. Позже к нам присоединился еще один разработчик — Александр Мищенко (Ulovskii2017), создатель маршрутов для ZDsimulator. Наша совместная работа привела нас к первому релизу. На видео — некоторый обзор того, как игра выглядит к своему первому релизу
Особенности симулятора RRS
Прежде всего это — открытая программная архитектура. Не говоря даже о том, что код симулятора открыт, существует API и SDK, ориентированный на разработчиков сторонних дополнений к нему. Порог вхождения довольно высок — требуются базовые навыки разработки на языке C++. Симулятор написан именно на нем, с применением компилятора GCC и его варианта MinGW для операционной системы Windows. Кроме того, желательно знакомство разработчика с фреймворком Qt, так как многие концепции из него лежат в основе архитектуры игры.
Однако, при должном усердии и желании, данный проект открывает для разработчика дополнений огромные возможности. Подвижной состав реализуется в виде модулей на базе динамических библиотек. Основным структурным элементом в симуляторе является единица подвижного состава, или подвижная единица (ПЕ) — вагон (несамоходный или в составе моторвагонного поезда) или секция локомотива. API дает возможность задавать крутящий момент, приложенный к колесным парам ПЕ, в ответ получая угловую скорость колесных пар, а так же внешние параметры, вроде напряжения и рода тока в контактной сети. Больше симулятор ни о чем не знает и знать не хочет, что оставляет физику работы внутреннего оборудования на совести разработчика конкретного локомотива или вагона.
Не трудно догадаться, что такой относительно низкоуровневый подход дает возможность реализовать мельчайшие нюансы схемы локомотива. Кроме того, в комплект симулятора входит набор стандартного оборудования, устанавливаемого на отечественный подвижной состав: поездной кран машиниста усл. №395, воздухораспределитель усл. №242, кран вспомогательного тормоза усл. №254 и прочие элементы тормозного оборудования. Разработчику дополнения достаточно лишь соединить эти элементы в пневматическую схему конкретного локомотива или вагона. Кроме того, имеется API для создания собственных блоков оборудования.
Архитектурно RRS построен на взаимодействии двух главных процессов:
simulator — физический движок динамики поезда TrainEngine 2. Реализует физику движения поезда с учетом множества внешних факторов, учитывая взаимодействие подвижных единиц через сцепные приборы, занимается обработкой данных, поступающих из внешних модулей, реализующих физику работы оборудования подвижного состава
viewer — графическая подсистема, выполняющая визуализацию движения поезда, построенная на базе графического движка OpenSceneGraph.
Эти подсистемы взаимодействуют между собой через общую память, реализуемую на базе класса QSharedMemory фреймворка Qt. Первые демо-версии использовали IPC на базе сокетов, и в дальнейшем планируется возврат на эту технологию, учитывая доработку некоторых частей симулятора и потребности с прицелом на будущее. Переход на общую память был в какой-то степени вынужденной мерой, которая изжила себя.
Не буду описывать нюансы — многие из перипетий развития этого проекта уже изложены в моих публикациях на ресурсе, в частности у меня есть довольно обширный цикл туториалов по движку OpenSceneGraph, выросший как раз из практики работы над данным проектом.
В проекте не все так гладко как хотелось бы. В частности, графическая подсистема весьма далека до совершенства в части качества рендеринга, да и производительность сима оставляет желать лучшего. Данный релиз имеет одну цель — познакомить сообщество любителей ж/д транспорта с проектом, очертить его возможности и наконец-то создать открытый, кроссплатформенный железнодорожный симулятор с продвинутым API для разработчика дополнений.
Перспективы
Перспективы зависят от вас, наши дорогие будущие пользователи и разработчики. Проект открыт, существует официальный сайт, где можно скачать симулятор, с документацией, состав которой будет непрерывно пополнятся. Существует форум проекта, группа ВК, и канал на YouTube, где можно получить самую подробную консультацию и помощь.
Спасибо за внимание!
Привет =)
Я делаю игру на libgdx. Игра - бегалка/прыгалка/собиралка для мобильников.
За прошедшую неделю я сделал: youtu.be/1gn2xK7eEfQ
Исходный код: github.com/cyberbach/Adventure
- озвучены монетки и звёздочки
- при расстановке бонусов, нужен GMmode, а не долгое тупое копирование координат из Майи
- добавил пальмы
- сделал подсчёт звёздочек в рюкзаке
- оптимизировал физику. И сделал самостоятельные генераторы физических форм для куба, циллиндра и сферы по размерам модели. Или без размера модели.
- исправил ошибку в динамических уровнях - добавил проверку, которую я раньше считал не существенной. Пытались удалиться Entity, которые уже были удалены.
- скрипт движения NPC - горбатый, нужно его протестировать step-by-step. И, кстати, расстановка точек скрипта тоже делается в GMmode.
- смоделированы уже 4 больших уровня с физикой
- протестировал, обнаружил просадку фпс на 150+ рендер моделей с физикой на экране. Физику нужно тщательно упрощать. У моделей тщательно сокращать количество полигонов и обязательно (что я не делаю) сворачивать UV.
- при тесте меньше 100 рендер моделей на экране - фпс 61. По полигонам - меньше 5000 полигонов, хотя тут количество полигонов не сильно решает.
TODO:
- рефактор GameScreen
- упростить и улучшить GameMaster (GM) Mode в игре
- звуки шагов и звуки окружения/музыка
- заменить иконку для ingameMenu
- протестировать скрипт движения NPC
- свернуть UV на уровнях. Доработать модель лестницы.
- моделить 04-ую локацию со стеной и 05-ую за стеной
Всё что касается игры я делаю в прямом эфире на twitch.tv/cb_online , на ютубе, в контакте и на гуд-гейме. Чатики читаю =)
gl & hf
Доброго всем дня! Как ранее и обещал, выкладываю то что есть в open-source.
Исходники порта игры Nuts and Milk на Unity3d 5
Порт известной игры от Hudson Soft https://en.wikipedia.org/wiki/Nuts_%26_Milk
Портировано на Unity3D 5.3 но гугль не пропустил в стор за сим дебажить и доделывать не стал
Портировал по той причине что нравится этот процесс Никакой физики. Только скрипты.
Что не сделано
- Поиск путей немного не доделан для врагов. Иногда крутятся на месте
- Взаимодействие с миром немного не доделано. Больше всего заметно на стыке лестницы и платформы
- Уровней всего 12 из 50 (как в оригинале, но в сети есть вариант со 100 уровнями)
- Начисление очков не реализовано
- Таблица рекордов отсутствует
- Бонусные уровни не доработаны
- Управление джойстиком не реализовано
- Экранные кнопки не удобны
А в остальном всё работает, играется.
Привет, друзья! Наконец дошли руки опубликовать исходники мини-игрушки, которую я собирал в качестве тестового задания для одной компании. На проект потрачено два вечера. Плюс вечер на рефакторинг. Поэтому есть множество багов, сильно за них не бейте =)
Весь код лежит на Bicbucket, а описание, что и как работает - под катом.
И да, в репозитории лежит не проект, а только папка Assets. Поэтому не забудьте назначить объектам теги. Какие? Напишу ниже. Поехали!
Вот так выглядит игра. Просто и скромно. Фичи:
1 - Генерация карты при загрузке уровня. Вообще, карта собирается по словарю. Поэтому массив с объектами с карты можно хранить как угодно. Хоть в текстовом документе. Но в моём случае карта заполняется рандомными объектами.
2 - 6 видов объектов на карте: кирпичные блоки (можно разрушить, но нельзя проехать), бетонные блоки (ни разрушить, не проехать), вода (не разрушается, по ней нельзя ездить, но через неё можно стрелять), кусты/трава (не разрушаемые объекты, в которых можно прятаться. Турельки вас в кустах не видят и перестают стрелять. Из кустов можно успешно вести огонь). Плюс два вида турелек.
3 - Два вида турелей. Одни - направленные и стреляют строго прямо. Вторые - направляют башню на игрока и ведут прицельный огонь.
4 - Система бонусов. Рандомно выпадает 3 вида бонусов: взрывающий окружающие турели, увеличивающий скорость танка и увеличивающий скорострельность танка.
Что касается самого танка - он умеет крутить башней и стрелять в сторону курсора.
Управление: WASD или стрелки - движение танка.
Мышь - направление стрельбы. Стреляем на левую клавишу мыши.
Кстати. На главном экране (сцена Main) есть белый квадрат. Это как бы кнопка "Play".
Внимание! Теги! Если не дать объектам теги - вы не сможете никого убить и ничего разрушить. А поскольку стрелялки в принципе не для пацифистов - давайте исправлять.
Тег Block - требуется всем не разрушаемым объектам. Обратите внимание, что на сцене имеется объект floor и в нём четыре куба. Это ненавистные всеми игроками невидимые стены, которые в моём случае не только не дают танку свалиться с платформы, но и уничтожают объекты пуль, чтобы они не захламляли сцену и не занимали память.
Тег Bullet - вешаем на префаб Bullet (в папке Resources).
Тег Turret - вешаем на оба вида турелей (всё в той же папке).
Тег Grass - вешаем на одноимённый префаб (угадайте, где?).
И напоследок поясню назначение скриптов.
Класс AudioManager - подписывается на все события, при которых должны воспроизводиться звуки. И, соответственно, когда это событие происходит - воспроизводят соответствующий звук.
Класс BonusController - вращает объект (да, лень было возиться с анимацией, реализовал вращение из кода) и при столкновении с объектом "Player" - вызывает соответствующее событие.
Класс BonusSystem - рандомно создаёт бонусы и раскидывает их по карте.
Класс BulletController - рассчитывает баллистику толкает снаряд вперёд.
Класс DestroyableObj - даёт объектам здоровье и возможность умирать.
Класс GameManager - управляет игровым процессом.
Класс MainScreenManager - нужен исключительно для запуска игры.
Класс MapGenerator - отвечает за сборку карты. В моём случае - её генерирует.
Класс Messenger - это система событий.
Классы TankController и TurretController - управляют танком и турельками, соответственно.
На этом всё. Если будут вопросы - пишите в комментариях. Постараюсь ответить.
Ссылка на исходники: bitbucket.org/TonyKOT/tanks-demo
Подписывайтесь, чтобы не пропустить что нибудь новенькое. И не забывайте ставить плюсы, это лучшая награда для автора. Спасибо!
Такую задачу поставил Little.Bit пикабушникам. И на его призыв откликнулись PILOTMISHA, MorGott и Lei Radna. Поэтому теперь вы знаете, как сделать игру, скрафтить косплей, написать историю и посадить самолет. А если еще не знаете, то смотрите и учитесь.