Войти
ПроектыФорумСобираю команду

Open Space Station 13 (Python или C++)

#0
(Правка: 5:02) 4:21, 10 сен. 2019
oss13 | Open Space Station 13 (Python или C++)

Привет, GameDev.Ru!

Ищу желающих поучаствовать в очень интересном OpenSource проекте ремейка культовой игры Space Station 13. Разработка идет с разным темпом уже в течение пяти, наверное, лет, и вот пришел момент, когда удалось окончательно определиться с основным направлением, используемыми технологиями и базовой архитектурой. Теперь время за наращиванием оборотов, привлечением людей и созданием сообщества, которое, как было с оригиналом, вытолкнет игру на новый уровень.

Что такое Space Station 13?

+ Показать

Open Space Station 13

OSS-13 - это ремейк SS13, разрабатываемый нами с нуля на чистом C++ с встроенным Python. В отличие от других ремейков, мы стараемся архитектурно максимально придерживаться оригинала, привнеся современные технологии и подходы, которые были недоступны 20 лет назад.

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

GitHub: https://github.com/EdgeFortress/OSS-13
Discord: https://discord.gg/aGKbRAj

Технологии:

  • Полностью самописный движок на C++
  • Архитектура Сервер-Клиент с тонким клиентом, на основе протокола TCP.
  • Графика и сеть написаны с помощью библиотеки SFML.
  • Игровая логика на сервере пишется с помощью скриптового движка, основанного на встроенном интерпретаторе Python 3 (библиотека pybind11).
  • UI пишется как с нуля, так и на основе замечательной библиотеки ImGUI.
  • Скриншоты:

    + Показать

    Текущий прогресс:

    1. Написана полностью рабочая сетевая логика Сервер-Клиент:
    Сервер отправляет клиенту начальное состояние мира вокруг него, после чего присылает только обновления этого состояния. На стороне клиента написана система предсказаний для компенсации лагов сети. Общение идет посредством ISerializable объектов (команды + разные структуры), логика которых подсмотрена в Бусте. В теории архитектура позволит держать онлайн до 100 игроков с учетом динамики окружения и полной разрушаемости.

    2. Создана архитектура игрового мира, объектов, их компонент и игровых подсистем. Большая часть игровой логики пишется на языке Python 3, который работает с помощью встроенного в движок интерпретатора. Для наиболее трудоемких вычислений, таких как логика физики воздуха или подсистемы света, существует возможность реализации на чистом C++, с выносом самых тяжелых вычислений в отдельные потоки. Конкретно контента пока не очень много, основная работа идет именно над архитектурой, но сейчас уже будем переключаться на контент.

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

    4. Удобная инфраструктура. Работа идет в открытом GitHub репозитории с полным использованием всех его фич, таких как Issues и Continuous Integration. Разработка проекта направлена в первую очередь не на бесконечные фичи, а на архитектуру и чистоту кода.

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

    Кого ищем:

    Проекту нужны разработчики любого уровня, желающие поучаствовать в OpenSource разработке уникальной игры на языках C++ и/или Python. Все что важно - желание учиться и желание делать игру с механикой чуть-чуть посложнее, чем принято сегодня на рынке.

    В чем профит?

    Проект разрабатывается на чистом энтузиазме и прибыли хотя бы на уровне штатных вакансий разработчиков C++ и Python пока не предвидится. Смысл данного проекта - хобби, опыт и коммиты в опенсурсе. Также хочется получить тот самый ремейк SS13, который только на этом ресурсе уже пытались создать 5 раз.

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

    Поэтому если у вас не очень много опыта в разработке, но вы хотите получить этот опыт, особенно с C++/Python, то этот проект может оказаться для вас идеальным. Здесь есть огромное количество задач и огромный простор для реализации своих идей, а я всячески помогу вам со всем разобраться и максимально снизить порог входа. Не претендую на высокий профессионализм в разработке, но я работаю C++-программистом в известной компании в области десктопных приложений, довольно много времени потратил на геймдев и надеюсь, что смогу рассказать что-нибудь интересное.

    Монетизация

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

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

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

    Монетизация серверов - дело тех, кто хостит сервер, а хостить его сможет кто угодно, т.к. код под MIT-лицензией. У нас, скорее всего, будет официальный сервер, донаты от которого также будут направляться разработчикам за выполнение задач на GitHub. Но до серверов пока далеко.

    ————

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

    Также заходите в наш репозиторий: https://github.com/EdgeFortress/OSS-13.


    #1
    10:10, 10 сен. 2019

    Я могу ошибаться, но по-моему ремейк Space Station 13 на нашем форуме начинают делать 1-2 раза в год.

    Может ремейкерам пора объединяться?

    #2
    10:39, 10 сен. 2019

    Если уж делать ремейк с современными средствами, то 3Д с камерой ФПС и на Юньке. Тогда я думаю найдутся энтузиасты. )

    #3
    17:27, 10 сен. 2019

    Tiendil
    > Я могу ошибаться, но по-моему ремейк Space Station 13 на нашем форуме начинают
    > делать 1-2 раза в год.
    >
    > Может ремейкерам пора объединяться?

    Ну да, примерно так есть. Проблема только в том, что другие ремейки здесь умерли в 2017.

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

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

    UncleMike
    > Если уж делать ремейк с современными средствами, то 3Д с камерой ФПС и на
    > Юньке. Тогда я думаю найдутся энтузиасты. )

    >3Д с камерой ФПС
    Это уже будет другая игра. Условно ролевая составляющая в виде чата заменяется на VoIP, что сразу же ломает погружение игроков во вселенную игры, которое является одной из важнейших фишек SS13.

    Но конкретно такая игра уже есть - Stationeers, от создателей Dayz. Её можно уже купить в стиме и поиграть. Вот только это уже не SS13.

    >на Юньке
    Уже было 3(!) ремейка на Unity. Один отсюда, выше вон ссылка, загнулся из-за сети. Второй - 3D с изометрической камерой, но там как-то больше спецы деньги распилить и свалить. Оба с закрытыми сурсами.

    Третий - самый крутой по фичам на данный момент ремейк SS13, UnityStation. Они реально продвинулись дальше всех, тоже в опенсурсе, реализовали систему монетизации, которую я описал и вообще очень крутые чуваки.

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

    В общем, у нас единственный ремейк с классической архитектурой симуляции мира на стороне сервера и тонкими клиентами, которые только рисуют графику и принимают нажатие кнопочек. А скриптовый движок у нас настолько удобный, что уже практически можно методом Copy-Past копировать код оригинальной игры, менять синтаксис с BYOND на Python и оно должно работать. Единственная проблема, не притащить лишнего :)

    #4
    18:28, 10 сен. 2019

    Я уже видел именно эти скриншоты больше 2 лет назад, что то изменилось с тех пор?

    #5
    (Правка: 18:48) 18:46, 10 сен. 2019

    Татарин
    > Я уже видел именно эти скриншоты больше 2 лет назад, что то изменилось с тех
    > пор?

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

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

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

    Предпоследний скриншот - оверлей разбиения карты на замкнутые локали, по которым будет идти расчет давления воздуха, появилось, наверное, в начале лета. Последний скриншот - прототип системы света на стороне клиента на основе библиотеки LTBL (расширение SFML), тоже появилось только в начале лета.

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

    #6
    18:52, 10 сен. 2019

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

    + Показать

    я не то чтобы придираюсь, двигаетесь и молодцы, просто с тех времен много времени прошло, а изменений не так много как хотелось бы.
    Так можно сделать дыру в стенке и все улетят в космос или пока до этого не дошли?
    #7
    19:03, 10 сен. 2019

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

    Татарин
    > Так можно сделать дыру в стенке и все улетят в космос или пока до этого не
    > дошли?
    Нет, пока нельзя. Довольно легко можно запилить это костылями - архитектура уже сделана так, что потребуется минимум изменений. Но в идеале, у нас в планах еще добавить новые механики, относительно SS13, такие как масса объекта, его парусность и внешние силы, а уже на основе этого сделать симуляцию атмоса. Концептуально тут примерно все ясно, как это делать, ничего сложного нет, но нужно время.

    ПроектыФорумСобираю команду