Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Уникальная игра, объединяющая популярные механики Match3 и пошаговые бои!

Магический мир

Мидкорные, Ролевые, Три в ряд

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Gamedev + Open Source

С этим тегом используют

Инди Разработка Инди игра Игры Unity Компьютерные игры YouTube Linux IT Программирование Github Операционная система Android Все
11 постов сначала свежее
18
mopsicus
mopsicus
8 месяцев назад
Лига Разработчиков Видеоигр

Фреймворк для онлайн игр⁠⁠

Всем привет! Запушил на гитхаб свой пет-проект. Это фреймворк для онлайн игр и приложений написанный на Node.js и Typescript, клиентская часть на Unity и C#.

Для чего это всё?

Можно делать многопользовательские онлайн игры и билдить под Android, iOS и WebGL, бесплатно, без регистрации и смс. Сейчас расскажу подробнее.

Давным-давно был такой проект на гитхабе Pomelo. По меркам интернета – реально древний, ему больше 10 лет. Он и сейчас там есть, но уже заархивирован и не поддерживается, но форки вроде пилятся. Кто первый раз слышит, это фреймворк для создания игровых серверов на JavaScript и Node.js. Проект довольно большой, куча модулей, клиенты под разные платформы, хорошая дока. Наткнулся я на него несколько лет назад и начал ковырять, запускать, что-то пробовать. В итоге, многие вещи в нём мне понравились, но показалось всё как-то замудрёно что ли. Наверно потому что китайцы писали, а может я в ноду не сильно мог 😅 В общем, оттуда я потягал какие-то скрипты, интересные решения, потом переписал, упростил и, получился у меня такой лайтовый сервер из нескольких файлов, на котором я тестил всякие свои проекты, изучал Node.js, JavaScript и TypeScript позднее.

Когда что-то стало получаться, переписал всю серверную часть на TypeScript и всё это дело стало обретать какой-то полезный вид. И вот, в результате n-ой итерации, архитектура устоялась, протестировалась и получился Shardy.

Shardy – это фреймворк для онлайн игр и приложений на Node.js. Он даёт базовую функциональность для построения микросервисных решений: мобильных, социальных, веб, многопользовательских игр, приложений реального времени, чатов, middleware сервисов и т.п. Есть клиент на TS встроенный в фреймворк, а также пакет для Unity, который поддерживает сборки под iOS, Android и WebGL.

Основные фичи:

- микросервисная парадигма
- простой API: RPC, команды, подписки и т.п.
- транспорт данных через сокеты и вебсокеты
- легкость и быстрота: Node.js и TypeScript
- поддержка пользовательской сериализации
- поддержка пользовательской валидации рукопожатий (handshake)
- продвинутый логгер: теги, фильтры, области
- справочные материалы: документация, сниппеты, примеры
- почти нулевая конфигурация

Есть демка с примерами работы API и простенькая онлайн игра "Крестики-Нолики": как серверная часть, так и клиентская. Всё можно посмотреть, поковырять, запустить у себя и попробовать поиграть. Весь код старался комментировать, иногда даже излишне. Также есть документация с описанием всех компонентов и методов. Это всё в процессе наполнения и улучшения.

Ниже, пример WebGL билда с игрой "Крестики-Нолики".

В примере реализовано:

  • старт/остановка поиска свободных игр

  • простой матчмейкинг

  • отправка команды хода игрока

  • отправка команды выхода из игры

  • обнаружение ничьей и конца раунда

  • сохранение текущего счёта

Основная цель Shardy – предоставить простое бесплатное решение для создания многопользовательских онлайн игр. Вот так вот громко 😅 На это будет обращено основное внимание при дальнейшей разработке новых функций, сервисов и туторов (было бы время...).

Да, пока это голый фреймворк без полезной нагрузки в виде готовых каких-то решений, модулей, примеров игр и т.п. И да, входной порог есть, нужно уметь в Node.js и Typescript, чтобы делать серверную часть. Поэтому буду добавлять полезности по мере возможностей.

Приглашаю всех заинтересованных инди и не только, посмотреть, покрутить, примерить, потестить на своих каких-то задачах, играх, проектах, прототипах. Если будут вопросы, отвечу тут в комментах или на почту mail@mopsicus.ru.

Shardy

Shardy for Unity

Shardy Tic-Tac-Toe server

Docs

Показать полностью 1
[моё] Gamedev Разработка Unity Nodejs Typescript Csharp Open Source Видео Без звука Длиннопост
10
DELETED
1 год назад

