всем доброго времени суток, уважаемые посетители портала.
недавно с друзьями появилась идея создать какой-нибудь "простенький" сетевой 3D-шутер для своего собственного развития, узнать, как именно делаются игры, от А до Б, причём на своём личном опыте. опыт работы с игровыми движками довольно-таки скуден и мал: мы долго сидели на CryENGINE (делали модификацию для игры FarCry с новым сетевым режимом и всеми составляющими полноценной модификации), далее пробовали свои силы на Source Engine (карты для Counter-Strike: Source, которые так и не дошли до релиза). до Unreal Engine, к сожалению, руки так и не дошли, а CryENGINE 2 был уже не тот. может быть, потому что являлись фанатами Джека Карвера.
шли годы, и перед нами появились такие интересные инструменты, как Unreal Development Kit и CryENGINE 3 SDK Free. первый я лично пробовал освоить. Unreal Engine порадовал своим функционалом, картинкой, но отталкивал интерфейсом и кол-вом того, что надо изучать. Cry ENGINE 3 вышел сыроват (но это всё временно - обновления всё же радуют, пусть и не так сильно, как у UDK) и всё же не привлекает меня так, как привлекала первая версия движка.
всю эту затею я решил отложить, ибо определиться так и не смог. к тому же, не имея чёткого представления, какую же игру я хочу видеть в итоге, определиться ещё труднее. на днях решил вспомнить детство и скачал разные Quak'и, побаловаться. тут-то и вспомнил, что id Software выложила исходные коды игр Quake, Quake II и Doom III. в голову пришла, возможно, смешная идея - а можно ли, используя данные коды, создать свой игровой движок?
ребят, прошу без возгласов: "самому-то не смешно?", "это не реально" - и т.д. я представляю, какого это, писать свой собственный игровой двигатель. мне просто стало очень интересно, каким же образом это делается и с чего мне начать, чтобы хотя бы просто попробовать это на своём опыте, как можно использовать исходные коды игр компании id Software.
заранее всем огромное спасибо, удачи в Ваших начинаниях, Владимир Дивак. "путешествие в тысячу миль начинается с первого шага" "лучшее - главный враг хорошего" "в мире есть две бесконечные вещи - вселенная и человеческая глупость.. на счет первого не уверен" "мы делили апельсин - много наших полегло..." "в феврале марта не бывает..." (с) farcry.ru
Это вполне реальная затея, только придется тебе писать физику(в школе надо учить её на 5+), или подключить существующую(Ageia Physics), подключить граф. движок(Dx11 или OpenGL ), в конце концов подключить звуковой движок( OpenAL), и все это через компилятор c++! Помог, поставь +! Мой блог про создание игр
1. Прежде всего, нужно определиться - а для чего нужен движок? Если только для мультиплейера - можно сэкономить на ИИ, если 2d - тут можно обойтись без кучи врапперов под модели. 2.Затем продумать схему - монолитный движок или модульный, рассчитанный на компиляцию или интерпретацию игровой логики etc. 3.Подумать о графике - OpenGL, DirectX, или альтернативы вроде SDL. 4.Пока часть команды пишет собственно движок, другая часть пытается написать на нём игру - тогда можно узнать, что действительно нужно, а что нет.
Это безотносительно исходных кодов Doom.
По поводу исходников - а как насчёт знания языка, на котором написано? Читать чужие исходники - оно без подготовки очень сложно. Однако если команда большая, то разобраться можно. Но совет тут один: попытайтесь. Пока люди сидят и размышляют - нет результата. Он будет, если думать и делать одновременно. Будь подобен лезвию бритвы: ярким, блестящим, отточенным, но холодным и не показывающим своего истинного цвета.
BASS, SDL только для инициализации, opengl для графики. Можно написать и свой движок, если время позволяет (не знаю точно, первая версия blendelf была написана за 2 недели).
sasha193, возможность написания физического движка и школьные оценки не коррелируют, gl, dx - api а не движки, а компилятор c++ только компилирует, а не подключает модули. А если мы пишем на си, то компилятор си++ нам не нужен.
This is the complete source code for Quake 2, version 3.19, buildable with visual C++ 6.0. The linux version should be buildable, but we haven't tested it for the release.
The code is all licensed under the terms of the GPL (gnu public license). You should read the entire license, but the gist of it is that you can do anything you want with the code, including sell your new version. The catch is that if you distribute new binary versions, you are required to make the entire source code available for free to everyone.
The primary intent of this release is for entertainment and educational purposes, but the GPL does allow commercial exploitation if you obey the full license. If you want to do something commercial and you just can't bear to have your source changes released, we could still negotiate a separate license agreement (for $$$), but I would encourage you to just live with the GPL.
All of the Q2 data files remain copyrighted and licensed under the original terms, so you cannot redistribute data from the original game, but if you do a true total conversion, you can create a standalone game based on this code.
Thanks to Robert Duffy for doing the grunt work of building this release.
John Carmack Id Software
Полагаю, "Папа" ДУМОВ и КВАКОВ - развеял все сомнения по использованию его творений.
Quote (BASS)
По поводу исходников - а как насчёт знания языка, на котором написано?
+ Quake I-II - написаны на C, а не на C++. ***
Quote (05142)
А если мы пишем на си, то компилятор си++ нам не нужен.
05142, Visual Studio одинаково хорошо "кушает" оба языка. ***