Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.05.2012, 01:09
Black Soviet вне форума Посмотреть профиль Отправить личное сообщение для Black Soviet Найти все сообщения от Black Soviet
  № 1  
Ответить с цитированием
Black Soviet
 
Аватар для Black Soviet

Регистрация: Nov 2011
Сообщений: 41
Question Сетевая игра. Принцип построения.

Решили с товарищем замутить игру наподобие Crimsonland(стрелялка - вид сверху), но только с мультиплеером.
Собственно, вопрос: как правильно организовать этот мультиплеер?


Как видим мы:
1) Есть серверная часть, написанная на неком языке(который позволяет организовать сетевое взаимодействие), которая слушает некоторый порт на предмет подключения клиентов.
2) Клиентская часть состоит из оболочки и флеш-игры, которая с помощью класса ExternalInterface общается с этой оболочкой.
3) Клиентская часть пересылает информацию о действиях игрока на тот порт, который прослушивается серверной частью, и оттуда же получает информацию о других игроках.

Нужны ли оболочки, написанные на другом языке, или сетевое взаимодействие возможно организовать средствами ActionScript ?
Если нужны, то какой язык посоветуете ?
Буду благодарен за любые советы и полезные ссылки по теме.

Старый 22.05.2012, 01:22
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 2  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
Цитата:
Сообщение от Black Soviet Посмотреть сообщение
Если нужны, то какой язык посоветуете ?
В идеале - C++.
Как вариант - Java(не путать с JS).
Java с AS3 очень похожи, поэтому это будет наиболее логичный вариант.

Старый 22.05.2012, 01:49
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Никаких доп. оболочек. Даже про ту, что вы пишете, с ExternalInterface - можете забыть.
Вы парни я смотрю отчаянные - можете и с++ рискнуть на сервер) Яву и C# тоже вполне можно.
Советую сделать втупую - клиент рендерит то, что сервер пересылает ему каждые н миллисекунд и отправляет команды управления. Там бывают ещё разные синхронизации, но они сложные и для вашего случая неудобные (напр. https://developer.valvesoftware.com/..._Networking:ru).
Читать программирование сетки. Вообще похоже читать надо будет ещё мноого. Было бы неплохо сделать не сетевую игру для начала, чтоб понять, с чем связались.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 22.05.2012, 06:32
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 4  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
я вас все равно не отговорю.
Правда советы по построению, я вам другие дам несколько, нежели вы хотите.
За сетевую часть пока не будете точно уверены в протоколе даже не беритесь. Протокол, как правило самая тяжело меняющаяся вещь. Напишите клиент с уклоном на сетевую возможность играть. Но с ботами или чем угодно. Как напишите вам будет более менее ясно как должен выглядеть протокол, какие состояния сервер должен описывать для одного подключения и т.д. Должно быть ЧЕТКОЕ тз и четкая цель. То есть вы должны над одной целью работать на всем протяжении разработки.
Говорю по собственному опыту, сетевые игры, какой бы вы крутой протокол не выбрали или не создали изменить способ взаимодействия с сервером изменить во много раз сложнее чем что либо в игре, так как это касается не только клиента, но и самого сервера, а так же протокола.

Скажу по собственному опыту. Я сейчас заканчиваю сетевую игру, игра пошаговая и из игровых команд там только сделать ход, атаковать и применить магию. Но при этом общее число команд (исходящих и входящих) состоявляет порядка 35. То есть они реализованы дважды на сервере и на клиенте. А версий протокола было порядка 15, так как я не достаточно хорошо продумал архитектуру и несколько раз переделывал. Но объем переделок резко сократился, когда был готов игровой движок и стало понятно как что и где.

Пишите сервер на java. Мой сервер в режиме эхо сервера выдерживает порядка 4500 подключений и обрабатывает от них около 100000 сообщений в минуту. так что скорости java вам вполне хватит. Я мог бы вам дать ссылочку на опенсорс проект моего сервера, но вы же все равно будете писать свой с блекджеком и шлюхами

Добавлено через 1 минуту
ну и напоследок, просто в обязательном порядке документация на протокол. Без нее будет тяжко

Старый 22.05.2012, 06:44
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 5  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
ramshteks а можно мне ссылочку для ознакомления?
__________________
hauts.ru

Старый 22.05.2012, 06:49
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 6  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
Цитата:
Сообщение от Hauts Посмотреть сообщение
ramshteks а можно мне ссылочку для ознакомления?
https://github.com/ramshteks/javabyc...teks/java/cozy

Старый 22.05.2012, 06:52
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 7  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Ух ты, спасибо большое. Собираю ссылки, так как планирую свою игрушку написать (в целях самообучения, не больше).
__________________
hauts.ru

Старый 22.05.2012, 07:14
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 8  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
Цитата:
Сообщение от Hauts Посмотреть сообщение
Ух ты, спасибо большое. Собираю ссылки, так как планирую свою игрушку написать (в целях самообучения, не больше).
сохраните ссылку на меня, потому что толковой документации на сервер нет и если соберетесь использовать мой, то вам понадобится консультация =))

Старый 22.05.2012, 08:03
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 9  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Я так и сделал
__________________
hauts.ru

Старый 22.05.2012, 08:57
Korchy вне форума Посмотреть профиль Отправить личное сообщение для Korchy Найти все сообщения от Korchy
  № 10  
Ответить с цитированием
Korchy
 
Аватар для Korchy

Регистрация: May 2011
Сообщений: 301
Записей в блоге: 2
Цитата:
Сообщение от Black Soviet Посмотреть сообщение
2) Клиентская часть состоит из оболочки и флеш-игры, которая с помощью класса ExternalInterface общается с этой оболочкой.
В грубом приближении все верно, только никакой дополнительной оболочки в клиенте (кроме самого флеш-клиента) не нужно. Флеш замечательно сам поддерживает сетевое взаимодействие. Скорее всего обмен данными будет организован у вас через сокеты. Во флеше они есть.
__________________
interplanety

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
мультиплеер , сетевая игра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.