Вторник, 16 Апреля 2024, 21:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Общие обсуждения программистов » На чём лучше писать серверную часть игры? (Советуйте...)
На чём лучше писать серверную часть игры?
FERAMONДата: Понедельник, 03 Января 2011, 07:09 | Сообщение # 1
Dansy Riter
Сейчас нет на сайте
Мы затеяли делать браузерную игру на флеше. Сам клиент планируем делать на Action Script 3.0. Как думаете, на чём лучше писать серверную часть игры? Ответ аргументируйте. Плюсом не обижу.

Наш проект "ИСТОРИЯ АНГЕЛА "
BOOMДата: Понедельник, 03 Января 2011, 09:19 | Сообщение # 2
I am the creator of ADE
Сейчас нет на сайте
FERAMON, к чему душа лежит.
Можно на C++, C#, даже Бейсик может подойти (для своего сервера, либо выделенного).
А если кидать на сторонний сервер, то PHP, Питон и так далее в помощь.



______________________________
Я вернулся, и это чудо.
______________________________
VinchensooДата: Понедельник, 03 Января 2011, 09:53 | Сообщение # 3
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Я пишу на дельфи свою.
Я не гений, но более-менее, тьфу-тьфу, выходит.
Правда сеть использую стороннюю, но при желании в дельфи есть встроенные функции для сети.


QelДата: Четверг, 06 Января 2011, 01:06 | Сообщение # 4
участник
Сейчас нет на сайте
Поделюсь своим опытом.
Решил я как-то попробовать сделать многопользовательскую игру на Flash. Решил использовать С++ и AS 2.0 ( не смотря на то, что там не очень удобные сокеты ).
Достаточно долго парился с новой политикой безопасности от Adobe, но это длинная и скучная история, к тому же решение достаточно простое.
В общем, теперь по сути дела.
Чтобы на С++ сделать сервер для Flash-клиента нужно знание сокетов и многопоточности. Под виндой всё делается достаточно просто. С Линуксом, по крайней мере у меня, возникли трудности. Во-первых работать с сокетами там нужно немного по-другому ( сказывается недостаток опыта ), и собственно потоки тоже несколько другие могут быть).
В инете при желании можно найти "почти готовые к использованию" исходники сего безобразия.


Сообщение отредактировал Qel - Четверг, 06 Января 2011, 01:09
SoWaДата: Пятница, 07 Января 2011, 19:33 | Сообщение # 5
частый гость
Сейчас нет на сайте
Де жа вю у меня наверно... Или где-то я недавно видел толковый совет на эту тему - если нужен realtime(бегающие по карте толпы человечков,чаты) - то C#/C++ и технология сокетов, если не нужен(а-ля тыкалка: Ботва, еще какая-то игра про черные кристаллы), то наверно стоит смотреть в сторону HTTP - это PHP, Ruby, ASP.

Возможно сервер на C++ будет работать шустрее, чем на С#, но это зависит, конечно, от программиста. Реальные цифры: асинхронный сокетный сервер на C#, одновременное число подключений: 100к, максимальный размер передаваемой информации - 256 байт. Запущенный на нетбуке сервер поглощал около 85Мб оперативки и почти ни капли процессора.

О, раз уж я о цифрах, то вижу небольшое превосходство сокетных серверов над HTTP - объем передаваемой информации. Хотя возможно я несведущий, но когда мой первый сервер на php обменивался килобайтами информации, то сервер на C# - лаконично лишь несколькими байтами.

Сокеты есть и в php(насчет Ruby честно не знаю), но это дикое извращение.
Возможно что-то забыл...

Добавлено (07.01.2011, 19:33)
---------------------------------------------
Вспомнил, о чем никто не упоминал даже.
База данных. Кудаж без нее.
Я выскажусь за бесплатную MS SQL Express. Сравнений производительности с MySQL(самая популярная БД у вебдевелоперов) я к сожалению не делал и не видел.


ActionScript-программист. Так же Flash Media Server, C#, PHP. Рисовать не умею и не люблю.
Ищу проект, желательно где есть грамотный менеджер, дизайнер и художник.
PBPROGДата: Пятница, 07 Января 2011, 21:22 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
На PureBasic можно создать сервер (в т. ч. многопоточный) под любую из платформ, Windows, Linux, MacOS X.
nilremДата: Суббота, 08 Января 2011, 00:18 | Сообщение # 7
Просветленный разум
Сейчас нет на сайте
Quote (SoWa)
одновременное число подключений: 100к

Какие 100к? Самые быстрые, преимущественно написанные на С++ и использующие самое шустрое железо, сервера способны потянуть максимум 10000 клиентов. Да и то со скрипом. Например, в среднем максимальное количество игроков на одном сервере WoW - 2000.

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

Другой вопрос - на чем написать проще. Из тех языков, что я знаю, проще всего оказалось на С#.


Windmill 2

WindMill 2D Game Engine
PBPROGДата: Суббота, 08 Января 2011, 00:29 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
Quote (nilrem)
Другой вопрос - на чем написать проще. Из тех языков, что я знаю, проще всего оказалось на С#.
Пример создания сервера на PureBasic и обработки его событий.
Code

InitNetwork()

If CreateNetworkServer(0, 80 , #PB_Network_TCP)
   Repeat
     S_Event = NetworkServerEvent()     ; Получаем тип события сервреа
     If S_Event
       ClientID = EventClient()         ; Получаем идентификатор клиента
       Select S_Event                   ; Анализируем тип события серврера
         Case #PB_NetworkEvent_Connect  ; Новый клиент подключился к серверу
            
         Case #PB_NetworkEvent_Data     ; От клинета пришли данные
            
         Case #PB_NetworkEvent_Disconnect ; Клиент разорвал соединение с сервером
            
       EndSelect       
     Else
       Delay(10)
     EndIf
   ForEver
Else
   MessageRequester("", "Ошибка создания сервера, используещего 80 порт")
EndIf
SoWaДата: Суббота, 08 Января 2011, 12:46 | Сообщение # 9
частый гость
Сейчас нет на сайте
Quote (nilrem)
Какие 100к? Самые быстрые, преимущественно написанные на С++ и использующие самое шустрое железо, сервера способны потянуть максимум 10000 клиентов. Да и то со скрипом. Например, в среднем максимальное количество игроков на одном сервере WoW - 2000.

Какой резон мне тебе врать?
Сервер разрабатывается не для "плотного" реалтайма - несколько команд в минуту(как я уже писал выше - тут можно обойтись HTTP, но у меня больная голова и в ней мадагаскарские тараканы). Поэтому цифры такие. Сервер ведь на асинхронных сокетах. На синхронных(как сперва я экспериментировал) конечно такие цифры запредельны smile

Quote (nilrem)
Из тех языков, что я знаю, проще всего оказалось на С#.

Я того же мнения.


ActionScript-программист. Так же Flash Media Server, C#, PHP. Рисовать не умею и не люблю.
Ищу проект, желательно где есть грамотный менеджер, дизайнер и художник.
QWER56Дата: Понедельник, 17 Января 2011, 17:07 | Сообщение # 10
старожил
Сейчас нет на сайте
Как насчёт Java?

ConsMark - поисковик по интернет магазинам.
RikettaДата: Понедельник, 17 Января 2011, 17:13 | Сообщение # 11
Strategist
Сейчас нет на сайте
Шарп - лучший выход для стабильного, и достаточно мощного сервера....
Ява - хрупка, для большого онлайна. нужна сталь, вроде семейства C....


Fougerite - Rust Server OpenSource API
TerraDev - Terraria OpenSource Hack
PesetsДата: Понедельник, 17 Января 2011, 18:52 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
Не советовал бы писать сервер на С/С++. Ручное управление памятью на серверном приложении аукнется долгими часами отладки (или сервер будет летать, как фанера над Парижем). Та же Java проигрывает в скорости С++, ну, процентов пятнадцать от силы, зато сервер на ней написать будет на порядок проще. C# - тоже вариант.
А чтобы держать большое число коннектов, нужна мощная машина и широкий канал. Ну, и оптимальный код. От языка тут не так много зависит.



Форум игроделов » Программирование » Общие обсуждения программистов » На чём лучше писать серверную часть игры? (Советуйте...)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг