Создание игр
Rudоlf
Любитель
4/9/2007, 5:04:19 PM
Прочитал на этом форуме 2 очень интересные темы про создание игр, где ищут программистов для написания игр. До этого у меня было ощущение, что я имею представление, как программы пишут, я думал что это тяжелый, монотонный, временами невыносимый (когда все написано, но работает не совсем так как задумывалось) труд.
После тем "Нужны люди!" и "Нужны люди для создания игры Пока на голом энтузиазме" , мои представления об этом сильно пошатнулись. Создается ощущение, что создание игр больше похоже на рисование, причем в не принужденной манере ( как Остап Бендер, во время изгнания с теплохода возившего комиссию госзайма "Я по другому вижу мир"). Нет, ну я и раньше знал, что есть "движок", и есть "текстуры, карты, и прочее", но почему-то думал, что даже под готовый движок делать все трудно.
В общем, хочется услышать мнение людей знающих, как выглядит процесс создание игры (Большой игры, не "морской бой"), что на чем пишут, и насколько это хлопотное занятие.
Буду очень благодарен всем ответившим.
После тем "Нужны люди!" и "Нужны люди для создания игры Пока на голом энтузиазме" , мои представления об этом сильно пошатнулись. Создается ощущение, что создание игр больше похоже на рисование, причем в не принужденной манере ( как Остап Бендер, во время изгнания с теплохода возившего комиссию госзайма "Я по другому вижу мир"). Нет, ну я и раньше знал, что есть "движок", и есть "текстуры, карты, и прочее", но почему-то думал, что даже под готовый движок делать все трудно.
В общем, хочется услышать мнение людей знающих, как выглядит процесс создание игры (Большой игры, не "морской бой"), что на чем пишут, и насколько это хлопотное занятие.
Буду очень благодарен всем ответившим.
LeXuSpop
Специалист
4/11/2007, 6:07:17 PM
В инете много статей есть во созданию игр, сначала создаётся движок игры(2д-3д, в зависимости от того, что тебя надо),движок должен обрабаты текстуры.Рисуются текстуры, всё моделируется, объекты, освещение и т.д.
тупо в поиске напиши: создание движка 3д
тупо в поиске напиши: создание движка 3д
Rudоlf
Любитель
4/12/2007, 5:17:18 PM
Спасибо за ответ, правда за эти два дня я уже книгу скачал, в которой все описывается, были уже мысли, что в итоге сам себе отвечу.
Rudоlf
Любитель
4/15/2007, 4:24:44 PM
Как спрайты в игру загружают, или транслируют, как это выглядит?
Это можно в документации по DirectX почитать?
Это можно в документации по DirectX почитать?
maxdiversexnarod1
Специалист
4/16/2007, 9:00:30 PM
Насчёт документации не уверен, а вот книг и статей по DirectX'у навалом. Впрочем, в MSDN тоже есть несколько примеров программ.
Если отвечать конкретно на вопрос о загрузке спрайтов, то там всё просто: есть функция для загрузки, скажем, BMP в память, а именно в указанную поверхность (surface).
Но ИМХО писать на чистом DirectX - это извращение. Если уж и использовать его, то только через прослойку SDL, тем более, что SDL портирована под множество систем, кроме Windows.
Если отвечать конкретно на вопрос о загрузке спрайтов, то там всё просто: есть функция для загрузки, скажем, BMP в память, а именно в указанную поверхность (surface).
Но ИМХО писать на чистом DirectX - это извращение. Если уж и использовать его, то только через прослойку SDL, тем более, что SDL портирована под множество систем, кроме Windows.
ficker
Профессионал
6/22/2007, 6:41:27 PM
(maxdiverSxn1 @ 16.04.2007 - время: 17:00) Насчёт документации не уверен, а вот книг и статей по DirectX'у навалом. Впрочем, в MSDN тоже есть несколько примеров программ.
Если отвечать конкретно на вопрос о загрузке спрайтов, то там всё просто: есть функция для загрузки, скажем, BMP в память, а именно в указанную поверхность (surface).
Но ИМХО писать на чистом DirectX - это извращение. Если уж и использовать его, то только через прослойку SDL, тем более, что SDL портирована под множество систем, кроме Windows.
Что за бред?!
Во первых пишут в основном именно на ДиректХ. Так как у него лучше поддержка харверных возможностей видеокарт в сравнении с ОГЛ. И никаких прослоек на нужно. У ДХ достаточно понятный интерфейс. Это раньше, в первых версиях по седьмую все делали через попу. Сейчас инициализация и использование понятней и проще чем в ОГЛ. И главное - все ООП. :) Кроме того, меньше проблем с драйверами. У АТИ до сих пор проблемы с совместимостью с ОГЛ.
Ну а то что про SDL написано я просто в шоке. :)
Во первых SDL - прослойка над ОГЛ (OpenGL) и ни как не над ДХ. И кроме того она давно уже портирован под Виндовс. Другое дело, что ОГЛ в Винде сам испольует Директ Драв для рисования, как и все другие прогаммы которые напрямую работают с видеопамятью. В Винде это единственная возможность.
П.С. Пишу как человек интересующийся геймпрограммингом. С++/ДХ.
Если отвечать конкретно на вопрос о загрузке спрайтов, то там всё просто: есть функция для загрузки, скажем, BMP в память, а именно в указанную поверхность (surface).
Но ИМХО писать на чистом DirectX - это извращение. Если уж и использовать его, то только через прослойку SDL, тем более, что SDL портирована под множество систем, кроме Windows.
Что за бред?!
Во первых пишут в основном именно на ДиректХ. Так как у него лучше поддержка харверных возможностей видеокарт в сравнении с ОГЛ. И никаких прослоек на нужно. У ДХ достаточно понятный интерфейс. Это раньше, в первых версиях по седьмую все делали через попу. Сейчас инициализация и использование понятней и проще чем в ОГЛ. И главное - все ООП. :) Кроме того, меньше проблем с драйверами. У АТИ до сих пор проблемы с совместимостью с ОГЛ.
Ну а то что про SDL написано я просто в шоке. :)
Во первых SDL - прослойка над ОГЛ (OpenGL) и ни как не над ДХ. И кроме того она давно уже портирован под Виндовс. Другое дело, что ОГЛ в Винде сам испольует Директ Драв для рисования, как и все другие прогаммы которые напрямую работают с видеопамятью. В Винде это единственная возможность.
П.С. Пишу как человек интересующийся геймпрограммингом. С++/ДХ.
Suleyman
Мастер
6/22/2007, 8:59:55 PM
(ficker @ 22.06.2007 - время: 14:41) Во первых пишут в основном именно на ДиректХ. Так как у него лучше поддержка харверных возможностей видеокарт в сравнении с ОГЛ.
В чем это выражается?
. У ДХ достаточно понятный интерфейс. Это раньше, в первых версиях по седьмую все делали через попу. Сейчас инициализация и использование понятней и проще чем в ОГЛ.
Дело вкуса. По моему наоборот, OpenGL намного интуитивнее и проще. Тем более он не отягощен COM технологией.
Ну а то что про SDL написано я просто в шоке. :)
Я тоже. :)
В чем это выражается?
. У ДХ достаточно понятный интерфейс. Это раньше, в первых версиях по седьмую все делали через попу. Сейчас инициализация и использование понятней и проще чем в ОГЛ.
Дело вкуса. По моему наоборот, OpenGL намного интуитивнее и проще. Тем более он не отягощен COM технологией.
Ну а то что про SDL написано я просто в шоке. :)
Я тоже. :)
ficker
Профессионал
6/22/2007, 10:28:50 PM
(Suleyman @ 22.06.2007 - время: 16:59) (ficker @ 22.06.2007 - время: 14:41) Во первых пишут в основном именно на ДиректХ. Так как у него лучше поддержка харверных возможностей видеокарт в сравнении с ОГЛ.
В чем это выражается?
Ну в том, что хранение вершинных и индексных буферов именно в видеопамяти, а не в системной, появилось раньше в ДХ, потом в ОГЛ стали использовать VBO. Лично у меня впечатление что производители затачивают железо под ДХ, а потом делают драйвера под ОГЛ.
Надо отдать должное нВидиа делает хорошую поддержку ОГЛ, а с АТИ всегда проблемы были.
В чем это выражается?
Ну в том, что хранение вершинных и индексных буферов именно в видеопамяти, а не в системной, появилось раньше в ДХ, потом в ОГЛ стали использовать VBO. Лично у меня впечатление что производители затачивают железо под ДХ, а потом делают драйвера под ОГЛ.
Надо отдать должное нВидиа делает хорошую поддержку ОГЛ, а с АТИ всегда проблемы были.
Suleyman
Мастер
6/23/2007, 12:42:30 AM
(ficker @ 22.06.2007 - время: 18:28) (Suleyman @ 22.06.2007 - время: 16:59) (ficker @ 22.06.2007 - время: 14:41) Во первых пишут в основном именно на ДиректХ. Так как у него лучше поддержка харверных возможностей видеокарт в сравнении с ОГЛ.
В чем это выражается?
Ну в том, что хранение вершинных и индексных буферов именно в видеопамяти, а не в системной, появилось раньше в ДХ, потом в ОГЛ стали использовать VBO.
Это да, но это седая древность. Если не ошибаюсь ARB_vertex_buffer_object принято в 2003 г.
Лично у меня впечатление что производители затачивают железо под ДХ, а потом делают драйвера под ОГЛ.
Мне кажется, что в OpenGL новые возможности видеокарт программисты наоборот получают в пользование "как только так сразу" (через расширения, непосредственно от разработчиков), а в DirectX - когда Microsoft соизволит выпустить новую версию.
В чем это выражается?
Ну в том, что хранение вершинных и индексных буферов именно в видеопамяти, а не в системной, появилось раньше в ДХ, потом в ОГЛ стали использовать VBO.
Это да, но это седая древность. Если не ошибаюсь ARB_vertex_buffer_object принято в 2003 г.
Лично у меня впечатление что производители затачивают железо под ДХ, а потом делают драйвера под ОГЛ.
Мне кажется, что в OpenGL новые возможности видеокарт программисты наоборот получают в пользование "как только так сразу" (через расширения, непосредственно от разработчиков), а в DirectX - когда Microsoft соизволит выпустить новую версию.
ficker
Профессионал
6/23/2007, 1:29:35 AM
Но дело в том, что обычно очередня ДХ выходит раньше или одновременно чем появляются карты с поддержкой новой ДХ, о чем производители с гордостью пишут на коробке.
maxdiversexnarod1
Специалист
6/23/2007, 3:22:51 AM
(ficker @ 22.06.2007 - время: 14:41) Ну а то что про SDL написано я просто в шоке. :)
Во первых SDL - прослойка над ОГЛ (OpenGL) и ни как не над ДХ.
Из учебника по SDL:
Введение в SDL
Win32
Две версии, одна надежная для всех систем, основанна на Win32 API, а другая высокопроизводительная, основанна на DirectX API.
Надежная версия использует GDI для отображения графики. Высокопроизводительная версия использует DirectDraw для работы с видео, по возможности используя преимущества аппаратного ускорения.
Во первых SDL - прослойка над ОГЛ (OpenGL) и ни как не над ДХ.
Из учебника по SDL:
Введение в SDL
Win32
Две версии, одна надежная для всех систем, основанна на Win32 API, а другая высокопроизводительная, основанна на DirectX API.
Надежная версия использует GDI для отображения графики. Высокопроизводительная версия использует DirectDraw для работы с видео, по возможности используя преимущества аппаратного ускорения.
maxdiversexnarod1
Специалист
6/23/2007, 3:28:54 AM
(ficker @ 22.06.2007 - время: 14:41) У ДХ достаточно понятный интерфейс. Это раньше, в первых версиях по седьмую все делали через попу.
Ну а я и писал как раз для старых версий DX
Ну а я и писал как раз для старых версий DX
do-do
Мастер
6/23/2007, 3:49:25 AM
Просто несколько ссылок
https://www.wasm.ru/article.php?article=dx8masm03
статья устарела немного (DirectX 8.1 смотрят) но для образования полезно
https://www.computerra.ru/hitech/244024/
Известная статья из компьютерры про ДиректХ и OpenGL
Ссылки на Игровые движки
Сайт разработчиков игр
https://www.gamedev.ru/
Ну и
https://www.opengl.org/
https://www.wasm.ru/article.php?article=dx8masm03
статья устарела немного (DirectX 8.1 смотрят) но для образования полезно
https://www.computerra.ru/hitech/244024/
Известная статья из компьютерры про ДиректХ и OpenGL
Ссылки на Игровые движки
Сайт разработчиков игр
https://www.gamedev.ru/
Ну и
https://www.opengl.org/
DELETED
Акула пера
6/23/2007, 2:48:01 PM
(maxdiverSxn1 @ 22.06.2007 - время: 23:22) Из учебника по SDL
Хм. Я вообще-то тоже думал, что SDL преимущественно ogl юзает.
https://www.libsdl.org
Q. What is SDL?
A. Simple DirectMedia Layer is a library written in C that provides low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer in a portable manner. In other words if you use SDL you'll have an easier time porting your game or application to all the platforms that SDL supports.
SDL is simple and only does the hard stuff for you (making your app portable). It does not have any networking, GUI or various image facilities for you. There are however add on libraries that will do that.
Q. Does SDL support 3D acceleration?
A. Yes, SDL supports 3D acceleration using the OpenGL API.
Q. What is supported?
A: SDL supports Windows 95/98/NT/ME/2000/XP.
SDL can be built with Visual C++, Borland C++, Cygwin, MinGW, Dev-C++, and Watcom C++.
SDL takes advantage of DirectX hardware acceleration when it is available, but falls back to the standard Win32 services if DirectX is not installed.
Хм. Я вообще-то тоже думал, что SDL преимущественно ogl юзает.
https://www.libsdl.org
Q. What is SDL?
A. Simple DirectMedia Layer is a library written in C that provides low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer in a portable manner. In other words if you use SDL you'll have an easier time porting your game or application to all the platforms that SDL supports.
SDL is simple and only does the hard stuff for you (making your app portable). It does not have any networking, GUI or various image facilities for you. There are however add on libraries that will do that.
Q. Does SDL support 3D acceleration?
A. Yes, SDL supports 3D acceleration using the OpenGL API.
Q. What is supported?
A: SDL supports Windows 95/98/NT/ME/2000/XP.
SDL can be built with Visual C++, Borland C++, Cygwin, MinGW, Dev-C++, and Watcom C++.
SDL takes advantage of DirectX hardware acceleration when it is available, but falls back to the standard Win32 services if DirectX is not installed.
maxdiversexnarod1
Специалист
6/23/2007, 3:44:05 PM
Если было непонятно, то я и имел в виду DirectDraw - ИМХО лучше работать через SDL, чем напрямую с DirectDraw.
Учёный Кот
Интересующийся
7/17/2007, 6:03:35 PM
**********
там про каждую игру есть история про то как мы её создавали.
Да, проекты конечно маленькие - зато уже завершённые
А вот дальше мы стали делать большой проект - походовую стратегию.
И вот тут были странные советы "сначала найди движок, потом закачай спрайт..." - это всё ерунда.
Сначала нужно сформулировать а чего собственно в игре-то будет.
Например сейчас у наз вся загвоздка в том, что каждый предлагает свою формулировку правил. Может со стороны показаться и смешным даже но вот: уже и правила сами есть и отыгрывали их (с фигурками на столе, правда, а не в компьютере) много раз и убедились что баланс есть полный - а вот, у нас по плану сначала выпустить настольную версию, а значит правила надо сформулировать, чтобы их мог понять любой ребёнок или ещё хуже того взрослый...
Кстати, если кто-то думает, что тогда надо изменить план и резко бросаться писать сразу компьтерную игру, то не прав - сейчас стоит вопрос расширения команды, быть может даже перехода с чистого энтузиазма на какую-никакую но оплату труда - а мы не можем сформулировать основной документ по которому такая расширенная команда должна будет работать.
Так что насчёт того как написать большую игру совет классический: сначала очень маленькую, затем чуть побольше, затем ещё чуток побольше и так пока не получиться Большая. А то вот - учитесь на чужом опыте - мы один из промежуточных шажков перепрыгнули и теперь дружно тормозим
Обойдемся без неприкрытой рекламы.
там про каждую игру есть история про то как мы её создавали.
Да, проекты конечно маленькие - зато уже завершённые
А вот дальше мы стали делать большой проект - походовую стратегию.
И вот тут были странные советы "сначала найди движок, потом закачай спрайт..." - это всё ерунда.
Сначала нужно сформулировать а чего собственно в игре-то будет.
Например сейчас у наз вся загвоздка в том, что каждый предлагает свою формулировку правил. Может со стороны показаться и смешным даже но вот: уже и правила сами есть и отыгрывали их (с фигурками на столе, правда, а не в компьютере) много раз и убедились что баланс есть полный - а вот, у нас по плану сначала выпустить настольную версию, а значит правила надо сформулировать, чтобы их мог понять любой ребёнок или ещё хуже того взрослый...
Кстати, если кто-то думает, что тогда надо изменить план и резко бросаться писать сразу компьтерную игру, то не прав - сейчас стоит вопрос расширения команды, быть может даже перехода с чистого энтузиазма на какую-никакую но оплату труда - а мы не можем сформулировать основной документ по которому такая расширенная команда должна будет работать.
Так что насчёт того как написать большую игру совет классический: сначала очень маленькую, затем чуть побольше, затем ещё чуток побольше и так пока не получиться Большая. А то вот - учитесь на чужом опыте - мы один из промежуточных шажков перепрыгнули и теперь дружно тормозим
Обойдемся без неприкрытой рекламы.
inss
Новичок
3/9/2008, 1:00:35 AM
Как кто-нибудь создаст тему про создание игр, тут сразу начинается втирание про процесс рендеринга, OpenGL, и т.п. загрузку примитивов, буферы.. Советуют писать игры на С++, на самом низком уровне... типо самые крутые дядьки пишут именно так. Я не именно про это тему, а вообще.
Запомните простое правило: настоящее творчество возможно только на вершине горы, созданной другими людьми. Зачем самому писать двиг? Ну по крайней мере не начинать же с этого!
Посоветую программу-движок Blitz3D (он же Blitz Basic). Найти где скачать поможет гугль. Суть в том, что этой прогой пользуются многие люди, поэтому для неё делается много чего полезного, чтобы она работала с 3дмаксом и т.п. Программировать в блице очень просто.
Для начала советую попробовать создать что-то на языке такого высокого уровня, а уж потом, по мере необходимости и ОСОЗНАННОСТИ изучать низкий уровень и тому подобное.
В блице легко можно юзать модели, сделанные в 3дмаксе (как неподвижные, т.е. дома, помещения, уровни, так и анимацию - модуль pipeline).
Также в блице можно использовать физику PhysX. Нужно только уметь пользоваться гуглом )
У блица есть очень хорошая система столкновений.
Вобщем пробуйте и пишите, по мере возможностей и знаний - помогу.
Запомните простое правило: настоящее творчество возможно только на вершине горы, созданной другими людьми. Зачем самому писать двиг? Ну по крайней мере не начинать же с этого!
Посоветую программу-движок Blitz3D (он же Blitz Basic). Найти где скачать поможет гугль. Суть в том, что этой прогой пользуются многие люди, поэтому для неё делается много чего полезного, чтобы она работала с 3дмаксом и т.п. Программировать в блице очень просто.
Для начала советую попробовать создать что-то на языке такого высокого уровня, а уж потом, по мере необходимости и ОСОЗНАННОСТИ изучать низкий уровень и тому подобное.
В блице легко можно юзать модели, сделанные в 3дмаксе (как неподвижные, т.е. дома, помещения, уровни, так и анимацию - модуль pipeline).
Также в блице можно использовать физику PhysX. Нужно только уметь пользоваться гуглом )
У блица есть очень хорошая система столкновений.
Вобщем пробуйте и пишите, по мере возможностей и знаний - помогу.
DELETED
Акула пера
3/9/2008, 7:31:17 PM
Для начала, пожалуй, лучше заняться математикой. :)
ssssssss
Новичок
8/10/2009, 6:04:22 PM
(Rudоlf @ 15.04.2007 - время: 12:24) Как спрайты в игру загружают, или транслируют, как это выглядит?
Это можно в документации по DirectX почитать?
простой пример на PureBasic
1) создаем спрайт
2) loadsprite (0, "ваш спрайт")
3) displaysprite (0,0,0)
и поперли с ним делать что хотим.
Самое сложно найти художника для игры. ИМХО
Создать игру даже большую любой прогер сможет.
Это можно в документации по DirectX почитать?
простой пример на PureBasic
1) создаем спрайт
2) loadsprite (0, "ваш спрайт")
3) displaysprite (0,0,0)
и поперли с ним делать что хотим.
Самое сложно найти художника для игры. ИМХО
Создать игру даже большую любой прогер сможет.
DELETED
Акула пера
8/10/2009, 8:27:41 PM
Мультипостингом не увлекаемся. Посты соединил.
(ssssssss @ 10.08.2009 - время: 14:04)Создать игру даже большую любой прогер сможет.
Поздравляю. Вы выиграли билет на поезд до станции ""Утопия Мора". Аминь.
(ssssssss @ 10.08.2009 - время: 14:04)Создать игру даже большую любой прогер сможет.
Поздравляю. Вы выиграли билет на поезд до станции ""Утопия Мора". Аминь.