Test⁠⁠

test

Гайд Gamedev Разработка Unity Unity3D Npm Open Source
2
2
DELETED
2 года назад

Новогоднее обновление PixelPlace⁠⁠

Новогоднее обновление PixelPlace Инди, Разработка, Инди игра, Gamedev, Онлайн-игры, Мультиплеер, Pixel Art, Godot Engine, Open Source

Поздравляю всех с Новым 2023 годом! Если вам нечем заняться в эти праздничные выходные, то можете порисовать пиксели в моём аналоге r/Place (а также pxls.space и pixelcanvas.io) под названием PixelPlace.

Если кто-то не знает, кратко обрисую правила игры: Всем игрокам выдаётся огромный холст для рисования, но есть нюанс - рисовать можно только по одному пикселю по истечению таймера (в моём случае 1-10 секунд, появится надпись GO!) Размер таймера не всегда 10 секунд, он меняется в зависимости от количества игроков.

Я поработал над оптимизацией, теперь в игре нет лагов и задержек, всё работает плавно и максимально быстро.

Преимущества моей игры в сравнении с аналогами:

  • На выбор огромное количество цветов, чтобы удовлетворить любые хотелки игроков.

  • Режим одиночной игры, чтобы можно было сначала нарисовать свой арт без таймера, а потом поверх него рисовать уже в режиме мультиплеера.

Хочу выразить благодарность участникам группы Пиксельный уют и Himmel12 за тестирование и предложения по улучшению игры.

PixelPlace разработана на игровом движке Godot, открытый исходный код прилагается. Не пытайтесь запустить её на телефоне, игра не адаптировалась под мобилки.

Показать полностью
[моё] Инди Разработка Инди игра Gamedev Онлайн-игры Мультиплеер Pixel Art Godot Engine Open Source
0
24
Suvitruf
Suvitruf
4 года назад
Лига Разработчиков Видеоигр

Разработчики Amnesia опубликовали исходный код игр⁠⁠

Amnesia: The Dark Descent и Amnesia: A Machine For Pigs с этого дня распространяются по лицензии GPL3.

Разработчики Amnesia опубликовали исходный код игр Amnesia, Gamedev, Open Source

Моддинг был важной частью Amnesia. За годы существования The Dark Descent на ModDB накопилось более тысячи модов и дополнений. Разработчики чрезвычайно благодарны всему сообществу. Пришло время отплатить фанатам тем же, и Frictional Games выложили исходный код игр под лицензией GPL v3:

- Amnesia: The Dark Descent.

- Amnesia: A Machine For Pigs.

Помимо кода самих игр присутствует и код редактора.


При этом создатели игры сохраняют за собой авторские права, пользователи же имеют право пользоваться самим кодом в рамках GPL3 — можно изменять, копировать и распространять материалы.

Как пишут разработчики, они могли бы уже давно опубликовать код игры, но всегда были более важные дела. Но теперь, когда Amnesia: The Dark Descent исполнилось 10 лет, а до Amnesia: Rebirth осталось меньше месяца, они решили всё-таки порадовать сообщество.

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

Показать полностью
Amnesia Gamedev Open Source
5
525
nishairdna
nishairdna
5 лет назад
Лига Геймеров

Russian Railway Simulator (RRS): первый публичный релиз⁠⁠

Не моё, пост с Хабра


Наступил тот долгожданный мной день, когда я наконец могу представить эту разработку. Проект был начат ровно год назад, 1 сентября 2018 года, по крайней мере в репозитории RRS на Gtihub первый коммит имеет именно такую дату.

Russian Railway Simulator (RRS): первый публичный релиз Компьютерные игры, Симулятор, Gamedev, Железная дорога, Поезд, Разработка, Open Source, Видео, Длиннопост

Пассажирский поезд на станции Ростов Главный


Что такое RRS? Это открытый кроссплатформенный симулятор подвижного состава колеи 1520 мм. Читатель закономерно задаст вопрос: «Позвольте, а для чего нужен этот проект, если симуляторов железнодорожной тематики, как коммерческих, так и открытых, достаточное количество?» За ответом на этот вопрос я и предлагаю заглянуть под кат


История проекта


