Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > Игры: благотворительная помощь в создании


Автор: KaraKum 18.3.2008, 12:09
Доброе время суток.
В ветке "Давайте развивать раздел." участники отклонились от сути рассуждения и перешли на формирование команды для какого-нибудь проекта, а в этой ветке я предлагаю программерам делиться своими идеями и начинаниями, которые они же считают важными для новичков и других разроботчиков.
Как мне кажется, чаще всего созданием игры загораются именно новички, которые либо знают о программировании очень мало либо вообще ничего, а опытные программисты либо слишком заняты либо уже работают над созданием какого-нибудь коммерческого проекта в большой команде. А новички на форуме так и не могут найти информации о том что нужно для создания игры, что такое движок и каким боком слова C++, OpenGL и 3DMax относятся к созданию игр  smile , а их ещё и пугают историями о батальонах программистов, которые месяцами трудятся над созданием одного движка в 3 смены.
Поэтому предлагаю поддерживать эту ветку и выкладывать идеи и важные моменты при создании игр, которые вы считаете полезными для новичков и разроботчиков, к примеру можно быть мастером по созданию игр, но не иметь представлений о сетевой передаче данных и, соответственно, не уметь создавать возможность игры по локалке или инету.
А обсуждаемые идеи, может быть, будут подхватываться интузиастами и создаваться команды программистов и художников, причём первые могут быть дыльтониками, а вторые не уметь умножать - и всем будет хорошо  smile .
Вобщем, уважаемые программеры, присоединяйтесь к обсуждению, а новички дерзайте спрашивать - сделаем программирование игр общественным достоянием. Я сам не мастер, но уже с опытом и в данный момент создаю игру (в одиночку), поэтому чем смогу помогу.

Автор: KaraKum 18.3.2008, 12:36
В данный момент я занимаюсь программированием игры в жанре 3-х мерной стратегии на основе OpenGL, в которой можно вращатся по всем 3-м осям. Я уже создавал игру, которая была похожа на Героев меча и магии 3, если ты находишься в режиме сражения (2D на основе GDI). Игра представляла из себя полсе размером примерно 40 на 40 клеток, на которых размещались базы игроков, шахты, нейтральные ресурсы и воины. Целью, соответственно, было уничтожить базу соверника своими воинами, которых нужно было покупать на базе на ресурсы, которые нужно было добывать в шахтах рабочими или украденными у нейтральных воинов.
Размер кода был около 2000 строк - это примерно 2000/60 = 34 страницы книги - немного, но на базе этого механизма можно сделать игру, похожую на Герои 3, только нужны художники и в коде просто менять код рисования квадрата на загруженную картинку солдатика. Эту игру я делал около месяца примерно по 6 часов в день. 3/4 времени потратилось на составления логики игры, которую можно составлять сидя в метро или автобусе или на паре в универе и достаточно только головы или тетрадки. Для этого потребовалось знание языка С++ и прога Visual C++. Вторую подобную игру я бы написал в несколько раз быстрее - мучили некоторые моменты программирования не связанные с игрой.
Вобщем, программирование игр дело нетрудное и творческое, поэтому новички - дерзайте  smile .

Автор: Graf_h 18.3.2008, 12:50
Цитата(KaraKum @  18.3.2008,  12:36 Найти цитируемый пост)
Вобщем, программирование игр дело нетрудное и творческое, поэтому новички - дерзайте   .


То что творческое то согласен, но не трудное... кто такое сказал! Конечно если делать игру в стиле  
Цитата(KaraKum @  18.3.2008,  12:36 Найти цитируемый пост)
Героев меча и магии 3
 то не думаю что там будут какие то трудности! Но если реально розрабатывать свой 3D движок под игру, с системой частиц, шейдерами, колизиями, физическим, мультимедийным движками,загрузкой персонажей,сетевыми протоколами и т.д да еще и в одиночку  то тут 2 года будет мало, не говоря о програмировании самого сюжета игры  + искуственный интелект это еще потянет на 6 - 12  месяцев, а то и больше, в зависимости от иры! Не думаю что это просто, и один человек не потянет! 

Автор: Wolf1994 18.3.2008, 13:11
Давно занимаюсь программированием различных несложных игрушек. Согласен, что это дело вполне под силу одиночке, если выбрана среда разработки, в которой чувствуешь себя как рыба в воде.

Автор: KaraKum 18.3.2008, 13:33
Цитата(Wolf1994 @ 18.3.2008,  13:11)
Давно занимаюсь программированием различных несложных игрушек. Согласен, что это дело вполне под силу одиночке, если выбрана среда разработки, в которой чувствуешь себя как рыба в воде.

Вот именно! 

Цитата

Цитата(KaraKum @  18.3.2008,  12:36 ) 
Героев меча и магии 3 

 то не думаю что там будут какие то трудности! Но если реально розрабатывать свой 3D движок под игру, с системой частиц, шейдерами, колизиями, физическим, мультимедийным движками,загрузкой персонажей,сетевыми протоколами и т.д да еще и в одиночку  то тут 2 года будет мало, не говоря о програмировании самого сюжета игры  + искуственный интелект это еще потянет на 6 - 12  месяцев, а то и больше, в зависимости от иры! Не думаю что это просто, и один человек не потянет! 

О-О Опять эти нюни! (без обид!)  smile 
И конечно я говорил про игру наподобе Героев 3, а не современных стрелялок, где при выстреле в куст дырявятся листья. И я не имею в виду, что игру, которую несколько десятков человек деляют месяцами может сделать один человек за тот же срок, но 3-х мерную игру, где, например, танк - это 3 параллелепипеда: сам танк, башня и ствол (и надо поставить надпись "танк", а то вряд ли кто поймёт  smile ); одна карта с солнцем и облаками из рисунков первоклассника - то вполне. А если логику игры сделать подобающим образом, то в будущем можно без коренных изменений в коде заменить этот угловатый танк на шикарный Т-90 с радаром, клетчатой бронёй, лазерным наведением и каждым винтиком  smile . Добавить редактор карт, сценарий, сюжет, поддержку лан-игры и так далее.

Автор: Graf_h 18.3.2008, 13:49
Цитата(KaraKum @  18.3.2008,  13:33 Найти цитируемый пост)
где, например, танк - это 3 параллелепипеда: сам танк, башня и ствол (и надо поставить надпись "танк", а то вряд ли кто поймёт   ); одна карта с солнцем и облаками из рисунков первоклассника - то вполне.


(Не в обиду сказано) Не думаю что кому то будет интересно играть такую игру...  если только  для себя! Современные игры требуют соответственной графики, музыки и т.д.

Автор: KaraKum 18.3.2008, 14:07
Цитата(Graf_h @ 18.3.2008,  13:49)
Цитата(KaraKum @  18.3.2008,  13:33 Найти цитируемый пост)
где, например, танк - это 3 параллелепипеда: сам танк, башня и ствол (и надо поставить надпись "танк", а то вряд ли кто поймёт   ); одна карта с солнцем и облаками из рисунков первоклассника - то вполне.


(Не в обиду сказано) Не думаю что кому то будет интересно играть такую игру...  если только  для себя! Современные игры требуют соответственной графики, музыки и т.д.

Вот именно.
И свою игру я создаю для многих целей, но продажи в них точно нет. Это как тренажёр для создания виртуального мира вообще, ИИ, логики игры, лан-поддержки и так далее.
И когда есть какая-то база можно уже набирать команду или искать работу как программера, типа мол: смотрите я могу вот это и вон то.
А лично я для своей игры, хочу научиться подключать объекты сделанные в 3DMAX'e (и сразу будет виден результат - удобно), создать поддержку лан, а также сделать так, чтобы можно было выбрать юнита так, чтобы перейти в режим (этим юнитом) от первого лица - вот такие вот замашки smile .

Автор: Graf_h 18.3.2008, 16:29
Удачи  smile 

Автор: Dronchik 19.3.2008, 12:27
KaraKum, удачи.
Я с другом делаю онлайн стрелялку от первого лица. Называеться Radiation zone. Игра строиться на базе движка иррлайт. сайт движка http://irrlicht.sourceforge.net . Я программирую. Друг моделирует и анимирует. Я сам учусь в 6 классе и мне знаний 6 класса достаточно чтоб делать такую игру. При смерти игрока запускаеться заранее сделаная анимация смерти. Для просчёта обычных движений достаточна математика 5-6 класса. Чтобы кого либо убить выстрелом надо лишь просчитать вектор полёта пули и проверять, если пуля оказалось в позиции игрока то отправляю по сети убитому игроку что он убит и запускаю у него анимацию смерти, и с компа убившего игрока отправляю сообщение что один из игроков(например игрок2) убит. Сложного ничего нет.

Автор: KaraKum 19.3.2008, 14:51
Ммда... Здорово ты.
Да и вообще, способность 3-х мерного программирования реального времени с поддержкой лан-игры - это почти предел знаний, которых нужно для программирования игр.

Вообщем, удачи! smile 

P.S.: В 6-м классе пространственные векторы не изучают  smile .

Автор: Platon 19.3.2008, 17:33
Dronchik, реально крут, респект!

Автор: Dronchik 19.3.2008, 18:36
Цитата(KaraKum @  19.3.2008,  14:51 Найти цитируемый пост)
P.S.: В 6-м классе пространственные векторы не изучают   .


Почему же. У нас изучают 2-мерные векторы. А 3-мерный не намного сложнее понять.

Цитата(Platon @  19.3.2008,  17:33 Найти цитируемый пост)
Dronchik, реально крут, респект!

Спасибо. 
Ладно. Оффтоп не продолжаем и говорим по теме, дабы не превратить тему в свалку. smile  smile 

Автор: Bitter 22.3.2008, 22:32
Dronchik рулит!! Отныне я официально его фанат!

Ну а если серьезно, тема-то создавалась для того,чтобы делиться опытом? Я правильно понял? Могу поделиться некоторыми вещами, которые, наверное, все знают:

1. Для зарабатывания денег графикой не достаточно знать принцип программитования графики. Не маловажную роль играют знания оптимизации графики. Например такая ситуация: вы пишете графическое приложение, работающее при разрешении 1380х768, с 30-ю кадрами в секунду. Приходит начальник и говорит: "Я хочу разрешение 1920х1280, с частотой 50 fps". Что делать? Ответ - уметь оптимизировать, слава Богу методов множище.

2. Желательно по возможности отказаться от написанных кем-то классов и написать свои(подчеркиваю - по возможности, то есть при наличии знаний и времени). Так как чужие классы могут содержать чужие ошибки smile. Например не люблю класс ID3DXMesh. У меня для этого есть свои классы.

3. Если вы делаете игру, не жалейте времени и сил на звуковое сопровождение. Если озвучка вызывает у игрока положительные эмоции (как например в игре Halo), то многие недостатки игры становятся не заметными.

Ну хватит пока smile

Автор: Ryoga 23.3.2008, 00:22
Bitter, а какие ошибки содержатся в классе ID3DXMesh? Или просто неудобно что-то?
З.Ы.: Кстати, соглашусь по поводу звука - это очень мощный инструмент создания атмосферы в игре, не стоит им пренебрегать.

Автор: Bitter 23.3.2008, 01:21
Про ошибки в ID3DXMesh я ничего сказать не могу. Это я просто привел пример готового класса. Но мне он не нравится по ряду причин:
 
1.  Я хочу, чтобы все объекты сцены хранились в одном файле, и подгружались по мере необходимости. При использовании ID3DXMesh, все объекты храняться в отдельных .х файлах. К тому же этот формат текстовый, он занимает больше места на диске, чем бинарный.

2. Я не уверен в его эффективной работе. Мне кажется он подобен классу ID3DXSprite, кстати еще один пример класса, который лучше написать самому. Этот класс жутко тормозит работу графического приложения. Он годится только в критических ситуациях, когда времени на написание своего класса нет. Или когда лень и fps хватает. Кстати, новичкам этот класс понравится. С его помощью можно совмещать 3D и 2D графику. Этот класс выводит на экран битмапы, и вам не надо ни о чем заботиться. Но, повторюсь, он тормозит.

Да, вот еще один тонкий совет. Многие новички, в том числе и я, когда был новичком, начинают что-то делать с простых вещей. Например начинают разрабатывать главное меню, рисовать элементы интерфейса и т.д. А когда доходит до самого главного, интузиазм заканчивается и всё. Лучше всего начинать сразу с сердца игры. Например определить какие игровые объекты будут в игре и набрасать скелеты их классов, попытаться набросать класс ИИ, или хотя бы представить что он должен делать и по каким алгоритмам. А потом уже наращивать это до полноценной игры. А интерфейс и меню делать в последнюю очередь как на дисерт.

Автор: Dronchik 23.3.2008, 11:27
Цитата(Bitter @  23.3.2008,  01:21 Найти цитируемый пост)
Да, вот еще один тонкий совет. Многие новички, в том числе и я, когда был новичком, начинают что-то делать с простых вещей. Например начинают разрабатывать главное меню, рисовать элементы интерфейса и т.д. А когда доходит до самого главного, интузиазм заканчивается и всё. Лучше всего начинать сразу с сердца игры. Например определить какие игровые объекты будут в игре и набрасать скелеты их классов, попытаться набросать класс ИИ, или хотя бы представить что он должен делать и по каким алгоритмам. А потом уже наращивать это до полноценной игры. А интерфейс и меню делать в последнюю очередь как на дисерт.

Правильно smile Я так и делаю. Когда делаешь меню то это не интересное занятие. Энтузиазм появляеться больше когда ты делаешь передвижения персонажа, скелет классов игнровых объектов и т.д. Так и энтузиазм не потеряешь и игру сделаешь smile 


Цитата(Bitter @  22.3.2008,  22:32 Найти цитируемый пост)
Dronchik рулит!! Отныне я официально его фанат!

жжёшь smile 


Цитата(Bitter @  22.3.2008,  22:32 Найти цитируемый пост)
3. Если вы делаете игру, не жалейте времени и сил на звуковое сопровождение. Если озвучка вызывает у игрока положительные эмоции (как например в игре Halo), то многие недостатки игры становятся не заметными.

да. полностью согласен. НО. Лучше делать не только хороший звук, но и хорошую графику, хороший геймплей и все остальные аспекты должны быть хороши. Но звук хорошо умеет заглаживать промахи разработчиков.

Автор: Alexusis 6.5.2008, 15:14
Модератор: Сообщение скрыто.

Автор: LPark 19.5.2008, 17:49
Dronchik
KaraKum

не могли бы исходники выложить, так сказать для начинающих.

Автор: Shuma 21.5.2008, 19:41
Цитата(Bitter @ 23.3.2008,  01:21)
При использовании ID3DXMesh, все объекты храняться в отдельных .х файлах. К тому же этот формат текстовый, он занимает больше места на диске, чем бинарный.

Хехе ты в этом уверен?=)))
Смею тебя разочаровать файлы .х формата могут быть и текстовые и бинарные...иначе глупо было бы до ужаса со стороны мелкомягких.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)