W tym poście chciałbym napisać jakie głupie błędy popełniłem przez te kilka tygodni, które opóźniały pracę:
1. Pierwszy błąd jaki popełniłem był związany z niskim fps(frame per second), a mianowicie inicjowałem okno Allegro5 po utworzeniu obrazka, co prowadziło do kosztownych konwersji formatu, a winikiem tego był fps rzędu 0 - 1(przy 48 wyświetleniach bitmapy 100x100px). Wpadnięcie na rozwiązanie tego problemu zabrało mi 2 dni.
2. Drugi błąd dotyczył klas managerów zasobów, dokładnie chodziło o błąd spowodowany moja nie wiedzą na temat hash_map z stl. Chciałem uzyskać mapę w postaci: std::string, *resource. Korzystając z przykładu z tej strony: http://www.sgi.com/tech/stl/hash_map.html, popełniłem błąd( nie wiedziałem że istnieje już specjalizacja dla std::string), męczyłem się z nim ze 4 dni.
3. Więcej błędów nie pamiętam ...
Rozwiązywanie błędów to szansa na zdobycie cennego doświadczenia, które przyda się w przyszłości.
sobota, 25 września 2010
Logger
Dzisiaj zabrałem się za stworzenie Loggera ale za nim to zrobiłem przemyślałem pewną istotną kwestię dotyczącą jego implementacji, a mianowicie czy powinien być zintegrowany z klasami silnika(czy ma być wewnątrz klasa i logować co one robią w swoich metodach), nie byłoby to jednak dobre rozwiązanie. Po pierwsze musiałbym przebudować to co wcześniej napisałem. Po drugie logować wszystko to nie najlepszy pomysł, więc Logger jest oddzielony od reszty i stanowi odzielną jednostkę, dodatkowo jest wielowyjściowy(można na razie wypisywać log na konsole i do pliku, ale w przyszłości udostępnię również logowanie do pliku .html czy .rtf). Jeszcze słów kilka o koncepcji Error Handlera, zrezygnowałem z niego, bo wiązałoby się to z wielkimi zmianami w kodzie (i tak nie dałby mi za dużo:)).
wtorek, 14 września 2010
Koncepcja Loggera i Error Handlera
Od kilku dni myślę o dodaniu do silnika Loggera, który jak sama nazwa wskazuje zapisuju przebieg programu. Jest to bardzo pomocne narzędzie w wykrywaniu błędów różnego rodazaju:
Teraz po co nam Error Handler(uchwyt błedów):
- Logiczne(czy funkcje są wykonywane w odpowiedniej kolejności);
- Wykonania(możemy wykryć gdzie program wywala na pulpit);
- U klienta(gdy urzytkownicy korzystają z naszego produktu i mają błędy możemy je wykryć i naprawić).
Teraz po co nam Error Handler(uchwyt błedów):
- przyda się, bo możemy zobaczyć jaki wystąpił ostatni błąd za nim program się wyłączył(zapisujemy go zawsze do loga automatycznie)
- można zrobić listę błędów jakie wystąpiły
- inne zalety to ...
niedziela, 12 września 2010
Pierwsze testy
Przez ostatnich kilka dni robiłem trochę testów wydajnościowych itp., wypadły całkiem nieźle:
Przy rysowaniu 48 obrazków 100x100 mam 2500 FPS;
Przy rysowaniu 500 obrazków 100x100 mam 60 FPS.
Obecnie będę kończył rdzeń graficzny:
Dodam klasy odpowiedzialne za animacje, sprite-y itp.
Potem przejdę do tworzenia klas odpowiedzialnych za wejście(klawiatury,myszki i joystika).
Przy rysowaniu 48 obrazków 100x100 mam 2500 FPS;
Przy rysowaniu 500 obrazków 100x100 mam 60 FPS.
Obecnie będę kończył rdzeń graficzny:
Dodam klasy odpowiedzialne za animacje, sprite-y itp.
Potem przejdę do tworzenia klas odpowiedzialnych za wejście(klawiatury,myszki i joystika).
Subskrybuj:
Posty (Atom)