Когда-то давным давно, в 2001 году, увидел свет Microsoft Train Simulator (MSTS), породивший в нашей стране огромное сообщество ж/д-симмеров. За несколько лет, которые просуществовал этот проект (пока Майкрософт не забросила его, занявшись более интересными для неё вещами, типа обанкрочивания Нокии и т.п.) проект оброс массой созданных для него дополнений: маршрутов, подвижного состава, сценариев.


На основе MSTS, в последствии, был создан ряд других проектов, такие как OpenRails, RTrainSim (RTS) и прочие дополнения и производные. Появились и коммерческие проекты, такие как знаменитейший Trainz. И все бы хорошо, но многих любителей ж/д транспорта эти продукты не устраивают по вполне объективным причинам — они никак не отражают специфику отечественного подвижного состава, эксплуатируемого и разрабатываемого на постсоветском пространстве. Особенно остро это проявляется при взгляде на то, как реализуются тормоза поезда — ни в одном из перечисленных проектов нет и не будет нормальной реализации автоматических тормозов системы Матросова.


В неблизком уже, 2008 году появился другой проект — ZDSimulator, разработанный Вячеславом Усовым. Проект замечателен тем, что вышеперечисленные недостатки он учитывает и исправляет, при этом изначально ориентирован на подвижной состав русской колеи. Но есть одно большое «но» — проект проприетарный и закрытый, архитектурно не допускающий внедрение в него собственного подвижного состава.


Сам я пришел к железнодорожной тематике в 2007 году, когда стал работать в ОАО ВЭлНИИ, в должности научного сотрудника, а после защиты кандидатской диссертации в 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, где можно получить самую подробную консультацию и помощь.


Спасибо за внимание!

Показать полностью 1 1
Компьютерные игры Симулятор Gamedev Железная дорога Поезд Разработка Open Source Видео Длиннопост
75
4
cyberbach
cyberbach
7 лет назад
Лига Разработчиков Видеоигр

Неделя хардкода 2⁠⁠

Привет =)


Я делаю игру на 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

Показать полностью
[моё] Libgdx Bullet Physical Engine Open Source Текст Gamedev
17
18
RedBall
RedBall
8 лет назад
Лига Разработчиков Видеоигр

Nuts and Milk Исходники⁠⁠

Доброго всем дня! Как ранее и обещал, выкладываю то что есть в open-source.

Исходники порта игры Nuts and Milk на Unity3d 5

Nuts and Milk Исходники Unity3D, Open Source, Gamedev

Порт известной игры от Hudson Soft https://en.wikipedia.org/wiki/Nuts_%26_Milk


Портировано на Unity3D 5.3 но гугль не пропустил в стор за сим дебажить и доделывать не стал


Портировал по той причине что нравится этот процесс Никакой физики. Только скрипты.


Что не сделано


- Поиск путей немного не доделан для врагов. Иногда крутятся на месте

- Взаимодействие с миром немного не доделано. Больше всего заметно на стыке лестницы и платформы

- Уровней всего 12 из 50 (как в оригинале, но в сети есть вариант со 100 уровнями)

- Начисление очков не реализовано

- Таблица рекордов отсутствует

- Бонусные уровни не доработаны

- Управление джойстиком не реализовано

- Экранные кнопки не удобны


А в остальном всё работает, играется.

https://github.com/UncleJey/nuts-and-milk

Показать полностью
[моё] Unity3D Open Source Gamedev
26
38
tonykot
tonykot
8 лет назад
Лига Разработчиков Видеоигр

Исходники мини-игры (вдруг кому пригодится)⁠⁠

Исходники мини-игры (вдруг кому пригодится) Gamedev, Open Source, Исходники, Длиннопост, Unity

Привет, друзья! Наконец дошли руки опубликовать исходники мини-игрушки, которую я собирал в качестве тестового задания для одной компании. На проект потрачено два вечера. Плюс вечер на рефакторинг. Поэтому есть множество багов, сильно за них не бейте =)

Весь код лежит на Bicbucket, а описание, что и как работает - под катом.

И да, в репозитории лежит не проект, а только папка Assets. Поэтому не забудьте назначить объектам теги. Какие? Напишу ниже. Поехали!

Исходники мини-игры (вдруг кому пригодится) Gamedev, Open Source, Исходники, Длиннопост, Unity

Вот так выглядит игра. Просто и скромно. Фичи:

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


Подписывайтесь, чтобы не пропустить что нибудь новенькое. И не забывайте ставить плюсы, это лучшая награда для автора. Спасибо!

Показать полностью 1
Gamedev Open Source Исходники Длиннопост Unity
19
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии