![]() |
Пишем свой первый игровой движок (3D Game Engine)
Приветствую тебя!
Если ты посетил эту тему, значит у тебя есть желания узнать нечто больше, чем: "как налепить текстуру на модель в Blitz3D" или "как сделать чтоб при нажатии клавиши воспроизводилась анимация модели"... Так вот, я решил что пришло время мне заняться очень серьёзным и большим делом. "Уверен ли я что доделаю это не забив на старте?" - возможно спросите вы... Да не уверен, потому и пишу здесь чтобы мне было с кем обсуждать и генерировать идеи. Но не забью болт это уж точно, потому что я взял эту тему как тему моего будущего диплома...;) Начнём! Игровой движок - это такое срединное (middleware) ПО что упрощает разработку конечного ПО (software), в нашем случае компьютерной игры. То есть в игровой движок должны входить все возможные библиотеки, утилиты + среда разработки для возможности создать конечный продукт. Мой движок будет состоять из:
Он будет:
Честно говоря, писать с "0" я буду только графический движок. Все остальное использую уже готовенькое, но до этого еще ох как далеко... - Вопрос: А почему не выбрать и готовенький графический движок, их же туева хуча? - Ответ:
Планирование На этом этапе мы с вами будем много обсуждать что надо делать, что не надо делать, что использовать и вообще много, много вопросов и идей. Начнем с простых вопросов: - В: Сколько на это есть времени? - О: На первый экземпляр ГД (графического движка) - до 20-о Мая 2012г. На весь проект - до Декабря 2012г. - В: Сколько на это есть денег? - О: 0 - В: Какой мой уровень знаний С++? - О: Низкий или средне низкий. (Будем повышать в процессе работы) Если вас интересует что-то еще, пожалуйста задавайте ваши вопросы! ОК, а теперь займемся планированием ГД. Поскольку это то что нужно сделать в первую очередь, и неизвестно наперед сколько на это востребуется времени, буду разрабатывать по итерациям. То есть сперва фундамент, а потом наращивать по возможности. Но чтобы понять что делать сперва, и куда двигаться потом нужен план, который называется: "спецификация требований". Иными словами - "хотелка"... Вот эту вот "хотелку" я и предлагаю ВАМ дорогие мои составить.:rolleyes: Сперва все что можно придумать крутого, а потом мы придём к тому, с чего можно начать... Буду очень благодарен за все ваши идеи и вопросы! |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Коль уж статья на русском языке, то правило "жи-ши, пиши с буквой И" действует.
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
В: Есть ли у тебя мак, чтобы делать версию под мак?
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
ТС, спасибо, поржал.
Цитата:
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
топикстартер, ты взял реально тяжкую тему для диплома.
кроссплатформа это тягостно в плане тестирования, потому что везде всякие разные проблемы. ну и ты не сказал, выложишь ли потом исходники (от этого зависит стоит ли вообще хотеть твой "движок"). ну а хотелки банальнейшие: - математическая библиотека (вектора, матрицы, кватернионы, углы) - статик меши/скинед меши/гуи меши, материалы - формат сцены: геймобжект и его компоненты: трансформ, меш, физическое тело, источник звука/слушатель, камера(ортогональная/перспективная) - постэффекты одно это запилить под три платформы съест всё твое время. еще надо и демку же на движке... короче круто ты взял тему... |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
ну что вы бэтмены, пропускайте текст через microsoft word хотя бы.
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
а) загружает объекты из файла б) текстурирует объекты в) освещает объекты г) кастит тени от объектов, если иное не задано конфигурацией (кажется, именно так пишут в ТЗ :) ) д) работает с ландшафтами (загрузка + рисование, и, желательно, модификация) е) умеет рисовать и обрабатывать системмы частиц. Коль прикрутить обработку коллизий не через PhysX / Bullet да еще и коллизий с объектами, а не только друг с дружкой - будет убер-шикарно! Ну а поскольку не-физикс и не-буллет, то это нечто должно давать что-то лучшее, нежели упомянутые - например, большую скорость, большее количество обрабатываемых одновременно системм частиц, точнее коллизии и т.д. Иначе имеем зависимости и тормоза, что не есть красиво. ж) если все вышеупомянутые пункты работают хуже, нежели OGRE или Irrlicht или же вообще отсутствуют, ТЗ считать не выполненым, а целью проекта - исключительно повышение ЧСВ Self Education Коль ваше желание все еще сильно - дерзайте! |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Я начал читать и заметил, что програмируют там с помощю библиотеки GLUT. Скажите подойдет ето для разработки ГД? Посоветуйте мне что можно или не можно нацеплять на сырой API. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
вот еще что вспомнилось с тех давних времен, когда я писал диплом:
1. должно быть исследование существующих решений, с этим проблем в приципе нет, берешь гору движков с открытыми исходниками и рисуешь по ним UML-диаграммы. уже в принципе дофига работы, хотя бы два-три движка описать все классы. 2. должна быть научная новизна, т.е. ты должен будешь показать, что твой движок не просто такой же как у всех, а чем-то принципиально отличается. вот тут я даже затрудняюсь сказать: кроссплатформенный? - тысячи их общего назначения? тоже самое OpenGL? тоже не ново. воксели? майнкрафт? 4х мерная геометрия? тоже было. в общем с новизной тут я вижу какие-то нереальные проблемы. ну разве что как всегда высосать из пальца какую-то надуманную фичу, которая не особо кому-либо и нужна, реализовать её, и этим давить на уникальность. а вообще стоит очень серьезно поговорить с дипломным руководителем, потому что факап с дипломом это просто хуже некуда. PS: только что пришла идея, которая сильно повышает твои шансы доделать диплом в срок: взять уже готовый движок, и допилить туда эту надуманную фичу. согласись, что одну фичу сделать проще, чем с нуля сделать и движок и фичу, а потом доказывать как всё круто с ней улучшилось. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
Если же вам нужна убер-кроссплатформенность и скорость - однозначно SDL! Правда, для каждой функциональности придется либо писать кучу кода, либо использовать библиотеки -> что есть зависимости -> что не есть хорошо. И опять-таки: сперва сделайте каркас, ядро или как вы его там назовете. Сделайте за пару-тройку вечеров поддержку .3ds-файлов, текстур да света, покажите людям. А уж потом смотрите на остальное. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
Если у кого то еще есть идеи, что можно использовать, а что нет - пожалуйста делитесь! |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
ІГРОГРАЙКО, у тебя ничего не выйдет - инфа 100%
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
настоящие мужики создают окно сами. не доверяя SDL-ам.
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
И я смотрел твою тему HolyDel. А ты чем пользовалса если не секрет? Как на счет GLM - для матриц, векторов и проче математики...? |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
ну. мой двиг на opengl, форвард контексте.
я зря использовал фишки C++0x, и даже туже прагму онце. с их поддержкой очень туго на всяких андроидах и прочей отличной от винды фигне. glm можно использовать, чтобы со своей математикой не париться. , но настоящие мужики сами пишут математику. я не стал - там шаблон сидит на шаблоне и шаблоном подгоняет. а оно будет много в какие единицы трансляции включаться. поэтому одна сборка моего двига занимает 15 минут (причем тутже собираются всякие буллеты и фритайпы), а не час. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
Ну, как пример - я писал убер-класс вектора, который через кватернионные преобразования умел вращаться - не вижу-таки смысла в отдельном классе кватерниона... |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Код:
это туповато, по крайней мере лучше SSE2 математики из XNAmath/Sony vectormath вам не написать. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Вот например я у себя в матбибле тригонометрические функции делал через ряды Маклорена, и в них можно задавать количество итераций, тем самым выбирая баланс между производительностью и точностью. А так как тригонометрия входит и в расчеты векторов, матриц и кватернионов, то и их можно также балансировать. Расчеты системы частиц например намного быстрей происходить будут, т к точность в них не особо нужна. Еще есть некоторые функции для частных случаев, например если известно что аргумент принадлежит определенно заданному диапазону, можно упростить алгоритмы вычислений.
SIMD можно и самому пилить ассемблерными вставками - там не сложно. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Для комиссии, с немалой вероятностью, подобная разработка будет "на уровне калькулятора или даже выше". Конечно, может крупно повезти с преподами, но, увы, о многих относительно передовых темах люди буду судить по названию проекта.
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Так тут просто надо тему взять звучащую типа: "Система визуализации костной анимации в реальном времени" или "Визуализация физического взаимодействия твердых и мягких тел в реальном времени".
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Судя по топику, чувак надорвется и к концу года для него настанет конец света... Мой совет - к маю сделай тетрис с эротическими картинками на движке HGE ( хоть немного изучишь С++ ). Преподы будут рады. А к диплому доизучи еще BOX2D и BASS и сделай что-то типа Hammerfight (Hammerfall). Будет хоть какая -то польза и для тебя и для людей.
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Планирование продолжение Подведу итоги за етих несколько дней... В ходе обсуждения етого проекта и все большым погружением в даную предметную область я заметил существенные риски: Проек в целом:
Вывод: Я могу не успеть и/или перетрудитса, а роботу не оценят должным образом. И потому я решыл сильно уменьшыть объем проекта для диплома обойдясь пока только Графическим движком. Для написания Графического движка сейчас у меня недостаток знаний, а именно использования OpenGL API. Потому я приступаю к разработке учебного проекта... Спасибо вам за помощь! Буду рад получить новые советы...;) |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
я тебе уже посоветовал, но ты не унимаешся.
поговори с дипруком, придумайте фичу, запили фичу в уже существующий движок, профит. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Изменения в Силе я чую....
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
http://ru.wikipedia.org/wiki/Реальное_время Лучше поиграть со словом "интерактивный" - этим ты покажешь возможность пользователя влиять на процесс "в реальном времени"(зд.), т.е. on-line В остальном - прекрасно |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
импер всё правильно сказал про реальное время. тут дело не в придирках, а в том, что 3д рендер с гарантированным временем выдачи результата тяжело даже вообразить и непонятно где он может быть нужен.
интерактивный это легкое, ни к чему не обязывающее слово, которое можно лепить куда угодно. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Похоже стартер плохо понимает, что такое графический движок.
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
мы все когда-то были дипломниками, а кто-то еще будет, не нужно строго судить.
я вот пытаюсь помочь, чтобы отвратить факап. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
Начинал как и наверное большенство здесь с Blitz3D. Потом я начал учить C# и XNA вместе сним. Пробовал Ogre3D на Python"е (PyOgre) разочаровался в етой сборке, так как разработчики наверное забыли что она должна работать и на Линуксе. Пробовал собрать CrystalSpace, не получилось, ждал 1.5 часа, куча ошыбок... И делал демку на Blender"е. Ето наверное немного по сравнению с некоторыми здесь присутствующими професионалами. Но я не взялса бы за ето будь у меня только одно желание... |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Работать с дивжками, и их писать - это разные вещи.
Это как сказать: "я спаяю движок ферарри с нуля", лишь имея аргумент: "у меня был жигуль, мазда и ауди, и я заливал масло там под капотом". |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Разве я говорил что мой движок будет "Ферарри"?
Я делаю ето чтобы научитса. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
так все таки - чтобы научиться, или на диплом?
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Учусь и делаю диплом одновременно.
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
издавна советуют за двумя зайцами не бегать :-D
диплом нужно просто сдать а движки писать - та ещё наука... с наскока не возьмёш, учиться придётся долго. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Учебный проект OpenGL API Етот етап посвящается повышению знаний и опыта использования API OpenGL. Здесь я выложу ссылки на полезные статьи:Задача: Создать кроссплатформенное* OpenGL 3.х приложение с демонстрацией возможностей будущего ГД. Время на выполнение: 2 месяца (до мая) Ожидаемый результат: Достаточной уровень знаний API OpenGL для начала проектирования движка. Если вы знаете еще какие то полезные статьи, прошу вас поделитса ссылочкой;) Тоже буду рад и благодарен вашым советам стосовно програмирования на API OpenGL. * :winlogo: :luxlogo: |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
http://steps3d.narod.ru/
Единственное, пожалуй, что нужно для написания "OpenGL X-совместимого движка" (X >= 2). |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Скиньте пожалуста ссылку на статью о инициализации окна OpenGL на gcc под Ubuntu!
Я искал но нашел только с использованием GLUT а ето мне не приемлимо... |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
гугли SFML. там есть для всех платформ.
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Эк тебя прет... ) Ты бы хоть для одной платформы что-то толковое попробовал сделать. Да еще и без ГЛУТа... Ты хочешь стать Эйнштейном в графике? Найди себе нормального вменяемого руководителя на кафедре и пусть он тебе даст конкретную тему подкрепленную уже написанным ранее дипломом!!! :)
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
ЗЫ. 2 месяца очень мало, без представления как это все работает. Если ты конечно ночевать за компом не будешь.. но это бред |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
Я создал эту тему не для того чтобы сделать что то невероятное, поскольку еще от школы занимаюсь компьютерной 3Д графикой и ГеймДевом (уже где то 7 лет). И хочу попробовать реализовать свой талант и возможности по максимуму пока у меня есть много свободного времени, пока я еще студент. За Учебным проектом не следует сразу разработка движка, а будет еще повторное Планирование, поскольку у меня появилось несколько хороших идей которые я выложу на обсуждение в ближайшое время...;) |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Другой разговор, когда есть резервный вариант. Начни с Direct3D 9, OpenGL будет более понятней после изучения DirectX ИМХО, у меня было именно так.
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Цитата:
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Всем привет.
Прошло много времени и многое изменилось. Есть две новости: Хорошая: Я значительно повысил свой уровень знаний в области программирования компьютерной графики... Плохая: Я был вынужден отказаться от идеи сделать игровой (графический) движок на дипломный проект. Объяснять почему, наверно и не нужно. Слишком много работы для реализации самого движка и еще больше для создания демо, а как потом объяснить комиссии что собственно полезного я сделал очень сложно, воопщем и не надо... Надеюсь я вернусь к этому проекту позже... |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
маладца, всё правильно зделал.
диплом нужно защитить. а для себя уже можно и поделать движок. |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
![]() с математикой поворотов и масштабирований точек достаточно просто описанно (там идут умножения на косинус) т.е. для каждого обьекта свой коэфициент поворота вот с рендерингом недавно были доработанны основные идеи Итак они состоят в следующем : 1- при проэктировании привязывать точки проэтируемых треугольников к ближайшим целым точкам(пересечениям) 2- для области скажем 30х30 пикселов вычислить все возможные треугольники и занести их в таблицу (комбинации пересечений) (900 в кубе байт комбинаций) или можн обойтись более малой таблицей 10х10 (100 в кубе байт комбинаций -> 1мб) и складывать итоговые фигуры уже из нее как обеспечить чтобы треугольник оказался не больше чем 10х10 при вписывании его в прямоугольник? Необходимо чтобы он в натуральную величину не был больше чем 10х10 при вписывании его в оптимальный прямоугольник есть еще одна возможность которую я увидел несколько позже если одна из точек треугольника скажем нижняя левая будет находится в центре координат! вертикальных точек станет 20 а не 10 но так как определяемых по шаблону точек всего 2 то и вариаций будет 20х10 в квадрате а не 10 в квадрате а после в кубе (10х10 в кубе => 1 мегабайт) и для треульников оптимально вписанных в квадрат 10х10 пикселов достаточной будет таблица состоящая всего из 20х10 в квадрате => 40 000 бит т.е. всего 40 кбайт такую таблицу можна поместить в кэш даже старых процессоров Остался открыт вопрос работы над видимостью или невидимостью обьектов(фильтрации того что необходимо отобразить) Так же необходима проработка "скелета обьектов" И все это необходимо сделать еще до начала написания движка Ессно под него необходимо будет написать и среду разарботки но оно того стоит моя страница в контакте http://vk.com/i8ogdan |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
Зачем?
|
Ответ: Пишем свой первый игровой движок (3D Game Engine)
есть смысл
а словом зачем можна прервать что угодно в том случае если человек который его услышит идиот в слове зачем нет смысла зачем говорить зачем? есть смысл,есть цель, это хорошо сделать остальное не имеет значения |
Ответ: Пишем свой первый игровой движок (3D Game Engine)
ты свой рендер софтверный запилить чтоли хочешь?
|
Часовой пояс GMT +4, время: 08:06. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot