«многопользовательская» — это какая? massive-multiplayer или просто multiplayer? Если второе, то как выше уже говорили, совсем не понятно зачем клиенту доверять так много. Да и в первом случае это имеет смысл только для оптимизаций(освободить сервер от «лишних» расчетов). Чаще всего под клиентом понимают просто какое-то примерное или приближенное отображение игрового состояния, т.е. абсолютно вся логика на сервере, а от клиента получаем только его действия/команды. И если уж все-таки посылать: Клиент шлет свои координаты на сервер с какой-то периодичностью (Во время движения чаще)
Зачем так? Просто каждый кадр шлем с дельта-компрессией, соответсвенно если ничего не поменялось, нечего и отсылать будет.
Ну и TCP совсем не подходит для таких вещей, жаль что flash не поддерживает UDP сокеты. Хотя вон там у ребят получилось вроде неплохо :)
Если кому-то интересно, тут много информации по традиционному сетевому коду(не mmo):
* Source Multiplayer Networking
* Unreal Networking Architecture
* Quake3 Networking Model
На «обычной» звуковой нормальной задержки и не добиться, всякие костыли типа ASIO4ALL проблем не решают, а качество звука в данном случае зависит только от качества звуковухи, и там и там цифра обрабатывается.
Про другие опции:
вот например мой конфиг
<keep-as3-metadata>
Bindable
Managed
ChangeEvent
NonCommittingChangeEvent
Transient
TypeHint
EditorData
Embed
</keep-as3-metadata>
Половина из этого нужна Flex'у ( UI ), другая половина PBE.
Ну и естественно куча информации есть в www.google.com/search?q=as3+metadata
«--keep-as3-metadata+=TypeHint,EditorData,Embed»
Как уже написали выше — в скомпилированный файл добавляется метадата, для например:
-TypeHint
Очень помогает десериализатору, попробуй без подсказки узнать что там внутри
[TypeHint(type=«com.foo.Bar»)]
public var myArray:Array;
-EditorData
Помогает сериализатору; например можно сказать ему игнорировать конкретное свойство, или задать значение по умолчанию ( если у объекта foo == defaultValue, то при сериализации оно игнорируется )
[EditorData(defaultValue=«true»)]
public var autoPlay:Boolean = true;
-Embed
Помогает ResourceManager'у при создании ResourceBundle, явно давая понять что этот ресурс заембежен. Плюс другая дополнительная информация вроде source и mimeType
Мемори менеждеры разные, ну и приложения тоже, как ни странно, разные. gimp != photoshop, опенофис != мс офис ( тем более последние ). И вообще, куда столько памяти, 640кб… Дальше продолжать?
Клиент шлет свои координаты на сервер с какой-то периодичностью (Во время движения чаще)
Зачем так? Просто каждый кадр шлем с дельта-компрессией, соответсвенно если ничего не поменялось, нечего и отсылать будет.
Ну и TCP совсем не подходит для таких вещей, жаль что flash не поддерживает UDP сокеты. Хотя вон там у ребят получилось вроде неплохо :)
Если кому-то интересно, тут много информации по традиционному сетевому коду(не mmo):
* Source Multiplayer Networking
* Unreal Networking Architecture
* Quake3 Networking Model
Жду продолжения ;)
И да, очень даже сравнится.
В каждом его посте должен быть этот комментарий, я не мог не написать :)
habrahabr.ru/blogs/sound_and_music/115092/
Дурацкий вопрос на самом деле.
вот например мой конфиг
<keep-as3-metadata>
Bindable
Managed
ChangeEvent
NonCommittingChangeEvent
Transient
TypeHint
EditorData
Embed
</keep-as3-metadata>
Половина из этого нужна Flex'у ( UI ), другая половина PBE.
Ну и естественно куча информации есть в
www.google.com/search?q=as3+metadata
Как уже написали выше — в скомпилированный файл добавляется метадата, для например:
-TypeHint
Очень помогает десериализатору, попробуй без подсказки узнать что там внутри
[TypeHint(type=«com.foo.Bar»)]
public var myArray:Array;
-EditorData
Помогает сериализатору; например можно сказать ему игнорировать конкретное свойство, или задать значение по умолчанию ( если у объекта foo == defaultValue, то при сериализации оно игнорируется )
[EditorData(defaultValue=«true»)]
public var autoPlay:Boolean = true;
-Embed
Помогает ResourceManager'у при создании ResourceBundle, явно давая понять что этот ресурс заембежен. Плюс другая дополнительная информация вроде source и mimeType