Форум Игромании

Форум Игромании (http://forum.igromania.ru/index.php)
-   Игрострой (http://forum.igromania.ru/forumdisplay.php?f=278)
-   -   Учимся делать игры (http://forum.igromania.ru/showthread.php?t=11396)

pokibor 13.03.2006 21:06

Тут возникло два вопроса, которые хотелось бы обсудить:
1) Какой движок (на Visual C++ 6.0, желательно не .NET, т.к. основа проекта пишется на чистом C++, т.е. с очисткой памяти и т.п.) лучше подходит для пошаговой стратегии? Также хорошо бы, чтобы он был достаточно прост в освоении. Принимаются, кстати, как 3D, так и 2D варианты.
2) Вытекает из первого, и, честно говоря, самый проблемный: как можно добыть модели/рисунки (в зависимости от 3D/2D движка) юнитов? Варианты вроде "сделать руками в 3DMAX/Maya и т.п." не подходят, т.к. над проектом работают 2 человека и 1 лентяй, и достаточного опыта в таких пакетах нет ни у кого из них. Мы думали из GTA/UT 2004/ets. выдрать и вставить в игру (в случае 3D движка), но может у кого-нибудь есть другие идеи... Возможно, есть какие-нибудь пакеты, позволяющие создавать модели с анимацией на основе шаблонов вроде "человек" или "автомобиль"?

Xar 14.03.2006 00:15

pokibor
Цитата:

Тут возникло два вопроса...
Попытаюсь ответить со своей, глубоко субъективной, точки зрения.
1)Свой собственный. Зуб даю, что для написания 2D движка для игры типа 'Герои 3' требуется лишь около недели свободного времени. Тем более, наверняка нет специализированных движков для игр подобного жанра. Кроме того, при написании своего движка хорошо знаешь все его аспекты и можешь делать исправления/добавления. Я это все говорю, потому что сам этим занимался (написанием движка). Правда на VB и даже, в целом, небезуспешно.
2)Черт, я сам с этим не раз сталкивался. Боюсь, что кроме выдирания игровых ресурсов, мне посоветовать нечего.

pokibor 14.03.2006 07:35

Цитата:

Сообщение от Xar
Свой собственный. Зуб даю, что для написания 2D движка для игры типа 'Герои 3' требуется лишь около недели свободного времени. Тем более, наверняка нет специализированных движков для игр подобного жанра. Кроме того, при написании своего движка хорошо знаешь все его аспекты и можешь делать исправления/добавления. Я это все говорю, потому что сам этим занимался (написанием движка). Правда на VB и даже, в целом, небезуспешно.

Да, за пару недель справлюсь (я же еще и работаю :sml:). Но, боюсь, движок выйдет плохим и тормознутым. К тому же, как ни странно, 2D юнитов делать сложнее, чем 3D, а уж выдирать-то 3D точно из намного большего кол-ва мест можно...

L'ombre 14.03.2006 11:29

А почему Visual C++ 6? те же 7 или 8 вполне пригодны для написания win32 applications (не .NET), и кроме того, удобнее (подсветка лучше, intellisense раньше срабатывает и т.д. - мелочи, но приятно)

pokibor 14.03.2006 13:19

Цитата:

Сообщение от L'ombre
А почему Visual C++ 6? те же 7 или 8 вполне пригодны для написания win32 applications (не .NET), и кроме того, удобнее (подсветка лучше, intellisense раньше срабатывает и т.д. - мелочи, но приятно)

А какая, собственно, разница? Говоря C++ 6, я подразумеваю, что все дальнейшие версии ориентированы уже на .NET, суть win32 applications в них уже практически не менялась. А потому движок должен одинакого работать как в 6'ом C++, так и в последующих изданиях. А синтаксис - это мелочи.

Xar 16.03.2006 00:21

pokibor
Цитата:

Но, боюсь, движок выйдет плохим и тормознутым. К тому же, как ни странно, 2D юнитов делать сложнее, чем 3D, а уж выдирать-то 3D точно из намного большего кол-ва мест можно...
Вопрос первый: почему 'плохим и тормознутым'? Ты ведь не собираешься делать кучу графических наворотов аки шейдеры, динамическое освещение и т.п? Простой 2D движок на DirectX сделать весьма легко.
Вопрос второй: на счет 3D. Для меня пошаговые стратегии и 3D - несовместимые вещи. Классический пример - Герои или Disciples. Так о чем это я? Ах, да: как ты собираешься выдирать 3D модели из игр, ковертировать их в один формат, а, главное, как присобачить им анимацию? По-моему, проблем с 3D гораздо больше, чем с 2D (по крайней мере в технологическом плане).

pokibor 16.03.2006 10:22

Цитата:

