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

Игра с дополненной реальностью (3 стр)

Страницы: 1 2 3
#30
1:50, 19 окт. 2016

D_A_C
> надо игрока в качестве ключа блокировки записей использовать,
Ничего не надо, никакой блокировки, никаких комнат. Игрок отсылает X-Y, сервер делает запрос - я его привел выше, отдает результаты - в жсоне, иксэмеле, плейнтекстом, и т.д. Всё.

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


Короче, что я хочу сказать. Все эти попытки школоты сделать "самое быстрое решение" - это бред полный. Решение должно быть достаточно быстрым чтобы удовлетворять требованиями и как можно более простым и дешевым. Если есть конечно желание закончить разработку в принципе.
Мое решение с базой и spatial запросами делается за пару часов на коленке и еще пару дней на допиливание до продуктового состояния (типа вмеямого обработчика ошибок, авторизации, парсинга конфигов и командной строки). Его можно сделать даже не особо квалифицированному разработчику и сотню запросов в секунду (что значит тысячи людей одновременно онлайн) оно выдержит даже моем старом ноуте легко.

Все рассказы про "распределенные системы это просто пересылка сообщений между серверами, там нет никаких проблем" сразу выдают человека который никогда с этими распределенными системами не работал, и даже не читал про них хотя бы на той же википедии. Достаточно один раз протрахаться с каким нибудь ehcache или просто хотя бы написать простейший счетчик числа клиентов в каждой комнате. Вот тупая задача - клиенты могут конектиться к различным серверам, комнаты распределены по серверам, считать число клиентов, при выходе последнего удалять комнату. По факту в этой задаче куча подводных камней, и даже с хазелькастом или игнайтом (который берет на себя всю рутину вроде "отправлять сообшение между серверами1") эта задача не самая тривиальная.


#31
2:16, 19 окт. 2016
Лол, на недавнем джокере оказывается был доклад именно про этот вопрос. Надо на этот стрим было идти,
https://youtu.be/puYPHysBN7U?t=6h48m4s - тут всего час, и чувак рассказывает именно это "клиенты могут конектиться к различным серверам, комнаты распределены по серверам, считать число клиентов, при выходе последнего удалять комнату."
Рекомендую посмотреть,как это работает, очень хорошее введение для начинающих. И как это элементарно делается. У него вроде еще не рассказывается про персистентность, тоже веселуха в распределенных системах.

Чтобы не нести бреда просто про "это просто, там надо сообщения между серверами пересылать и все проблемы решаются"

#32
8:25, 19 окт. 2016

9К720
Я прекрасно понимаю, что не за один я всему научусь и разберусь, но начинать с чего-нибудь надо. Вы тоже когда-то были молодым и неопотным, а сейчас вон жару задаете всем) Вообще, примерно месяц назад, наткнулся на статью от Mail.Ru, где они описывали как писали сервер под Skyforge на Java, почему то с тех пор у меня в голове отложилось, что Java хорош для таких задач и надо пробовать на нем. На счет CRUD и spatial запросов я понял, буду изучать и реализовывать, теперь сам сервер, "Java, я выбираю тебя!", можете на что стоит обратить внимание при изучении? Тут писали про многопоточность и сокеты, думаю это будет одним из первых пунктов.

#33
10:38, 19 окт. 2016

rtishman
Зависит от цели. Если ты хочешь написать сервер для игры то лучше начать не с многопоточки и сокетов.
Ты же математику начинал учить с арифметики, а не с алгебры и дифуров.
Начни со спринга и как на нем написать простейшее веб приложение.

#34
10:57, 19 окт. 2016

rtishman
запросы-ответы в базу данных делай просто, 9К720 тебе уже третью страницу про это вещает.

#35
11:08, 19 окт. 2016

rtishman
имхо:
гениальный подход - не умеешь работать с серверами - пиши свой :)
не умеешь делать игры - пиши свой движок
не умеешь программировать пиши свой язык программирования
если уж решил занырнуть в мир джава - то возьми для начала хотя бы тот же Smartfox и почитай доки по нему (благо есть что почитать)
навелосипедить всегда успеешь
там хотя бы базовые вещи уже реализованы на профессиональном уровне и не надо забивать голову всякой ерундой
сравнивать инди с маил ру не есть хорошо - у них есть ресурсы (финансы и люди) у инди разработчиков только собственное время, а его всегда не хватает 

