Создание игры
поясни
Тут мне не совсем ясна одна вещь. Допустим - требуется определиться, какую задачу следует поставить и решить. Но возможности, как ты согласился, у разных языков разные - и тогда что получается: мы ставим задачу, для решения которой, например, лучше всего подойдет Java. А мы его не знаем!:eek: И что нам делать? Срочно изучать? Придумать другую задачу (в данном обсуждении ведь именно мы решаем, что выбрать)? Или попробовать найти решение на С++? или С#?
Не говори, что это каждый сам выбирает:) Мне интересно твое мнение.
Не говори, что это каждый сам выбирает:) Мне интересно твое мнение.
Думаю для написания морского боя, даже с такой суперфичей, как сетевая игра подойдет любой язык.
Не говори, что это каждый сам выбирает:) Мне интересно твое мнение.
пишем объявление - требуется Java разработчик :)
Вот именно потому что для этого подойдет любой язык - я и предложил это определить сразу. В данном случае, по уровню проекта, выбор языка не зависит от выбора идеи - он определяется предпочтениями и опытом участников.
[QUOTE=squirL]
пишем объявление - требуется Java разработчик [/QUOTE]
Ну это ты хватил...:) Еще приписать - "...для разработки сетевого движка морского боя. Контракт на 2 года..."
А я вот полностью согласен с squirL.
Сначала идея, её детальное описание, потом обоюдный подгон идеи и возможностей.
А так получается: "умею копать и умею не копать".
Вспомните примерный план: сбор требований -> анализ -> проектирование -> разработка -> тестирование -> в_начало.
Здесь же пытаются начать с проектирования, т.к. требования определены не были и соотв-но анализировать нечего.
Сначала идея, её детальное описание, потом обоюдный подгон идеи и возможностей.
А так получается: "умею копать и умею не копать".
Хорошо, лично я не хочу отстаивать мнение, только потому что оно мое.
Насчет подгона - как это выглядеть должно? Ты сказал - обоюдный, уточни, а? В какую сторону больше выбирается смещение, и от чего это зависит, и как определить? Можно на примере приличного проекта. Интересно стало.
Все зависит от фичи, от гейм-фокуса и т.п.
Например, гонки. Если в основе лежит соревнование на скорость, тактику вождения, как в NFS, то точную модель повреждений можно и упустить или упростить. Если же в основе лежит именно возможность разрушать, как в Burnout, то реализуем именно эту фичу в ущерб другим.
Аналогию можно провести и с языками программирования. Если нужна динамика при небольших аппаратных ресурсах, то либо урезаем зрелищность и кол-во деталей, либо наращиваем ресурс за счет кодинга (учим C/C++, а не Java, либо приглашаем готовых специалистов). Грубая аналогия получилась, ну да для примера сойдет.
Примеров масса, почитайте постмортемы игр, там обычно хорошо прослеживается, о чем мечтали в начале, что получили в конце.
http://dtf.ru/articles/list.php?tid=article&stid=postmortem
Вот эту статейку почитайте, весьма полезно:
http://dtf.ru/articles/read.php?id=37662
Короче читайте, интересной инф. полно.
А то опять повторяется тенденция "метод тыка вместо RTFM".
Далее если получилось, игра "работает", т.е. сам механизм, можно внедрить сетевую игру.
Сетевую игру внедрили, опять же отладали, механизм работает.
Следующий шаг: Анимирование и звуковое сопровождение, получилось все проект данная версия я считаю завершен.
Следующий этап переход к DirectX...
Visualex - Хм. Вот то что ты предлагаешь, как я понимаю, в базовом уровне графики - это все реализуемо на любой приличной станд. оконной библиотеке, вообще говоря. А вот переход на DirectX - (кстати, ИМХО, тут лучше OpenGl!!!), это переписывание всего, практически. Может, сразу с этим четко определитесь?
Как сказал один мудрый китаец: "Даже самая длинная дорога начинается с первого шага".
Вот давай с правил игры и начнем:
1. Играют двое.
2. --- ???
продолжайте...
З.Ы. А то вы куда-то не туда зарулили уже. DirectX, OpenGL... Посты Green'a прочтите внимательно и воспользуйтесь советами. А то вы только спорить горазды... ;)
[/QUOTE] Китаец был действительно мудрым. Отличная мысль!
Ну, начну описывать правила:
Игра происходит на 2-х полях 10х10
На одном поле игрок расстанавливает свои корабли, на другом он будет отмечать свои успехи в бомбежке вражеского поля.
Игра подразделяется на два этапа: Расстановка и Розыгрыш
Расстановка включает в себя:
1.Размещение 4-палубного корабля;
2. Размещение 2-х 3-палубных кораблей;
3. Размещение 3-х 2-палубных кораблей;
4. Размещение 4-х однопалубных кораблей.
Примечание: корабли должны быть в одну линию, т.е. не допускается ломаные корабли (в форме уголков); между кораблями обязательно должно быть расстояние в 1 клетку по ВСЕМ направлениям (в том числе и по диагонали); корабли можно размещать только по вертикали и по горизонтали.
Далее происходит розыгрыш:
Учатники попеременно "обстреливают" клетки поля соперника, называя номер клетки. При попадании соперник ОБЯЗАН сообщить об этом "стреляющему", он же ("стреляющий") получает право на следующий "выстрел", при промахе ход переходит к сопернику. Если "стреляющий" подбил один из многопалубных кораблей, то соперник ОБЯЗАН сказать "Ранен" или "Попал" или т.п., ели же "стреляющий" попал в однопалубный корабль, или уничтожил последний квадрат многопалубного корабля, то соперник ОБЯЗАН сказать "Убит" или т.п. Пока не уничтожен последний квадрат корабля, корабля считается "живым". Участники отмечают на 2-м поле промахи и попадания.
Задача участников как можно быстрее уничтожить флот противника, естественно сделавший это выигрывает.
P.S. Надеюсь я дал исчерпывающую информацию?
Т.к. у вас нет разделения на гейм-дизайнеров, художников, программистов, придется делать все за всех и последовательно.
Теперь хорошо бы нарисовать примеры пользовательского интерфейса, изображение кораблей, придумать в первом приближении спец-эффекты и как описанные правила будут применяться на практике. Как будете запрещать игроку неправильно расставлять корабли, будете ли лимитировать время расставления и как, будете лимитировать время хода, как? Различается ли игра по уровням сложности? Происходит ли что-то от матча к матчу? Ну и т.д. Те вопросы, которые на поверхности желательно оговорить сразу. Причем оговаривать не только положительные или раскрываемые моменты, но и другие. Например: у игры нет развития событий, т.е. от матча к матчу ничего не меняется, уровней сложности так же нет, т.к. это выходит за рамки данного проекта.
Что касается больших и маленьких проектов. Проект у вас небольшой, но это не значит, что он делается совершенно по другому сценарию. Проект проще и сценарий проще, но не другой. Кроме того вы же сами говорите, что хотите попробовать и научиться делать игры. Вот и учитесь, ведь делать игры - это только на четверть (а то и меьше) состоит из написания кода.
P.S. Надеюсь я дал исчерпывающую информацию?
Вполне. :)
Далее ряд уточняющих вопросов:
1. Предусматривается ли изменение параметров игры. Я имею ввиду следующее:
1.1. Размеры поля
1.2. Количество и формы кораблей.
Кстати, для обсуждения: можно заделать перемещение кораблей. Например: целый кораблик - можно перемещать через каждый ход, а раненые - помедленнее, в зависимости от повреждений. Например, каждый уничтоженный сегмент (палуба), замедляет кораблик на один ход. И бомбы можно разной мощности использовать, например - супер-пупер-бомба повреждает все в радиусе 3 квадрата.
Но это так - для пущего интереса, компьютерная игра, все таки ;). Просто предусмотреть, когда стадия проектирования подойдет...
Теперь хорошо бы нарисовать примеры пользовательского интерфейса, изображение кораблей, придумать в первом приближении спец-эффекты...
Не знаю, рановато наверное... От "бумажного" варианта надо немного отойти, а то интерес у народа пропадет из-за отсутствия элемента творчества... :) Геймплей, блин...
А по поводу интерфейса - я бы сделал сначала консольку (ладно-ладно, простейшую графику), чтобы отладить элементы. И кстати, с расстановкой и "ИИ" разбираться проще, а то внимание начнет улетать на "красивости" и т.д...
В остальном - согласен...
Ну уж какой предложили... :)
Я тут что-то типа орбитра, а не креативщика... :)
А по поводу интерфейса - я бы сделал сначала консольку (ладно-ладно, простейшую графику), чтобы отладить элементы. И кстати, с расстановкой и "ИИ" разбираться проще, а то внимание начнет улетать на "красивости" и т.д...
Ну не вопрос консольную (псевдографика) так консольную, это не избавляет от необходимости описать UI.
Чтоб внимание и не улетало потом на красивости, надо оговорить сейчас как оно будет в первом приближении.
Вот предложение: тупо рисуем (можно в Paint'e) кусок листика в клеточку с двумя игровыми полями, картинку такую. Без разноцветностей и т.д... Так же тупо рисуем это в простейшем окошке c использованием GDI. Кораблики - чисто символически, в виде закрашенных клеточек. На каком языке - на данном этапе это не важно. Важно с места сдвинуться...
Ну вот уже что-то по UI есть. Хорошо б такие вещи наглядно демонстрировать.
Требуется: создать диалоговое окно с этой (или похожей) картинкой. Язык любой, но желательно исключительно через API ( т.е. без MFC и прочих Qt :)), так как это повлечет массу проблем (на этапе разработки, да и далее...).
P.S. Потом, кто сможет, перенесет это дело в dll. Для разрешения вопросов, типа: "я в дельфи пишу", или "VB для таких дел - самое оно". Без обид ;)
Я тут что-то типа орбитра, а не креативщика... :)
А я и не пойму, как я-то в это дело вляпался... 30 годов ужо... ;)
Ты глянь на фото с нашего сайта, какие у нас дядьки бородатые игры делают. :)
Ты глянь на фото с нашего сайта, какие у нас дядьки бородатые игры делают. :)
Да уж... Поди, байкеры-анархисты? ;)
Хотя, это же шоу-бизнес, как ты говоришь... Почему бы и нет?
1. Предусматривается ли изменение параметров игры. Я имею ввиду следующее:
1.1. Размеры поля
1.2. Количество и формы кораблей.
Это, мне кажется, стоит сделать. Потому что от этого зависит общее время одного боя. И Пользователь выберет, каким временем он располагает.
Кстати, для обсуждения: можно заделать перемещение кораблей. Например: целый кораблик - можно перемещать через каждый ход, а раненые - помедленнее, в зависимости от повреждений. Например, каждый уничтоженный сегмент (палуба), замедляет кораблик на один ход. И бомбы можно разной мощности использовать, например - супер-пупер-бомба повреждает все в радиусе 3 квадрата.
Но это так - для пущего интереса, компьютерная игра, все таки ;). Просто предусмотреть, когда стадия проектирования подойдет...
Это очень интересная мысль, но тогда возникает куча вопросов и идей.
Если они могут двигаться, то:
1. Нет смысла хранить информацию о предыдущих выстрелах ,она
бесполезна.
2. Можно сделать какие нибудь преграды и т.п. (т.е. по сути набор
карт, на которых может проходить схватка.)
3. Развивая мысль, можно сделать оружие, запрещающее перемещения
противника.
4 - ?? Может, тогда сделать раунд проходящей на одном поле? Как кто
думает?
Ну, это как раз очень интересно, обсуждение идей. А потом что будет в конце интересного? отладка? хорошо еще сроков нету:)
Ну, раз больше никто не высказался (пока), остановимся на следующем:
1. Размеры поля могут изменяться.
2. Правила размещения флота остаются стандартными.
Вот, кстати, и мысль посетила: карты у игроков могут быть не одинаковые (опять же, для интереса). Т.е. У одного игрока, например, 10х15, а у другого игрока (или ИИ) 15x10. Главное, что бы площадь была одинаковая, для равных условий маневров (если утвердится).
Вот, кстати, и мысль посетила: карты у игроков могут быть не одинаковые (опять же, для интереса). Т.е. У одного игрока, например, 10х15, а у другого игрока (или ИИ) 15x10. Главное, что бы площадь была одинаковая, для равных условий маневров (если утвердится).
Да, по справедливости, должны быть одинаковы размер карт, и общая площаль преград (если утвердят). И тогда на разных картах могут быть свои стратегии игры.
Ну, да. Бомба упала, и кораблики от того места начинают расползаться, или наоборот, следуя правилу "Бомба 2 раза в одну воронку не попадает...
Это поощряет развивать тактику боя, ценно. И ситуация больше будет зависеть от игрока, а не от слепой удачи.
Решили:
Между ходами корабли могут передвигаться на расстояние, зависящее от их характеристик. т.е. маленькие и целые - быстрее, большие и раненые - медленнее...
Дальше...
1. Пользователь выбирает карту из набора карт выбранного размера боя.
2. Карты надо продумать, чтобы они были равные, но разные.
3. Начальное размещение как в classic MB, с учетом специфики карт.
4. Каждый корабль имеет расширенные боевые характеристики.
5. Система бонусов и улучшений судов.
1. Пользователь выбирает карту из набора карт выбранного размера боя.
Одобрям-с...
2. Карты надо продумать, чтобы они были равные, но разные.
Это типа как в игрушке... э-э-э... ну, там где ящики надо двигать? Sokoban, вроде называется...
3. Начальное размещение как в classic MB, с учетом специфики карт.
Согласюк...
4. Каждый корабль имеет расширенные боевые характеристики.
5. Система бонусов и улучшений судов.
По-подробнее. У больших более сильное оружие, и более серьезная защита? Тогда предусматриваем процентное повреждение, и возможность саморемонта. Если использовать идею Visualex, тогда можно сделать один-два маленьких кораблика ремонтными, соответственно с самым слабым вооружением....
Не, от классического расклада предлагаю не отходить. Обсуждаем...
Лучше, наверное, время ремонта привязать к проценту урона данной палубы...
Насчет того чтобы был ремонт - тогда можно развить так.
Ремонт требует неких очков ремонта, соотв. выстрелы очков зарядов.
Их можно закупать в начале раунда, находить и.т.д.
Ремонт требует неких очков ремонта, соотв. выстрелы очков зарядов.
Их можно закупать в начале раунда, находить и.т.д.
Блин, а не много условий? Начинает походить на приставочно-мобильнотелефонную аркаду... Кстати, мысль! :)
В принципе, можно. Или сделать накопительную систему? В зависимости от количества попаданий, уровня нанесенных повреждений и уровня сохранности собственного флота?
1. Пользователь выбирает карту из набора карт выбранного размера боя.
2. Карты надо продумать, чтобы они были равные, но разные.
[/quote]
Для начала всетаки ограничиться 10х10, и стандарнтым набором кораблей.
[quote=Zorkus]
4. Каждый корабль имеет расширенные боевые характеристики.
5. Система бонусов и улучшений судов.
[/quote]
в связи с этим можно сделать выбор корабля, который ведет атаку...
[quote=Salamansar]
Тогда может все будет происходить на одном поле, а не на двух?
[/quote]
тоже идея, тогда есть еще больший смысл выбора атакующего корабля, радиус обстрела, движение корабля.
Поле можно взять допустим 20х20, расстановку кораблей можно сделать как шахматы, напротив друг друга
мда... что-то напоминает героев... =)
кораблям еще балистические ракеты добавить, с ядерными боеголовками... =)