Результаты поиска
| |
Archido | Дата: Пятница, 31 Декабря 2010, 08:42 | Сообщение # 761 | Тема: Linux |
Сэнсэй
Сейчас нет на сайте
| Quote (ezhickovich) Как минимум по тому, что он поддерживается большинством современных ОС... Не стоит забывать, что есть ещё маки... (но это совсем другая история) Какими например? Windows, Linux, Mac - это тройка ОС именно предназначенная для "народа", остальное все - специфика, причем немалая часть из приличных - Unix-подобные. Тут дело вовсе не в удобности и прочих подобных вещах, разработка под эти ОС(Linux и Mac) просто коммерчески невыгодна (или даже бессмысленна), учитывая статистику рынка использования(10-15% max) и специфику вышеперечисленных ОС. Причем людей, которые являются "геймерами" там вообще проценты. А далее из этих процентов нужно взять тех, кто совсем по-настоящему покупает лицензии этих игр, т.к. с точки зрения компании разработчика - человек, пользующийся скачанной с торрентов игрой - это абсолютный ноль, т.к. не приносит прибыль компании и поэтому не имеет никакого веса в данном вопросе. В результате "геймеров" становится банально меньше 1%. Скажу лишь, что все вышеописанное - это касаемо профессионального геймдева. Для любителей, конечно, никаких подобных преград нет. Можно спокойно, в свое удовольствие писать кросс-платформенный движок (под все три ОС) на OpenGL и получать очень нехилый скилл в процессе разработки. Но это совсем другая сторона вопроса.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Четверг, 30 Декабря 2010, 19:57 | Сообщение # 762 | Тема: Linux |
Сэнсэй
Сейчас нет на сайте
| Quote (ezhickovich) Думаю ты не станешь отрицать, что линух ещё развивается... (и возможно в скором времени, эти (и им подобные) средства появятся и там) Раз уж ты начал говорить о студии, то не могу не отметить две хорошие альтернативы для Linux - Eclipse и NetBeans, вторая мне понравилась особенно, да это не замена полной версии студии, но IDE достаточно удобная... Отрицать не стану, но пока этим и не пахнет... Т.к. мы говорим в контексте геймдева, выше я и подчеркивал наличие средств для профилирования и отладки GPU (причем DirectX only). Насчет IDE для Linux, есть еще Code::Blocks , тоже весьма неплохая весч, про Eclipse и NetBeans мне известно , т.к. под Линем часто сижу\под него пишу (Debian) и на нем пишу (под Maemo). Но под виндой провожу все таки больше времени (несмотря на то, что Linux стабильнее и приятнее в целом). Quote (ezhickovich) Ну от этого проблемы не только под Linux, но и вообще везде, однако, разве это повод не писать на OpenGL? Повод, один из... во всяком случае, т.к. есть DirectX в котором отсутствуют вышеописанные проблемы. Поэтому зачем писать под OpenGL? (PC) Quote (ezhickovich) Таких пользователей у Linux мало (на долго они не задерживаются), в прочем ничего хорошего в этом нет, ведь это около половины населения планеты... Увы, как не печально, но факт... И "благодаря" этому пользователей Линукса в разы меньше...
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Четверг, 30 Декабря 2010, 18:34 | Сообщение # 763 | Тема: Linux |
Сэнсэй
Сейчас нет на сайте
| Если честно, то выше я имел в виду именно смысл разработки игр для linux (в качестве игровой платформы). Ну да ладно . Quote (ezhickovich) Для разработчика (я не считаю тех, кто привык ко всяким ГМ и Скирре) линух может быть очень удобен, все необходимые библиотеки (да и программы) устанавливаются предельно просто, уже не нужно искать их самому и т.д. Всё необходимое уже есть в репозитарии... Да, есть исключения, но и в винде не всё так гладко, верно? Это касается не только C/C++ но многих скриптовых языков... (типо Python/Ruby) и даже GamBas... (в котором толку лично я не вижу) Все установленные пакеты обновляются самостоятельно, однако в случае необходимости это тоже можно отрегулировать... А вот это как раз одна из сильных сторон линукса, абсолютно ничего против не имею , я не зря писал выше, что "Линукс - рай для программиста". Репозитории, система зависимостей, это несомненно его плюсы. Но если возникают проблемы, то как правило, некоторые из них тривиально не разрешаются, усложняется процесс. Опытный пользователь(даже не разработчик) с большой вероятностью не столкнется с большими трудностями, но много ли таких? С другой стороны, для Windows сильно больше (не в плане количества, а в плане удобства\функциональности\etc) тулсета, различных средств разработки, профайлеров, etc. Чего только стоит(!) MSVS , тут думается no comments. Parallel Nsight от NVidia (многопоточная отладка CPU, аппаратный дебаг шейдеров(DX, HLSL, Compute), DirectX & GPU профайлер, etc). Ставится на MSVS. (сюда же, потихоньку отходящий на задний план - NvPerfHud). Intel VTune(продвинутый CPU профайлер), правда он доступен и под линуксом, но в связке с MSVS работать удобнее. Etc. Контраргумент - это стоимость, тут уже ничего не поделаешь. Quote (ezhickovich) Для геймеров тоже есть плюсы... И опять в дело вступает репозитарий, который мелкомягкие хотят добавить только сейчас... Благодаря автоматизированным средствам управления пакетами все зависимости будут установлены автоматически... Вот тут позволю себе не согласиться. Среднестатистический геймер с большим трудом переустанавливает систему, а некоторая абстрактная часть - с трудом устанавливает игру :D. Т.е. я имею в виду, что такому "рядовому" пользователю Linux покажется тихим ужасом. Вот для примера, установка NVidia драйвера. Если повезет, то нужно только собрать и установить его, это как правило, особых проблем не вызывает. Но драйвер разрабатывается под конкретную версию ядра конкретного дистрибутива и если версия под которую "разрабатывался" драйвер не совпадает с текущей версией ядра, то требуется скачать нужные сырцы и пересобрать ядро, после чего уже собирать драйвер. Вообщем-то не так то это просто Другая сторона - это проблемы у AMD с OpenGL, уж очень любит падать (если драйвера различаются). Во времена Doom3, ID рекомендовали ставить конкретную версию драйвера(под которую они отлаживали), получается, что решение проблемы (если появилась) сводится к поиску более устаревшего драйвера и "веселья" с ним Quote (allxumuk) А что мешает делать игры на Линуксе под консоли скажем, или под мобильные ОС? Вполне себе, но хочется конкретных примеров и преимуществ, связанных с разработкой именно на Linux'e.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Четверг, 30 Декабря 2010, 18:35 |
|
| |
Archido | Дата: Четверг, 30 Декабря 2010, 16:28 | Сообщение # 764 | Тема: Linux |
Сэнсэй
Сейчас нет на сайте
| Quote (ezhickovich) Откуда такой пессимизм? Ну, попробуйте вселить в меня толику оптимизма Quote (RaiR) У меня лично запускаются на ubuntu: GTA Episodes from liberty city, Dirt 2, Grid, Wheelman, trackmania, Kane & Lynch 2, Xenus, Все игры на движке Source, Driver 4, Blur... Wine - это костыль, какой смысл вот так "хитро" пытаться запустить игру, если можно спокойно поиграть под Виндой?
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Четверг, 30 Декабря 2010, 16:01 | Сообщение # 765 | Тема: Linux |
Сэнсэй
Сейчас нет на сайте
| Quote (СосновыйБор) Вы мне скажите для игростроя она как? Никак , ее в плане игровой платформы почти не рассматривают. А вообще, если очень хочеться, то OpenGL + (C++) и вперед, только смысла мало. Вообще Linux - это рай для Программистов (с большой буквы ), опытные пользователи скажем, тоже смогут что-то полезное найти в данной ОС (и она им приглянется). Вкратце.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Четверг, 30 Декабря 2010, 16:05 |
|
| |
Archido | Дата: Четверг, 30 Декабря 2010, 15:05 | Сообщение # 766 | Тема: Terrain + пещеры |
Сэнсэй
Сейчас нет на сайте
| Quote (Tahoma) ещё вопрос: если я ландшафт смоделирую в максе и сконверчу в Х, как это отразится на производительности? Чисто логически загрузка должна пройти быстрее, чем построение вершин из bmp. Ну чуток будет шустрее да, но не принципиально. С картой высот удобнее работать (если нормально редактора нет), имхо. Ландшафт со встроенными пещерами будет проще в реализации (сделал в максе, загрузил и не нарадуешься ), но возникнет немного других проблем: отсечение и лоды (когда до оптимайза доберешься).
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Четверг, 30 Декабря 2010, 15:54 |
|
| |
Archido | Дата: Четверг, 30 Декабря 2010, 14:20 | Сообщение # 767 | Тема: Terrain + пещеры |
Сэнсэй
Сейчас нет на сайте
| В таких случаях обычно принято выкладывать скриншоты , гораздо лучше становится понятно проблему. Под "стеной" ты подразумеваешь ландшафт(пару треуглов), которые вытянули в высоту? Если я все правильно понял, то так делать немножко хорошо , там будут проблемы с текстурами (они сильно потянутся вверх и размажутся), придеться два раза читать текстуры в шейдере(если есть конечно ). А вообще, к самой модели пещеры можно приложить "сверху" небольшую окантовку (или бордюр). Представляет собой примерно сетку 8х8 (например) треугольников, в середине которой заранее смоделирован "переход" в пещеру (т.е. реальная окантовка будет меньше 8x8, по высоте не выравниваем). И далее когда нужно воткнуть пещеру в ландшафт, то убираем в нужном месте 8x8 тайлов и подсовываем туда нашу пещерку с "окантовкой". Окантовку выравниваем по высоте участка(реального ландшафта), который вырезали. От туда же берем текстурные координаты и делаем такой же маппинг. По высоте(около смоделированного перехода) можно по-разному равнять(можно проинтерполировать, чтобы очень плавные высоты перехода получилось, а для простоты можно взять "среднее арифметическое"), тогда грубых скачков при переходе не будет.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Четверг, 30 Декабря 2010, 15:06 |
|
| |
Archido | Дата: Четверг, 30 Декабря 2010, 13:15 | Сообщение # 768 | Тема: Terrain + пещеры |
Сэнсэй
Сейчас нет на сайте
| Tahoma, с помощью карты высот никак вообщем-то. Делаешь вторую карту, на которой помечаешь места, где у тебя есть пещеры\углубления, далее просто в том месте не создаешь треугольники и подгоняешь в то место готовую отдельную модель пещеры к примеру. Вторая карта "пещер" скажем, может хранить ID требуемой модели. Т.е. это вообщем-то уже Indoor получается (ландшафт - outdoor)
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Среда, 29 Декабря 2010, 16:42 | Сообщение # 769 | Тема: OpenGL SDK |
Сэнсэй
Сейчас нет на сайте
| Нужно только пару хедеров скачать: http://www.opengl.org/registry/#headers (glext.h, wglext.h (если под винду)). GLu не советую использовать , лучше все ручками... как разберешься, никаких проблем не будет. Начать изучать можно отсюда: http://pmg.org.ru/nehe/index.html Отличные уроки. Далее когда уже хорошенько со всем разберешься, то советую сходить к NVIDIA: http://developer.nvidia.com Там найдешь много тулзов, доков и собсна OpenGL SDK (неплохой наборчик примеров). У AMD есть аналогичное - Radeon SDK (там и DX и OpenGL есть). Quote (Kornival) SDL каким боком относится к OpenGL? Я думал это альтернативное ГАПИ... http://ru.wikipedia.org/wiki/Simple_DirectMedia_Layer
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Среда, 29 Декабря 2010, 09:43 | Сообщение # 770 | Тема: Делаем рабочую среду |
Сэнсэй
Сейчас нет на сайте
| Я что-то cовсем смыслом не проникся . "Desktop", сделанный на GM? А в чем, собсна, соль?
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Среда, 29 Декабря 2010, 05:54 | Сообщение # 771 | Тема: Где найти видеоуроки по Lua и пиксельным шейдерам? |
Сэнсэй
Сейчас нет на сайте
| Не бывает такого в природе, как ты вообще себе это представляешь? Когда возникают подобные вопросы, то шейдеры рановато "программировать" еще, имхо. К сведению, шейдеры на различных языках пишутся, поэтому без знания этого и посоветовать нечего. По поводу Lua - искать мануалы, статьи, уроки, etc. Наверняка тема на форуме уже неоднократно поднималась.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Вторник, 28 Декабря 2010, 16:32 | Сообщение # 772 | Тема: Работа со строками |
Сэнсэй
Сейчас нет на сайте
| Kornival, полагаю, автору нужны собственноручные реализации данных функций.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Вторник, 28 Декабря 2010, 16:30 | Сообщение # 773 | Тема: нужны звуки монстров и зомби . |
Сэнсэй
Сейчас нет на сайте
| zik13, неужели нет в наличии Left 4 Dead или Half-life? Там этого добра хоть отбавляй . И все в открытом формате (wav).
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Вторник, 28 Декабря 2010, 11:44 | Сообщение # 774 | Тема: Как в программе выполняются несколько условий? |
Сэнсэй
Сейчас нет на сайте
| Программа представляет собой набор инструкций процессора, которые и выполняются по порядку. Знание языка ассемблера помогает понять это на себе :). Существует такие инструкции перехода и условий, при выполнении последного процессор может "перемещаться" на любую другую инструкцию, вверх или вниз программы. Таким образом, проверяется условие и в завистимости от результата пропускаются ненужные блоки инструкций, а переход осуществляется на нужный. Вообщем, как то так , попытался более простым языком объяснить
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Понедельник, 27 Декабря 2010, 14:58 | Сообщение # 775 | Тема: Бесконечный массив |
Сэнсэй
Сейчас нет на сайте
| bond95, ну, в принципе, особо ничего сложного. Проходишь по информации каждого файла, пока не найдешь нужный по имени. Когда нашел, то с текущей позиции в архиве смещаешь(на размер удаляемого файла + структура с информацией) все данные, которые идут после него. И все собссна .
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Воскресенье, 26 Декабря 2010, 17:09 | Сообщение # 776 | Тема: Бесконечный массив |
Сэнсэй
Сейчас нет на сайте
| Мм? какая среда разработки? string.h подключен? Code strcpy(FileName, FilePath); //а если так?
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Воскресенье, 26 Декабря 2010, 17:00 | Сообщение # 777 | Тема: Бесконечный массив |
Сэнсэй
Сейчас нет на сайте
| bond95, что-то разбираться лень немнога :D, вот тебе примерчик: Code #include <stdio.h> #include <string.h>
void ExtractFileName(char* FilePath, char* FileName) {
strcpy_s(FileName, strlen(FilePath) + 1, FilePath); //копирует строки }
struct FileInfo { //информация о файле char Name[64]; int Size; };
int main(int argc, char* argv[]) {
//используем коммандную строку, первый параметр - имя архива, //последующие - имена файлов которые нужно скомпоновать
//для теста argc = 3; argv[0] = "arch.txt"; argv[1] = "test1.txt"; argv[2] = "test2.txt";
int FileCount = argc - 1; //кол-во файлов, -1 т.к. архив не учитываем
FILE* Result = NULL; Result = fopen(argv[0], "wb"); //создаем архив fwrite(&FileCount, sizeof(FileCount), 1, Result); //пишем в начало кол-во файлов
for (int i = 1; i <= FileCount; i++) { //цикл по всем файлам FILE* file = NULL; file = fopen(argv[i], "rb");//открываем файл для чтения
fseek(file, 0, SEEK_END); int FileSize = ftell(file); //получаем его размер fseek(file, 0, SEEK_SET);
FileInfo fInfo; //заполняем структуру ExtractFileName(argv[i], fInfo.Name); //копируем имя, ф-ция эта по задумке - вырезает из полного пути(если нужно) имя файла, при необходимости дописать(ща она тупо копирует) fInfo.Size = FileSize; //пишем размер
fwrite(&fInfo, sizeof(FileInfo), 1, Result);//записываем все в наш архив const int BufSize = 16 * 1024; //размер буфера для копирования, можно и нужно делать его больше
char Buf[BufSize]; //собсна буфер int Bytes = FileSize; //скольно нам надо записать байт while (Bytes > 0) { int ToWrite = BufSize; if (Bytes - BufSize < 0) ToWrite = Bytes;//если осталось меньше размера буфера, то записываем скольно нужно
fread(Buf, ToWrite, 1, file); //читаем файл в буфер fwrite(Buf, ToWrite, 1, Result);// пишем из буфера в архив Bytes -= ToWrite; } fclose(file); } fclose(Result);
return 0; } Думаю разберешься и допишешь под свои нужды.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Воскресенье, 26 Декабря 2010, 15:35 | Сообщение # 778 | Тема: DirectX vs OpenGL) |
Сэнсэй
Сейчас нет на сайте
| Хех, вечная тема . Выскажусь и я, как пользователь обоих GAPI Начнем с точки зрения разработки\изучения GAPI начинающим разработчиком(скажем, оный не имеет большого опыта в программировании, "ООП" обзывает страшными словами, etc). OpenGL - имеет простую процедурную архитектуру(аля просто С), DirectX в свою очередь более сложную ООП (дин. память, интерфейсы, etc). Также последний имеет некоторые специфичные вещи (Default/Managed память, Lost Device, etc) и не имеет вещей в чистом виде, упрощающих разработку и изучение(glBegin/glEnd, Matrix Stack, etc). (Я думаю все поняли, что я имею в виду Direct3D9, ибо 11-тый сильно сложнее. Для кого слово "шейдер" вызывает тихий ужас, с 11-тым пусть лучше не связывается :). Т.к. все особенности и преимущества последнего связаны с шейдерами). Поэтому со своей колокольни скажу, что начинающему разработчику, пришедшему в мир программирования графики и желающему освоить мощное GAPI - OpenGL mush have. Это мое имхо (так когда-то я и поступил, как результат - обладаю знаниями обоих, за очень небольшой промежуток времени). С другой стороны, OpenGL на PC платформе находится в очень печальном положении. Причин, можно сказать, несколько. Во-первых, внутри драйверов он реализуется "на усмотрение" вендора, они всего лишь подгоняют все под итогую голую спецификацию. Видимо от уделения малого времени на разработку OpenGL драйвера компанией AMD(ATI), OGL ведет себя на их видеокартах очень печально, очень и очень. Для разработчиков появляются другие проблемы. Например, различность компиляторов шейдеров у каждого вендора. Поэтому любой шейдер может скомпилироваться у одного, а у другого нет. Все зависит от специфики компилятора. Ну и так далее. Во-вторых, это система расширений OpenGL. По-началу, ее относили к его плюсам. Так как, например, если появляется какая-нибудь "фича", ее "оформляют" в виде расширения и после обновления драйвера ею уже можно воспользоваться (для справки, в DirectX для этого нужно ждать выхода новой версии последнего). Ну, а на практике получилось вообщем-то как обычно: идея хороша, а реализация никакая. В результате появляется куча различных vendor-specific расширений, которые работают только на картах производителей :D. Это создает большую головную боль для разработчиков. Такую же боль создает отслеживание этих самых расширений на каждой системе, ибо расширения разнятся от видеокарты к видеокарте, и если чего-либо не удается обнаружить приходиться часто в корне менять методы\логику\etc. В общем случае - это все геморой и никому ненужные трудозатраты. Ну, а в третьих, самая основная проблема OpenGL - это те, кто ведут его разработку последнее время: ARB (Khronos). Представляет собой большущий консорциум разных компаний, каждой из которых от OpenGL нужно что "особенное" или вообще непонятно что. Каждый приследует свои интересы и договориться они, соответственно, не могут. (хорошим примером этому следует выход OpenGL 3.0, когда обещано было столько, что на него возлагались большие надежды. Но результатом стал большущий epic fail. Многие думаю знают эту историю ). Direct3D9, в свою очередь, тоже имел некоторую зависимость от видеокарты(Кто работал на DX, знает что такое капсы :D) , как и OpenGL со своими расширениями. Из Direct3D11 выбросили все недостатки 9\10 (в основном 9), весь заявленный функционал стабильно работает на всех картах, поддерживающих его (нет никаких капсов), следовательно нет никакой головной боли для разработчиков. Т.е. рынок PC платформы диктует использование именно DX (на Linux и MacOs X мало кто равняется), фактически это означает и поддержку Xbox. PlayStation поддерживает, как уже выше писали, OpenGL да. Но он основан на стандартной спецификации и частично модифицирован компанией Sony, но в общем-то это тот же OpenGL, с тем лишь отличием, что отсутствуют всяческие проблемы с расширениями и заявленная функциональность отрабатывает на все 100%, никаких проблем. На Mobile платформах, собственно правит OpenGL ES, некоторые проблемы с расширениями имеются, но они очень небольшого масштаба. Объясняется все обилием Mobile платформ и простой открытой спецификацией. С точки зрения производительности, между DX и OGL можно поставить знак равно. Удобство\неудобство оных определяется лишь любителями геймдева. Вообщем как-то так P.S. Блин, что то слишком много букафф получилось
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Воскресенье, 26 Декабря 2010, 15:39 |
|
| |
Archido | Дата: Воскресенье, 26 Декабря 2010, 07:10 | Сообщение # 779 | Тема: чистый Си |
Сэнсэй
Сейчас нет на сайте
| После оператора цикла while стоит точка с запятой Считать строку в массив чаров с помощью scanf "%s", а не "%c". Это позволит полностью записать ввод в массив. Потом уже в цикле нужно распарсить этот массив, выделив операнды и тип операции. Числа, кстати, проще получить с помощью таблицы ASCI. Примерно так: Code char Symbol = '5'; //конкретный символ (из массива скажем) if (Symbol >= '0' && Symbol <= '9') ... //числа в ASCI идут по порядку
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Суббота, 25 Декабря 2010, 21:52 | Сообщение # 780 | Тема: Настройка общего доступа к интернету. |
Сэнсэй
Сейчас нет на сайте
| SlavyanOOs, А Шлюз и DNS прописывали? (IP адаптера к которому подключен ноут)
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
|