#36
12:23, 19 окт. 2016

Zab
> Если программируешь на сокетах, можно посылать в любом направлении. Решил
> сервер, что данные у него есть новые, взял и отослал обновление
Я пропустил коммент. Я правильно понимаю, что это можно сделать на бесплатном сервере?

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

#37
12:32, 19 окт. 2016

greencrazycat
> гениальный подход - не умеешь работать с серверами - пиши свой :)
Это из-за когнитивного искажения на самом деле. Эффект Данинга-Крюйгера.
Когда человеку абсолютно не разбирающемуся в чем-то, кажется что это очень просто. Он поднимает документацию по какому-то фреймворку (это я оптимист, да) и охреневает от того сколько там всего надо учитывать и сколько всего по этой вещи писать, и ему кажется что все переусложнено, а на самом-то деле там все просто, щас он за недельку сделает горизонтально масштабируемый распределенный сервер выдерживающий высокие нагрузки, при том что он вчера еще пытался хеллоуворд скопипастить и скомпилить. Или возьмет и напишет свой движок, а то эти все туториалы по юнити какие-то непонятные, и вообще пацаны сказали что там тормозит.

#38
12:46, 19 окт. 2016

9К720
> > Если программируешь на сокетах, можно посылать в любом направлении. Решил
> > сервер, что данные у него есть новые, взял и отослал обновление
>Я правильно понимаю, что это можно сделать на бесплатном сервере?
Если у тебя виртуальная машина на сервере, то можно все. Но если хостинг в разделяемой системе, где ты можешь запускать свои php-скрипты и тебе предоставлен mysql, то вводится масса ограничений, чтобы твои скрипты не могли никому помешать. Писать то ты можешь все что угодно, экспертизу того, что залито на сервер никто не проводит.
Приходит сетевой запрос, запускается твой php-скрипт, ему выставляется системой таймаут. Скрипт должен сделать все необходимое и завершиться в течение нескольких секунд, иначе просто снимут с выполнения. Ну и как тут может сервер проявлять активность? Такие вот бесплатные хостинги... Для программирования сайтов чаще всего достаточно того, что они предоставляют.

#39
12:57, 19 окт. 2016

Zab
Я не пойму твоей позиции, несмотря на то что на очень капитанская.
Ты недостатком ешения с веб-сервером называешь то, что нельзя будет использовать сервер-сайд эвенты на бесплатном хостинге. Ну да. Нельзя. Ну они и не нужны в данном случае. А потом в качестве сравнения и альтернативы рассказываешь про свой велосипед потому то на VPS можно крутить что угодно. Ну да, можно. В том числе и веб-сервер с самостоятельно настраиваемыми таймаутами.
Ты хочешь открыть миру что на платном сервере ограничений меньше чем на бесплатном говнохостинге что ли?

'В Москве все очень дорого. Бугати вейрон стоит почти миллион долларов. Для сравнения, у нас в Рязани килограмм картошки - 20 рублей'.

#40
13:12, 19 окт. 2016

Тред не читал, мой совет:
сервер на ASP.NET Core
на нём asmx-сервисы, либо Web API
база MS SQL Server
и по деньгам недорого и разрабатывать на том же C# можно.

#41
14:23, 19 окт. 2016

9К720
Окей, я тебя понял. Если что, могу я обращаться к тебе? Не в том плане, что на каждом шагу задавать вопросы "А что это? А что то?".
D_A_C
Я понял.
greencrazycat
Я почитаю документацию по SmartFox и подумаю на счёт него. Плюсы фреймворка то понятны, что не надо "велосипедить", и можно разрабатывать забыв о каких-то вещах, но всё же "велосипедить", на мой взгляд, в данном вопросе есть большой плюс в твой огород. Ну это ладно, вопрос индивидуальный. На счет маил.ру и т. п. у нас на горизонте маячат инвестиции и вполне возможно будут ресурсы, но до прототипа их точно не будет.

#42
15:39, 19 окт. 2016

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

Страницы: 1 2 3
ПрограммированиеФорумСеть

Тема в архиве.