Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2012, 20:40   #1
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию Программирование игр на С++

Здравствуйте. Имею опыт написания простых игр на Blitz 3D, в своё время наштамповал около 6 игр. Но заметил, что Blitz-у далеко до современного движка. Даже очень. Вот загорелся написать игру в очень смешанном жанре. Со средней (в принципе даже ниже среднего) графикой, но довольно содержательной. Столкнулся с проблемой: на каком языке стоит писать? 2 часа гугла дали единогласный ответ: на С++. Облазил немало форумов, статей и прочего по созданию игр на С++. Кучу понакачал, но нигде так толково и не нашел, на какой версии, в чем их отличие, на какой приоритетно и т.д. Более того, информация по подобному уж очень короткая и, видимо, не для новичков C. Хотелось бы узнать:
I. В чем различие Borland, Visual и Visual Studio, их разных версий и наконец - на какой прогать?
II. Какие IDE использовать? Какие наиболее удобны?
III. DirectX или OpenGL, на каких версиях?
IV. Какие библиотеки подключать - физики, GUI и т.д.?
Прошу давать ссылки на дистрибутивы, если можно.
Программировал на Blitz, Delphi, Pascal, с математикой и физикой у меня нормально, с алгоритмами тоже более менее, так что думаю (и надеюсь), освою довольно быстро С++, т.к. в основном различие в синтаксисах.
Да и будьте добры - разжуйте, ибо я с работой на С не сталкивался пока вообще.
Заранее - большое спасибо!
Juggernout вне форума Ответить с цитированием
Старый 01.10.2012, 21:34   #2
Axrik
Форумчанин
 
Аватар для Axrik
 
Регистрация: 17.12.2011
Сообщений: 111
По умолчанию

Если ни разу не сталкивались с С++, то рано ещё думать про OpenGL и DirectX.
Думаю, вам стоит начать с этой литературы.
Учите всё по порядочку, не лезьте сразу в дебри
Axrik вне форума Ответить с цитированием
Старый 01.10.2012, 21:42   #3
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

Спасибо, Axrik, обязательно учту. Но хочу всё же развёрнутый ответ увидеть.
Да и кстати, неплохо учиться и по видео-урокам, т.к. текст я не очень эффективно воспринимаю.

Последний раз редактировалось Juggernout; 01.10.2012 в 22:01.
Juggernout вне форума Ответить с цитированием
Старый 02.10.2012, 00:02   #4
Axrik
Форумчанин
 
Аватар для Axrik
 
Регистрация: 17.12.2011
Сообщений: 111
По умолчанию

Цитата:
I. В чем различие Borland, Visual и Visual Studio, их разных версий и наконец - на какой прогать?
Самый универсальный вариант Visual Studio.
Коротко говоря Visual Studio содержит в себе все предыдущие версии

Цитата:
II. Какие IDE использовать? Какие наиболее удобны?
На любителя, насколько я знаю)

Цитата:
III. DirectX или OpenGL, на каких версиях?
Вообще тут мнения расходятся.
Лично мне было легче изучать DirectX (возможностей немало), но сильно ли он отличается от OpenGL сказать не могу ибо не знаю.
Попробуйте оба варианта и определитесь сами (ну и литературку почитать конечно надо бы )

Цитата:
IV. Какие библиотеки подключать - физики, GUI и т.д.?
Все! шучу
Выбор библиотеки, конечно же, зависит от того, что вы собираетесь делать.
Обычно с этим трудностей нет.

Если собираетесь работать на С++, то обязательно разберитесь с аббревиатурой ООП (это метод разработки программ, при котором основным инструментом являются объекты (классы), а не алгоритмы)

Ссылки, к сожалению, дать не могу, т.к. сам всё на бумажном носителе читаю
Удачи.
Axrik вне форума Ответить с цитированием
Старый 02.10.2012, 00:27   #5
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

Спасибо большое, помогли, Axrik!
P.S. Уважаемая администрация, не закрывайте пока тему, могут появиться вопросы, спасибо.
Juggernout вне форума Ответить с цитированием
Старый 02.10.2012, 00:44   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Juggernout

I. В чем различие Borland, Visual и Visual Studio, их разных версий и наконец - на какой прогать?

Borland - теперь это то ли китайцы, то ли какие-то индусы , которым досталось тяжелое наследие борланда. Идеальный инструмент для мышкошлеперов, и хелловорлдов, для программирования подходит мало

Visual, оно же Visual Studio - джедайская среда разработки от Microsoft. Выбор профессионалов и суръезных челябинских программистов, да и просто чОтких патСанов

если говорить кратко - Borland и Visual Studio - это как Экслер и Гоблин. первое - для эстетствующих п****л, второе - для настоящих мужиков. (((Ж

II. Какие IDE использовать? Какие наиболее удобны?

Использовать Visual Studio 2012

III. DirectX или OpenGL, на каких версиях?

OpenGL, похоже, в игрострое никому кооме Кармака не нужен.
использовать DirectX9 с поддержкой 11

IV. Какие библиотеки подключать - физики, GUI и т.д.?

GUI - свой.
Физика - Havok или Physix
первое - универсальное для любой видеокарты, второе NVidia only, но аппаратное. Использовалось слабо, но Бэтмен доказал что потенциал у движка есть.
Rififi вне форума Ответить с цитированием
Старый 02.10.2012, 02:06   #7
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

Rififi, тоже большое спасибо за ответ! Хороший форум, сразу несколько качественных отзывов! Буду всё иметь ввиду. Благодарствую.
Juggernout вне форума Ответить с цитированием
Старый 02.10.2012, 13:50   #8
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

С синтаксисом С++ более-менее уже разобрался, всего то за 6 часов. С ООП оказывается я сталкивался в Blitz 3D, только в более примитивной форме. Так что, особых трудностей не было при изучении на С, хотя я в С насчет ООП сильно не углублялся.. Появились вопросы:
V. Использование указателей обязательно при создании довольно объёмной программы? (Как я понимаю, можно тут и без них в принципе) Можете привести словесные примеры, где указатели ну просто необходимы?
VI. Можно ли сделать так, чтобы работать с объектами класса в виде списка, в том смысле, что например сделать функцию добавления нового объекта, затем ф-ю обработки всех объектов и при необходимости в обработке их удалять, а не делать объекты-массивы и возиться с индексами? (В Blitz 3D с этим гораздо проще, или я чего-то не знаю..)
VII.
Стоит ли качать полностью Visual Studio 2012 или только его часть С++, и возможно ли это?
VIII. Где качать библиотеки DirectX 9 именно для С++ и как их "пристраивать" к нему?
IX. Как DirectX работает с моделями? Может ли он использовать 3D модели 3D-Max, или Autodesc Inventor, к примеру?

Заранее спасибо за ответы!
Juggernout вне форума Ответить с цитированием
Старый 02.10.2012, 15:16   #9
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

V. Там, где нужна возможность указывать "неправильный" адрес (типа 0, нет адреса). В принципе с подходящими wrapper классами можно никогда не использовать *

VI. Сделать можно все что угодно, вопрос не слишком понятен. Если вы спрашиваете есть ли готовый объект list, то да, есть

IX. Насколько я знаю, ни OpenGL, ни DirectX напрямую с моделями не работают - там нет таких концепций вообще. Есть треугольники с текстурами (ну, грубо говоря). Вот почему есть разные движки, которые дополняют функционал.
waleri вне форума Ответить с цитированием
Старый 02.10.2012, 22:55   #10
Juggernout
Пользователь
 
Аватар для Juggernout
 
Регистрация: 01.10.2012
Сообщений: 23
По умолчанию

Спасибо, Waleri.
Насчет VI:
#include <list>
using namespace std;
class spisokclass
{
public:
string name;
int age;
};
int main()
{
list<spisokclass> spisok;
spisok d;
d.name="Evgenii";
d.age=26;
d.push_back(data);
d.name="Anton";
d.age=21;
spisok.push_back(data);
cout << getsize(spisok) << endl;
for (int i(1);i<=getsize<spisok>;i++)
{
cout << spisoc.age << endl;
spisoc.erase;
}

return 0;
}
Понимаю, здесь полно ошибок, но конечно в Blitz 3D я бы написал то, что хотел здесь в 5 раз быстрее и безошибчно. Хочу реализовать список объектов определенного класса и с ними работать. Можно и через массивы - но если представить, как придется помучиться с обработкой большого кол-ва данных и оптимизацией - то уж лучше мне с этим помучиться. Подскажите правильный синтаксис, пожалуйста. Простите конечно за мою наглую просьбу исправить мой код, но я пересмотрел 5 книг и несколько исходников на похожую тему, но так ничего и не нашел, вот сижу в печали

Последний раз редактировалось Juggernout; 02.10.2012 в 22:57.
Juggernout вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование игр и головоломок Jill73 Помощь студентам 0 17.05.2012 19:11
Программирование игр и головоломок Олеся Ю Паскаль, Turbo Pascal, PascalABC.NET 33 10.05.2012 20:26
XNA программирование игр на C# sergeybr Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 30.06.2010 13:52