Форум программистов, компьютерный форум CyberForum.ru

Не браузерные МО, ММО - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.10.2011, 09:34     Не браузерные МО, ММО #1
С чего начинать разработку не браузрной МО или ММО? Как делать регистрацию? Где хранить аккаунты? Где хранить игровые данные? Нужен ли игре форум? Как делать чат? Я хочу сделать 3D с помощью OpenGL. Есть по этой библиотеке какие нибудь туториалы? Как без директа делать звук? Как делать обмен между сервером и клиентами? Следует ли предпочесть UPD, или TCP? Какие данные передавать? Исходную 3D геометрию + текстуры, или готовое видео? А может модели с текстурами хранить на клиентах, а передавать только положения и ориентации? А может скомбинировать? Модели и текстуры предметов хранить на клиентах, а геометрию и текстуры местности передавать с сервера? На сколько сложно сделать войс-чат? Посоветуйте среду для разработки клиента, чтоб его можно было с минимальными затратами собрать для Windwos, alt LINUX, UBUNTU, XUBUNTU. Возможна ли сборка подо всё перечисленное на винде? Как писать, чтоб можно было собирать для всего перечисленного, не залезая в исходник? Как делать ботов для игры? Предположим, космическая леталка. Как для неё сделать бота? Как делать баланс в игре? Как делать экономику?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LosAngeles
Заблокирован
02.10.2011, 09:41     Не браузерные МО, ММО #2
Цитата Сообщение от taras atavin Посмотреть сообщение
С чего начинать разработку не браузрной МО или ММО?
собрать команду естественно



Цитата Сообщение от taras atavin Посмотреть сообщение
Как делать регистрацию?
Цитата Сообщение от taras atavin Посмотреть сообщение
Где хранить аккаунты?
Цитата Сообщение от taras atavin Посмотреть сообщение
Где хранить игровые данные?
Цитата Сообщение от taras atavin Посмотреть сообщение
Я хочу сделать 3D с помощью OpenGL
Цитата Сообщение от taras atavin Посмотреть сообщение
Как без директа делать звук?
Цитата Сообщение от taras atavin Посмотреть сообщение
Как делать обмен между сервером и клиентами?
амбиции у тебя непомерные. Один человек впринципе всё сделать не сможет, тем более с нулевыми знаниями во всех областях одновременно, попробуй хотя бы приличные танчики написать для начала...
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.10.2011, 10:18  [ТС]     Не браузерные МО, ММО #3
Цитата Сообщение от LosAngeles Посмотреть сообщение
ем более с нулевыми знаниями во всех областях одновременно
Знание языка у меня не нулевое, СУБД знаю. Я новичок только в игрострое и сетевом программировании. И без директа - не значит без библиотек.

Добавлено через 8 минут
Давайте начнём с разбора таких вопросов:
1. Где делать регистрацию? В клиенте, или на сайте?
2. Для хранения аккаунтов использовать СУБД, или хранить в файле данных самого приложения? Если СУБД, то какую?
3. Для хранения игровых данных использовать СУБД, или хранить в файле данных самого приложения? А может в оперативе? Если СУБД, то какую?

Добавлено через 2 минуты
Цитата Сообщение от LosAngeles Посмотреть сообщение
собрать команду естественно
Ну а помимо команды? Какие аспекты дизайна надо рассмотреть в первую очередь? Какие части сервера и клиента пишутся первыми?

Добавлено через 3 минуты
И ещё. О качестве игры в первом посте ни слова, а кривоподелуха по силам любому и в одиночку. Не хотелось бы кривоподелуху, но на сколько смогу. ММО - крайне сомнительна, а просто интернетная МО - вполне вероятна.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
02.10.2011, 10:37     Не браузерные МО, ММО #4
Цитата Сообщение от taras atavin Посмотреть сообщение
1. Где делать регистрацию? В клиенте, или на сайте?
Встречаются и такие, и такие варианты, иногда сразу оба. По большому счёту, без разницы, с учётом ответа на следующий вопрос.

