Pochwalę się tylko, że wznowiłem prace nad swoim silnikiem. Podczas pierwszego podejścia sporo się nauczyłem. Postanowiłem wykorzystać to doświadczenie i rozpocząć wszystko od nowa.
- zmienię strukturę projektu. Poprzednio zrobiłem sobie straszną krzywdę i wszystko zamknąłem w jednym projekcie. Tym razem rozbije całość na sporą ilość małych projektów. Ułatwi to zarządzanie i testowanie kodu.
- ograniczę idioto odporność na korzyść możliwości. Poprzednie rozwiązanie zakładało, że użytkownik jest głupi i broniłem dostępu do rzeczy takich jak zasoby czy directx.
- zero automagiczności. Uważałem, że jeżeli silnik potrzebuje okna to powinien je umieć sobie otworzyć sam. Dzięki temu użytkowanie było banalne, o ile użytkownik chciał mieć dokładnie jedno okna o takich i takich właściwościach. Teraz uważam, że jeżeli użytkownik chce mieć okno to je sobie zrobi, jeżeli chce aby silnik coś w nim wyrenderował to powie o tym silnikowi.
- mam zamiar zastosować model warstwowy. Poprzednio podzieliłem system na moduły i wyszedł mi z tego straszny galimatias.
- zero rozwiązań w stylu singleton. Wszystkie niezbędne dane są przekazywane przez parametry wywołania.
- wciąż trzymam się rozwiązań obiektowych.
- DirectX 10. Im dłużej patrzę na wersję 10 tym mniej podoba mi się 9. OpenGL nigdy nie był obiektem mojego uwielbienia.
1 komentarz:
Czemu zero rozwiązań typu singleton?
Globalny, jednolity stan w jakiejkolwiek formie (monostate, singleton, zwykła klasa statyczna), jest bardzo naturalny i nie ma sensu unikać go na siłę w imię jakichś pustycznych idei.
Prześlij komentarz