Когда становится жестоко, делают DSL. А плюсы не жестоки, если есть с ними опыт. Дольше к чему-то другому привыкать.
pavelkolodin
> Когда становится жестоко, делают DSL
ну это ещё месяца три минимум : )
своё конечно забавно делать, спору нет, но есть обкатанные Lua Python
Плюсы хороши и эффективны только в руках очень хороших программистов. Кого попало сажать за иксы - будет как обезьяна с гранатой.
Хороший программист мало того, что стоит дороже, так он еще и не желает работать с маловажными, с его точки зрения, частями проекта. Посади такого скриптовать что-нибудь, он загрустит, станет очень медленно работать, а потом вообще уволится.
pavelkolodin
> А плюсы не жестоки, если есть с ними опыт.
иногда плюсатым программастам неплохо бы выглядывать из своей "уютной норки"
ща почти никто не пишет серв на плюсах, всякие шарпы и жабы успешно их вытесняют
за счёт скорости разработки
в геймдеве это важно
ибо как правило выясняется, что все сроки давно про@#аны : ))
Ну незнаю, почему хороший плюсник будет делать все медленнее явщика.
Самые чоткие парни пишут свои чоткие серверы на Erlang.
pavelkolodin
> почему хороший плюсник будет делать все медленнее явщика
хотя бы потому что им не надо изобретать DSL и ORM : )
жаба она едина в двух лицах, и как байткод, и как скрипт + Hibernate
Не понял про единство.
ну я жабу совсем не знаю, поэтому тут меня легко подловить : )
смысл примерно такой, что критичный по исполнению код компилится в нативный машкод, а всякая хренотень, которую обычно скрипты делают, ну так она на VM исполняется
свой "нагруженный" сервер написал где-то за пол года на приплюснутом...
Надо сказать, это был первый опыт создания сервера такого плана (еще не игровой)
По архитектуре вроде бы все продумано и "должно" работать как надо.
Но в процессе эксплуатации выяснилось, что бытовой компутер воткнутый в сеть под внешним айпишником тянет 100 - 150 асинхронно работающих клиентов
и это всего (в ТЗ имелась неосторожно пропущенная запись о том что будут использоваться простые хостингы по 5 евро/мес). При этом выяснилось что ширина канала далеко не самый главный из тормозов...
Вопщем для себя вынес главные вещи....
1. Если надо сделать быстро, то уж точно не стоит начинать писать проект с "нуля"
2. Не возможно заранее создать подходящий для работы протокол/протоколы (эта вещь, которая будет меняться вполоть до сдачи заказчику). Особенно если не знаешь какая будет серверная платформа.
3. Один в поле не трактор... Нужна команда из 2х 3х человек.
4. Т.З. проекта должны писать для себя разрабочики в давольно абстрактном виде. Главное - это количесво этапов и сроки их исполнения (мне показалось чем больше этапов, тем лучше понять, где случилась ж**па).
5. ОБЯЗЯТЕЛЬНО нужно вести рабочую тетрадь, того что было сделано и раз в неделю просматривать TODO по коду всего проекта....
6. спроси себя, как это обслуживать....
7. и т.д.
Не у верен, что представленные пункты хоть как-то отражают профессиональную составляющую нашего ремесла. Но в текущих проектах придеоживаюсь полученного опыта.
Насчет денег сказать сложно (работаю по найму), но примерно догадываюсь, что контрактная цена моего проекта была где-то в районе 500К руб.
ZooLoo
> Но в процессе эксплуатации выяснилось, что бытовой компутер воткнутый в сеть
> под внешним айпишником тянет 100 - 150 асинхронно работающих клиентов
А какой был компутер, если не секрет? Интересно просто.
Sh.Tac.
> + Hibernate
ИМХО, сомнительно, что хибернейт будет хорош в высоконагруженной системе.
Лучше уж хранимки делать.
Какая-то сильно абстрактная задача. Время разработки серверов MMO и какой-нибудь Фермы3D весьма заметно отличается.
Но, все равно, как показывает практика, 1 человек такую разработку в разумные сроки не потянет. Разве что если он гений )).
Если работал один человек и он вдруг ушел (всякое в жизни случается), это катастрофа, начать заново зачастую легче, чем восстановить контроль над проектом при новых исполнителях. Если хотя бы один из старых сотрудников остается - все более или менее нормально. Бригада из 2-3 человек дает устойчивость.
ZooLoo
> свой "нагруженный" сервер написал где-то за пол года на приплюснутом...
> Надо сказать, это был первый опыт создания сервера такого плана (еще не
> игровой)
> По архитектуре вроде бы все продумано и "должно" работать как надо.
> Но в процессе эксплуатации выяснилось, что бытовой компутер воткнутый в сеть
> под внешним айпишником тянет 100 - 150 асинхронно работающих клиентов
> и это всего (в ТЗ имелась неосторожно пропущенная запись о том что будут
> использоваться простые хостингы по 5 евро/мес). При этом выяснилось что ширина
> канала далеко не самый главный из тормозов...
> Вопщем для себя вынес главные вещи....
> 1. Если надо сделать быстро, то уж точно не стоит начинать писать проект с
> "нуля"
> 2. Не возможно заранее создать подходящий для работы протокол/протоколы (эта
> вещь, которая будет меняться вполоть до сдачи заказчику). Особенно если не
> знаешь какая будет серверная платформа.
> 3. Один в поле не трактор... Нужна команда из 2х 3х человек.
> 4. Т.З. проекта должны писать для себя разрабочики в давольно абстрактном виде.
> Главное - это количесво этапов и сроки их исполнения (мне показалось чем больше
> этапов, тем лучше понять, где случилась ж**па).
> 5. ОБЯЗЯТЕЛЬНО нужно вести рабочую тетрадь, того что было сделано и раз в
> неделю просматривать TODO по коду всего проекта....
> 6. спроси себя, как это обслуживать....
> 7. и т.д.
я свой windows сервер писал 4 месяца один. другие писали флешового клиента.
общались через скайп и JIRA последняя полюбилась давно и юзаю ее всегда для составления и опасания тасков, багов, фич и отчетности по ним
протокол придумали зы 2 часа. причем он органично из CP вытекал: 2 байта длина пакета + 1 байта код команды + данные + 4 байта CRC
100-200 игроков легко держал на стареньком Pentium4 с 4мя гигами оперативы, + там же стоял postgreSQL и все это чуда научной мысли под Windows2008 web edition
применял CompletitionPort
сейчас переехали в датацентр в германии, стоит Intel i7-920 Quad Core c 8 GB DDR3 ( кстати всего 49 евро в месяц ) за время эксплуатации ни разу не видел чтобы загрузка сервака превысила 1%. так что я не знаю сколько он физически может вытянуть. пока максимум был 1700.
так что может быть твоя эпопея это свидетельство малоопытности?
Zab
> Если работал один человек и он вдруг ушел (всякое в жизни случается), это
> катастрофа, начать заново зачастую легче, чем восстановить контроль над
если код написан грамотно и по корану то катастрофы нет. а чтобы не уходили ключевые игроки надо стимулировать премиями по окончании проекта.
Тема в архиве.