Почему игры тяжело делать многопоточными?
Сделал видео о многопоточности в играх, очень хочу послушать критики, так как не уверен обо всем ли я верно рассуждаю. Сам с Gamedev'ом не связан, но занимаюсь программированием на C++
Сделал видео о многопоточности в играх, очень хочу послушать критики, так как не уверен обо всем ли я верно рассуждаю. Сам с Gamedev'ом не связан, но занимаюсь программированием на C++
Сделал видео с разбором графики, может кому понадобиться. Критика приветствуется
1) Вместо использования цикла for() быстрее использовать цикл while(). По той простой причине, что while() был придуман раньше, чем for(), то следовательно while() более низкоуровневый, а следовательно за абстрагирование мы расплачиваемся меньше, что ускоряет наш код.
2) если честно, то данной код можно ускорить ещё больше. поскольку оператор ++ является неоптимальным, лучше использовать его аналог =.
Так делали ещё наши деды на Паскале и Фортране, получая код, который просто летал. Я вам больше скажу, при программировании процессоров, работавших на советских космических станциях использовали именно этот оператор. И ведь где, а там нужно высокая эффективность кода.
3) Если вам нужно сделать вечный цикл, например как при поиски в ширину, лучше писать while(!false) вместо обычного while(true). поскольку процессор быстрее воспринимает команды с нулями, то и отрицание нуля он будет обрабатывать быстрее, нежели просто единицу. Это сильно ускоряет ваш проход по циклу.
4) Описание типа данных для каждой отдельной переменной отдельно также уменьшает затраты процессорного времени. Поскольку вы перекладываете часть работы процессора на себя. Как бы расписывая всё для каждой переменной в отдельности, тем самым "разжёвывая" код, процессору приходиться декодировать значительно меньше данных.
5) Ну и последний совет по оптимизации заключается в том, чтобы сократить потребление оперативной памяти при исполнении программы. ОБЯЗАТЕЛЬНО удаляйте все лишние пробелы, табуляции, переходы на новые строки и комментарии. Именно они зачастую являются причиной потребления большей части оперативки и кеша процессора. Вы сами можете увидеть, как код стал более компактным и более читабельным. Если ваш код будет читать другой программист, то на его экранном пространстве также он будет занимать меньше места, соответственно полезного кода будет помещаться больше.
Сделал видео с отдыха, надеюсь на вашу критику и комментарии
Не закидывайте камнями пожалуйста.
Снимал на тапок.
Комменты для минусов внутри.
Britney Spears - Everytime