Цитата Сообщение от taras atavin Посмотреть сообщение
2. Для хранения аккаунтов использовать СУБД, или хранить в файле данных самого приложения? Если СУБД, то какую?
Разумеется, только СУБД и только на сервере. Клиенту только предоставлять доступ для проверки пароля, при этом должен соблюдаться безопасный протокол "доказательства с нулевым знанием". То есть, сервер не должен знать сам пароль, должен хранить только его хэш. Для авторизации сервер предъявляет некую случайно сгенерированную информацию, клиент обрабатывает её хэшем пароля и предъявляет серверу, тот сравнивает с результатами такой же операции на своей стороне. Что до выбора СУБД, то нужно выбирать что-то по возможностям: что можно позволить себе с точки зрения финансов, что лучше знакомо, что потянет достаточно интенсивную работу с большим количеством игроков. Бывают варианты, когда проверку клиентов предоставляют сторонним организациям, но тут лучше всё самому.

Цитата Сообщение от taras atavin Посмотреть сообщение
3. Для хранения игровых данных использовать СУБД, или хранить в файле данных самого приложения? А может в оперативе? Если СУБД, то какую?
Все игровые данные, которые сохраняются между сессиями, хранить исключительно на сервере в СУБД, причём изменения вносить сразу же по мере их возникновения. Исключение - личные настройки пользователя, хотя и их можно на сервере хранить. По поводу СУБД - см. выше.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.10.2011, 11:27  [ТС]     Не браузерные МО, ММО #5
Цитата Сообщение от Nick Alte Посмотреть сообщение
Разумеется, только СУБД и только на сервере.
То, что на сервере, это и так понятно.

Добавлено через 5 минут
Цитата Сообщение от Nick Alte Посмотреть сообщение
при этом должен соблюдаться безопасный протокол "доказательства с нулевым знанием". То есть, сервер не должен знать сам пароль, должен хранить только его хэш. Для авторизации сервер предъявляет некую случайно сгенерированную информацию, клиент обрабатывает её хэшем пароля и предъявляет серверу, тот сравнивает с результатами такой же операции на своей стороне
Сервер сгенерил случайное число, или несколько таких чисел и передал клиенту. Как теперь считатется хэш? Передал клиент этот хеш на сервер. С чем его сравнивать? Ведь если сервер не знает пароля, то не сможет вычислить его хеш. Значит надо подставить полученный хеш в обратную функцию. Как её определить? Понятно, что при разработке. Но как?

Добавлено через 3 минуты
Цитата Сообщение от Nick Alte Посмотреть сообщение
По большому счёту, без разницы
Тогда в клиенте.

Добавлено через 2 минуты
А в какой интегрированной среде лучше делать клиент, чтоб его можно было без изменения исходника собрать под разные операционные системы? JAVA и C# просьба не предлагать.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 11:31     Не браузерные МО, ММО #6
Цитата Сообщение от taras atavin Посмотреть сообщение
Исходную 3D геометрию + текстуры, или готовое видео?
НУ БОЖЕ Ж МОЙ!

Вы СЛИШКОМ МНОГО НА СЕБЯ БЕРЁТЕ. Нулевые знания вкупе с отсутствием навыка использовать Гугл (а вопрос про туториалы по OpenGL говорит именно об этом. Вам MSDN), даёт чёткую уверенность в невозможности завершить этот проект в долгосрочной перспективе.

Тут каждое предложение это ОЧЕНЬ большой раздел, который не рассмотреть в рамках форума, не то что одной темы.

И я позволю себе добавить ещё вопросы к твоему списку:
Как нарисовать графику? Как построить 3D модель? Как записать звуки и музыку? Как загрузить модель в игру? Что такое UV-mapping? Как синхронизировать действия игроков? Как придумать сценарий?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.10.2011, 11:36  [ТС]     Не браузерные МО, ММО #7
Необратимость или стойкость к восстановлению прообраза: для заданного значения хеш-функции m должно быть вычислительно невозможно найти блок данных X, для которого H(X) = m.
Стойкость к коллизиям первого рода или восстановлению вторых прообразов: для заданного сообщения M должно быть вычислительно невозможно подобрать другое сообщение N, для которого H(N) = H(M).
Стойкость к коллизиям второго рода: должно быть вычислительно невозможно подобрать пару сообщений , имеющих одинаковый хеш.
А с чем тогда сервер будет сравнивать поученный хеш?

Добавлено через 41 секунду
Цитата Сообщение от Deviaphan Посмотреть сообщение
Как построить 3D модель? Как записать звуки и музыку?
Ну это как раз известно.

Добавлено через 33 секунды
Цитата Сообщение от Deviaphan Посмотреть сообщение
Как загрузить модель в игру? Что такое UV-mapping?
Тем более.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 11:37     Не браузерные МО, ММО #8
Цитата Сообщение от taras atavin Посмотреть сообщение
Тем более.
Ну это же прекрасно! Теперь остались только сложные вопросы решить.(
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.10.2011, 11:45  [ТС]     Не браузерные МО, ММО #9
Цитата Сообщение от Deviaphan Посмотреть сообщение
Как синхронизировать действия игроков? Как придумать сценарий?
Что значит "синхронизировать"? Это игра, а не синхронное плавание. А место второго вопроса должен занимать "С каких аспектов начинать диздок?".

Добавлено через 2 минуты
Вообще http://ru.wikipedia.org/wiki/%D0%9A%...86%D0%B8%D1%8F - это о том хеше, или о чём то другом?

Добавлено через 4 минуты
Конкретная хеш-функция должна быть засекречена?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 11:51     Не браузерные МО, ММО #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от taras atavin Посмотреть сообщение
Что значит "синхронизировать"? Это игра, а не синхронное плавание.
По лесу шёл Злобный Тролль. Шёл, никого не трогал, как вдруг, на опушке леса увидел прекрасную принцессу, которая собирала ягоды. Тихо к ней подкравшись, Тролль отвесил принцессе пенделя. Взвизгнув принцесса скрылась за горизонтом...
Компьютер 1: принцесса пролетела 100500 метров и упала в озеро. Прекрасный принц вытащил её, откачал и они жили долго и счастливо.
Компьютер 2: принцесса пролетела 100499 метров (погрешность вычислений, пичалька), зацепилась за вершину дерева, вспорола себе живот и так и осталась висеть, разлагаясь под палящим солнцем. Принцу она, почему-то не понравилась.
Для остальных 100 компьютеров развития событий тоже могут пойти по разному.
Как будешь синхронизировать, чтобы одно и то же действие имело одни и те же последствия на всех компьютерах сети?

P.S. Если думаешь, что я прикалываюсь, то спешу тебя расстроить. Это реальная проблема, возникшая при разработке игры Blac&Whit, только я персонажей поменял.
Читал блоги разработчиков.)
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.10.2011, 11:55  [ТС]     Не браузерные МО, ММО #11
Пусть некий клиент, с именем name, производит аутентификацию по парольной фразе, pass, на некоем сервере. На сервере хранится значение хеш-функции H(pass,R2), где R2 - псевдослучайное, заранее выбранное, число. Клиент посылает запрос (name, R1), где R1 – псевдослучайное, каждый раз новое, число. В ответ сервер посылает значение R2. Клиент вычисляет значение хеш-функции H(R1,H(pass,R2)) и посылает его на сервер. Сервер также вычисляет значение H(R1,H(pass,R2)) и сверяет его с полученным. Если значения совпадают – аутентификация верна.
В такой ситуации пароль не хранится открыто на сервере и, даже перехватив все сообщения между клиентом и сервером, криптоаналитик не может восстановить пароль, а передаваемое хеш-значение каждый раз разное.
А откуда на сервере стал известен пароль, чтоб вычислить H(pass,R2)?

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
По лесу шёл Злобный Тролль. Шёл, никого не трогал, как вдруг, на опушке леса увидел прекрасную принцессу, которая собирала ягоды. Тихо к ней подкравшись, Тролль отвесил принцессе пенделя. Взвизгнув принцесса скрылась за горизонтом...
Компьютер 1: принцесса пролетела 100500 метров и упала в озеро. Прекрасный принц вытащил её, откачал и они жили долго и счастливо.
Компьютер 2: принцесса пролетела 100499 метров (погрешность вычислений, пичалька), зацепилась за вершину дерева, вспорола себе живот и так и осталась висеть, разлагаясь под палящим солнцем. Принцу она, почему-то не понравилась.
Для остальных 100 компьютеров развития событий тоже могут пойти по разному.
Как будешь синхронизировать, чтобы одно и то же действие имело одни и те же последствия на всех компьютерах сети?
Но ведь расстояние посчитано один раз на сервере! Оно не может иметь 100 разных ошибок округления.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 11:56     Не браузерные МО, ММО #12
Цитата Сообщение от taras atavin Посмотреть сообщение
Но ведь расстояние посчитано один раз на сервере!
Вот видишь! Ты уже принял решение, все физические расчёты выполнять на сервере. Уверен, что производительности сервера хватит?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.10.2011, 11:59  [ТС]     Не браузерные МО, ММО #13
А ты предлагаешь доверить расчёты клиенту? Мало того, что кто нибудь обязательно в них влезет, так они ещё и насчитают каждый своё. А у кого нибудь точно не хватит или сети, или ЦП или посчитать всю динамику, или получить для неё данные. На роль же сервера выбирают мощную машину, но так как суперкомпьютер мне не свети, то
Цитата Сообщение от Deviaphan Посмотреть сообщение
Ты уже принял решение, все физические расчёты выполнять на сервере. Уверен, что производительности сервера хватит?
становится ещё одним аргументом против реализуемости ММО. Но не МО вообще. Спектруму и то хватало камня на все расчёты в космическом сингле. Думаешь пень четвёртый после этого не потянет все расчёты игроков для 16-ти? А со временем будет и многоядерный, то есть как раз мощный комп.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 12:03     Не браузерные МО, ММО #14
Я ничего не предлагаю. Ты проектировщик, ты принимаешь проектные решения. Я лишь задаю наводящие вопросы.

Если сто магов одновременно разрушат 100 домов в разных частях мира, сервер сможет вычислить происходящие разрушения в реал-тайм? (А скомпилировать потоковое видео высокой чёткости для 100 игроков одновременно и передать его в сеть?)
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
02.10.2011, 12:04     Не браузерные МО, ММО #15
Цитата Сообщение от taras atavin Посмотреть сообщение
Как делать регистрацию? Где хранить аккаунты?
Лучше всего через сайт

Цитата Сообщение от taras atavin Посмотреть сообщение
Где хранить игровые данные?
На сервере

Цитата Сообщение от taras atavin Посмотреть сообщение
Нужен ли игре форум?
Обязательно

Цитата Сообщение от taras atavin Посмотреть сообщение
Какие данные передавать?
При самом запуске приложения, оно должно считать с серверной части размещение объектов (не текстур, а объектов). Текстуры же должны хранится в клиентской части. Передавать нужно размещение игроков относительно объектов и других игроков.

Цитата Сообщение от taras atavin Посмотреть сообщение
Посоветуйте среду для разработки клиента
QT

Цитата Сообщение от taras atavin Посмотреть сообщение
Возможна ли сборка подо всё перечисленное на винде?
Возможна, с незначительными изменениями

Цитата Сообщение от taras atavin Посмотреть сообщение
Как писать, чтоб можно было собирать для всего перечисленного
Писать исключительно по стандарту языка

Цитата Сообщение от taras atavin Посмотреть сообщение
Как делать ботов для игры?
Бот понятие очень большое.

Цитата Сообщение от taras atavin Посмотреть сообщение
Как для неё сделать бота?
Зависит от того что бот должен делать.

Цитата Сообщение от taras atavin Посмотреть сообщение
Как делать баланс в игре?
Баланс чего?

Цитата Сообщение от taras atavin Посмотреть сообщение
Как делать экономику?
Придумать некоторую игровую валюту, потом сравнивать ее количество, количество "опыта", для получения новых навыков
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.10.2011, 12:12  [ТС]     Не браузерные МО, ММО #16
Цитата Сообщение от Deviaphan Посмотреть сообщение
Если сто магов одновременно разрушат 100 домов в разных частях мира, сервер сможет вычислить происходящие разрушения в реал-тайм? (А скомпилировать потоковое видео высокой чёткости для 100 игроков одновременно и передать его в сеть?)
Опять 100? Причём, одних магов, не считая рыцарей с лучниками. ММО рассматриваем только теоретически, а делать буду МО. Не потянет сотню игроков - сделаю меньше. Игра на двоих - тоже МО.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 12:17     Не браузерные МО, ММО #17
Цитата Сообщение от taras atavin Посмотреть сообщение
Опять 100?
Ты определился, на какое количество игроков рассчитан сервер? Сколько одновременно игр может быть запущено? (я не играю в МО-ММО игры, поэтому могу терминологию напутать. Миров, Сетов одновременно сколько может быть)
Честно говоря, я знаю что такое ММО, но не знаю, что такое МО.(

Если 473 робота выстрелят по 179 танкам, сервер сможет вычислить полёт ракет и просчитать последствия взрывов/попаданий/промахов?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.10.2011, 12:23  [ТС]     Не браузерные МО, ММО #18
Цитата Сообщение от Dekio Посмотреть сообщение
Баланс чего?
Читай: http://ru.wikipedia.org/wiki/Игровой баланс. Как его делать в МО?

Добавлено через 2 минуты
Цитата Сообщение от Deviaphan Посмотреть сообщение
Миров, Сетов одновременно сколько может быть)
На одном сервере ровно одна игра.

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
на какое количество игроков рассчитан сервер?
На сколько хватит, но точно не больше 1024-х одновременно. А может и в переделах 10-ти.

Добавлено через 2 минуты
Цитата Сообщение от Deviaphan Посмотреть сообщение
Честно говоря, я знаю что такое ММО, но не знаю, что такое МО.(
МО - многопользовательская онлайн игра, ММО - массовая многопользовательская онлайн игра, отличается тем, что:
1 в неё могут играть от нескольких сотен игроков одновременно,
2 каждый конкретный игрок может войти в игру, или выйти из неё в любой момент, не мешаю остальным.
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
02.10.2011, 12:24     Не браузерные МО, ММО #19
taras atavin, ну допустим ты напишешь игровую часть (игровой сервер), и клиент. Где собрался хранить серверную часть? Как будешь информацию с сервера передавать на сайт? (Статистика и т.д.)
Без ответов на эти вопросы продолжать нет смысла
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2011, 12:24     Не браузерные МО, ММО
Еще ссылки по теме:

PHP текстовые браузерные игры
Сборка системника для ММО игр
Браузерные ограничения JS JavaScript

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 12:24     Не браузерные МО, ММО #20
Цитата Сообщение от taras atavin Посмотреть сообщение
Как его делать в МО?
Когда у одного BFG, а у другого пукалка - плохой баланс.
Когда один должен пройти налево 3 метра за красной бронёй, а второму приходится бежать за километр за масеньким хелсом - плохой баланс.
Когда все находятся в примерно равных ресурсных/стратегических условиях - хороший баланс.
Продумать баланс очень сложно, т.к. почти всегда можно найти трюк, для изменения баланса в свою сторону. Т.е. нужно играть, играть и играть и со временем баланс можно будет сделать хорошим.
Но сперва нужно определиться со словом "хороший баланс".
Yandex
Объявления
02.10.2011, 12:24     Не браузерные МО, ММО
Ответ Создать тему
Опции темы

Текущее время: 12:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru