Что ж, я изучаю DX11 и надеюсь, что когда-нибудь смогу запустить простой 3D-движок.
Я следую серии руководств и понял, что мне не нужно создавать какой-либо класс для управления моим кодом (в учебниках также используется этот процедурный подход, но я не копирую и не вставляю код учебника, я пытаюсь понять учебник, а затем попробуйте закодировать новые вещи на моем пути), у меня может быть код «нестабильный» только с функциями и глобальными переменными. Поэтому мне интересно, когда у меня достаточно знаний об API и я хочу начать создавать свою собственную библиотеку, может ли этот процедурный подход иметь некоторые недостатки? я должен начать писать некоторые классы?
Благодарю.
В начале я начал с небольшого движка, который состоит только из нескольких процедур. Для первых приложений это работало, и разработка была быстрой. Но чем сложнее приложение, тем больше кода становится нечитаемым и действительно ужасным в обслуживании. Затем я строю то же самое с подходом ООП, и почти все стало лучше. Общая структура программы более проста, и некоторые проблемы решаются очень аккуратно, например. столкновения обнаружения. У вас есть родительский класс, например CollidableObject
и получить много классов, таких как CollidableSphere
, CollidableCube
или же CollidableLine
, Для тестирования столкновений вам нужно работать только с классом CollidableObject
и не имеет значения, какой это объект на самом деле. Это не очень хорошо, чтобы справиться с процедурным подходом. Есть много других примеров, где oop полезен, например, Вы можете смоделировать свою систему частиц со множеством различных типов частиц (рекламные щиты, вершинные линии, сетки, источники света), и вам нужно только реализовать заданный шаблон, чтобы просто работать вместе.
В общем, я бы посоветовал начать как можно скорее с занятий, но для первого забавного взлома и изучения процедурного подхода это не красиво, но подходит.
Других решений пока нет …