Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Разработка мультиплеер игры. (http://www.flasher.ru/forum/showthread.php?t=107304)

PeTa4eK 29.01.2008 18:25

Разработка мультиплеер игры.
 
Вобщем как? Какие серверы использовать? Есть ли документация?(рус или англ без разницы) Допустим примитивную реал тайм игру можно сделать? типо простых движений шариков до больше 2 людей?
Сори за глупый вопрос, просто подумал может в AS3 больше возможностей в этой сфере... :rtfm:

Ajshma 29.01.2008 21:33

А при чем тут возможности AS3 и твое незнание возможностей AS3?
На этом форуме есть ответы на твои вопросы - и по поводу серверов и по поводу документации.
Flash приложение может быть даже сервером, так что... дерзай.
PS Сервера - red5, fms, oregano

BlooDHounD 29.01.2008 22:07

Цитата:

Flash приложение может быть даже сервером
а можно от сюда поподробнее?

Ajshma 30.01.2008 04:23

Флеш предоставляет различные механизмы приема и передачи данных...
Ну ты же умный, догадаешься ;)

etc 30.01.2008 04:53

Цитата:

Сообщение от Ajshma
Флеш предоставляет различные механизмы приема и передачи данных...
Ну ты же умный, догадаешься ;)

Даже я не догадываюсь, как флеш может выступать в качестве сервера.

PeTa4eK 30.01.2008 05:37

Спасибо конечно за названия.. oregano заходил на офф сайт там 4 или 5 видов какой выбирать я вобще незнаю темболее там вроде под флекс, fms пробывал так и не понял как в нем работать....
red5 в близ время попробую..
Это все серверы?

Ajshma 30.01.2008 09:38

2_etc&BlooDHounD
Се́рвер (англ. server от англ. to serve — служить) — в информационных технологиях — программный компонент вычислительной системы, выполняющий сервисные функции по запросу клиента, предоставляя ему доступ к определённым ресурсам.
Отсюда назвать сервером мы можем все что угодно - галереи, форумы, проигрыватели, любые игры и т.п.:taunt: - все что реализовывается посредством flash технологии. Юродствую конечно, но речь шла про "типо простых движений шариков" и "просто подумал может в AS3 больше возможностей" - человек не удосужился поискать на форуме ответы и насколько он обобщил вопрос - настолько и получил ответ...
PS Ресурсы flasher.ru я использую больше года, при чем только посредством "поиска" - практически на все простейшие случаи и вопросы на этом форуме есть решения и ответы. Так что извиняйте, человек влазит в довольно серьезную тему, не понимая элементарного, и не имея даже желания пройтись поиском.

2PeTa4eK
http://webscripts.softpedia.com/scri...ver-21588.html
качай - там на флеше есть пример чата. На основе его можно делать простейшую мультиплеерную игру тупой отправкой сообщений в комнате/игре всем юзерам.

etc 30.01.2008 10:41

Ajshma, у понятия «сервер» есть довольно четкое понятие в контексте интернета. То, что и самолет можно назвать самокатом — понятно, но не сбивайте с толку людей.

DRAGOnoid 30.01.2008 23:21

FLASH(клиент) < - > Socket Server < - > FLASH(сервер)
сам так называемый флешь сервер обрабатывает объекты их координаты на столкновение, интелект ботов и прочую пургу, как правило графики нет - просто сидит и считает...
я так сделал для простоты, а сокет сервер просто транзитом рассылает данные. Может это имелось ввиду ? :-[
Цитата:

качай - там на флеше есть пример чата. На основе его можно делать простейшую мультиплеерную игру тупой отправкой сообщений в комнате/игре всем юзерам.
не всё так просто. простая отправка сообщений не привязана к времени, данные могут передаться и через секунду и через 10 сек, да и производительность не влияет ни на что..
другое дело это синхронизация, чтобы у всех всё двигаллось с одинаковой скоростью независимо от производительности флешки и данные получались моментально. а то выйдет старый огурец, когда ты стрельнешь а клиент скажет что противника в этой точке давно нет, и он на самом деле уже дааалеко уехал.

BlooDHounD 31.01.2008 00:09

Цитата:

FLASH(клиент) < - > Socket Server < - > FLASH(сервер)
О! ещё гениальнее :) очень производительно приложение получится :)

DRAGOnoid 31.01.2008 00:45

а я и не говорю что это круто ;) я ж сказал я так делал раньше для простоты. щас все основные параметры считает сервер а неосновные типа столкновений и прочей лабуды клиент. короче так максимум можно представить флеш сервер ;) можно, но нежелательно.

PeTa4eK 31.01.2008 04:24

Цитата:

http://webscripts.softpedia.com/scri...ver-21588.html
качай - там на флеше есть пример чата. На основе его можно делать простейшую мультиплеерную игру тупой отправкой сообщений в комнате/игре всем юзерам.
пыталсо зайти и скачать да нет там файла... 404...
Да и мне надо именно сервер под AS3... :)

BlooDHounD 31.01.2008 10:08

а как у вас был реалізован флэшсервер?
Цитата:

Да и мне надо именно сервер под AS3...
серверов под АС3 не бывает.

DRAGOnoid 31.01.2008 11:36

Цитата:

Сообщение от PeTa4eK
Да и мне надо именно сервер под AS3... :)

сказал же только транзит через Socket Server

BlooDHounD 31.01.2008 12:51

а причём тут транзит? извините но вы бред несёте :)

LinuxVideo 02.02.2008 00:50

> Отсюда назвать сервером мы можем все что угодно - галереи, форумы, проигрыватели

Сервер - это то, что садится на порт и слушает его, открывая все входящие коннекты (TCP) или хватая приходящие пакеты (UDP)


> FLASH(клиент) < - > Socket Server < - > FLASH(сервер)

Не бери там больше. Плохая трава.
Ну и про "сокет-сервер" говорить надоело, тут уже была тема по этому поводу.


> ам так называемый флешь сервер обрабатывает объекты их координаты на столкновение, интелект ботов и прочую пургу

Простор для читера. Снифуем траф, а потом пишем своего клиента - вуаля.


> когда ты стрельнешь а клиент скажет что противника в этой точке давно нет, и он на самом деле уже дааалеко уехал.

Поэтому сначала запрос придет на сервер, и только когда сервер обработает запрос, только тогда можно рисовать анимацию выстрела.


> а неосновные типа столкновений и прочей лабуды клиент

коллизии - это неосновные? Идет игрок. Перед ним дом. Коллизия. У одного он будет обходить дом слева, у другова справа. Куда стрелять?


> причём тут транзит? извините но вы бред несёте

+1
Можно при его схеме дико извратиться (флешка посылает запросы на сервер вида "я тут", "я иду в точку", "я стреляю", а в ответ получает запросы всех остальных и в зависимости от этого рисует), но толку не будет.

PeTa4eK 02.02.2008 03:51

И значит что выбрать?

DRAGOnoid 02.02.2008 20:53

LinuxVideo

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

BlooDHounD 03.02.2008 15:23

DRAGOnoid, понимаете, тут такое дело. У вас спрашивают в 3й раз в этом топе. как вы писали сервера на АС3, и вообще как это выглядело. примерчик маленький, или что-то типа того.

дело в том, что присутсвующие сдесь, этого делать не умеют и хотят научится.

IDVsbruck 03.02.2008 16:19

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

Я не пошел по пути создания соединения с сервером через сокеты, а выбрал периодические запросы к серверу (классический подход). Правда, на этом вся классика и заканчивается. Сервер у меня Apache Server - Apache Tomcat (платформа J2EE) и я использую технологию Continuations (Jetty + Comet), которая задерживает возвращение запроса клиенту и возвращает только при инициирования события (может, не до конца верно, но зато достаточно примитивное объяснение). К примеру, клиент выполнил действие, запрос ушел, обработался на сервере, вернулся (событие было), через доли секунды снова ушел на сервер, но теперь события нет и запрос не возвращается. Его может синициировать как действие самого клиента, так и любого другого игрока. Причем, при игре за разными столами может быть разграничение принадлежности столу и разноуровневые события - одни влияют только на обновления клиента игроков стола, а другие - глобальные - всех, играющих в данную игру.

Хотя Jetty+Comet ориентирована под Java, но для многих других языков и платформ есть аналоги. Судя по тому, что наибольшее количество инфы по ней на IBM-ских сайтах, похоже, что они "курируют" данную технологию. Там я встречал аналоги под PHP (Perl), C++.

Недостаток классического способа периодической отправки запросов в том, что надо делать паузу, иначе большое количество игроков могут повесить сервер, а пауза - это уже не полный реалтайм. Continations же позволяют выполняться запросам мгновенно, не надо инициировать паузу: ответ вернулся с сервера и тут же сформирован новый запрос, а вот сервер уже решает когда отсылать ответ (реакция на события).

DRAGOnoid 03.02.2008 17:28

BlooDHounD влом писать тупиковый сервак ;) ибо говорю, я давно всё пишу по правильному принципу. К тому же я незнаю где искать халявный Socket сервер который просто распределяет данные, а свой выкладывать нехочу.
IDVsbruck к сожалению чтобы сервер отсылал это только сокеты и никак иначе. всё остальное получает результат только при запросе клиента. Раз уж тебе хочется чделать хоть что то онлайновое а опыта нет. советую начать с каменного века и GET POST запросов.
т.е. методом GET или POST ты отправляешь данные на сервер , на РНР файл и получаешь результат. Уж проще этого ничего не вижу.

IDVsbruck 03.02.2008 18:21

А я что, о чем-то другом говорил? Естественно, сервер обрабатывает запрос клиента. Иначе никак. И опыт есть приличный.
Хотя проект начинался с попыток сделать через сокеты, но натолкнулись на непреодолимые препятствия. Поэтому пошли по этому пути.
А вот использовать PHP - не, увольте. Хотя пятый значительно продвинутее предыдущего, но Java рулит.

LinuxVideo 03.02.2008 20:09

DRAGOnoid, при всем уважении...

> FLASH(клиент) и FLASH(сервер) - это разные вещи!

Флеш-сервер - это как жареный лед. По крайней мере в моем представлении.


> а второй в виде EXE висит на серваке

EXE на серваке - уже смешно.
Если оно там и есть, то в каком виде? Слушает порт? CGI?
Только не нужно говорить "PHP" - я его за язык не считаю.


> я предложил идею для человека который я так понял не имеет опыта программирования серверов, и знает только AS3. вот я и дал ему идею где и что копать.

Зато я имею богатый опыт написания сетевых приложений. И вижу, что это бред.


> вернулся (событие было), через доли секунды снова ушел на сервер, но теперь события нет и запрос не возвращается.

А толку постоянно рвать соединение?

$mival 03.02.2008 21:09

спасибо DRAGOnoid'y, даже я поржал немного!

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

DRAGOnoid 03.02.2008 23:45

пипец
лан делайте что хотите, думайте что хотите меня и так всё устраивает =)

поясню только одну вещь - у меня на серваке стоит Windows 2003.
сам Deamon Socket Server слушает порт и считает данные обробатывает очки боёв, время и т.д.
клиент только видет координаты и анимацию, по сути если он что то сделал у себя, например сказал я лечу сюда, он шлёт координаты на сервер, а сервер счтает путь и рассылает всем, в том числе пользователю что послал.
Дальше я пишу бота которй работает как отдельный юзер, сам бегает по карте, сам качается, собирает шмот, убегает когда надо, покупает вещи в магазине. Дело в том что мне легче написать это на AS3 на уровне клиента чем писать отдельный класс на сервере. а так как графики нет то загрузка проца ну +5% повысилась.

BlooDHounD 04.02.2008 01:33

боже мой. а как же вы делали всё-таки сервер на АС3 ?
как сказано выше сервер это то что умеет слушать порт. как вы научили виртуальную машину, которой нужно куча всякого хама, слушать порт.

DRAGOnoid 04.02.2008 10:55

BlooDHounD
не ломай мне мозг своими приколами уже ;)

$mival 04.02.2008 11:23

DRAGOnoid, да ладно, человек серьезную работу пытается проделать, вот-вот выйдет его сборник маразмов.

BlooDHounD 04.02.2008 12:05

DRAGOnoid, уважаемый, обычно люди называют его мозГом. но не все.
что касается поломки этого чудного агрегата, то пока что сдесь этим занемаетесь вы. вы упорно утвержадаете, что писали серверное приложение на АС3. Вот я пытаюсь добиться истины и узнать: "КАК?" ! ибо очень хочтся узнать.


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

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