Понедельник, 06 Мая 2024, 19:54

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » Archido [783]
Результаты поиска
ArchidoДата: Пятница, 01 Августа 2014, 00:45 | Сообщение # 81 | Тема: Что лучше всего приобрести за 7000-10000грн?
Сэнсэй
Сейчас нет на сайте
Цитата Vinchensoo ()
А-то рассуждения из разряда "не буду покупать макбук за 50к, куплю лучше жигули".

Хы, значит Мак ОС любой жигуль превратит в мерседес?:)

Цитата Vinchensoo ()
Ноут для рендеринга? Серьезно?

Почему обязательно для рендеринга? Игровое моделирование никто не отменял, в чем проблема на ноуте работать? Не вижу проблемы. В добавок можно подрубить внешний монитор и много чего полезного на него вывести.

P.S. А в целом, "мак или не мак" - скорее вопрос религии \ личных предпочтений, в большинстве случаев. Все как всегда. Нужно лично опробовать и то и другое, сравнить, и тогда все станет ясно.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Четверг, 31 Июля 2014, 04:51 | Сообщение # 82 | Тема: Что лучше всего приобрести за 7000-10000грн?
Сэнсэй
Сейчас нет на сайте
Цитата maker-rus ()
IOS - для Iphone/Ipad MAC OS - для пк,ноутов.

Да ну, правда что ли? Слона то я и не приметил.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Четверг, 31 Июля 2014, 03:41 | Сообщение # 83 | Тема: Что лучше всего приобрести за 7000-10000грн?
Сэнсэй
Сейчас нет на сайте
Лол, какой макбук за 30к рублей?:) Мак нужен когда нужна ios или есть много лишних денег, в остальных случаях можно вполне успешно обойтись и без него.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Вторник, 29 Июля 2014, 08:49 | Сообщение # 84 | Тема: Учет попадания в голову, Photon Server, Защита от читов
Сэнсэй
Сейчас нет на сайте
Цитата robertono ()
Решение должно быть так же безопасным от читеров

Если хоть какая-то логика исполняется на клиенте, то проще забыть о читерах и не забивать себе голову:)


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Пятница, 18 Июля 2014, 16:36 | Сообщение # 85 | Тема: Компиляция под Android (вопрос в сообщении #8)
Сэнсэй
Сейчас нет на сайте
Цитата Saitei ()
Я знаю и кучу других языков, но это не означает, что я тру программист

Ну да, судя по этой фразе ты уже тонко намекаешь на это cool
Но речь ведь не об этом, в целом я тоже согласен с мыслью товарища Folleah'a, что программист такая профессия, где гугл и доки - твои лучшие друзья. Вопросы подобного характера (т.н. "общие") быстрее нагуглить, чем тратить время на создание темы и ожидание ответа, а с ростом потребностей и твоего уровня - форум едва ли сможет тебе помочь, даже гугл не всегда сумеет... другое дело доки wink

Мысль в кратце - старайся учиться добывать информацию самостоятельно. Просто совет smile

Цитата Saitei ()
Программист - это тот, кто придумывает алгоритмы, а кодер - это тот, кто готовые алгоритмы переписывает на языке программирования. Программистом можно быть даже не имея в наличии ПК.

А это все от лукавого.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Вторник, 10 Июня 2014, 20:53 | Сообщение # 86 | Тема: Написание простого игрового движка
Сэнсэй
Сейчас нет на сайте
Цитата Xakep ()
а ты думаешь как выделается память когда пишутся свои аллокаторы? все тем же malloc/new, только выделяется сразу болльшой блок памяти, и уже его используют для быстрого "выделения". В большенстве случаев, производительность зависит от алгоритма, если уж мало производительности от malloc, то просто напросто нужно подумать как организовать правильно выделение, а не страдать ерундой, и писать свои аллокаторы памяти. В последнем случае, скорее всего будет очень много ошибок и утечек памяти, из-за малейшей ошибки в коде, и потом думай гадай, где же ты допустил ошибку, а конце концов оказывается, что это вообще из-за собственного аллокатора памяти.

Ну как же ты так - взял все ерундой обозвал smile

В винде, например, вызов malloc \ new дергает HeapAlloc, а тот в свою очередь VirtualAlloc и "выделение памяти" делается в kernel mode, происходит переключение т.н. контекстов, что не бесплатно совсем. Т.е. переключать контекст на каждый чих при необходимости выделить память - это полнейший rock'n'roll, так делать не красиво. Многие делают пулы и правильно делают, правда они и представляет собой вообщем-то простейший локальный аллокатор (а группа таких пулов представляет собой некий децентрализованный глобальный аллокатор).

Глобальные аллокаторы делают в основном не из-за проблем со скоростью выделения памяти (т.к. это можно и без них решить, локально), а из-за проблем с чрезмерной фрагментацией. ОС аллокатор будет тупо выделять блок за блоком (большой после маленького и наоборот), в результате через какое-то время после циклов выделения \ удаления: памяти не останется совсем, точнее она то будет, но сильно фрагментированная и размазанная по всему возможному диапазону.
Свой аллокатор позволяет сделать несколько различных стратегий выделения памяти (для маленьких и больших объектов, частого \ нечастого выделения, раз в кадр, etc) и выбирать конкретную стратегию на основе определенных факторов, вроде размера или некоего доп. флажка, где вы явно подсказываете аллокатору что выбрать, т.к. знаете что лучше будет работать для объектов данного типа, и т.д. В добавок, в критических местах, можно использовать двойные указатели и научить аллокатор делать дефрагментацию в отдельном потоке. Правда это все, скорее уже менеджер памяти, а не просто какой-то там аллокатор smile
Как бонус - инфа (статистика) о кол-ве используемой, выделенной, фрагментированной памяти, о размерах выделенных блоков (или объектов), etc. Что весьма полезно и позволяет в дальнейшем производить коррекцию.

Само собой все это - не панацея и делать такое имеет смысл только тогда, когда это реально нужно. Скажем, для "тетриса" и ПК с 12ГБ ОЗУ можно и забить, а вот например все крупные игры для Xbox 360 без своего менеджера памяти не обходятся, ибо с 512мб шибко с фрагментацией там не разгуляешься. К мобильным платформам это тоже относится.

P.S. А еще часто пригождаются т.н. "выравнивающие" аллокаторы smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Среда, 05 Февраля 2014, 20:54 | Сообщение # 87 | Тема: Delphi-программист в молодую команду разработчиков.
Сэнсэй
Сейчас нет на сайте
Kozyr
Вы уверены, что вам здесь нужен именно DS? Юзабельная реализация его не так то и тривиальна. Из недостатков - толстый G-Buffer, проблемы с прозрачностью и материалами (т.е. из BRDF по сути доступен только Phong), частично есть проблемы с АА (хотя это уже не так актуально, на 4-ром ОГЛе проблем не будет). Можно сделать вполне сносное освещение на LightMap'ах (для статики) + 2-3 Forward близжайших дин. источника (В UE3 так, например), главное при этом правильно менеджить сцену.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Вторник, 04 Февраля 2014, 17:06 | Сообщение # 88 | Тема: Проблема с блокированием поверхности
Сэнсэй
Сейчас нет на сайте
Советую быстро забить на DirectDraw и изучать как минимум Direct3D9 или OpenGL 2.0 \ 3.0

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Понедельник, 20 Января 2014, 10:40 | Сообщение # 89 | Тема: Проблема при использовании KeyboardState
Сэнсэй
Сейчас нет на сайте
Покажи где oldState объявляешь.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Понедельник, 20 Января 2014, 10:27 | Сообщение # 90 | Тема: Проблема при использовании KeyboardState
Сэнсэй
Сейчас нет на сайте
Ну, тогда можно добавить некий глобальный "oldState" и сделать что-то вроде этого:

Код
state = Keyboard.GetState();  

if (state.IsKeyDown(Keys.Space) && oldState.IsKeyUp(Keys.Space))  
{
    items[currItem].OnClick();
}
oldState = state;


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Понедельник, 20 Января 2014, 10:11 | Сообщение # 91 | Тема: Проблема при использовании KeyboardState
Сэнсэй
Сейчас нет на сайте
Если это XNA, то там было нечто вроде "IsKeyPress"

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Воскресенье, 19 Января 2014, 18:27 | Сообщение # 92 | Тема: Оптимизация игры
Сэнсэй
Сейчас нет на сайте
На более маленькие не нужно разбивать, нужно наоборот как можно больше спрайтов собирать в одну текстуру (атласы), тогда батчинг (если он есть) будет эффективнее работать и меньше переключатся стейты. А вообще, если используется нормальный движок, то для 2Д тут особо нечего придумывать - все основное должно быть сделано на уровне движка. По каким-то конкретным вещам стоит чиатать доки по движку + профильные форумы.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Воскресенье, 19 Января 2014, 18:19 | Сообщение # 93 | Тема: GLSL - Нормали и матрицы
Сэнсэй
Сейчас нет на сайте
Что-то там странное творится во фрагментном шейдере, на основе чего там строится освещение? Взял бы классического Ламберта + Фонга для попиксельного освещения. Что, касается нормалей то нужно помножить их на glNormalMatrix = transpose(inverse(ModelViewMatrix));

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Суббота, 18 Января 2014, 16:58 | Сообщение # 94 | Тема: Оптимизация игры
Сэнсэй
Сейчас нет на сайте
black_house
Если тема находится в правильном разделе и ты все пишешь сам, то можно сделать несколько вещей. Собрать кучу маленьких текстур в одну большую (используем атласы) + добавить этим текстурам поддержку аппаратного сжатия, пытаться как можно меньше переключать стейты пайплайна (рисовать как можно больше с одной установленной текстурой, например), т.е. нужна сортировка по текстурам, далее пытаться уменьшать количество DrawCalls (собирая как можно больше геометрии в буфер + сортировка по буферам для уменьшения их переключения). Ну и рисовать и апдейтить только то, что видно на экране smile Это из основного.

Update: Добавлю еще, что альфа тест и \ или блендинг в мобильных девайсах, особенно в больших количествах - очень хорошо кушает весь доступный филлрейт, что в итоге приводит к просадке фпс.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Суббота, 18 Января 2014, 17:01
ArchidoДата: Четверг, 16 Января 2014, 14:13 | Сообщение # 95 | Тема: Чистое 3D написанное своими руками
Сэнсэй
Сейчас нет на сайте
Что в твоем понимании есть "чистое 3D" ?:)

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Вторник, 14 Января 2014, 17:21 | Сообщение # 96 | Тема: Вопрос-Ответ (C++)
Сэнсэй
Сейчас нет на сайте
Цитата Destroy ()
а как выделять память если длинна каждого слова разная?

А в чем проблема? Можно для каждой указать конкретно сколько нужно, но проще забить на это и выделить под все строки одинаковое кол-во памяти с запасом, например в 256 символов на строку. С помощью strlen можно узнать длину каждой, главное наличие '\0' в конце самой строки.

Цитата Destroy ()
и как обратиться к конкретному символу конкретной строки? например так str[i][j], где i - строка, j - столбец?

Именно так. j - индекс символа i-той строки.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Суббота, 11 Января 2014, 16:43 | Сообщение # 97 | Тема: ERROR
Сэнсэй
Сейчас нет на сайте
Shevron_7
Замени char на string и убери все "(char)" в теле switch + после каждого "case" неплохо бы делать break. И да, ты работаешь всего с 3-я элементами вместо 4-х задуманных.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Вторник, 31 Декабря 2013, 14:17 | Сообщение # 98 | Тема: Вот в общем то прочитал статью и задумался
Сэнсэй
Сейчас нет на сайте
Цитата vasua99 ()
Ну вот языки со встроенной поддержкой довольно ушербны. Ущербны не в плане поддержки возможностей, а в плане костыльности этих возможностей. Из языков нормальная поддержка только у Python и Object C

Иксперты в студии. В чем разница между реализациями ООП модели у С++ и ObjC? Хочется подробностей про костыли и нормальную поддержку.

Цитата vasua99 ()
Оно там не взялось. Но его можно имитировать.

Браво. Не зря в твоих постах ключевое слово - это "костыль".


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Вторник, 31 Декабря 2013, 14:02 | Сообщение # 99 | Тема: Happy New Year! (С Новым Годом!)
Сэнсэй
Сейчас нет на сайте
DreamCraft
biggrin

Всех с НГ!


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Понедельник, 30 Декабря 2013, 13:25 | Сообщение # 100 | Тема: Вот в общем то прочитал статью и задумался
Сэнсэй
Сейчас нет на сайте
ТС не осилил ООП и теперь пытается убедить себя, что енто ООП и все с ним связанное - есть "костыль", поэтому осиливать ничего и не нужно.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Форум игроделов » Записи участника » Archido [783]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг