Jump to content

Archived

This topic is now archived and is closed to further replies.

reNetGroupPl

Pokemon World

Recommended Posts

Witam ;)

 

W skrócie opisze mój projekt ;)

 

Nazwa : Pokemon World

Typ : RPG + Internet (MMORPG)

Język : Delphi - Pascal

Komponenty graficzne(silniki) : Omega

Komponenty sieciowe : Indy

Programowane pod : Win 95/98/Me/2000/XP/Vista

 

Opis : Projekt ten przedstawia grę internetową o tematyce pokemon. Wiem, iż znajdzie się wiele słów krytyki o danej tematyce. Zanim jednak zaczniecie komentować, chciałbym powiedzieć iż jest to jedna z najbardziej znanych i lubianych tematów gier dla młodych maniaków ;] i wiem z doświadczenia że będzie miała wzięcie ;).. Gra schematycznie podobna do serii R/G/B G/S znanych z Gameboy'a, jednak zostanie poszerzona o szereg funkcji oraz grę multiplayer. Planowany termin ukończenia 3/4 miechy po rozpoczęciu. System opracowanych tygodniówek poszczególnych elementów systemu.

 

Podstawowe elementy do zrealizowania :

 

- Map System[Ms] - GOTOWE

System odpowiedzialny za poprawne wyświetlanie mapy + elementów wystroju.

- Item Map System[iMs]

System odpowiedzialny za poprawne wyświetlanie przedmiotów na mapie.

- Item System[is]

System odpowiedzialny za koordynację przedmiotów.

- Pokemon System[Ps]

System odpowiedzialny za zarządzanie pokemonami.

- Message System [MEs]

System odpowiedzialny za okna informacyjne.

- General System[Gs]

System odpowiedzialny za koordynacje w/w elementów.

- Internet system[iNs]

System odpowiedzialny za połączenia internetowe.

 

Ponadto inne :

System walk

System Sklepów

Systemy zabezpieczające

Systemy autoryzacji płatnych kont.

 

 

 

----------------------- Planowane Wyniki pracy po 3/4 miesiącach ------------

1. Gotowy klient

2. Serwer umieszczony na dedyku

3. Edytor map

4. Serwer płatnych kont.

5. Serwer zabezpieczeń.

6. Strona internetowa

 

Chciałbym zaznaczyć iż spodziewam się wysokiej "używalności" tej gry i postanowiłem brać pod uwagę opcji płatnych kont. ;)

 

Potrzebni chętni !! :

- Graficy

- Programiści [Delphi]

 

Piszcie proszę co o tym myślicie ;) Chętni też do kooperacji =] pisać.

Planowane rozpoczęcie już w przyszłym tygodniu. ;)

Share this post


Link to post
Share on other sites

1) a czym Ty się będziesz zajmował ??

2) masz już coś napisane czy start od zera ??

3) ile płacisz ?? :P

4) nie uważasz że 3/4 miesiące to trochę mało ??

Share this post


Link to post
Share on other sites

1) a czym Ty się będziesz zajmował ??

2) masz już coś napisane czy start od zera ??

3) ile płacisz ?? :P

4) nie uważasz że 3/4 miesiące to trochę mało ??

 

1) Powątpiewa, iż znajdą się chętni ;), którzy nie będą robić sobie jaj :P;) Więc pewnie cała praca spłynie na mnie i pewnych moich znajomych, jednak każda deklaracja pomocy przyczyni się do przyśpieszenia prac.

 

2) Wiele już napisałem gierek na tym silniku typu rpg, znam się również na połączeniach internetowych. Projekt pisany od nowa, jednak będę podbierał pomysły z moich wcześniejszych prac. W pracy pomoże również system www, wymiany poszczególnych gotowych elementów.

 

3) Hmm ;) I tu się zaczyna górka ;)... Praca społeczna za free.. Dlatego nie liczę na zbyt dużo chętnych ;) Jednak mam nadzieję że z zaszczytem będą czytać luzdzie info o autorach. Nie zapominajmy że w czasie wprowadzania opłacanych kont, programiści mają wszelkie prawa autorskie modułów wykorzystywanych w tym programie/grze, a więc mają prawo do częsci monet które wpłyną za konta.

 

