Создание игры
Если вы точно определились - МБ, то начните с ТЗ, напишите спецификацию по архитектуре, договоритесь о стиле кодинга.
Иначе то, что у вас получиться, не будет расширяемым и поддерживаемым.
Потом мне кажется, не все прониклись словами про общий план. Мне, например, очень не понравилось пренебрежительное отношение к ИИ. А в проекте такого типа это самый вкусный кусок.
Может, меня кто-то поправит, если я неправильно обрисовал общий путь в начале.
Если мы собираемся делать серьезный проект - этот вопрос надо решить сразу. Лично я болею за Pascal - тебе будет полезно, а мне практика (причем очень большая), а там глядишь и на С перейдем. :)
Лично я болею за Pascal - тебе будет полезно, а мне практика (причем очень большая), а там глядишь и на С перейдем. :)
Лично я советую переходить с паскаля как можно быстрее на реальные языки, С++/Java/C#. Потому что изучать глубоко паскаль, чтобы потом переучиваться - это
1) Долго и бессмысленная трата времени
2) Только затруднит переход, тебе все будет казаться в С++ каким то "не таким".
По примеру моих одногруппников скажу.
Да вот то то и оно, что надо.:(
Я б и сам хоть завтра бы перескочил, да только не могу я - меня можно сказать не пускают с Pascal! Если я забуду хоть что нибудь - меня просто повесят. Другое дело, что можно попытаться учить С и практиковаться на Pascal, но учить 2 языка - каша в голове обеспечена. Да и пока я выучусь вы без меня игру сделаете.:)
Кто?
Да и пока я выучусь вы без меня игру сделаете.:)
Не беспокойся:D
[/quote]
Ты глуболко заблуждаешься, я согласен что это кусок что надо, но пока до этого не дошли.
Хочешь предложи свой вариант, я не спорю что я полностью изложил задачу, я даже об этом не упоминал, пока первая часть...
2Salamansar
Паскаль я изучал, даже немного фанател им, потом появился С++...... (по программе в универе). Модулем Graph строили переходные процессы.
С++ изначально: корявый, сложный, неудобный... и т.д. показался. Потом привык - это во-первых, а во-вторых показался наиболее удобным при дальнейшем использовании.
Ко мне на днях студент знакомый заходил(Programing = NULL), на паскале порпосил программу для расчета факториала составить. на С++ 2 минуты. Но потом переводили на паскаль... я все забыл... тяжко было (да еще и без компилятора). Но воде он сдал!=)
А я всеже согласен с Zorkus-ом что лучше использовать С++.
И тебя понимаю каша-малаша.
Так что:
cout<<"infinity"<<endl;
}while(1);
Хочешь предложи свой вариант, я не спорю что я полностью изложил задачу, я даже об этом не упоминал, пока первая часть...
Перед тем, как заниматься разработкой игры, пусть даже элементарной, советую почитать про ИИ, хоть основы. Иначе играть будет неинтересно.
Потому что порой даже в играх уровня Gothic 3, кажется, что групповые бои сделаны криво и слабо.
Если интересно, у меня вот что завалялось.
Ну раз лучше, тогда буду потихоньку учить. Но тогда по части прграмирования от меня будет мало толку.:(
Ну, раз мы к чему-то пришли, тогда выдвигаю идею игры, даже две:
1. Сделать игру на базе настольной игры;
2. Взять игру вроде Astral Masters (классная кстати игрушка) и усовершенствовать ее. Под взять игру я подразумеваю идею этой игры.
Естественно это только предложение и если надо я попробую написать что-то вроде сценария.
P.S. Учтите, что если мы решим делать игрушку на С, то от меня толку в кодах не будет - я буду так сказать "автором сценария", но по мере того, как я буду учить С я буду втягиваться в общий процесс.:rolleyes:
Вы неисправимые технари... В худшем смысле этого слова.
Вы неисправимые технари... В худшем смысле этого слова.
[/quote]
Слова без смысла объясняют любую аномалию. (C)Green
:)
Ну, раз мы к чему-то пришли, тогда выдвигаю идею игры, даже две:
1. Сделать игру на базе настольной игры;
2. Взять игру вроде Astral Masters (классная кстати игрушка) и усовершенствовать ее. Под взять игру я подразумеваю идею этой игры.
Естественно это только предложение и если надо я попробую написать что-то вроде сценария.
P.S. Учтите, что если мы решим делать игрушку на С, то от меня толку в кодах не будет - я буду так сказать "автором сценария", но по мере того, как я буду учить С я буду втягиваться в общий процесс.
[/quote]
Да в общем думаю "морской бой" все подразумевают настольную игру.
Astral Masters - не сталкивался, и что усовершенствовать не знаю...
Начинать думаю нужно с простого.
"Настольная" - как ты выразился, игра "морской бой", и пока ничего усовершенствовать не надо. давай эту идею реализуем.
Сценарий интересно посмотреть, валяй!
[quote=vectoroc]
Может быть кто нибудь не знал... Можно писать модули программы на разных языках и потом все эти модули слинковать в одно приложение
[/quote]
с этим не сталкивался, но считал что модули объединять можно только в вижуал студии и на встроенных языках, С++ C# VB, если не так, то поправте пожалуйста.
С помощью COM удобно реализовывать интерфейсы.. Так что если на бумаге нарисавать алгоритмы, интерфейсы реализовать их будет не проблема ;)
С помощью COM удобно реализовывать интерфейсы.. Так что если на бумаге нарисавать алгоритмы, интерфейсы реализовать их будет не проблема ;)
Привлекать в морской бой архитектуру COM - это извращение, ИМХО.
И dll тоже. Вряд ли тут будут ресурсы, которые нужно будет отложенно загружать или расшаривать. Но это все мелочи.
Насчет того что будет если алгоритмы реализовать на бумаге - будет исключительно тупой ИИ. Создание ИИ - это же отдельная наука, вообще говоря. И не надо думать, что сложно это только в FEAR, например (считаю образцом, на который еще долго будет нужно равняться) . И все же - если тут кто-то берет на себя ведение этого проекта, то все таки хотелось бы видеть какие-то правильные шаги.
Начинать надо обсуждение не с техники разработки, как тут было сказано. А с детальной проработки общей идеи.
1.[QUOTE=Zorkus]А с детальной проработки общей идеи.[/QUOTE]
Приведи хоть один пример, а то я не пойму, что ты от меня хочешь.
2.[QUOTE=Visualex]"Настольная" - как ты выразился, игра "морской бой", [/QUOTE]
Ну, вобще-то я не имел под словом "настольная" "морской бой" - я имел в виду тактические или экономические игры типа "Менеджер", "Wall Street" и т. д. Так что мы "морской бой" будем делать? :confused:
3.[QUOTE=Green]М-да... ребята...
Вы неисправимые технари... В худшем смысле этого слова.[/QUOTE]
Что есть - то есть - мы же не профессионалы (по крайней мере я).
Ну, вобще-то я не имел под словом "настольная" "морской бой" - я имел в виду тактические или экономические игры типа "Менеджер", "Wall Street" и т. д. Так что мы "морской бой" будем делать? :confused:
Что есть - то есть - мы же не профессионалы (по крайней мере я).
Менеджер...., и ты отказываешься от кусочка вкусного пирога, по созданию ИИ?
ps: на счет профессиональности можешь за обоих сказать!
Приведи хоть один пример, а то я не пойму, что ты от меня хочешь.
Ну вот смотри. Пусть будет морской бой. Тогда лично у меня возникают следующие вопросы:
- Какие возможности ты хочешь предусмотреть в игре? Игра Человек vs
Комп, игра человек vs человек на одной машине с разделением
экранов, игра 2 людей по сети?
- Каков общий технический уровень? Уровень графики, звука.
- Общий алгоритмический уровень - принципы, которые ты заложишь в ИИ.
- Какая OS , платформа / язык.
Ответь на эти, точно и подробно, и тогда я перейду к более конкретным требованиям.
-Игра будет против компа;
-Уровень графики и звука конечно не высок: 2D пространство, использование изображений кораблей "сверху", возможно где-то можно применить анимацию (например при попадании), я еще подумывал о главном меню игры (основные элементы: "Новая игра", Сохранить позицию", "Загрузить позицию","Выход"), О звуке я особо не думал, потому что очень сложно его организовать на Pascal, но без него конечно не обойтись: думаю будут в основном клики, взрывы (если будет анимация), надо ли ставить фоновую музыку-не знаю, сомневаюсь.
-Принцип ИИ:
Ну сам подумай какой может быть ИИ в "Морском бое"? Основной принцип - случайность, т. е. на генераторе случайных чисел. Это основной элемент, который будет изменятся при попадании по юзерскому кораблю только диапозоном генерируемых чисел.
Хитроумные алгоритмы, если кто придумает можно вынести на высокий уровень сложности, а этот сделать "легким";
- Язык мне бы хотелось, чтобы был Pascal или хотя бы Delphi, потому что я четверть игры уже сделал. Да и в этом случае я не буду бесполезным грузом, но если большинство прголосует за какой-нибудь другой язык, то что ж буду учить его.
P.S. Очень не хочу быть бесполезным грузом.
-Игра будет против компа;
Cчитаю стоит заложить в данный проект сетевую игру.
-Уровень графики и звука конечно не высок: 2D пространство, использование изображений кораблей "сверху", возможно где-то можно применить анимацию (например при попадании),
Анимацию стоит отделить на второй план, имхо это разработка более художника чем программиста.
я еще подумывал о главном меню игры (основные элементы: "Новая игра", Сохранить позицию", "Загрузить позицию","Выход"),
Тоже на второй план, но на счет сохраниния нужно сразу решать!
Можно использовать текстовый файл без шифрования.
О звуке я особо не думал, потому что очень сложно его организовать на Pascal, но без него конечно не обойтись: думаю будут в основном клики, взрывы (если будет анимация), надо ли ставить фоновую музыку-не знаю, сомневаюсь.
Звук, также считаю стоит отнести ко второстепенным факторам. Вторым планом считаю красивое оформление, сюда входит анимация, звук, меню ...
-Принцип ИИ:
Ну сам подумай какой может быть ИИ в "Морском бое"? Основной принцип - случайность, т. е. на генераторе случайных чисел. Это основной элемент, который будет изменятся при попадании по юзерскому кораблю только диапозоном генерируемых чисел.
Хитроумные алгоритмы, если кто придумает можно вынести на высокий уровень сложности, а этот сделать "легким";
В основном согласен.
- Язык мне бы хотелось, чтобы был Pascal или хотя бы Delphi, потому что я четверть игры уже сделал. Да и в этом случае я не буду бесполезным грузом, но если большинство прголосует за какой-нибудь другой язык, то что ж буду учить его.
Pascal, Delphi... Я начинал с С++ Builder (Что соответствует интерфейсу Delphi) Всетаки остановился на Visual C++.
real coding..":)
[/QUOTE]
Согласен, но это сложный вопрос.
[QUOTE=Visualex]на счет сохраниния нужно сразу решать!
Можно использовать текстовый файл без шифрования.
[/QUOTE]
Сохранение нужно - это один из элементов, при котором кажется, что игра хорошая. Шифрование конечно не нужно - мороки с ним будет больше.
[QUOTE=Zorkus]Это надо все оформить, в спецификацию, и не отступать от нее.[/QUOTE]
Не сочти за тупость, но я таких умных слов не знаю: что есть спецификаця?
Поддерживает ли Visual C++ Паскалевский код, или есть ли какой-нибудь компилятор, который поддерживает и код С и код Pascal?:confused:
Но все же это то что не дает проекту разваливаться. Отступать же все время приходится, если изначально было придумано что-то очень кривое, либо если кого-то посреди проекта осенила гениальная идея:). Но в этом случае ее просто нужно переписать. Это не бюрократизм, если кому-то справедливо пришло в голову такое сомнение:).
Насчет того что это такое - это не ко мне, я в объяснениях таких не силен.
Насчет поддержки сети - мне кажется, она должна быть. Это прибавит проекту реальности, и будет дополнительным упражнением, так сказать.
К тому же та реализация, которая потребуется здесь, особой сложности не должна представлять. Учитывая крайне малый объем передач, некритичность времени / синхронизации...
Но вы так и не ответили:
Это важный вопрос, потому что можно написать движок игры на Pascal, а графику на С или других более продвинутых в этом отношении программах.
Но вы так и не ответили:
Грубо говоря, да.
Это важный вопрос, потому что можно написать движок игры на Pascal, а графику на С или других более продвинутых в этом отношении программах.
Хм. Лично я бы предложил писать на С++ все. Потому что писать движок на паскале и прикручивать к нему графику С++ (даже если это удастся нормально сделать, я с вопросами межъяз. только в рамках .net знаком более-менее) - это как-то гнусно и подло...Когда можно все написать на С++. Уж не обижайся за Паскаль:)
Я не обижаюсь абсолютно:) , но я тогда не пойму: какой от меня будет прок?
Толк больше для тебя будет... будешь изучать С++. Затея вся эта для чего? Я понимаю чтобы набраться опыта.
2Zorkus, я все про спецификацию :)... ранее было предложено несколько вариантов действий, для данного проекта думаю будет достаточно... Но всеже возвращаясь к определению "спецификация", думаю стоит составить из этих нескольких вариантов один: "рабочий". Но работать четко по последнему не стоит, утро вечера мудренее, на утро будут новые идеи...
а вам для начала надо GDD - game disigne doc, в нем описываются не технические, а игровые фичи проекта. Как и любой другой продукт, игра создается для пользователя, поэтому сначала надо описать, как она будет выглядеть для пользователя, какие действия будет выполнять пользователь, что будет привлекательно для пользователя, какой сюжет игры, чем начинается и чем оканчивается игра, какие бывают уровни, чем каждый из них интересен и как выглядит и т.п. Желательно с рисунками и схемами.
Представьте, что вы собрались поиграть в спортивную игру на пляже и вместо того, чтоб оговорить правила игры (неизвестно какой), пытаетесь договориться о форме мяча, размерах клюшек, величене сетки, и высоте щитов с корзинами.
Собираетесь делать "морской бой"? Что за игра такая, не знаю? ;)
Это как в "чапаева" но в ванной? :)
А кораблики надувные или бумажные? А ходить как в шашках или конем?
А кто победил?
1. делаем realtime стратегию, с упором на масштабность и реализм боев про вьетнамскую войну, а в сценаристы позовем оливера стоуна.
2. все остальное :)
а вы сразу язык начинаете выбирать ;)
ЗЫ: Green, а на фотке питерского офиса ты есть? :)
Просто так флудите, да???
1. делаем realtime стратегию, с упором на масштабность и реализм боев про вьетнамскую войну, а в сценаристы позовем оливера стоуна.
2. все остальное :)
А вы сразу язык начинаете выбирать ;)
ХЫ. Попробуй сделать масштабность и реалистичность боев на яве, например. Интересно, какие будут систребы. В этом случае язык, боюсь, будет определят предел уровня производительности;)Верней, максимум вычислений, так сказать...
Профанация.