Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Что выбрать для вхождения в программирование серверов?

Что выбрать для вхождения в программирование серверов?

Поделиться

Страницы: 1 2 Следующая

AloneRПостоялецwww2 июня 20177:33#0
Привет!

Посоветуйте клиентскому программисту оптимальный путь для вхождение в серверное программирование, который совсем не в теме.
Для обучения собираюсь написать сервер .io игры.
Языками владею: C++, C#, JavaScript, Python. (предпочел бы C++, наверное, но и остальные из перечисленного вполне норм).

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

Сколько времени потребуется для прокачки навыка, чтобы осилить годный сервер для .io подобных игр в боевых условиях, при условии что теме будет уделяться 2 часа в день? (дабы оценить сложность и обширность темы).

Стоит ли купить книжку Многопользовательские игры. Разработка сетевых приложений? https://www.ozon.ru/context/detail/id/137764980/

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

Правка: 2 июня 2017 7:35

9К720Участникwww2 июня 20177:40#1
AloneR
Боевое программирование высоконагруженного бакенда сильно отличается от сложности по программированию рабочего бакенда на пару десятков человек, вплоть до того, что там вообще разные подходы используются, поэтому время оценить трудно.

Из перечисленных тобой лучше всего будет шарп.

Насчет книжки хз, лучше купи книгу по SQL, он обязательно понадобится.

Правка: 2 июня 2017 7:43

AloneRПостоялецwww2 июня 20177:44#2
9К720
> Боевое программирование высоконагруженного бакенда сильно отличается от
> сложности по программированию рабочего бакенда на пару десятков человек.

Предпочел бы сразу ориентироваться на высокие нагрузки.

>Рекомендую начать учить sql
Записал.

>Из перечисленных тобой лучше всего будет шарп
Выбрать какой-то движок или сразу учиться с нуля писАть?

9К720Участникwww2 июня 20178:36#3
AloneR
> Выбрать какой-то движок или сразу учиться с нуля писАть?
А хз, я джавист. Я бы порекомендовал почитать для начала как работать с базой, как обрабатывать запросы клиента (что там аналог сервлета).

Насчет высоких нагрузок пока не торопись, без знания основ ты просто закопаешься в алгоритмах шардирования и синхронизации кешей. Ну и самому я не очень понимаю как это выучить, и при этом не сидеть в болоте. Лучше б ты пошел в какую контору.
Там будут спрашивать на собеседовании sql, работу с http и сеткой и многопоточку.

AloneRПостоялецwww2 июня 20178:57#4
В контору не могу уйти с текущего места работы и основной деятельности, всё бросив. Буду пробовать самостоятельно натаскать себя. Тем более что ещё найти такую контору, в которой знающий программист будет готов тратить время на новичка в этой сфере, а иначе чем это отличается от самостоятельного обучения. Вроде я решил начать с простого - сервер для .io - игры, там относительно всё просто. Хотя могу ошибаться.

Вот тут человек рассказывает как раз кратко архитектуру .io игры: https://habrahabr.ru/post/314864/

Но там С++. Стоит ли следовать статье и просто начать курить технологии, которые он упоминает? В частости, Boost.Asio для сетевой части. Или для новичка начать с чего по-проще таки (тот же c#)

Правка: 2 июня 2017 9:04

leonardo98Постоялецwww2 июня 20179:16#5
я бы предложил начать с Urho - там есть пример сервера и клиента, на базе их можно что-то сделать более сложное чем там есть и понять базовый принцип работы, а дальше станет чуть более понятно куда двигаться
AloneRПостоялецwww2 июня 20179:22#6
leonardo98
> я бы предложил начать с Urho
Посмотрю на Urho, спасибо.
KolyaLПостоялецwww2 июня 201710:06#7
AloneR
Из готового советую посмотреть Photon. Там примеры есть, куча клиентских СДК для всех платформ и основных языков.
Книги - это всегда хорошо.
AloneRПостоялецwww2 июня 201711:35#8
KolyaL
> Photon
Слышал про него в основном в связке с Unity, оказывается, для всего можно, есть и C++ API вроде даже.
Спасибо!

Update: А нет, серверная часть только на C#.

Правка: 2 июня 2017 12:21

Greg0ryПостоялецwww2 июня 201715:33#9
Серверное програмирование начинается с базы данных, ты должен очень хорошо знать SQL, знать что такое план запроса, индексы, не бояться оптимизировать запросы. Далее - ORM, кэши, алгоритмы синхронизации, блокирующие и неблокирующие структуры данных, сеть,  акторы и еще много много всего. Для начала я бы посоветовал определиться с каким ЯП ты собираешься работать. Для каждого ЯП свои библиотеки/технологии тонкости. А после этого уже начинать изучать бэк под конкретную задачу. Как java backend разработчик могу сказать что на java пишут финансовые/платежные системы гораздо реже что-то другое, в геймдеве есть от силы 1-2 вакансии на всю РФ, и то не часто. Зато тут частенько можно встретить большие нагрузки и ЗП довольно хороша. На С# уже будет что-то связанное с юнити, на C++ с UE. JS - как ЯП для серверной части вообще забудь, никто в серьезных системах его для этого не использует, даже если кто-то тебе скажет тебе что это модно-молодежно - забудь. Про питон ничего сказать не могу. Из архитектуры можешь посмотреть лекции с конференции highload
AloneRПостоялецwww2 июня 201715:51#10
Greg0ry
Можно ли спокойно выбрать С++ (или C#) не только для геймдева, но и для сервисов а-ля букинг (бронирование отелей)? Не вижу проблем, но на всякий случай спрашиваю.
Спасибо за информацию!

Правка: 2 июня 2017 15:52

Greg0ryПостоялецwww2 июня 201716:05#11
Сервера пишут на всем, даже находятся извращенцы, которые пишут сервера на js. На самом деле для сервера особо не имеет значения как данные будут показываться на фронте, если вообще будут показываться. С точки зрения сервера у тебя есть данные, различные процессы над этими данными.  И отличий игрового сервера от сервера букинга или сервера социальной сети для серверного программиста будет практически ни каких, так как основная задача - это работа с данными и их обработкой.  Если хочешь узнать востребованность - иди на сайт хэдхантера и анализируй вакансии в своем городе/стране.
Sh.Tac.Постоялецwww2 июня 201716:30#12
Greg0ry
> Серверное програмирование начинается с базы данных
.io это же чистая stateless сессия : )
AloneRПостоялецwww2 июня 201717:00#13
Sh.Tac.
> .io это же чистая stateless сессия : )
Можно чуть подробнее? Если можно начать с чего-то проще для .io, то лучше так и сделать.
NyakNyakProductionПостоялецwww2 июня 201718:48#14
Sh.Tac.
> Greg0ry
> > Серверное програмирование начинается с базы данных
> .io это же чистая stateless сессия : )
С UML-диаграмм начинается серверное программирование. И вообще, автору неплохо бы для начала спаять свой радиоприемник!

Страницы: 1 2 Следующая

/ Форум / Программирование игр / Сеть

2001—2017 © GameDev.ru — Разработка игр