4) Tak uważam jednak myślę że lepiej dać krótszy termin, który i tak się przedłuży niż dłuższy z którym będzie tak samo ;))

 

Pozdrawiam

Share this post


Link to post
Share on other sites

ja np. chciałbym obejrzeć Twoje poprzednie rzeczy (choć wątpię abym się dołączył bo robie co innego), abyś nie tylko Ty myślał, że chętny mało umie, ale aby chętny nie myślał, że Ty mało umiesz, no bo skoro za free to ochotnicy będą chcieli wiedzieć, że to wyjdzie, a nie że robią za roboli

Share this post


Link to post
Share on other sites

ja np. chciałbym obejrzeć Twoje poprzednie rzeczy (choć wątpię abym się dołączył bo robie co innego), abyś nie tylko Ty myślał, że chętny mało umie, ale aby chętny nie myślał, że Ty mało umiesz, no bo skoro za free to ochotnicy będą chcieli wiedzieć, że to wyjdzie, a nie że robią za roboli

 

Więc aktualnie nie jestem w stanie podczepić wam moich projektów ponieważ wszystkie dawno zostały usunięte z dysku. Miałem dłuższą przerwę i z powodu braku czasu nie zajmowałem się nimi.. Został tylko jedyny projekt, który aktualnie przekopuję, dodaję opcje GameGuard coś w sytlu steam w Counter Strike .... Wiem że pewnie Force cię to nie przekona i nawet na to nie liczę. Mam tylko nadzięję że szybko skończę w/w dodatek i wtedy będę Ci w stanie udowodnić co potrafię...

 

Pozdrawiam ;)

Share this post


Link to post
Share on other sites

Okey ruszyły prace systemu :

- Map System[Ms]

System odpowiedzialny za poprawne wyświetlanie mapy + elementów wystroju.

 

Mam nadzieję, że najpóźniej w przyszłym tygodniu będziemy mogli zamieścić kod oraz edytor map. System ten podzielimy na poszczególne elementy :

 

- Wczytywanie i weryfikacja tekstur

- Wczytywanie podłoża mapy

- Wczytywanie elementów mapy [np: drzewa, krzewy itp]

- Optymalizacja wyświetlanych bloków ( wyświetlamy tylko te które widzi gracz + 1 z każdej strony)

- Weryfikacja tekstur

 

Wszelkie pliki będą w rozszerzeniach ".pwr", jednak na czas tworzenia w/w elementów nie będą one szyfrowane...

 

Przykładowy plik data.prw -> textures [Plik rejestracji tekstur] :

KOD10 // Liczba wczytywanych tekstur (w celu szybszego przydzielenia tablicy dynamicznej)

121.BMP|AA // Przydzielenie zapisu AA teksturze 121.BMP

101.BMP|AB

98.BMP|AC

k1.BMP|WA

k2.BMP|WB

k3.BMP|WC

k4.BMP|WD

k5.BMP|WE

k6.BMP|WF

k7.BMP|WG

 

Przykładowy plik mapdata.prw -> map [Plik podłoża mapy] :

KODDark Word // Nazwa w celu weryfikacji

800 // Szerokosc (optymalizacja)

600 // Wysokosc (optymalizacja)

AC-60-A|P-20|AC-1|N|N|N|N|AC-1|P-1|AC-1

 

Wzór "Zapis_textury-Ilosc_kratek-Flagi(Opcjonalnie)" / N - opuszczenie wiersza / P-pusty blok

 

W sposób podobny tworzone są elementy wystroju ;)

 

Jest to dość prymitywny sposób jednak ciagle jest ulepszany i optymalizowanych ;) Dzięki pracy udaję się wyciagnąć dużo fps = 140 przy klockach 48x48 o mapie 6000x6000 ;)

 

Co o tym sądzicie ?? ;) Podrzucę później kod systemu ....

 

Szybki szkic modułu [ Mało opracowany, dużo do poprawy ] :


 

UWAGA !! TO tylko szkic.. Wiec proszę nie krytykować !:) Ewentualnie podpowiadać co można poprawić ;) Nie wspomnę że nie ma żadnej procki zwalniającej pamięć tablic ;) BĘDZIE !:) Moduł w postaci komponentu

Share this post


Link to post
Share on other sites

OK jako naczelny maruda pomarudze:

1) Naucz sie indentacji kodu bo mi oczy lzawia jak to czytam. Jest totalnie nieczytelny.

2) blok Try/Except jest calkowicie bezsensowny bo:

a) ukrywasz typ exception i zamiast niego wywalasz komunikat ze jest blad procedury. Dlaczego ? Gdzie ? co sie stalo ? niewiadomo

B) nie masz logowania komuniaktow, jak wylaczysz w kompilatorze obsluge assertow to bedziesz mial zwalone wyswietlanie bez komunikatow. Jednym slowem nie wiadomo co sie zrabalo i dlaczego sie zle rysuje.

3) zamiast tworzyc magiczne pliki z danymi siegnij po sprawdzone i bardzo elastyczne rozwiazanie jakim jest XML

4) procedura rysujaca jest suuper niewydajna. W kazdej petli wykonujesz 3x przeszukiwanie w liscie (!) + zupenie niepotrzebne mnozenia.

5) obsluga bledu przy odczycie jest kolejnym nieporozumieniem bo:

a) patrz punkt 2

B) powoduje memory leaki w momencie gdy plik zawiera jakis blad

 

Wiecej mi sie nie chcialo przegladac bo kod jest strasznie nieczytelny w obecnej postaci.

 

Pozatym jesli zaczynasz pisac gre MMO od wczytywania grafiki, to wroze jej max 2-3 mc zycia a nastepnie smierc kliniczna.

 

odnosnie uwagi: skoro to szkic to po co podajesz kod jesli nie chcesz aby go krytykowano (konstruktywnie) ?

 

Pozatym powiedz mi co to znaczy "Modul w postaci komponentu" ? bo jest to dla mnie delikatnie mowiac troche glupie, zerknij w F1 co to modul a co to komponent.

 

pozatym looks good :) zycze duzo samozaparcia :]

Share this post


Link to post
Share on other sites

OK jako naczelny maruda pomarudze:

1) Naucz sie indentacji kodu bo mi oczy lzawia jak to czytam. Jest totalnie nieczytelny.

2) blok Try/Except jest calkowicie bezsensowny bo:

a) ukrywasz typ exception i zamiast niego wywalasz komunikat ze jest blad procedury. Dlaczego ? Gdzie ? co sie stalo ? niewiadomo

B) nie masz logowania komuniaktow, jak wylaczysz w kompilatorze obsluge assertow to bedziesz mial zwalone wyswietlanie bez komunikatow. Jednym slowem nie wiadomo co sie zrabalo i dlaczego sie zle rysuje.

3) zamiast tworzyc magiczne pliki z danymi siegnij po sprawdzone i bardzo elastyczne rozwiazanie jakim jest XML

4) procedura rysujaca jest suuper niewydajna. W kazdej petli wykonujesz 3x przeszukiwanie w liscie (!) + zupenie niepotrzebne mnozenia.

5) obsluga bledu przy odczycie jest kolejnym nieporozumieniem bo:

a) patrz punkt 2

B) powoduje memory leaki w momencie gdy plik zawiera jakis blad

 

Wiecej mi sie nie chcialo przegladac bo kod jest strasznie nieczytelny w obecnej postaci.

 

Pozatym jesli zaczynasz pisac gre MMO od wczytywania grafiki, to wroze jej max 2-3 mc zycia a nastepnie smierc kliniczna.

 

odnosnie uwagi: skoro to szkic to po co podajesz kod jesli nie chcesz aby go krytykowano (konstruktywnie) ?

 

Pozatym powiedz mi co to znaczy "Modul w postaci komponentu" ? bo jest to dla mnie delikatnie mowiac troche glupie, zerknij w F1 co to modul a co to komponent.

 

pozatym looks good :) zycze duzo samozaparcia :]

 

Okey ;) Rozumiem gdzie popełniłem błedy jednak zaznaczyłem wcześniej iż jest to sam szkic i bedzie modyfikowany dlatego tu np. brak odpornoścni na błedy w pliku.Co do try.except..end - Tak moja wina. A do ostatniego pytania to wydaje sie ze moduł to zbiór procedur,funkcji i zmiennych zamknięty w pełną całość. Ostatnie zdanie moje miało znaczyć iż jest to komponent ;) co nie wyklucza że i zarazem moduł ? prawda ?

Share this post


Link to post
Share on other sites

Cóż. Z punktu inżynierii oprogramowania to Twoje tłumaczenie może by przeszło z tym komponentem choć to zależy, bo komponent musi być niezależną całością to nie wiem jak to napiszesz, ale w Delphi komponent to kojarzy się w tymi guzikami itp. :)

Share this post


Link to post
Share on other sites

Wiec tak komponent to moim zdaniem zarejestrowana klasa w paczce delphi, a klasy te w postaci małych ikonek są umieszczane na palecie komponentów. Może mieć on postać graficzną lub nie.. Jego celem jest szybsze i łatwiejsze korzystanie z zasobów tej klasy... Ale patrząc z góry dana klasa jest zamknięta w jednym pliku, wraz z procedurami i zmniennymi czy też stałymi, ten plik to moduł.. Nawet gdy wstawisz po raz pierwszy komponent na forme, automatycznie w sekcji uses dołączany jest moduł odpowiedzialny za dany element.. Co do komponentów guziczków itp ;] to nie tylko graficzne postacie moga występować, komponenty matematyczne, ułatwiające dostęp do pliku.... Tak jak już napisałem to zwykłe klasy zawierające swoje procki, tylko że są zarejestrowane i można w łaty sposób nimi zarządzać ;)... Ale dosyć rozwijania tego tematu po on różni się od głównego wątku jakim jest "Pokemon World"

 

Co do Archon

4) procedura rysujaca jest suuper niewydajna. W kazdej petli wykonujesz 3x przeszukiwanie w liscie (!) + zupenie niepotrzebne mnozenia.

 

Hm ;) ja tam widzę 2x ;] W każdej lecę wzdłuż prostej x,y i wyswietlam te kafle które będą widoczne dla użytkownika... Narazie nie mam lepszego pomysłu ;) Może masz jakiś pomysl ??

 

POzdrawiam

Share this post


Link to post
Share on other sites

FImageList.ImageList.Find(Ev[y].ID).Draw((i- self.X)*45-(FImageList.ImageList.Find(Ev[y].ID).ImageWidth div 4),(y- self.y+1)*45-(FImageList.ImageList.Find(Ev[y].ID).ImageHeight),0);

 

1) Cachowanie wartosci

2) popatrz ktore rzeczy zmieniaja sie w kazdym przejsciu OBU petli, zobacz co trzeba liczyc w kazdej iteracji a co mozna policzyc raz na kilkanascie.

Share this post


Link to post
Share on other sites

Proponujesz jednorazowo sciagnąc sobie wskaznik( lub numer ietmu) z wyniku jednego szukania i zamaiast szukac znow 2razy to odwoływać się do niego ? :)

Hmm rzeczywiście to chyba chyba bedzie szybsze .;) Sprawdzę dzięki ;)

 

Myslisz o tym ?

 Procedure TMapSYstem.Draw;
var
i,y : integer;
nr : integer;
begin
Try
for i := self.x to (400 div SizeBlock)+1+self.X  do
for y := self.y to (400 div SizeBlock)+1+self.y do
if (y>-1) and (i>-1) then
begin
nr := FImageList.ImageList.Find(Map[i][y].ID).ID; // Pobieranie numeru elementu 
FImageList.ImageList.Items[nr].Draw((i- self.X)*45,(y- self.y)*45,0); // Odwołania poprzez znaleziony numer
end;

for i := self.x to (400 div SizeBlock)+1+self.X  do
for y := self.y to (400 div SizeBlock)+1+self.y do
if (y>-1) and (i>-1) and (Ev[i][y].ID <> '[]') then
begin
nr := FImageList.ImageList.Find(Ev[i][y].ID).ID; // Pobieranie numeru elementu 
FImageList.ImageList.Items[nr].Draw((i- self.X)*45-(FImageList.ImageList.Items[nr].ImageWidth div 4),(y- self.y+1)*45-(FImageList.ImageList.Items[nr].ImageHeight),0); // Odwołania poprzez znaleziony numer
end
except
 Assert(False, 'Bład procedury Draw');
end;

 

PS ^^ Szkoda gadać ale nie potrafię z [E: Exception] w czasie błedu wyciągnąc numer lini który spowodował bład ;) Pomożecie ??

Share this post


Link to post
Share on other sites

o czym właściwie jest ten temat ??

 

szukasz ludzi do projektu czy chcesz żeby ktoś ci kod poprawiał ??

Share this post


Link to post
Share on other sites

jeśli masz jakiś problem lub pytania odnośnie kodu to załóż nowy temat w odpowiednim dziale

 

a tak swoją drogą to jesteś pierwszym "pomysłodawcą" który chce coś robić sam i szuka tylko pomocy a nie jak do tej pory było "zróbcie to za mnie" :)

Share this post


Link to post
Share on other sites

Porażka =] Ktoś ubiegł mnie ;) Hmm silnik graficzny został więc tylko tematykę można zmienić ;) Co do spraw technicznej odkryłem że o wiele wydajniej jest wyświetlać TSprity poprzez OmegaSprite niż jak twierdziłem na początku odpowiednie Itemki z OmegaImageList ;) Może dzisiaj uda się mi podrzucić edytor na przerobionym silniku :)

Share this post


Link to post
Share on other sites

Wg mnie powinieneś trąbić info, że chcesz zrobić taką grę, gdy masz chociaż 20% kodu lub masz jakieś inne projekty, którymi możesz się pochwalić :)

Share this post


Link to post
Share on other sites

to że jest jedna gra o tej tematyce to nie znaczy że nie może być drugiej ;)

Dokładnie, a przynajmniej o tematyce zbliżonej. Nie rób koniecznie Pokemonów, ale żeby motyw był ten sam - mamy swoich pupili, którymi walczymy, zdobywamy doświadczenie, wykonujemy zadania itp. Ewentualnie zrób coś z lepszą grafiką (rzut ten sam, bo do tej gry się nadaje, ale same obrazki mogłyby być w wyższej rozdzielczości).

Share this post


Link to post
Share on other sites

I tak po 5 dniach pracy nad silnikiem powstał pierwszy edytor. ;) Czas tworzenia mapy :

Edytor - Download (Mój serwer) - 2,69 MB

 

Potrafi :

- ustawiac teren / zrestartować

- wstawiac element / usuwać

- ustawiac "no go" kratki / usuwać - potrzebne one tylko dla serwera ( serwer czyta z tej mapy i pozwala bądz nie userowi na zadanie kroku)

Kratki z utraconym kolorem

- zapisuje do folderu data mape

- wczytuje ją ;)

 

Obrazek

 

Obrazek

 

Obrazek

 

Obrazek

 

Obrazek

 

Tworzy mape terenu, obiektów i klocków na które nie można wchodzić ;)

 

Wraz z edytorem powstał system map, więc teraz biore sie za wyswietlanie ludzi ;)

 

Mam nadzieję że przekonałem was troszkę do tego że nie jestem nOObem w tej dziedzinie ;) Programuje już 4 lata a mam ich 16 =] więc postanowiłem gre rpg stworzyć :) mam nadzieję że się uda.

 

 

PS:Zauważyłem że OmegaImageList wczytuję obraz max wysokości 2048 :) Więc musiałem obraz z teksturami dzielić i zapisywać w kawałkach w róznych itemach ;).. Ponadto algorytm AbcToDec zamieniający AA,AB,AC... itp np item =0 imageindex =1

 

Pozdrawiam

Share this post


Link to post
Share on other sites

Screeny bardzo ładne, że aż program chciałem włączyć i wtedy posypało mi się tysiące AV i na szczęście windows zabił go.

I wątpię aby to była wina Visty, bo inne programy z omegi otwiera

Share this post


Link to post
Share on other sites

×
×
  • Create New...