Войти
ПроектыФорумСобираю команду

Учимся писать многопользовательские игры (нужен программист)

Страницы: 1 2 328 29 Следующая »
#0
22:50, 26 фев. 2007

Здравствуйте.

У меня, как, наверное, и у большинства здесь присутствующих, не раз возникало желание написать "свою" игру. Самому. И не раз приходилось давать этому желанию по рукам. В самом деле, нужны сотни часов работы программиста, художника, сценариста, моделлера... руководителя, в конце концов, чтобы сделать что-то конкурентоспособное. При этом любой из перечисленных выше персонажей (кроме того, которого играете Вы), может в любой момент уйти... да хоть в декрет. И все.

Кроме того, нет никакой гарантии, что все затраченные усилия будут востребованы, что ваши "клиенты" не скажут "фуфло", и не вернутся к секонд лайфу или линейке. Усилий жалко, и хотелось бы знать заранее, что получится.

Это было предисловие. Теперь, собственно, сама идея.

Для получения опыта создания игр, надо сначала создать игру... игрушечную. Не претендующую - то есть, это даже в проекте не предполагается - на сотни тысяч пользователей, и простую как OS Windows  березовая чурка.

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

Поскольку мы хотим научиться всему, что может потребоваться, то брать следует задачу достаточно универсальную, скажем, многопользовательскую онлайновую игру. Это сложная задача, однако, и ее можно сделать "игрушечной", я имел дело со сценариями раньше, и полагаю, задачу можно будет ужать до семи-десяти человеко-дней для каждого из следующих работников: менеджер (я), сценарист (я и мозговой штурм всей командой), программист (1-2, нужно написать как клиента, так и серверную часть), художник-моделлер (в варианте с игрушечным сценарием - одного хватит, так как модели будут простые), системщик (работает с программистом, либо совмещает, в одном лице. Он будет заниматься сервером, если мы решим свое творение выпускать в онлайн, безопасностью, и т.п.). Ответственный за звук (звуки тоже будут простые). Вроде, все.

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

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

Разработка исключительно виртуальная, думаю, Аськи, плюс простых правил, типа "что делать, чтобы не перепутать версии файлов", вполне хватит.

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

Для чего писать подобное? Как я уже упоминал, для того, чтобы научиться работать в команде, над проектом, по расписанию... И с предсказуемым результатом. Это очень важный момент, я хотел бы, чтобы было понятно, чем ЭТО отличается от простой работы в команде, когда начальник говорит Вам, что надо делать. Здесь Вы видите мои (а я - Ваши) действия, и учитесь всему, что творится в команде. Например, руководить созданием игры.

Еще для того, чтобы собрать эту самую команду. Потом можно будет говорить о работе над чем-то более сложным. Но - помните вопрос, о том, не пропадут ли усилия зря? Недели усилий не жалко, а если мы увидим, что все прошло, как планировалось, то на следующем, более сложном, этапе, уверенности будет чуть побольше.
Ну и наконец, возможно, эту игру можно будет продать, но мне кажется, как раз об этом думать рано. Мы делаем "игрушечную" игру. Хотя, если проект будет успешным, то можно написать книгу... Снять фильм :)))

Как это будет выглядеть технически. Сначала собирается команда. С более-менее известными скилами. Затем мы переходим с форума в Аську. Берем мой сценарий (помните прыжки пингвина со скалы? Чуть посложнее) и методом мозгового штурма доводим его до ума. Ставим (я ставлю, остальные поправляют) задачи участникам. Далее следует регулярный, например, раз в сутки, обмен сообщениями, и файлами тоже. Все в исходниках.

В качестве движка я предлагаю Панду, по ряду причин. Во-первых, виртуальная работа требует либо очень высокой степени взаимного доверия, либо такой же степени разгильдяйства. Я говорю об обмене вирусами. Панда работает на Питоне, который интерпретатор. Исходники проще просмотреть. С++, конечно, тоже можно, но требовать от бедного художника, чтобы он(а) установил(а) С++ и освоил(а) технику компилляции... Во-вторых, судя по отзывам, в Панде работать удобно, и быстро, быстрее, чем, скажем, на плюсах. В-третьих, и тоже в главных, на форуме Панды можно найти исходники, практически на все случаи жизни.

И последнее: так как приведенные выше человеко-дни ПОЛНЫЕ, а у людей, помимо бесплатных проектов, есть и другие дела, то упомянутые 7-10 дней надо умножить на 3-7, по крайней мере, для большинства участников.

Итак: для учебного проекта, использующего Панду в качестве среды разработки, требуются:

менеджер (вакансия заполнена, мной)
сценарист (вакансия заполнена, мной)
программист (1-2, знание Питона, опыт работы с Пандой, в том числе, опыт написания клиент-серверных приложений, желательно: вопросы безопасности сервера, защита от взлома и фальсификации данных клиента, поддержка работы сервера)
художник-моделлер (предпочтительно - модели Майя, опыт использования моделей в Панде желателен)

Умение создавать простейшие игровые звуки с помощью синтезатора - плюс.

Пишите в эту ветку, пока. Потом посмотрим.
Удачи всем.
Физпок (fizpok.narod.ru)

================

Попробую-ка я еще раз сформулировать что нам нужно, и что мы хотим сделать.

Что нам нужно. Собрать команду из программистов серверной и клиентской (последняя желательно на Панде, если нет, то на к-л достаточно мощном бесплатном движке, типа Ирлихта). Художник, моделлер.

Часть этих позиций уже занята, но в рамках этого проекта можно работать в и парами :)

Пока что мы "нашли" троих,  Berserk, KAP и Alchi, причем официальный статус Берсерка пока - сочувствующий :) - поправьте меня, если я ошибаюсь. Остается два разработчика и я в роли сценариста (причем сценарий практически весь тут выложен, дальше дело художника и программистов), менеджера и в какой-то момент веб-раскрутчика.

Для проекта, минимум, надо еще одного человека, лучше двух.

========

Что мы хотим сделать.

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

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

Цель этапа 1 - опыт, как опыт разработки, знакомство, на простом примере с процессом создания игры, так и опыт дизайна, в широком смысле этого слова. Также, поскольку, в отличие от больших фирм, детали принятия управленческих решений не будут скрыты от всех членов команды, опыт управления процессом разработки.

Если у Вас есть время и желание поработать, приходите к нам :)


#1
20:49, 27 фев. 2007

простите, что не в тему. А панда это среда разработки именно web-приложений?

#2
0:29, 28 фев. 2007

> Хм, обо всем написал, а аську забыл? ;)

Аську не забыл :) Аську принципиально не включил, чтобы народ, если кто заинтересуется, мог все прочитать тут, в форуме. А до Аськи очередь дойдет, когда будет команда, и надо будет уже работать. Судите сами, вот мы с вами уходим в Аську, обсуждаем что-то... А потом приходит кто-то еще, и это "что-то" ему недоступно...

> простите, что не в тему. А панда это среда разработки именно web-приложений?
Насчет Панды (panda3d.org). Это обсуждается, конечно. И если вдруг придет программер, работающий на чем-то другом, что ж! Но у Панды есть ряд преимуществ именно для простых и быстрых проектов. Она использует Питон, что быстрее (в разработке). Она ОЧЕНЬ устойчива, судя по отзывам. Для нее существует хорошая документация и комьюнити. Она бесплатна для всех вариантов использования, включая коммерческие.
Веб-приложения - в Панде есть модуль обмена данными. Если появится информация о том, что многопользовательские веб-игры на Панде писать неудобно, то обсудим, и подберем другой движок. Это нормальный процесс подготовки к работе в новой области. Важно, чтобы движок был бесплатный, распространенный, с хорошей поддержкой и примерами, из которых можно (в том числе - не нарушая (С)) брать куски. Панда, вроде, всему соответствует.

#3
13:33, 28 фев. 2007

> Почитал мануал к Panda3d, довольно познавательно.

Странно. Я думал, Панду знают все :) Очень уж хорошо сделанный и "спокойный" сайт.

> Кстати, на том сайте есть еще небольшой набор мультяшных 3D моделей.

Набор - так себе. Игру на нем не сделать. Впрочем, для того, о чем идет речь в этом проекте, модели нужны простые. Пример с пингвином я уже приводил. Что еще есть подобного? Реклама М&М - эти шарики на ножках. Мелкие 3д "почти спрайты", типа тех фигурок, что используются в стратегиях...

В принципе, развитие именно онлайнового квеста от чего-то уровня ДОСовского диггера и до серьезных игр с серьезной трехмерной анимацией - не так уж и сложно. Усложняется модель, и - в определенных случаях - програмный код. Возьмем к примеру диггер, или что-нибудь в этом роде. По квадратному полю (уровень) движутся двухмерные спрайты, и едят друг друга. Отсюда переходим к сложным трехмерным моделям - и имеем (упрощение, конечно, но - все же) Парк Юрского периода, поскольку правила игры остаются теми же. Также несложно перейти от диггера (дался он мне!) к онлайновой стратегии. Тут, наоборот, усложняется код, а не графика.

Хотя, конечно, это лирика. На практике любое усложнение потребует затраты массы усилий.

#4
13:35, 28 фев. 2007

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

#5
14:33, 28 фев. 2007

Могу помочь с серверной частью.

#6
17:33, 28 фев. 2007

Я конечно о Панде  ничего не знаю, ну судя о названии сайта(panda3d.org), это серьезная среда разработки с применением 3D технологий. Но теперь вопрос: а нужна ли панда для такой игры, которую вы описали выше? К примеру, можно использовать Flash, JS  ну и PHP. Или я ошибаюсь?

#7
17:35, 28 фев. 2007

флеш-вектор
пхп для работы с сервером

#8
20:34, 28 фев. 2007

> Могу помочь с серверной частью.

Ура :) Первый доброволец.
Я кликнул на Ваш "инфо", но там трудно понять, где Вы, а где компания. Или компания из одного человека?

Расскажите. Чем и как можете помочь, что умеете - в контексте этого проекта. Серверной частью (моя вина, наверное) можно назвать как настройку и поддержку сервера (железо, системное администрирование), так и написание серверной части программы. Если второе - на чем планируете это делать? Словом, ВСЕ интересно :)

#9
20:40, 28 фев. 2007

> а нужна ли панда для такой игры, которую вы описали выше?

Если ставить себе целью создание простой игры - нет, не нужна, я с Вами абсолютно согласен. Но целью проекта заявлено создание игры - как средство. С целью обучения коллектива - нас - работать вместе, решать возникающие по ходу дела проблемы, не ссориться друг с другом, или уметь разруливать конфликты... Результатом будет группа товарищей :) готовых к созданию чего-то большего. И если этот маленький тест делать на флэш - ЧТО мы будем иметь по окончании проекта в плане опыта? То есть, мы научимся работать вместе, хоть с флэшем, хоть с Пандой, но если использовать Панду - или какой-либо другой продукт-"стандарт индустрии", то у нас будет еще и ощущение комфорта при работе с этим продуктом. И когда (если) придет время писать что-то следующее, посложней, мы не будем терять время ни на обучение, ни на преодоление страха - а сможем ли. 

#10
20:45, 28 фев. 2007

> флеш-вектор
> пхп для работы с сервером

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

#11
20:50, 28 фев. 2007

>Можно и во флаш, и сервер на PHP. Думаю, что пингвин в онлайне - это скучно как-то..
>нужно придумать более приличную игровую концепцию. Я помню, как играл с подругой в
>"терис-арена", это было весело! В этом плане лучше двигаться в сторону простеньких пазлов и
>головоломок, нежели пингвинов.

Пингвин был приведен как пример того, что игры бывают простыми. Чтобы люди не решили, что я призываю за неделю написать Final Fantasy. Конечно, этот сюжет мы делать не будем. Опыт работы со сценариями у меня есть, когда команда соберется, устроим мозговой штурм, уверен, то, что получится в результате, будет интересно, и уж по крайней мере, необычно.

Хотя, и пингвина можно научить летать... Представьте, заходите на сервер, собираетесь толпой, человек двадцать. Бросаете жребий. После этого всем, кроме вас, раздают бейсбольные биты, и начинается ИГРА. Я даже знаю, кто заплатит за разработку - Майкрософт. Они почему-то не любят пингвинов :)
(на правах шутки)

#12
9:39, 1 мар. 2007

Fizpok
Группа из трех человек. Я программер, другие - моделлеры. К сожалению, сейчас им неохота ничего делать, так что ищу опыт на стороне.

Могу написать кроссплатфоремнный сервер под win32 и unix. По-моему, пхп - слабоват для развития проекта.
Счас уже есть сервер с поддержкой до 1000-2000 клиентов, скриптовая система, MySQL,  довольно универсальный. Я на его основе пишу (заменой скриптов) серваки для чатов, систем администрирования по работе.
Тестирование с серваком под win, когда надо выпускать в инет - есть хостинг с shell, возможность запускать свои приложения. Могу сайт разместить.
Добавил аську в инфу.

#13
10:05, 1 мар. 2007

Ответ KAPу.
Прекрасно. В принципе - то, что надо. Кроссплатформенность - смотря, каких жертв это потребует. Я знаю компании, которые годами тащат на горбу эту кроссплатформенность, потому, что жалко бросать, хотя абсолютно ясно, что работать будут только под виндой. Для серверной части, конечно, Юникс удобнее - имхо. Но если при тестировании можно будет запускать сервер на том же компе, что и клиент - это удобно... А клиент - точно должен быть виндовым. Короче, программируете Вы, и именно Ваше мнение будет решающим.

Насчет слабости пхп - это зависит от того, что и как вы с этим сервером делаете. Строго говоря - см. предыдущие посты - я никогда пхп не предлагал :)

Может возникнуть вопрос о копирайте, если что-то из того, с чем вы придете к нам принадлежит остальным из вашей тройки?

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

Про Аську. Именно из-за этих, пока еще не примкнувших, остальных, я не хотел бы переносить в Аську даже часть обсуждения. Пусть лучше человек может ВСЕ прочитать, и решить(ся) участвовать в проекте. Когда же команда будет набрана, однозначно, переползем под Аську.

#14
10:07, 1 мар. 2007

Вот кстати, об агитации. У меня сильное ощущение, что далеко не все читают нашу ветку. Куда вывесить пост, чтобы не сочли за назойливость (дублирование постов в разных форумах не приветствуется), и чтобы народ сюда пошел?

Страницы: 1 2 328 29 Следующая »
ПроектыФорумСобираю команду

Тема в архиве.