Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
1

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

02.10.2011, 09:34. Показов 3311. Ответов 44
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С чего начинать разработку не браузрной МО или ММО? Как делать регистрацию? Где хранить аккаунты? Где хранить игровые данные? Нужен ли игре форум? Как делать чат? Я хочу сделать 3D с помощью OpenGL. Есть по этой библиотеке какие нибудь туториалы? Как без директа делать звук? Как делать обмен между сервером и клиентами? Следует ли предпочесть UPD, или TCP? Какие данные передавать? Исходную 3D геометрию + текстуры, или готовое видео? А может модели с текстурами хранить на клиентах, а передавать только положения и ориентации? А может скомбинировать? Модели и текстуры предметов хранить на клиентах, а геометрию и текстуры местности передавать с сервера? На сколько сложно сделать войс-чат? Посоветуйте среду для разработки клиента, чтоб его можно было с минимальными затратами собрать для Windwos, alt LINUX, UBUNTU, XUBUNTU. Возможна ли сборка подо всё перечисленное на винде? Как писать, чтоб можно было собирать для всего перечисленного, не залезая в исходник? Как делать ботов для игры? Предположим, космическая леталка. Как для неё сделать бота? Как делать баланс в игре? Как делать экономику?
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2011, 09:34
Ответы с готовыми решениями:

Пошаговые ММО: что посоветуете?
Всем привет! Ищу интересные пошаговые ММО-игрушки, может знает кто какие, подскажите =) Играл в...

PowerPad: геймпад для ММО-игр
Предыстория Некоторое время (~700 часов, хех) играю в ММОRPG Final Fantasy X|V. Сама серия имеет...

Сборка системника для ММО игр
Добрый день, решил обновить свою машину для ММО игр. В планах приобрести Мать : AsRock Z77 PRO3...

Выбор SSD для системы и пары ММО
Здравствуйте! Доброго времени суток! Пожалуйста, помогите выбрать SSD. Сам я не разбираюсь в...

44
Заблокирован
02.10.2011, 09:41 2
Цитата Сообщение от taras atavin Посмотреть сообщение
С чего начинать разработку не браузрной МО или ММО?
собрать команду естественно



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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено через 33 секунды
Цитата Сообщение от Deviaphan Посмотреть сообщение
Как загрузить модель в игру? Что такое UV-mapping?
Тем более.
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 11:37 8
Цитата Сообщение от taras atavin Посмотреть сообщение
Тем более.
Ну это же прекрасно! Теперь остались только сложные вопросы решить.(
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.10.2011, 11:45  [ТС] 9
Цитата Сообщение от Deviaphan Посмотреть сообщение
Как синхронизировать действия игроков? Как придумать сценарий?
Что значит "синхронизировать"? Это игра, а не синхронное плавание. А место второго вопроса должен занимать "С каких аспектов начинать диздок?".

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

Добавлено через 4 минуты
Конкретная хеш-функция должна быть засекречена?
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 11:51 10
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от taras atavin Посмотреть сообщение
Что значит "синхронизировать"? Это игра, а не синхронное плавание.
По лесу шёл Злобный Тролль. Шёл, никого не трогал, как вдруг, на опушке леса увидел прекрасную принцессу, которая собирала ягоды. Тихо к ней подкравшись, Тролль отвесил принцессе пенделя. Взвизгнув принцесса скрылась за горизонтом...
Компьютер 1: принцесса пролетела 100500 метров и упала в озеро. Прекрасный принц вытащил её, откачал и они жили долго и счастливо.
Компьютер 2: принцесса пролетела 100499 метров (погрешность вычислений, пичалька), зацепилась за вершину дерева, вспорола себе живот и так и осталась висеть, разлагаясь под палящим солнцем. Принцу она, почему-то не понравилась.
Для остальных 100 компьютеров развития событий тоже могут пойти по разному.
Как будешь синхронизировать, чтобы одно и то же действие имело одни и те же последствия на всех компьютерах сети?

P.S. Если думаешь, что я прикалываюсь, то спешу тебя расстроить. Это реальная проблема, возникшая при разработке игры Blac&Whit, только я персонажей поменял.
Читал блоги разработчиков.)
3
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
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 разных ошибок округления.
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 11:56 12
Цитата Сообщение от taras atavin Посмотреть сообщение
Но ведь расстояние посчитано один раз на сервере!
Вот видишь! Ты уже принял решение, все физические расчёты выполнять на сервере. Уверен, что производительности сервера хватит?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.10.2011, 11:59  [ТС] 13
А ты предлагаешь доверить расчёты клиенту? Мало того, что кто нибудь обязательно в них влезет, так они ещё и насчитают каждый своё. А у кого нибудь точно не хватит или сети, или ЦП или посчитать всю динамику, или получить для неё данные. На роль же сервера выбирают мощную машину, но так как суперкомпьютер мне не свети, то
Цитата Сообщение от Deviaphan Посмотреть сообщение
Ты уже принял решение, все физические расчёты выполнять на сервере. Уверен, что производительности сервера хватит?
становится ещё одним аргументом против реализуемости ММО. Но не МО вообще. Спектруму и то хватало камня на все расчёты в космическом сингле. Думаешь пень четвёртый после этого не потянет все расчёты игроков для 16-ти? А со временем будет и многоядерный, то есть как раз мощный комп.
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 12:03 14
Я ничего не предлагаю. Ты проектировщик, ты принимаешь проектные решения. Я лишь задаю наводящие вопросы.

Если сто магов одновременно разрушат 100 домов в разных частях мира, сервер сможет вычислить происходящие разрушения в реал-тайм? (А скомпилировать потоковое видео высокой чёткости для 100 игроков одновременно и передать его в сеть?)
0
Фрилансер
Эксперт С++
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 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 Посмотреть сообщение
Как делать экономику?
Придумать некоторую игровую валюту, потом сравнивать ее количество, количество "опыта", для получения новых навыков
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.10.2011, 12:12  [ТС] 16
Цитата Сообщение от Deviaphan Посмотреть сообщение
Если сто магов одновременно разрушат 100 домов в разных частях мира, сервер сможет вычислить происходящие разрушения в реал-тайм? (А скомпилировать потоковое видео высокой чёткости для 100 игроков одновременно и передать его в сеть?)
Опять 100? Причём, одних магов, не считая рыцарей с лучниками. ММО рассматриваем только теоретически, а делать буду МО. Не потянет сотню игроков - сделаю меньше. Игра на двоих - тоже МО.
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 12:17 17
Цитата Сообщение от taras atavin Посмотреть сообщение
Опять 100?
Ты определился, на какое количество игроков рассчитан сервер? Сколько одновременно игр может быть запущено? (я не играю в МО-ММО игры, поэтому могу терминологию напутать. Миров, Сетов одновременно сколько может быть)
Честно говоря, я знаю что такое ММО, но не знаю, что такое МО.(

Если 473 робота выстрелят по 179 танкам, сервер сможет вычислить полёт ракет и просчитать последствия взрывов/попаданий/промахов?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.10.2011, 12:23  [ТС] 18
Цитата Сообщение от Dekio Посмотреть сообщение
Баланс чего?
Читай: http://ru.wikipedia.org/wiki/Игровой баланс. Как его делать в МО?

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

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

Добавлено через 2 минуты
Цитата Сообщение от Deviaphan Посмотреть сообщение
Честно говоря, я знаю что такое ММО, но не знаю, что такое МО.(
МО - многопользовательская онлайн игра, ММО - массовая многопользовательская онлайн игра, отличается тем, что:
1 в неё могут играть от нескольких сотен игроков одновременно,
2 каждый конкретный игрок может войти в игру, или выйти из неё в любой момент, не мешаю остальным.
2
Фрилансер
Эксперт С++
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 1
02.10.2011, 12:24 19
taras atavin, ну допустим ты напишешь игровую часть (игровой сервер), и клиент. Где собрался хранить серверную часть? Как будешь информацию с сервера передавать на сайт? (Статистика и т.д.)
Без ответов на эти вопросы продолжать нет смысла
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 12:24 20
Цитата Сообщение от taras atavin Посмотреть сообщение
Как его делать в МО?
Когда у одного BFG, а у другого пукалка - плохой баланс.
Когда один должен пройти налево 3 метра за красной бронёй, а второму приходится бежать за километр за масеньким хелсом - плохой баланс.
Когда все находятся в примерно равных ресурсных/стратегических условиях - хороший баланс.
Продумать баланс очень сложно, т.к. почти всегда можно найти трюк, для изменения баланса в свою сторону. Т.е. нужно играть, играть и играть и со временем баланс можно будет сделать хорошим.
Но сперва нужно определиться со словом "хороший баланс".
0
02.10.2011, 12:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2011, 12:24
Помогаю со студенческими работами здесь

Браузерные артефакты? о.о
В общем пару дней назад начала появляться вот такая чушь: ...

Браузерные игры
Здравствуйте. Хотелось бы Вам задать такой вопрос, какой язык больше подходит для создания...

Браузерные ограничения JS
Во всех известных мне браузерах столкнулся с запретом на передачу информации между окнами ( и...

Ищу команду разработчиков для создания ММО игры
Доброго всем дня, уважаемые программисты! Ищу команду и поэтому решил обратиться к вам. Немного...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru