LINUX.ORG.RU

Созддание игры на С++


0

0

Люди,помогите хочу создать игру на С++! Попрошу вас посодействовать в моём проекте! Для начала как инициализировать графику ? Ну и какие библиотеки нужны ? Затем как рисовать простейшие фигуры? Работаю в kdevelop. Установлен Mandrake 10.1. Заранее благодарю всех!


Ну коли уж речь зашла... Это типа была моя детская мечта. Теперь могу осуществить, но уже не хочу.

1-я ошибка "Игра на С++" 2-ое Начинаем разрабатывать концепцию игры 3-е Начинаем разрабатывать ОЧЕНЬ ДОРОГУЮ графику 4-е Без серьезного Мат Оппарата это НЕ РЕАЛИЗУЕМО (Если после 2 и 3 его шага это реализуемо без серьезного мат аппарата закрываем проект нафиг) 5-е Музычка (это ОЧЕНЬ ДОРОГО и сам не сделаешь никогда) 6-е Анимация (Это очень дорого и сам не сделаешь никогда)

7- А вот теперь дело дошло до С++ ... Пишем специализированый сценарный язык на С++ для того что бы писать нашу игру Отлаживаем, Отлаживаем, Отлаживаем ....

8- Меняем графику концепцию и исправляем алгоритмы самой игры.

9- Ну вот Бета и Готова ... дальше дело Менеджеров ...

Поругайте такой расклад. Может я пойму почему у меня ничего не вышло.

kryl
()

Попробуй SDL или Allegro.

Chmo
()
Ответ на: комментарий от Chmo

Гм ... да не вышло ...

1-я ошибка "Игра на С++"

2-ое Начинаем разрабатывать концепцию игры (Сценарий , Роли , Ходы)

3-е Начинаем разрабатывать ОЧЕНЬ ДОРОГУЮ графику (Пока просто графику)

4-е Без серьезного Мат Оппарата это НЕ РЕАЛИЗУЕМО ( Статистика И Автоматы по моему неизбежны)

/Если после 2 и 3 его шага это реализуемо без серьезного мат аппарата закрываем проект нафиг.

5-е Музычка (это ОЧЕНЬ ДОРОГО и сам не сделаешь никогда)

6-е Анимация и 3D (Это очень дорого и сам не сделаешь никогда)

7- А вот теперь дело дошло до С++ ... Пишем специализированый сценарный язык на С++ для того что бы писать нашу игру

Отлаживаем, Отлаживаем, Отлаживаем ....

8- Меняем графику концепцию и исправляем алгоритмы самой игры.

9- Ну вот Бета и Готова ... дальше дело Менеджеров ...

Так лучше ....

kryl
()
Ответ на: комментарий от kryl

[Offtopic] Ну или Вот такой вариант (только что придумал).

1 - Находишь фотографа (это дорого, но в пределах) 2 - Находишь музыкантов ( это еще дороже) 3 - И начинаешь финансировать порно съемки в масштабах которые тебе позволяют твои финансы. 4 - Засовываешь всё, что вы на снимали в любой движок (Хоть в тетрис)

5 - .... Ну не продашь ты это, не продашь. Но имя своей конторке сделаешь, пойдет на ура, бесплатно!

Только зачем здесь С++, вот в чем вопрос? Вообщем [Offtopic]

kryl
()
Ответ на: комментарий от kryl

Что здесь с форматированием, а ? [Offtopic] Ну или Вот такой вариант (только что придумал).

1 - Находишь фотографа (это дорого, но в пределах)

2 - Находишь музыкантов ( это еще дороже)

3 - И начинаешь финансировать порно съемки в масштабах, которые тебе позволяют твои финансы.

4 - Засовываешь всё, что вы на снимали в любой движок (Хоть в тетрис)

5 - .... Ну не продашь ты это, не продашь. Но имя своей конторке сделаешь, пойдет на ура, бесплатно!

Только зачем здесь С++, вот в чем вопрос? Вообщем [Offtopic]

kryl
()
Ответ на: комментарий от One-Eye

Не для бесконечного флейма. Английский для меня не родной, знакомый язык. Не мог бы ты перевести это понятие Greenspun Tenth Rule. (Спасибо)

kryl
()

>>1-я ошибка "Игра на С++" Почему? Ведь много игр написано на С++(например half life 2), И что такое SDL и Allegro ?

shu2
() автор топика
Ответ на: комментарий от shu2

Извиняюсь!

>>1-я ошибка "Игра на С++"

Почему? Ведь много игр написано на С++(например half life 2), И что такое SDL и Allegro ?

shu2
() автор топика
Ответ на: комментарий от shu2

Мне кажется ошибочным не C++ (это просто инструмент) А акцент который сделан при планировании его использования. Пользователю Всё равно! на каком языке это будет. Тебе же легче будет писать логику и графику на чем то вроде LISP (Нинтендо пишут свои игры на Лисп) Просто все ресурсы ограничены а С++ очень ресурсоемкий язык. Во всех планах. Он требует колосального опыта от разработчика требует видения которое есть у 1 из 10000 программистов. Скорости Думмера при написании кода. Колосальных вложений и дисциплины военного производства. Вот такой вот язык C++.

По твоему вопосу я бы отправил тебя к OpenGL (и C++ пройдет,снимет как рукой)

kryl
()
Ответ на: комментарий от kryl

Я не сишник ( поэтому меня можно поправить) Но С/C++ можно мне кажется использовать что бы

1) Заменить недоступные или проприетарные библиотеки. 2) Реализовать логику запрещенную. разработчиками в твоем языке 3) Работа напряму. с железом. Когда у тебя есть только что рожденная железка и НИЧЕГО кроме. 4) Математические вычисления в реальном времени когда критичны доли секунды и не критичен сбой (Доли секунды перевешивают) Учебный пример Софт для самолета который летит на болбшой скорости и малой (3-10 метров) высоте огибая препятствия.

Всё больше ничего придумать не могу ...

kryl
()
Ответ на: комментарий от kryl

А google на што?

10-е правило Гринспуна: "любая более-менее сложная программа на Си или Фортране [смело можно и C++ вписать] содержит половину функциональности Common Lisp-а, реализованную по тормозному, в лоб, и крайне погано".

One-Eye
()
Ответ на: комментарий от shu2

Мало ли, сколько чего на C++ писано. Народ - глуп, не стоит уподобляться массам глупцов.

SDL - портабельная библиотека для работы с графикой, звуком, и т.п. - некий аналог DirectX.

Allegro - вроде бы какой-то заточенный под 2D-игрушки framework, не знаю, ни разу не юзал...

One-Eye
()
Ответ на: комментарий от kryl

> 3) Работа напряму. с железом. Когда у тебя есть только что рожденная железка и НИЧЕГО кроме.

Часто тут лучше Форт подъюзать.

> 4) Математические вычисления в реальном времени когда критичны доли секунды и не критичен сбой (Доли секунды перевешивают)

Тут тоже C++ - не лучший вариант. Для реального времени он плохо подходит в силу принципиальной непредсказуемости поведения многих операций.

One-Eye
()
Ответ на: комментарий от One-Eye

Ну еще когда надо моделировать Многогранник быстро летящий в свех плотных средах. А у тебя 10 персоналок .. в лабратории.

kryl
()
Ответ на: комментарий от kryl

Числодробильня - тоже не для C++. Тут нужен функциональный язык, части которого автоматом транслировались бы в Фортран (e.g., как это в Mathematica делается).

One-Eye
()
Ответ на: комментарий от kryl

P.S. Я вообще не могу найти ни одной задачи, где было бы оправдано применение C++. Для C - бывает иногда, но это - крайне узкая область, а вот для C++ просто не существует ни одной задачи - всегда найдётся гораздо более приспособленный инструмент.

One-Eye
()
Ответ на: комментарий от kryl

Да не канает он на роль "универсального языка". Во первых, универсальных языков просто не существует, ни один не может быть хорошо приспособленным для любой задачи, во вторых - универсальные языки и не нужны вовсе.

One-Eye
()
Ответ на: комментарий от One-Eye

C++ более гибкий для универсального языка чем многии другие. У него есть тимплейты и он достаточно быстрый.

Chmo
()
Ответ на: комментарий от One-Eye

>части которого автоматом транслировались бы в Фортран (e.g., как это в Mathematica делается).

чёто ты сомнительные вещи говориш

Она если во что вообще транслирует то ето в лисп

cvv ★★★★★
()
Ответ на: комментарий от cvv

Какой на фиг Лисп? У математики свой язык, интерпретируемый, с кривеньким инкрементальным GC. Лиспом там и не пахнет. Но зато там есть фича, позволяющая скомпилять практически любую функцию в Фортран, скормить это компилятору и тут же подцепить через MathLink. Все более-менее серьёзные числодробильные задачи народ решает именно так.

One-Eye
()

ни в коем случае не используй SDL.

1. она целеком является враппером к другим апи, и вызывает сильные тормоза. 2. в серьезном коммерческом проекте она тебе не пригодится, зря потратишь время на обучение.

Графика - opengl, инпут - иксовый, удобный класс-враппер пишется за пару часов, могу дать готовый. Окна/система - смесь X и posix api, тоже все достаточно просто и есть готовое. Далее, оформи это как компоненты - получешь свободный внутренний api, что поможет при портируемости.

Сеть/Звук - тоже в компоненты, для звука можно взять с++ обертку для альсы, либо какой нибудь враппер типа openal, хотя на мой взгляд - не надо, только потеряешь время на изучение, а так же быстродействие.

Так же заранее подумай о форматах ресурсов, особенно текстовых, нужна ли тебе будет портируемость. Я пользуюсь собственным враппером, но он поддерживает только 1байтные или 2байтные строки, т.е. utf8 я сознательно исключил, храню все тексты в ucs2, под линуксом без разницы, инструментов достаточно, а под винду меньше проблем с перекодированием.

anonymous
()
Ответ на: комментарий от One-Eye

ты наверное лиспа в глаза не видел

>У математики свой язык, интерпретируемый,

если внимательно присмотришся то увидиш что ето обезображеный интелектом лисп

cvv ★★★★★
()
Ответ на: комментарий от cvv

> ты наверное лиспа в глаза не видел

мега-лол!!!

> если внимательно присмотришся то увидиш что ето обезображеный интелектом лисп

Да не, не Лисп это. Общего с Лиспом - только списки, да и те - глубоко запрятаны, и кривенькая лямбда.

Кстати, Maxima - тоже мало общего с Лиспом имеет, но там хотя бы очень легко можно в Лисп из её языка выпасть, и вяжется он с Лиспом тривиально. Но и с Maxima народ всё равно предпочитает вариант с кодогенерацией для Фортрана.

One-Eye
()
Ответ на: комментарий от One-Eye

>Какой на фиг Лисп? У математики свой язык, интерпретируемый, с >кривеньким инкрементальным GC. Лиспом там и не пахнет. Но зато там есть >фича, позволяющая скомпилять практически любую функцию в Фортран, >скормить это компилятору и тут же подцепить через MathLink. Все >более-менее серьёзные числодробильные задачи народ решает именно так. > >One-Eye (*) (28.04.2005 18:00:09)

Какая нафиг математика? Все более-менее числодробительные задачи никто не пишет ни на какой математике. Их пишут на голом фортране и считают на соответствующих машинах. Какая Mathematika-a если у меня задача трое суток как минимум считается, на однопроцессорной машине? И это еще мало. Они, бывает, месяцами считаются.

anonymous
()
Ответ на: комментарий от anonymous

Чувак, ты читать умеешь, или где?

Математика - дабы сгенерить и оптимизировать численный метод, и чтоб исходный код читабельный был. Фортрановский код - генерится, причём, гораздо лучше, чем ты руками сам напишешь.

One-Eye
()

Мне кажется, изначально была взята не та нота.

Давайте лучше поможем человеку, если удастся.

Например, я со своей стороны всегда готов обсудить, помочь
что-то написать, разработать и тд (и даже попытаться нарисовать)

Лично я бы начал с анализа проектируемой игрушки, так как
в зависимости от этого можно либо использовать тот же SDL
либо уже готовые движки визуализации а-ля crystalspace, ogre3d и тд

shu2, если тебе ещё интересно - свяжись со мной, vahvarh@emserv.ru

vahvarh ★★★
()
Ответ на: комментарий от One-Eye

> Пусть лучше на Лиспе или на OCaml-е напишет.

как в том анекдоте -- "пейте эти таблеточки, уши сами отвалятся"

хорошую игру писать надо на бумаге, и начать со сценария.
через месяц можно будет задумываться о деталях реализации, не раньше.

ID19999
()
Ответ на: комментарий от ID19999

Я так понимаю, товарисч желает поучиться. Так что ему не стоит чрезмерно новаторством заниматься, лучше уж сначала что-то классическое реализовать - какую либо вариацию тетриса, простенькие 2D-гоночки, войнушку программируемых роботов, и т.п.

One-Eye
()
Ответ на: комментарий от One-Eye

>Я так понимаю, товарисч желает поучиться.

Абсолютно правильно. Я учусь в 8 классе. Учу си++, VB, html, php, flash и т.п. Но вот хочется что-нибудь интересное сделать, игрушку какую-нибудь простую написать, чтобы интереснее было грызть гранит наук. Чтобы реально увидеть плоды :) А вот с чего начать не пойму.

shu2
() автор топика
Ответ на: комментарий от shu2

Сделай полезную игрушку, на которой потом и будешь учиться - войнушку программируемых роботов.

One-Eye
()
Ответ на: комментарий от shu2

> товарисч желает поучиться.

А, понятно. Ты забей пока на промышленные подходы, С++ и т.п. Результата ты так и не увидишь, интерес быстро пропадет. В качестве первой игрушки возьми что-нибудь хорошо изученное типа тетриса. Сделай на Flash, Action Script, насколько я успел заметить - вполне вменяемая разновидность ECMA Script, вполне пригодная для обучения.

Cantor ★★
()
Ответ на: комментарий от shu2

> Я учусь в 8 классе. Учу си++, VB, html, php, flash

если хочется чтобы было интересно, и результат не стыдно людям показать, посмотри питон и библиотеку pygame (http://www.pygame.org/). сэкономишь кучу времени на деталях.

флеш и actionscript тоже вариант, но хорошему программированию он тебя вряд ли научит.

ID19999
()
Ответ на: комментарий от One-Eye

> Придумал, что товарищу присоветовать. Пусть забьёт пока на игры, и займётся написанием демок...

pygame для игрушек не сложнее спектрумовского бейсика

ID19999
()

А может стоит писать с OpenGl(повторяю игра это как стимул)?

графика\звук -простенькие (хотяб квадратики но чтоб двигались), а звуки -короткие(позаимственные)

И вообще как насчёт мультиплатформных игр?

shu2
() автор топика

Как вариант - можно учиться писать некоторые игры на Java3D, изучая заодно саму Java и приемы работы с 3D-графикой. Эта явавская библиотека использует OpenGL или DirectX для своего рендеринга, но в отличие от последних Java3D работает с сущностями более высокого уровня [читай, не нужно заморачиваться на детали, а часто такие детали - это суровая аналитеская геометрия]. К тому же есть хорошие книги и туториалы. Только одно требование - желательно знание английского.

Программирование на OpenGL или DirectX может потребовать хороших математических знаний. В этом плане Java3D будет по-проще для освоения.

dave ★★★★★
()
Ответ на: комментарий от ID19999

>>Я учусь в 8 классе. Учу си++, VB, html, php, flash ...

Тогда Common LISP ... (ну еще Паскаль)

И скупаем всю видимую литературу. Графы, Автоматы, Статистика,

Анализ, Физику (Амер. Авторов) учим английский на ПМЖ и занимаемся

восточными видами. Про всё остальное забываем, пока не поздно.

спорта :))

kryl
()
Ответ на: комментарий от shu2

я же написал тебе что нужно! скажи емэйл и я вышлю тебе классы

anonymous
()
Ответ на: комментарий от ID19999

IMHO, демки просто куда как более захватывающее занятие. В игре - много рутины, тупого кодирования, а демка - от начала и до конца - чистое Искусство. Так что для сохранения энтузиазма на всех этапах задача идеальная.

ЗЫ: а ведь когда-то я на демосцену баллоны катил, думал, что народ фигнёй страдает... До тех пор, пока не понял, насколько полезные скиллы можно приобресть в процессе страдания этой фигнёй.

One-Eye
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.