Warsztat - Programowanie gier

Lipiec 30, 2010, 17:38:33 *
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Warsztat, Regulamin forum, #warsztat, Wiki, FAQ, NoPaste, Mapa
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  
Strony: [1] 2
  Drukuj  
Autor Wątek: Sredniawo-Zaawansowany - I co dalej ?  (Przeczytany 1220 razy)
Bloodian
Newbie
*

wiadomości: 39


Zobacz profil
« : Październik 28, 2009, 20:30:07 »

 Jestem w kropce. Zgubilem sie. Nie wiem co robic.
Jestem na poziomie gdzie rozumiem C++, napisalem swoje pierwsze gry w Irrlichcie. Dosyc latwo mi sie czyta API chociaz czasem mam problemy i zwracam sie z nimi tutaj Smiley
Moj kod nijak nie przypomina kodu "profesjonalnego". To znaczy sie, jest na podstawach OOP, ma obiekty wrogow, bohatera, silnika, ale ciagle mam wrazenie ze dla prawdziwego programisty wygladalo by to smiesznie. Dochodze do swojego wymarzonego planu, zrobilem kolizje, jakies skakanie, strzelanie, poruszanie sie z akceleracja. Wszystko dziala, ale napisane jest prosto typu:

klasa wrog
{
zmienna skakania
tablica modeli[30]
zmienna pozycji.x

poruszanie()
oblicz kolizje(mesh boxa)
}

pozniej tylko tworze klase poza petla, w konstruktorze loaduja mi sie wszystkie dane a w petli robie poruszanie() i oblicz kolizje dla kazdego osobnego boxa.

Przeszukalem pare ksiazek, miedzy innymi ostatnio:
- Programming Role Playing Games with DirectX
- Game Coding Complete

i przedstawione sa tam znowu metody ktore uwazam sa juz ekstremalne. W Programming Role Playing Games, autor stworzyl silnik skryptowy, uzywajac jakichs zewnetrznych programow pozniej implementuje elementy gry.
Co wy robliscie ? Skad nauczyliscie sie prawidlowych struktur programow ? Czytalem tez algorytmy i struktury danych, i mam mniej wiecej pomysl, jak to mozna uzyc w grach, ale tez nie do konca potrafilbym cos takiego napisac, bo mi tablice calkowicie wystarczaja Smiley
Jakies ksiazki o schematach OOP/strukturach danych... Cokolwiek. Co wy robliscie kiedy byliscie na takim poziomie ?
Jestem praktykiem, wszystkiego wole sie nauczyc piszac kod, niz klepac ksiazke po ksiazce. Tak tez zrobilem, na szybko przeczytalem kurs c++, a pozniej majac jakas podstawowa wiedze, robilem kupe bledow, ale szybko sie uczylem.

edit:
typo
ps.sorry za brak polskich znakow-> angielski windows.
Zapisane
Liosan
SuperHero Member
******

wiadomości: 1426



Zobacz profil
« Odpowiedz #1 : Październik 28, 2009, 20:53:40 »

Narzekasz, że Twój kod jest prosty?  Grin Cheesy

Skad nauczyliscie sie prawidlowych struktur programow ?
Czego? Smiley "Prawidłowe" jest to co działa; "bardziej prawidłowe" jest to co działa na dłuższą metę, mimo przerw w programowaniu, i to w zespole 3+ programistów. Co oczywiście nie znaczy, że takie "bardziej prawidłowe" jest zawsze lepszym wyborem - trzeba rozważyć cenę (czas/zachód) kontra zysk. Np w pisaniu gry na compo najlepsze rozwiązanie to to, które działa Cheesy

Chcesz się nauczyć lepiej programować? Pisz więcej Smiley Chcesz się dowiedzieć, jak prawidłowo budować programy, moduły, klasy? Czytanie tekstów o projektowaniu kodu i inżynierii oprogramowania może pomóc... ale może też namącić w głowie. Proponuję wrócić do starego kodu i sprawdzić co Cię od niego odrzuca, albo dodać coś do kodu czego wcześniej nie przewidziałeś, albo napisać grę z kolegą o podobnym stopniu zaawansowania Smiley

I o co Ci chodzi z angielskim Windowsem? 90% moich postów tu na forum jest z angielskiego XP i nie ma z tym problemu. Trzeba tylko język zainstalować.

Liosan
Zapisane

Cytuj z: toxic
w ich zylach plynie praslowianska krew - oni musza wiedziec jak sie robi software
Demo WG RC1!
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #2 : Październik 28, 2009, 20:56:26 »

Cytuj
I co dalej ?
Do kompilatora i kodować! Smiley

Cytuj
Skad nauczyliscie sie prawidlowych struktur programow ?
Tego już życie uczy. Po prostu pisz tak, jak uważasz, że jest Ci najwygodniej, a potem zbieraj obserwacje i wdrażaj przy najstępnych projektach. Smiley

Cytuj
Jakies ksiazki o schematach OOP/strukturach danych...
W OOP za daleko nie popadaj. Wielu koderów już wpadło w tą pułapkę i marnują masę czasu na tworzenie rozdmuchanego i politycznie poprawnego kodu do najprostszych rzeczy, nie mając czasu przez to na skończenie projektu. Wydumane filozofie nadają się do zespołowych projektów. Dopóki piszesz sam, pisz tak, jak Tobie jest wygodnie.

Cytuj
Co wy robliscie kiedy byliscie na takim poziomie ?
Kodowałem. Wszystko, co mi fajnego do głowy wpadło i ile tylko się dało. Kod wychodził badziewny, ale zawsze wychodziło z tego jakieś doświadczenie, czego i jak nie robić.

Cytuj
Jestem praktykiem, wszystkiego wole sie nauczyc piszac kod, niz klepac ksiazke po ksiazce. Tak tez zrobilem, na szybko przeczytalem kurs c++, a pozniej majac jakas podstawowa wiedze, robilem kupe bledow, ale szybko sie uczylem.
No to jazda do kompilatora zamiast marnować czas na forum. Wink

Cytuj
Moj kod nijak nie przypomina kodu "profesjonalnego".
Kwestia wyglądu. Przyjmij sobie jakąś notację, przykładowo nazywając klasy jako CNazwaKlasy, pola normalnie albo m_PoleKlasy (aczkolwiek format "m_..." osobiście mi się nie sprawdził), a metody w JakiśInnySposób (ewentualnie w sposóbNazewnictwaWziętyZJavy). Od razu kod będzie wyglądał bardziej profesjonalnie. Poza tym unikaj tablic z wpisaną na sztywno liczbą elementów - zapoznaj się z std::vector i po kłopocie. Smiley

Cytuj
w konstruktorze loaduja mi sie wszystkie dane
Konstruktor jest średnim miejscem na ładowanie danych, bo czasem ciężko nad tym procesem zapanować (ale to tylko moje doświadczenia).
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
sobol
SuperHero Member
******

wiadomości: 1270



Zobacz profil
« Odpowiedz #3 : Październik 28, 2009, 21:22:32 »

Co rozumiesz przez kod "profesjonalny" ? Smiley
Myślisz, że w firmach soft-dev kod jest taki piękny, idealny etc? Smiley
Najważniejsze w kodzie jest to, żeby działał. Potem to, żeby działał Tongue Potem to jak się go czyta i wydajność, moim zdaniem na równi. Szpikowanie kodu jakimiś pampuchami językowymi nie powoduje, że czyta się go łatwiej ani że jest wydajniejszy. Nie powoduje też, że magicznie zaczyna działać Tongue Make it simple, takie jest moje podejście.
Zapisane

Bloodian
Newbie
*

wiadomości: 39


Zobacz profil
« Odpowiedz #4 : Październik 28, 2009, 21:25:56 »

Hmmm... Bardzo mnie ucieszyly Wasze odpowiedzi, bo zawsze fascynowalo mnie to w programowaniu ze mozna zrobic jedna rzecz na tysiace sposobow.

Wiaze jednak swoja przyszlosc z kodzeniem, dlatego chcialem znalezc sposob zeby "ujednolicic" kod z innymi programistami. Tak naprawde, to gubia mnie te wszystkie ksiazki, reguly, wzory, poradniki.
Skupie sie wiec na tym zeby moj kod byl czytelny, nie "profesjonalny".

Jeszcze jedno, pytanie, warto uczyc sie wszystkich struktur danych ? To jest srednio 300-400 stron ksiazki, a mozna przeciez uzyc STL.


Zapisane
Charibo
Member2000
*******

wiadomości: 2394



Zobacz profil WWW
« Odpowiedz #5 : Październik 28, 2009, 21:27:20 »

Według mnie, najważniejsze żeby kod pisało się szybko, prosto i żeby w miarę łatwo dało się go utrzymać. A co dalej? Spróbuj napisać grę od A-Z. Niekoniecznie skomplikowaną, ale pełną: z grafiką, dźwiękiem, gameplayem, menusami, intrem, paroma levelami, ikonką... Smiley
Zapisane

Now these points of data make a beautiful line
And we're out of beta we're releasing on time.

Blogassek.
sobol
SuperHero Member
******

wiadomości: 1270



Zobacz profil
« Odpowiedz #6 : Październik 28, 2009, 21:28:31 »

Tu moje zdanie jest takie - zły programista nie wie co to STL / Boost Tongue Przeciętny umie ich użyć. Dobry programista używa ich świadomie, bo sam zaimplementował część struktur / algo, wie jak działają, wie jakie są ich zalety / wady etc. Niestety to nie jest jedyny wyznacznik dobrego programisty Cheesy
To tak IMHO
Zapisane

wine
Gość
« Odpowiedz #7 : Październik 28, 2009, 21:29:32 »

Jeszcze jedno, pytanie, warto uczyć się wszystkich struktur danych ? To jest średnio 300-400 stron książki, a można przecież użyć STL.
Nie są ci potrzebne? Nie ucz się ich. Masz za dużo wolnego czasu? Koduj. Proste. Ucz się tego co jest Ci potrzebne. Poza tym STL to tylko ich przepisanie w C++...

A i korzystaj z j. polskiego, pozwoliłem sobie poprawić bo Ci się ogonki gubią... Mnie Mozilla poprawia Grin
Zapisane
Dab
Member2000
*******

wiadomości: 2999


wiadomości: 2963


Zobacz profil WWW
« Odpowiedz #8 : Październik 28, 2009, 21:31:15 »

Tu moje zdanie jest takie - zły programista nie wie co to STL / Boost Tongue Przeciętny umie ich użyć. Dobry programista używa ich świadomie, bo sam zaimplementował część struktur / algo, wie jak działają, wie jakie są ich zalety / wady etc. Niestety to nie jest jedyny wyznacznik dobrego programisty Cheesy
To tak IMHO
Słaby programista nie wie co to Boost.
Średni wie.
Dobry używa.
Znakomity wie, żeby nie używać. Wink
Zapisane

Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #9 : Październik 28, 2009, 21:36:09 »

Cytuj
Wiaze jednak swoja przyszlosc z kodzeniem, dlatego chcialem znalezc sposob zeby "ujednolicic" kod z innymi programistami.
Zrobisz to jak pójdziesz do pracy. Nie ma jednego standardu, a nawet w obrębie danego projektu często różne moduły pisane są nieco różnym stylem. Po prostu jak przyjdzie Ci pracować z cudzym kodem, pisz tak, żeby Twój kod wyglądał podobnie.

Cytuj
Tu moje zdanie jest takie - zły programista nie wie co to STL / Boost Tongue Przeciętny umie ich użyć
W takim razie z perspektywy boosta jestem gdzieś między złym, a przeciętnym (wiem co to jest i kiedyś miałem boosta na dysku, ale że brakowało mi miejsca na dysku to musiałem skasować coś niepotrzebnego i padło na boosta). Wink
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
Bloodian
Newbie
*

wiadomości: 39


Zobacz profil
« Odpowiedz #10 : Październik 28, 2009, 21:36:14 »

Ok. Dzieki wielkie. Podniesliscie mnie na duchu.

Musze w koncu zainstalowac polskie znaki, bo na tym forum to must-have  Cheesy
Zapisane
sobol
SuperHero Member
******

wiadomości: 1270



Zobacz profil
« Odpowiedz #11 : Październik 28, 2009, 21:45:09 »

Co do tego nieszczęsnego boosta - nie do końca zrozumieliście moje przesłanie Tongue Nie mówię, że trzeba używać boosta. Dab to nieźle ujął
Cytuj
Znakomity wie, żeby nie używać. Wink
Albo wie, żeby nie używać, albo wie, co z niego używać, albo ma alternatywę, albo... Chodzi o świadomość Smiley Jeśli ktoś ma napisane przez siebie wydajne kontenery to nie używa STLa, wtedy interpretując moją poprzednią wypowiedź wprost jest złym programistą Smiley A nie taki był cel ofc.
Zapisane

PsichiX
Sr. Member
****

wiadomości: 375


ΨΧΞ


Zobacz profil WWW
« Odpowiedz #12 : Październik 28, 2009, 21:57:25 »

Cytuj
Tu moje zdanie jest takie - zły programista nie wie co to STL / Boost
Cytuj
Znakomity wie, żeby nie używać.
dzięki dzięki xD a tak serio: fakt taktem że osobiście wole zrobić dane algorytmy i struktury po swojemu, wiedząc całkowicie jak się zachowują, gdzie może być ewentualny błąd w użyciu, jak je udoskonalić . Też za książkami i za metodą kopiego-pasta nie przepadam, sam wole poszukać rozwiązania, a co nieco potrzebnych rzeczy gdy na gwałt potrzebuję, pytam doświadczonych. Tak więc koledzy mają rację, pisz dużo, samo z czasem przyjdzie to, jak najlepiej pisać Tobie, aby używało się kodu szybko i pewnie, bez zbędnych bajerów Tongue
Zapisane
Angru
Jr. Member
**

wiadomości: 96



Zobacz profil
« Odpowiedz #13 : Październik 28, 2009, 22:13:07 »

Jeszcze jedno, pytanie, warto uczyc sie wszystkich struktur danych ? To jest srednio 300-400 stron ksiazki, a mozna przeciez uzyc STL.
Uczyć się nie warto. Poznawać zwykle warto. Wykorzystać czasami warto, jeżeli jest to uzasadnione z kontekstu problemu. Jak wykorzystasz parę razy to już będziesz umiał. To się sprawdza chyba dla każdej dziedziny inżynierskiej. W sumie chyba nie warto zawracać sobie głowy takimi pytaniami. Jeżeli Cię coś interesuje to się nie powstrzymuj. Książka Cię nie ugryzie jeżeli nie przeczytasz jej od dechy do dechy, a szczególnie takie książki żadko się czyta od początku do końca (choć zaleca się od lewej do prawej Wink ).
Zapisane

"Ten kto zadaje pytanie jest głupcem przez 5 minut. Ten kto tego nie robi jest głupcem przez całe życie." - przysłowie chińskie
świrus
SuperHero Member
******

wiadomości: 1476


Karma: 10 [+]


Zobacz profil
« Odpowiedz #14 : Październik 28, 2009, 22:14:23 »

dzięki dzięki xD a tak serio: fakt taktem że osobiście wole zrobić dane algorytmy i struktury po swojemu, wiedząc całkowicie jak się zachowują, gdzie może być ewentualny błąd w użyciu, jak je udoskonalić .
I wątpię by twoje algo/struktury były szybkie, bezpieczne, proste. ;( Mam pytanie, czy kiedykolwiek robiłeś porównanie, swych optymalizacji i własnego kodu vs stl/boost ect?  Możesz pokazać wyniki, przykłady?
Zapisane

Cytuj
Restore "Prezydent" from backup copy: FAILED
Catchable fatal error: Argument 1 passed to set_first_lady() must be an instance of Wife, Cat given
rm-f/świrus Smiley
Strony: [1] 2
  Drukuj  
 
Skocz do:  

Hosting: Polska Strefa - Ogłoszenia
Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC