Результаты поиска
| |
Archido | Дата: Воскресенье, 30 Сентября 2012, 16:02 | Сообщение # 421 | Тема: Вики по DirectX 11 |
Сэнсэй
Сейчас нет на сайте
| Quote (warzes) Это все скрыто от обычного пользователя Ни разу, CОM предоставляет тебе рычаги, с помощью которых ты этим и управляешь. Мда.
Quote (warzes) Все WinAPI построено на COM, но это не мешает мне его юзать например на ассемблере или Си. Это не в кассу и WinApi не построено на COM.
Quote (warzes) Это не ООП, точно также в процедурном Си можно в одном месте удалить кучу а в другом к ней обратиться. Просто тут нужно понимать что если ты что-то создал, это нужно потом будет удалить, и если ты это удалил то не нужно больше к этому обращаться, но только вместо new/delete - CreateX/Release. Еще раз, у тебя объект - текстура, которая используется в куче других мест. Как определять момент, когда ее нужно удалить (и чтобы все остальные об этом узнали) и отследить момент передачи невалидного указателя в какой-нить SetTexture, иначе все упадет.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Воскресенье, 30 Сентября 2012, 16:03 |
|
| |
Archido | Дата: Воскресенье, 30 Сентября 2012, 15:45 | Сообщение # 422 | Тема: Вики по DirectX 11 |
Сэнсэй
Сейчас нет на сайте
| Quote (warzes) Я как раз о glEnable() с их тысячами параметров и не только z-буфер, альфа и т.д. А также о тысяче других вещей - толщине линии, наложении текстуры (если ее предварительно самостоятельно не выключить, она будет рисоваться везде, тогда как в DX только до команды Draw...()) матрицах (возможно в OGL3+ уже и не проблема с переносом матриц в шейдеры, но вот часто забудешь про какой-нибудь сдвиг или вращение и потом удивляешься тому что видишь на экране) Больше похоже на то, что ты бездумно и от балды включал какой-то стейт, а потом удивлялся что что-то не так
Quote (warzes) Где там в DX ООП?. Инкапсуляция, Наследование, Полиморфизм - этого нет. А от того что интерфейсы там в виде классов - это не ООП (и даже то что они наследуются от интерфейсов COM - ведь мы то этого не замечаем). Все там есть. Банально - если ты не в курсе, то COM с помощью подсчета сылок умеет контролировать владение объектами (не сам, ессно, ему надо в этом помочь). И пользоватетель оперирует этими же объектами, он должен их создавать, правильно удалять и самое главное очень правильно хранить. Один и тот же объект может использоваться в разных местах и если одному из них сделать Release, то в другом месте будет обращение по невалидному указателю. Такой же указатель можно передать другому интерфейсу и словить фейл.
Вообще само по себе использование ООП API навязывает делать у себя так же. Т.к. пачка глобальных переменных-указателей - это просто высший пилотаж, можно столько дел наворить. А их надо банально прятать - вот тебе и начало ООП.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Воскресенье, 30 Сентября 2012, 15:51 |
|
| |
Archido | Дата: Воскресенье, 30 Сентября 2012, 14:12 | Сообщение # 423 | Тема: Вики по DirectX 11 |
Сэнсэй
Сейчас нет на сайте
| Quote (warzes) не знаю, ИМХО OpenGL сложнее, хотя бы тем что в OGL надо помнить тыщу и один параметр (ну там текстура, параметры смешивания и т.д.) которые у тебя установлены. В DX такого нет вообще, можно свободно переключать что угодно зная что потом это не вылезет где-нибудь в другом месте от того что ты забыл это отключить. Не понял о чем ты. Вся разница между ними в том, что OpenGL процедурный и на каждый чих нужно дергать свою функцию, в DX же все разнесено по интерфейсам, каждый из которых свою задачу выполняет, что как бы удобнее и логичнее (мне тоже нравится). Параметры ставятся то одинаково: Code glDepthFunc( поставили параметры z-Buffer'a ); glAlphaFunc( поставили параметры альфатеста ); glEnable(gl_alpha_test); //включили альфатест
Device->SetRenderState( поставили параметры z-Buffer'a ); Device->SetRenderState( поставили параметры альфатеста ); Device->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); //включили альфатест И тебе надо везде все помнить одинаково, что там у тебя установлено и если в Директе не выключишь, оно точно также вылезет.
Quote (warzes) я именно с него начинал поверив когда-то что он типа легче для новичков, только время зря потратил Для новичков OpenGL советуют, потому что там нет ООП (в первую очередь) и можно сходу сразу начинать рисовать (не обязательно создавать и биндить буферы, Vertex Declaration'ы и т.п. В 9-ом правда тоже можно без этого). В ООП сходу так не вьехать и оно в начале обучения для многих представляет трудность, а в 11-ом же кроме ООП и кучи разных параметров нужно еще и в шейдеры вкуривать, прежде чем что-то вменяемое нарисовать. Можно, ессно, все подряд копипастить, но знаний это особо не прибавит. Поэтому я и считаю, что 11-тый сложнее всего для новичка. Еще роль играет тот факт, что по нему пока литературы на русском нет нормальной.
Время зря врятле потратил, т.к. кое-какие знания в программировании графики должен был получить
P.S. Каждый всегда со своей колокольни советует
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Воскресенье, 30 Сентября 2012, 14:16 |
|
| |
Archido | Дата: Воскресенье, 30 Сентября 2012, 10:04 | Сообщение # 424 | Тема: Вики по DirectX 11 |
Сэнсэй
Сейчас нет на сайте
| Quote (warzes) Люди, тут вообще кому-то интересны эти уроки? А если нет, то что тогда? Мое мнение:
11-тый нынче не актуален , опытным такие статьи не интересны, а для новичков он слишком сложен. Да и новичкам лучше разбираться в азах программирования графики с помощью толковой литературы (тот же Френк Луна), где вся информация систематизирована и разложена по полочкам (разжевано от и до), а автор не является любителем. Насколько я понимаю, ты сам не особо то в этом разбираешься, запросто можешь где-нибудь сфейлить и ввести новичка в заблуждение.
Мм, наверное это (написание таких статей) полезно в первую очередь для тебя самого.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Воскресенье, 30 Сентября 2012, 10:16 |
|
| |
Archido | Дата: Воскресенье, 30 Сентября 2012, 07:30 | Сообщение # 425 | Тема: Художник для браузерной игры |
Сэнсэй
Сейчас нет на сайте
| Ох, Автор, ты бы не поленился и посмотрел чем обычно заканчиваются подобные темы. Слов много, а по делу ничего нет. Если все в таком виде и останется, то никакие художники к тебе не пойдут и эта тема сгинет в небытие.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Суббота, 29 Сентября 2012, 19:10 | Сообщение # 426 | Тема: XNA и Android |
Сэнсэй
Сейчас нет на сайте
| Можешь еще ради интереса портануть под Mac и Linux
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Суббота, 29 Сентября 2012, 15:28 | Сообщение # 427 | Тема: XNA и Android |
Сэнсэй
Сейчас нет на сайте
| Вполне
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Суббота, 29 Сентября 2012, 14:32 | Сообщение # 428 | Тема: blood Extraterrestrial |
Сэнсэй
Сейчас нет на сайте
| Quote (Myxach) Я на нём программировал ну почему тогда все компанию использует DX9 ? Не обязательно DX9, многие уже и 11-тый используют. DirectX лучше стандартизирован (Microsoft же), как следствие он одинаково хорошо работает на разных видеокартах (и от разных производителей), поддерживает заявленный функционал на большинстве соответствующих видеокарт (ну почти, есть нюансы. Но по крайней мере нет такого хаоса как с расширениями OpenGL). Сейчас возможно уже все гораздо лучше, но раньше было именно так (на ATI картах багов было море). DX просто стал стандартом на винде (ну и XBox в придачу), но OpenGL имеет точно такие же возможности и может выдать соответствующую DX картинку.
Кто из крупных компаний издается на консолях (PlayStation 3), то использует и OpenGL, он там свой особенный. И проблем с ним нет.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Суббота, 29 Сентября 2012, 14:32 |
|
| |
Archido | Дата: Суббота, 29 Сентября 2012, 14:16 | Сообщение # 429 | Тема: XNA и Android |
Сэнсэй
Сейчас нет на сайте
| Quote (Stalker_Shooter) Т.е. на сколько я понял, для того, чтобы игра работала на реальном девайсе, придется купить тот самый "Mono for Android" Именно так. И весьма печально, да
Quote (Stalker_Shooter) Ну, тогда мне кажется, что выгоднее будет приобрети Android лицензию для Unity, чем покупать этот самый "Mono for Android" Согласен, сам бы тоже сделал выбор в пользу Unity (по этому поводу у некоего товарища был большой батхерт )
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Суббота, 29 Сентября 2012, 06:44 | Сообщение # 430 | Тема: XNA и Android |
Сэнсэй
Сейчас нет на сайте
| Можно сказать, что я отчасти разбираюсь , т.к. лично ни с чем из этого не работал (XNA и его друзья).
Quote (Stalker_Shooter) Во-первых, чем отличается простой и бесплатный MonoGame от Mono for Android? И для успешного порта игры обязателен ли последний? MonoGame - это имплементация XNA API под OpenGL (т.к. оригинал DX юзает, но это все тебе известно) и написан он на чистом C#. Последний компилируется в специальный байт-код (CIL), соответственно чтобы его исполнять (и вообще, чтобы осуществлять прямую работу с нативными вещами, вроде того же OpenGL или DirectX) нужная некая виртуальная машина. В винде такой машиной является .NET, на других платформах - это Mono. Таким образом игра, написанная на XNA, не будет работать на винде без .NET фреймворка, а игра, написанная (портированная) на MonoGame, не будет работать под андроидом без "Mono for Android". Последняя штука, увы, является платной. Есть бесплатная версия с эмулятором под Windows, с помощью которой можно все портировать и проверить на эмуляторе, но на Android девайсе запустить не выйдет. Такие дела.
Quote (Stalker_Shooter) Во-вторых, как быть со специфическими возможностями платформ. Скажем, сохранение данных в WP7 осуществляется в особое хранилище. Как с этим дела обстоят в Андроиде, и придется ли переписывать кусок кода, отвечающий за сохранение? И если да, то получится ли это сделать на C#? Тут сказать сложно, т.к. я понятия не имею, что и как там происходит в WP7. Но скорее всего придется переписать небольшую часть кода, ответственную за такие вещи... На C# сделать получится.
Quote (Stalker_Shooter) И в третьих, есть ли другие возможности портирования WP игры на Android? Слышал про ExEn, но вроде бы он не еще не поддерживает Андроид (хотя я могу ошибаться). Конкретно для XNA и/или С# вариантов больше нет, ExEn (как и Unity) из той же оперы, все юзают Mono (монополисты, денежку делают ).
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Суббота, 29 Сентября 2012, 06:45 |
|
| |
Archido | Дата: Пятница, 28 Сентября 2012, 17:55 | Сообщение # 431 | Тема: Delphi:Вопрос-Ответ |
Сэнсэй
Сейчас нет на сайте
| Quote (Destroy) вот например я в первой форме в строку вбиваю значение, а во второй форме это значение должен вывести. Так он в не находит переменные других формах и так где надо вывести он пишет что неизвестная переменная пробовал писать uses unit1, unit2 не помогло Неплохо бы еще привести части кода где это происходит, чтобы не играть в угадайку.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Пятница, 28 Сентября 2012, 17:48 | Сообщение # 432 | Тема: Время изучения C++ |
Сэнсэй
Сейчас нет на сайте
| По-моему у парня ассемблер головного мозга
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Пятница, 28 Сентября 2012, 14:43 | Сообщение # 433 | Тема: Время изучения C++ |
Сэнсэй
Сейчас нет на сайте
| Sh_o0_ter Да я рад за тебя , нравится - ну и отлично. Не стоит только такое советовать новичкам, которые еще в школе учатся. Большинству Асм сломает их хрупкую психику
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Пятница, 28 Сентября 2012, 14:44 |
|
| |
Archido | Дата: Пятница, 28 Сентября 2012, 10:55 | Сообщение # 434 | Тема: CD Диски. |
Сэнсэй
Сейчас нет на сайте
| Quote (Марс) Думаю сидюк вынуть и заместо него SSD поставить на 128 гиг Ноут? Сам давно уже сделал точно также (SSD + HDD), после этого обратно на чисто HDD не хочется совсем
Quote (MyACT) Разве что шиндоус переставить Можно флешкой легко заменить , у нас в локальной сети все ОС через PXE ставят (по сети)
По теме: дисков не видел очень и очень давно. Есть торренты и есть Steam. Почти для любого ПО - есть Trial версия, скачиваем, оплачиваем - получаем ключик, вуаля. Чем доступнее становится интернет, тем больше отпадает надобность в дисках.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Пятница, 28 Сентября 2012, 08:17 | Сообщение # 435 | Тема: Время изучения C++ |
Сэнсэй
Сейчас нет на сайте
| Quote (Sh_o0_ter) Ну, тут в чем смысл заключается) АСМ оч сложный язык, т.к. это язык процессора, и его немного дольше надо учить, это канечно минус, но! Если с него начинать, то благодаря ему, можно на 126% узнать работу компьютера, и если будешь знать АСМ то учить другие ЯП, и копить опыт, будет гораздо легче и быстрее!!! И причем от знания АСМы только плюсы, будет огромная практика в оптимизации приложений, и что не мало важно - ВАШЕГО 3D ДВИЖКА(ну или 2Д), думаю многие мою мысль поймут) Оптимизации с помощью ассемблера - это уже давно прошедний этап. Во-первых, на ассемблере пишется платформозависимый код, под определенную архитектуру процессора. Последних сейчас развелось уйма, есть по крайней мере несколько архитектур и у каждой свой набор инструкций, поэтому на переносимости можно сразу поставить крест. Во-вторых, сегодняшние компиляторы генерируют весьма оптимизированный код, написать аналог по быстродействию не каждый программист средней руки сможет. У компилятора оптимизация займет несколько секунд, а человек может потратить часы на это, а то и больше. И в случае какого-нибудь внезапного фейла в алгоритме, придеться все повторять сначала. Оптимизируют сейчас путем изучения асм листинга, который скомпилировал компилятор и если что-то не так, то правят код. Но это бывает не очень часто (и не для всех языков актуально, ессно).
Асм не дает понятий о работе компьютера, он лишь опускает на уровень ниже (да, терь мы знаем, что есть регистры и стек, и что этим можно управлять. Да, а еще напрямую писать в видеопамять ). Мы не узнаем о том, что такое кэш, как он устроен и как работает, о том что процессор на самом деле не умеет читать и писать в оперативную память. Есть еще конвеер, который умеет предсказывать ветвления и заранее выполнять ветку кода, которая может оказаться фейловой, тогда конвеер придеться сбросить и начать с нуля с правильной - это будет неплохой обвал производительности. И так далее, ассемблер не дает об этом никаких понятий.
Так, что Stalker_Shooter правду пишет. Сейчас ассемблер для большинства не более чем приятное дополнение, пользуются им весьма редко (прикладное ПО, геймдев, etc) и начинать изучение программирования с него - эм, промолчу , человек в здравом уме так не поступит.
P.S. На данный момент Ассемблер - это Си и С++ , а языки высокого уровня - Java и С#
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Пятница, 28 Сентября 2012, 08:13 | Сообщение # 436 | Тема: Опять нужны художники (тема закрыта) |
Сэнсэй
Сейчас нет на сайте
| Quote (Nowato) я сомневаюсь, что он есть у вас. Может его и нет, но я не создаю N-ное количество тем с 10-ю предложениями (без конкретики) и желанием, чтобы основную часть работы сделали за меня, причем бесплатно. Учитесь делать это сами.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Пятница, 28 Сентября 2012, 07:21 | Сообщение # 437 | Тема: Опять нужны художники (тема закрыта) |
Сэнсэй
Сейчас нет на сайте
| И смех и грех. Ей богу, ну сколько можно?
Quote (Nowato) Будем делать все на энтузиазме. Деньги будут потом. Процент от прибыли я гарантирую. Проекта еще нет вообще, а окупаемость и процент уже гарантирован (в случае провала из своего кармана оплатите?). Чес слово, если бы не видел раньше аналогичной темы, то подумал бы, что это очередной школьник-мечтатель (для полноты только слова MMORPG в теме не хватает).
Quote (Nowato) Концепт есть, дизайн есть, все есть. Тут выкладывать ничего не буду. Вы сами себе злобный буратино. Вы сюда пришли людей заинтересовать или что? Когда читаешь: "Хочу вот такой-то клевый интерьер. Без денег, но процент гарантирую. Наработки есть, но ничего не покажу" то пропадает всякое желание вообще что-то спрашивать. У вас нет ни опыта, ни проектов за спиной, а эта очередная тема какой-то большой черный ящик.
Quote (Nowato) но нарисовать за 1 месяц интерьер в 3D Max, это, пока что, слабо. Ну а в чем проблема научиться? Ну время это займет да, но а как вы хотели? На стартапе вы либо делаете большую часть в одиночку, либо платите тем, кто это сделает за вас. По-другому не бывает.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Среда, 26 Сентября 2012, 08:53 | Сообщение # 438 | Тема: Помогите, поставит задачу и определить пути развития=) |
Сэнсэй
Сейчас нет на сайте
| Quote (Eumi) Но я прочитала где то на форуме у вас совет начать с оффлан игры, и переделать ее потом в онлайн. Стоит ли так делать? На данном этапе точно не стоит. Чтобы так делать, нужно иметь представление о мультиплеерных играх (даже не ММО) и чем они отличаются от синглов с точки зрения архитектуры приложения (логики как правило), тогда уже есть шансы изначально правильно спроектировать оффлайн версию и превратить ее в онлайн без переписывания всей игры . Но это касается тех, кто уже имеет некоторый ценный опыт в данной сфере.
Опыта разработки игр, насколько я понимаю, вы вообще не имеете? Радует, что вы не против арканоида , обычно реакция на такие советы идет прямо противоположная. Двигаться нужно от простого к сложному, думаю это очевидно.
Меня интересует вот что: приведен такой немалый список чего "изучалось", но не понятно, что действительно из этого изучилось (и каким образом) . У вас есть опыт непросредственно программирования? Что самое сложное из программ было написано? Спрашиваю потому, что знание языка (его синтаксиса) и умение программировать (перекладывать практические задачи на какой-то язык, строить алгоритмы т.е.) - очень разные вещи. Если человек (не про вас конкретно, я в общем) "знает" несколько языков и умеет крутить мессадж бокс в цикле - это не делает из него программиста. Поэтому неплохо знать какой у вас действительный опыт в этом деле, от этого уже можно отталкиваться дальше.
Если такой опыт у вас есть, то я бы посоветовал попробовать поизучать Unity + C# С# очень неплохой язык, не простой и не сложный , с ним проблем возникнуть не должно. На Unity же можно начать с 2д игр, а закончить тем, о чем вы мечтаете (он такое потянет вполне). Это дает вам возможность поэтапно (от простого к сложному) изучать данный движок и проникаться процессом разработки игр , при этом пользуясь одним и тем же инструментом. НО в любом случае, в начале может быть очень и очень не просто.
На С++, конечно, большинство крупых игр и пишут, но делает это команда профессиональных программистов с большим опытом работы. Если двигаться в этом направлении, то это займет у вас в разы больше времени и сил.
Quote (Eumi) Я прошу именно все ПО, потому что есть команда, пусть небольшая. Им тоже нужна цель и пути развития А что там за такая команда? Кто в нее входит и что умеет? Телепаты то на природе.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Среда, 26 Сентября 2012, 08:54 |
|
| |
Archido | Дата: Вторник, 25 Сентября 2012, 18:31 | Сообщение # 439 | Тема: Серия статей об OpenGL |
Сэнсэй
Сейчас нет на сайте
| Попробовать конечно стоит, особенно если получится доходчиво объяснить материал. Но боюсь, что статьи эти будут в который раз о создании окна, инициализации, отрисовке квадрата... Такого добра полно на наших просторах. Действительно было бы интересно почитать о чем-то особенном, тут я с полностью солидарен с TimKruz Но в любом случае хорошо изложенный и понятный материал всегда найдет своего читателя.
P.S. Любопытно, а какие у вас познания в OpenGL ?
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Вторник, 25 Сентября 2012, 18:32 |
|
| |
Archido | Дата: Вторник, 25 Сентября 2012, 15:00 | Сообщение # 440 | Тема: Вопрос-Ответ (C++) |
Сэнсэй
Сейчас нет на сайте
| Quote (SWFcreator) жаль , что нельзя узнать размер любого массива На это и не стоит рассчитывать , т.к. языком это не гарантируется. Т.е. однажды в новой версии компилятора разработчики захотят хранить это не в начале блока, а в конце (ну вот хочется им), и весь написанный код, который использовал данный "хак" работать перестанет.
С++ - это все таки ООП язык и неплохо бы использовать, соответствующие этому, средства, а конструкции вида "int* Array = new int[100]" - это простой Си (ну, за исключением new, но есть malloc), такое использовать смысла нет (почти нет, редко по уму только). Спп'шным массивом является std::vector или аналог, которые являются высокоуровневой оберткой над Си-подобным кодом. Такой массив - динамический, автоматически занимается освобождением \ выделением памяти, знает свой размер (и нет смысла использовать подобные "хаки" с кол-вом элементов), может осуществлять проверку выхода за границу массива и так далее... Вот таким и надо пользоваться
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
|