Сообщение от Xar
pokibor
Вопрос первый: почему 'плохим и тормознутым'? Ты ведь не собираешься делать кучу графических наворотов аки шейдеры, динамическое освещение и т.п? Простой 2D движок на DirectX сделать весьма легко.

Потому что нормальный движок быстро сделать невозможно, или будет куча глюков. Ну и, честно говоря, никто из моей комманды не имел раньше дела с DirectDraw, а вот на Direct3D у нас уже был визуализатор трехмерных графиков, лда и еще один незаконченный проект...
Цитата:

Сообщение от Xar
Вопрос второй: на счет 3D. Для меня пошаговые стратегии и 3D - несовместимые вещи. Классический пример - Герои или Disciples. Так о чем это я? Ах, да: как ты собираешься выдирать 3D модели из игр, ковертировать их в один формат, а, главное, как присобачить им анимацию? По-моему, проблем с 3D гораздо больше, чем с 2D (по крайней мере в технологическом плане).

Для форматов многих игр есть плагины 3DMAX, а уж из макса можно во что угодно перевести. И анимация там тоже должна в модель входить... А главное в стратегии не двумерность/трехмерность, а геймплей...

Nie 16.03.2006 11:11

У меня вопрос. Возможно ли создать игру (неплохую) чтобы там было 3D (не миллион полигонов конечно но все таки). Например какую нибудь RPG? Возможно или нет? На Vusial Basic?
P.S. Есть ли бесплатные 3D и 2D движки для Vusial Basic?

pokibor 16.03.2006 11:45

Цитата:

Сообщение от Steam
У меня вопрос. Возможно ли создать игру (неплохую) чтобы там было 3D (не миллион полигонов конечно но все таки). Например какую нибудь RPG? Возможно или нет? На Vusial Basic?
P.S. Есть ли бесплатные 3D и 2D движки для Vusial Basic?

Возможно. Но VB - это смешно. Не знаю ни одного человека, который бы делал ИГРЫ на VB. Дело в том, что VB негибкий и тормознутый, и подходит только для написания офисных приложений. Учи C++! На нем пишутся все профессиональные игры. Ну или Delphi на крайний случай. Но лучше C++ (либо C# - проще, но за счет .NET тормознутый). Только сразу реши, а откуда в твоей 3D RPG возьмутся модели героев, монстров, зданий и т.п.
P.S. Если писать под .NET даже на VB, то можно использовать любой .NET-движок, не обязательно, чтобы он сам был написан на VB. Напр., irrlicht. Там даже пример на VB есть (irrlicht-0.12.0\examples.net\01.HelloWorld_vb).

Nie 16.03.2006 11:54

Почему же VB не гибкий? Интерфейс мне в нем нравится больше чем в C++ да и программы итам писать поудобнее. C++ я знаю чуть чуть поэтому учить не надо. :sml: . но ведь на С++ пишутся офисные программы а не на VB не так ли?

pokibor 16.03.2006 13:28

Цитата:

Сообщение от Steam
Почему же VB не гибкий? Интерфейс мне в нем нравится больше чем в C++ да и программы итам писать поудобнее. C++ я знаю чуть чуть поэтому учить не надо. :sml: . но ведь на С++ пишутся офисные программы а не на VB не так ли?

Скажем так, я не видел ни одного серьезного проекта (за исключением MS Office, но там на VB не весь код), написанного на VB. Выводы делай сам. А какое отношение к ЯЗЫКУ ПРОГРАММИРОВАНИЯ имеет ИНТЕРФЕЙС среды разработки, не совсем ясно. Судя по всему, ты не видел .NET и Borland C++ Builder (хотя последний - далеко не идеал компилятора C++...)
Кстати, мне очень интересно узнать, какие проекты ты УЖЕ написал на VB?
P.S. Кстати, в VB есть ссылки? А то я что-то уже забыл, и кажется мне, что нет. Язык без ссылок (если не специально под это подстроен, как JAVA и C#) - смешно.

L'ombre 16.03.2006 13:56

pokibor прав. К тому же посмотри на проблему с другой стороны - практически все современные игры написаны на C++. Можно сказать, у него ниже уровень выразительности, но это только добавляет гибкости. Да и вообще, basic изначально есть язык для обучения программированию.

pokibor 16.03.2006 17:33

Цитата:

Сообщение от L'ombre
Да и вообще, basic изначально есть язык для обучения программированию.

Я бы сказал "для создания иллюзии того, что ты обучен программированию". По себе знаю. Я тоже начинал с Basic'а, потом в институте заставили перейти на Паскаль, и я испытал при этом значительные проблемы. А вот потом с Паскаля на C перешел элементарно. Теперь на VB только макросы для мелкософтовских продуктов пишу.

Xar 18.03.2006 00:34

pokibor
Цитата:

Но VB - это смешно. Не знаю ни одного человека, который бы делал ИГРЫ на VB. Дело в том, что VB негибкий и тормознутый, и подходит только для написания офисных приложений.
Это известный предрассудок, что на VB нельзя писать игры (будь то 2D или 3D). Можно. А то, что они де будут тормознутыми, это тоже не факт. Если вы не собираетесь делать Half Life 3 или Героев 6, а нечто более простое, то снижение быстродействия будет не сильно заметно. Кроме того, код можно оптимизировать (кому я это говорю?). Я сейчас занимаюсь одним проектом на VB с использованием DirectDraw и ручаюсь за отличное быстродействие (приблиз. 120 FPS). VB интуитивно простой и понятный. Хотя бы потому, что это визуальное программирование в отличие от хваленого C++, где вообще свой проект не видишь (в дизайн-режиме).
P.S. Можете назвать меня сумасшедшим, но я с VB переходить на C++ не собираюсь (не вижу смысла). Если только может на Delphi когда-нибудь.

pokibor 18.03.2006 11:13

Цитата:

Сообщение от Xar
pokibor
Это известный предрассудок, что на VB нельзя писать игры (будь то 2D или 3D). Можно. А то, что они де будут тормознутыми, это тоже не факт. Если вы не собираетесь делать Half Life 3 или Героев 6, а нечто более простое, то снижение быстродействия будет не сильно заметно. Кроме того, код можно оптимизировать (кому я это говорю?). Я сейчас занимаюсь одним проектом на VB с использованием DirectDraw и ручаюсь за отличное быстродействие (приблиз. 120 FPS). VB интуитивно простой и понятный. Хотя бы потому, что это визуальное программирование в отличие от хваленого C++, где вообще свой проект не видишь (в дизайн-режиме).
P.S. Можете назвать меня сумасшедшим, но я с VB переходить на C++ не собираюсь (не вижу смысла). Если только может на Delphi когда-нибудь.

Судя по всему:
1) Ты не работал ни с Visual C++ .NET, ни с Borland C++ Builder, иначе бы про то, что проект не видишь не говорил.
2) Если писать игры, то претензия с невидимым проектом вообще теряет смысл - в любой игре интерфейс должен быть своим, а не заимствованным из винды.
3) Изначально пишешь требовательные к ресурсам системы программы. В связи с чем я сильно сочувствую тому, кто возьмет тебя на работу программистом.
4) Про "простой и понятный" - жуткая чушь. В C++ куда больше возможностей, а понимание кода - дело пивычки. Меня лично уже бесит необходимость в VB в начале тела if'а набирать THEN, а в конце писать END IF вместо {...}, что гораздо быстрее. Так что на VB ты делаешь много ненужной работы, нажимая лишний раз клавиши. Ерунда? Умножь число таких бесполезных нажатий в серьезном проекте пусть даже на 10 миллисекунд - число получится приличное.
5) Насчет перехода на C++ - придется, если будешь серьезно заниматься программированием. Под C++ ГОРАЗДО больше мождулей, библиотек, движков, компонентов и пр., чем под VB и Delphi вместе взятые. Если хочешь каждый раз изобретать велосипед - оставайся на VB. Подавляющее большинство проектов делается на C++ либо C-подобных языках (если они Web, хотя уже ASP.NET есть, а потому и на C++ можно...)

Xar 19.03.2006 00:32

pokibor
Я не собираюсь начинать войну C++ versus VB. Просто не хочется, чтобы ты дискредитировал Basic на форуме (дабы не сбить начинающих программистов, которые пишут на VB ). Большинство твоих аргументов не соответствуют истине.
1) Тут ты прав. У меня на компе есть некий C++, но проект пишешь не нем с чистого листа.
2) Вообще-то делать интерфейс програмным путем дело не одной недели (особенно, если интерфейс слишком навороченый). По чесноку, я ни разу серьезно за это не брался. Хотя, чтобы сделать игровой редактор, интерфейс Windows еще как понадобится.
3) Ну здесь я вообще ничего не понимаю. Какие еще требования? Понимаешь, моя самая серьезная программа ела 4МБ оперативки (только из-за своего интерфейса). Сейчас я делаю, как уже писал, проект с использованием DirectDraw (проект этот - игровой движок). Он ест те же 4МБ.
4) Ну а что ты скажешь на счет точки с запятой в конце каждой строки? Я за это убить готов. Или приравнивание двумя знаками равно? Мог бы еще привести примеры да вот только язык я этот почти не знаю.
5) Я переходить пока не собираюсь. Да и вообще люблю идти простыми путями. :)

Mr Riper 19.03.2006 01:57

Закрываю тему - слишком много флуда! Ламеры позорные... Жаль что в бане все места заняты, так бы я вас посадил!Ух!

pokibor 19.03.2006 10:52

Так. Давыай сразу определимся - собираешься ли ты заниматься серьезными проектами и считаешь ли программирование своей будущей профессией. Если нет, и считаешь программирование лишь хобби - дискуссию закрываем, я забираю все свои аргументы назад. Если же ты все же видишь себя в будущем программистом серьезных проектов, то тебе и всем начинающим программистам придется смириться с правдой. А она в том, что на VB написать качественный серьезный проект с серьезными функциями достаточно сложно, а оптимизировать его еще сложнее. И лучше тебе учиться писать проекты качественно СЕЙЧАС, потому что потом будет переучиваться куда сложнее...
Цитата:

Сообщение от Xar
2) Вообще-то делать интерфейс програмным путем дело не одной недели (особенно, если интерфейс слишком навороченый). По чесноку, я ни разу серьезно за это не брался. Хотя, чтобы сделать игровой редактор, интерфейс Windows еще как понадобится.

Верно. Но если ты посмотришь на игры - у всех интерфейс СВОЙ. И, кстати, все сделаны практически с чистого листа (либо на движке, который писался с чистого листа), а не по шаблонам Windows.
Цитата:

Сообщение от Xar
3) Ну здесь я вообще ничего не понимаю. Какие еще требования? Понимаешь, моя самая серьезная программа ела 4МБ оперативки (только из-за своего интерфейса). Сейчас я делаю, как уже писал, проект с использованием DirectDraw (проект этот - игровой движок). Он ест те же 4МБ.

Опять же - у серьезного проекта требования будут куда выше. И потери из-за некачественности языка тоже. C++ хорош тем, что в нем есть все - от низкоуровневых вещей вплоть до ассемблерных вставок до достаточно высокоуровневых операций, вроде виртуальных функций и рекурсии, что позволяет сделать проект максимально быстрым и удобным для работе в комманде.
Цитата:

Сообщение от Xar
4) Ну а что ты скажешь на счет точки с запятой в конце каждой строки? Я за это убить готов. Или приравнивание двумя знаками равно? Мог бы еще привести примеры да вот только язык я этот почти не знаю.
5) Я переходить пока не собираюсь. Да и вообще люблю идти простыми путями. :)

Вот то-то и оно, что не знаешь. Но синтаксис - дело привычки. А вот возможности - объективный критерий. А гибкость кода на C++ больше, чем VB. Взять хотя бы великолепный For (такого нет ни в одном языке больше, кроме C-подобных!), позволяющий делать самые невероятный циклы одним оператором.
А вообще, профессональный программист должен знать как можно больше языков, от VB до C++ и даже Prolog'а. Никогда не знаешь, на чем тебя заставят писать завтра...

Цитата:

Сообщение от Mr Riper
Закрываю тему - слишком много флуда! Ламеры позорные... Жаль что в бане все места заняты, так бы я вас посадил!Ух!

Действительно, жаль... А то бы тебя уже бы в бан запихнули...

Nie 19.03.2006 12:55

По моему дискусия началась практически с ничего. Один говорит то что C ++ это самый крутой язык. Другой говорит что VB. Я в эту дискусию не вступал из за видимых причин. Может все зависить от возрастной категории. Вы с какого класса знали VB? Или C++? Я с 5 класса хорошо разбирался в VB и кое что знал про С++. А если там человек лет 25 говорит что он знает три языка и хвалится этим - безумие. За школьное время можно изучить 5 языков! 5! Делаем выводы и заканчиваем дискуссию.

pokibor 19.03.2006 13:05

Цитата:

Сообщение от Steam
По моему дискусия началась практически с ничего. Один говорит то что C ++ это самый крутой язык. Другой говорит что VB. Я в эту дискусию не вступал из за видимых причин. Может все зависить от возрастной категории. Вы с какого класса знали VB? Или C++? Я с 5 класса хорошо разбирался в VB и кое что знал про С++. А если там человек лет 25 говорит что он знает три языка и хвалится этим - безумие. За школьное время можно изучить 5 языков! 5! Делаем выводы и заканчиваем дискуссию.

Вообще-то я никогда не хвалился знанием языков (хотя уж если такая тема - я их знаю... сейчас посчитаю... 8..., из них в школе только Visual Basic изучил, т.к. мне комп только в 9 классе купили...). Хороший программист выделяется не знаем кучи языков, а знанием кучи алгоритмов, умением переложить их на любой язык и оптимизировать код. Так вот как раз с последними двумя пунктами у VB проблемы...
Кстати, еще в защиту C++ могу напомнить про потрясающие возможности настройки самого языка (одна перегрузка операторов чего стоит! Я уже не говорю о "мелочах" вроде макросов и других директив препроцессора)


Часовой пояс GMT +4, время: 06:09.

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.