Forumowe RPG!

0

Witam.
Wiem że takich tematów było już bardzo wiele (lecz niewiele projektów, z tego co wiem - do końca zostało doprowadzonych), nawet kiedyś do projektu @fasadin chciałem się dołączyć, ale uznałem że jescze mam za mało skilla.
Ale do rzeczy, troche już koduje, troche małych i średnich programów zrobiłem.
Chciałbym zweryfikować swoją wiedze oraz nauczyć sie pracować w grupie i korzystać z githuba.
Co do tematu projektu, moim zdaniem jest on dowolny, najlepiej byłoby, przedyskutować go z innymi (ofc, jeśli kogoś ta propozycja zainteresuje), aby wszystkim pasowało no i oczywiście nie rzucać się z motyką na słońce.
Co do tego kto będzie kierował projektem, to fajnie by było jeśli przyłączyłby ktoś bardziej doświadczony, oczywiście dobrze byłoby gdyby on poprowadził gdyż po prostu ma więcej doświadczenia, i młodzi mogliby się o wiele więcej nauczyć.
Więc, jeśli są ludzie, którym ten pomysł się podoba, niech piszą, gdyby udało zebrać się grupe - można czynić dalsze kroki jak uzgadnianie tematu projektu.

// edit
Co do poziomu, moim zdaniem może dołączyć się każdy, chciałbym aby grupa wyciągneła z tego jak najwięcej.
// edit 2
Po naradzie i kilku pomysłach, doszliśmy do wniosku że robimy gre.
Ruszamy. ( Zobaczymy co z tego wyjdzie )
Pare osób sie wykruszyło.
Lista osób.
@Trebuh
@Proxima
@Gwiazda021
@zgub4

Jeśli ktoś chce dołączyć to gg:52830364

Code-reviev;
@n0name_l
@spartanPAGE
@Satirev

//edit 3 ( pierwszy raz z gita korzystałem i troche sie zamotałem :D)
https://github.com/4programmers/4pRPG

CHANGELOG
10.02 Działająca mapka.
11.02 Działający system podnoszenia i wyrzucania itemów + dorzuciłem kod Trebuha.

TASKLIST
@Proxima Mapka, itemy, logger.
@Trebuh + @zgub4 Menu, GUI

0

Ja jestem wstępnie chętny.

0

Dołączę się chętnie jeżeli ten projekt nie będzie żadną grą ani (tak jak mówisz) nie porwiemy się z motyką na słońce.

0

Mogę się zgłosić do robienia delikatnego code-review.

0

Ja się chciałem zgłosić, ale jak widzę, że w projekcie wezmą udział "forumowi profesjonaliści" (:D) to chyba nie zbyt mam ochotę. :P

3

@Trebuh
Co to będzie - jescze nie wiem, na razie poczekajmy aby przynajmniej kilka osób zadeklarowało uczestnictwo.
Potem możemy dyskutować co i jak.
@ProCasher
Moim zdaniem dla każdego jest miejsce, w końcu jest on po to, abyśmy czegoś od nich sie nauczyli :)

0

Ja bym do projektu dołączył, gdybym wiedział co będziemy pisać. Nie chce, by projekt przerastał moje możliwości. Możecie mnie liczyć jako chętnego na 50%. :P

0

Czy mógłbym się dołączyć? Poziom zaawansowania w C++: Nowicjusz.

Pozdrawiam,
naomiEve :3

0

Witam, bardzo chciałbym dołączyć się do projektu. Jestem chętny aby rozwijać się, uczyć się nowych rzeczy od lepszych. Cenię sobie każde rady i ich nie olewam.

Pozdrawiam
Exilion

0

Jak potrzebujecie nooba w C++ to ja chętnie dołączę. GG: 51452078

0

Witam,

Jest jeszcze miejsce? :P Chciałbym przynajmniej popatrzeć jak wygląda praca w zespole, niekoniecznie brać czynny udział, chyba, że znajdzie się jakaś łatwa część do napisania ;)

Przy okazji, nie lepiej byłoby prowadzić rozmowy na skype? Dużo wygodniejszy komunikator w mojej opinii.

0

Co z tym gerrithubem? Widzę już trochę kodu naklepanego (bez przemyślanej architektury), ale nikt się nie bawi w pull-requesty; Jedyne co pozostaje to oznaczanie miejsc do popraw za pomocą issues, jednakże to byłoby trochę bolesne.

Spieszycie się strasznie ze swoimi zmianami, powstaje z tego jeden wielki śmietnik! Hola hola!

Eksperymentujemy lokalnie!

0

Ja wiem że nie biorę udziału ale: serio ktoś pushuje jakieś nie zmergowane zmiany do repozytorium? o_O

<<<<<<< HEAD
8	
9	=======
10	>>>>>>> dac6f12f4d2ce0c61620e83fe32d885242ec17df
11	int main()
12	{
13	    sf::RenderWindow window(sf::VideoMode(800, 800), "Tilemap");
14	    TileMap map;
15		Player player_;
16		map.loadFromXML("untitled.tmx");
17	<<<<<<< HEAD
18		map.loadFromXML("untitled.tmx");
19	    sf::View cam=window.getDefaultView();
20	=======
21		sf::View cam=window.getDefaultView();
22	>>>>>>> dac6f12f4d2ce0c61620e83fe32d885242ec17df
23		sf::RectangleShape r(sf::Vector2f(10,10));

Nie ma to jak kompilujący się trunk :D

0

Projekt nadal trwa.
Kto jest nadal z nami? wiem że @zgub4, @Exilion, @Proxima są obecni
Kto chce dołączyć do projektu?

7

https://github.com/browar666/projekt4p/blob/review/DialogSystem/Button.h#L1

#ifndef BUTTON_H
#define BUTTON_H

Dlaczego nie #pragma once?
To samo w reszcie plików.

https://github.com/browar666/projekt4p/blob/review/DialogSystem/Button.h#L4

#include <iostream>

Po co ten import tutaj?

https://github.com/browar666/projekt4p/blob/review/DialogSystem/Button.h#L11

void show(sf::RenderWindow &window); //wyswietla przycisk na podanym oknie

Bezsensowny komentarz.

https://github.com/browar666/projekt4p/blob/review/DialogSystem/Button.cpp#L2

// W tym folderze są kody Trebuha ale nie umiał wrzucić to ja wrzuciłem

Wtf?

https://github.com/browar666/projekt4p/blob/review/DialogSystem/Button.cpp#L7
https://github.com/browar666/projekt4p/blob/review/DialogSystem/Button.cpp#L10

sprite.setPosition(100, 100);
text.setPosition(100, 100);

Magic numbers.

https://github.com/browar666/projekt4p/blob/review/DialogSystem/Button.h
https://github.com/browar666/projekt4p/blob/review/DialogSystem/Dialog.h

class Button
class Dialog

Dlaczego tu nie ma jakiegoś wspólnego interfejsu?

https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.hpp#L4

struct Item

Dlaczego nie w osobnym pliku?

https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.hpp#L11

Item():x(0),y(0),gid(0),id(0),valid(0){};
Item(const sf::Uint32 _x, const sf::Uint32 _y, const sf::Uint32 _gid, const sf::Int32 _id, bool _v)
  : x(_x), y(_y), gid(_gid),id(_id), valid(_v) {};

Niespójne formatowanie.

https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.hpp#L14
https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.hpp#L16

//ctor
//assigment

Bezsensowne komentarze.

https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.hpp#L22

friend class TileMap;

friend to zuo.

https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.hpp#L26

void    printItems()

Jaki jest cel tej funkcji i czemu to nie jest przeciążony operator<<?

https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.hpp#L48

std::list<Item> playerItems;

Dlaczego nie std::vector?

https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.cpp#L8
Ktoś już to napisał: http://www.cplusplus.com/reference/algorithm/find_if/ + erase.

https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.cpp#L14
https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.cpp#L17

return 1;
return 0;

Coś nie tak jest z true/false?

https://github.com/browar666/projekt4p/blob/review/MapSystem/ItemManager.cpp#L19
Ten sam link co wyżej.

https://github.com/browar666/projekt4p/blob/review/MapSystem/StaticTiledMap.hpp#L64
Coś krzywo to wyszło. + Jak poprzednio, nic nie wnoszące komentarze i std::list (wrr..).

https://github.com/browar666/projekt4p/blob/review/MapSystem/StaticTiledMap.cpp#L9

// Ładuje mape z pliku tmx
// zapisuje pozycje *solidnych* kafli, tj. takich na które nie da
// się wejść do wektora.

Poczytajcie o doxygenie czy innym toolu do robienia docsów, suche komentarze są słabe.

https://github.com/browar666/projekt4p/blob/review/MapSystem/StaticTiledMap.cpp#L12

  1. Metoda na 140 linii, srsly?
  2. Dlaczego raz używacie std::cout a innym razem printf?
  3. Te #ifdef _DEBUG w co 5 wierszu brzydko pachną.

Ogolne uwagi:

  1. Wypracujcie jakąś konwencje odnośnie tego jak układać kod.
  2. Używajcie API!!!
  3. Nie piszcie tony komentarzy, które nic nie wnoszą w zupełności.
  4. Nie używajcie std::list, chyba ze jest jakiś mega powód (w 99,9% go nie ma).
  5. Serio wam jest potrzebne tyle informacji (duużo wyświetlania na std out), może zamiast tego lepiej podszkolić się w obsłudze debuggera?
  6. Skupcie się na pisaniu wiadomości w jednym języku.
  7. Serio po takim gorącym wątku na forum odnośnie tabów/spacji mieszacie jedno i drugie w kodzie? ;-)
  8. Starajcie się nie dawać tony ifów jak w mainie.
  9. Zainwestujcie w coś do review w końcu.
1
  1. Serio wam jest potrzebne tyle informacji (duużo wyświetlania na std out), może zamiast tego lepiej podszkolić się w obsłudze debuggera?

Nie czytałem jeszcze kodu (jak wrócę do domu to popatrzę w ogóle dokładniej na projekt), ale jeśli już to fajnie jest używać sensownego loggera zamiast pisać na stdout - przyszłościowo zawsze się na tym lepiej wychodzi niż rozrzucanie coutów losowo po kodzie.

3
Item():x(0),y(0),gid(0),id(0),valid(0){};
Item(const sf::Uint32 _x, const sf::Uint32 _y, const sf::Uint32 _gid, const sf::Int32 _id, bool _v)
  : x(_x), y(_y), gid(_gid),id(_id), valid(_v) {};

Niespójne formatowanie.

proponuję tak:

Item()
    : x(0)
    , y(0)
    , gid(0)
    , id(0)
    , valid(0)
{
}

Item(sf::Uint32 _x,
     sf::Uint32 _y,
     sf::Uint32 _gid,
     sf::Int32 _id,
     bool _v)
    : x(_x)
    , y(_y)
    , gid(_gid)
    , id(_id)
    , valid(_v)
{
}

i nie widzę potrzeby przekazywania intów przez const.

zresztą te sf::Uint32 są brzydkie. nie widzę powodu by nie dawać po prostu int i unsigned int.

3

UPDATE :P
Poprawione według wytycznych od @n0name_l oraz @Azarien + jest już klasa gracza (można chodzić), wczytywanie gracza z xml, wczytywanie danych itemków z xml, przełączanie mapek, oraz został dodany logger.
Ze zmian graficznych doszły animacje ( również wczytywane z xml ).
Teraz biore się za system NPC.
user image
https://github.com/browar666/projekt4p

0

Dołączam się do projektu ;)

0

A jak, dzieje się coś z projektem? Bo commitów nie widać.

2

(w komentarzu sie nie zmieści)

To słabe PR macie :P.

Da się gdzieś zobaczyć co planujecie etc, czy wszystko jest tylko wymieniane wewnętrznie (jakimiś mailami/wiadomościami prywatnymi)?
Bo jak na projekt forumowy, nikt na forum nie wie co się dzieje ;).

Jeśli nie macie dobrego miejsca na komunikację, myślę że nie byłoby problemu nawet ze stworzeniem jakiegoś podforum dla projektu gdzie by można było na jego temat dyskutować, ORAZ ludzie na forum by mogli śledzic projekt potencjalnie & intersować się nim :> (@Szczawik się w grobie japonii przewraca, initjatywa yosemite szczerzy zęby z pożółkłych kart historii 4p).
To tak do rozważenia.

Tak samo, może jakiś cotygodniowy (codzienny to pewnie za często) update stanu projektu (co doszło, co jest poprawione) ze screenem (jak post powyżej - http://4programmers.net/Forum/1114217).

Btw. pull requestów też nie ma, prawda? Trudo je robić bez commitów.

Wiem, narzekam - bo w sumie jestem ciekawy jak tam projekt idzie i czy jeszcze żyje :>.
Ale oczywiście jeśli wam dobrze idzie tak jak robicie to się nie wtrącam.

0

@msm Aktualnie czytam książke o wzorcach projektowych, i staram sie ogarnąć UML, bo to pierwszy mój projekt gdzie czuje potrzebe architektury kodu, i jednocześnie chcę sie czegoś nauczyć (tj. nie robić AŻ takiej fuszery jak polski hydraulik), więc jeszcze pare dni nowego kodu nie będzie, a ten który jest zostane prawdopodobnie mocno przeprojektowany, gdyż już w nim musiałem kombinować ze sztuczkami jak uchwyt do klasy w drugiej klasie, a to chyba średni pomysł jest.
Poza tym, projektowana jest fabuła, ale ogólnie gra zostanie wydana, nawet jeśli sam miałbym to kończyć, tego jestem pewny.
I w sumie fajnie byłoby jakby ktoś czasem w niego zerknął, ale jak na razie nie moge pokonać wielkiej bariery jaką jest gerrithub - a na gicie nikt sprawdzać nie chce :P
Ale ogónie o grze powiem tyle że miałbyć to hack and slash, ale patrząc na mape, zdecydowaliśmy że system walki będzie turowy, aby w gre można było pyknąć 5 minut dziennie i wyjść, no i podobają mi sie elementy strategii w walce turowej (ruchy wroga będą inteligentne, a nie oparte o rand()).

Natomiast co do komunikacji, gadamy na gg.
Z gitem jest BARDZO cienko, ludzie przysyłają mi kod i ja to pushuje(nie, @Trebuh :D ?), ale to wszystko jest do poprawy, dopiero zaczynamy.
Co do cotygodniowego upka, załatwione, upy będą regularnie co kilka dni.

A, i bym zapomniał, w grze na pewno nie zabraknie humorystycznego wątku o R ;)
No i ogólnie fajnie że ktoś sie tym projektem interesuje jescze.

0

Czytaj, wiedza na pewno nie zaszkodzi i się przyda. Tylko nie stosuj ich później na siłę, bo to przesada w drugą stronę (sam miałem taką tendencję do overengineeringu kiedyś...). Później tylko TDD i cały świat wasz :P. (Swoją drogą TDD wymusza, a przynajmniej bardzo mocno nalega na dobrą architekturę).

I w sumie fajnie byłoby jakby ktoś czasem w niego zerknął, ale jak na razie nie moge pokonać wielkiej bariery jaką jest gerrithub - a na gicie nikt sprawdzać nie chce :P

W sensie, fajnie by było gdyby zwykły szary człowiek (jak ja) mógł się dowiedzieć co się w projekcie dzieje :>. Na gicie można by też sprawdzać sprawdzać poszczególne commity (chociaż to mniej wygodne, ale.), tylko że commitów nie ma.

Wydaje mi się po prostu że więcej osób by coś w projekcie robiło gdyby była lepsza komunikacja & zarządzanie. A że jeszcze nie było (z tego co pamiętam) żadnego w 100% udanego i zakończonego projektu z 4programmers to też chciałbym żeby się Wam udało :>.

Natomiast co do komunikacji, gadamy na gg.

No właśnie, czyli w 100% niepubliczne. Ja (jako zwykły użytkownik forum) też bym chciał wiedzieć co ustalacie, jakie są plany na przyszłość, itp :>. Patrz na większe projekty OS - komunikacja nie odbywa się na zamkniętym forum, ale na jakiejś mailing liście (gdzie do maili da się też dostać i czytać przez internet, nie będąc zapisanym na nią), albo na forum.

0

@msm
Nope, to nie chodzi o to że nie chcemy - nie chcemy to my robić spamu :P
Bo nie wiemy czy innych ten projekt interere, i w sumie dlatego tu nie spamimy.
Jeśli dałoby się załatwić podforum, to kurde, będe dumny że takowe posiadadamy :D ( Będziemy spamić ile wlezie )

0

Na podstawie pobieżnej analizy struktury katalogów i plików a z tego co widzę piszecie pod Linux:

  1. nazwy katalogów z dużych liter???
  2. pomyślcie nad właściwą i łatwą do analizy strukturą katalogów.

Jak dla mnie ten C++ to syf, to jest jakaś gra, mnie się bardziej podoba Free Pascal ale to już sprawa indywidualnych upodobań.

Do rozważenia jest taka struktura katalogów i plików:

bin
  images
  data
  config
  logs
game ( to akurat plik wykonywalny pod linux a nie katalog)
lib
  target (to zależy od platformy na którą piszecie, nie wiem jak tam GCC ale FPC sam sobie to tworzy)
src
  models
  views
  presenters 
unittests   

I tam odpowiednio nazwane pliki. To powinno mieć jakiś porządek, żeby było łatwe do analizy dla Was. No i gra powinna mieć jakąś nazwę a i plik wykonywalny odpowiednio nazwany.

Pliki konfiguracyjne chyba najlepiej składować jako XML, choć format plików może być inny.
Próbowałem uruchamiać Main pod Linux i mi nie działa (permission denied)

0

Ja bym również był za stworzeniem podforum - z samych komentarzy do kodu (których nawiasem mówiąc jest albo albo za dużo, albo za mało) trochę ciężko się z orientować co i jak, a projekt bardzo ciekawy, więc fajnie byłoby go na bieżąco śledzić (głównie chodzi mi o nauczenie się xmla i sfml, no i doszkolenie się w c++.

//Edit: Hańba do końca życia...

0

Jakby ktoś chciał skompilować to trzeba podlinkować następujące pliki od tinyxmla.

  1. tinyxml.cpp
  2. tinyxmlparser.cpp
  3. tinyxmlerror.cpp
  4. tinystr.cpp
    Z dołączonego katalogu tinyxml, i standardowo pliki sfmla.
    Zrobie Makefila to go tu wrzuce zaraz.

Jak sie nie ma wgranego sfmla to
export LD_LIBRARY_PATH=<path-to-sfml-lib>/SFML-2.1/lib
i wtedy odpalać.

W załączniku ciut nowsza wersja + baaardzo zarysowa wersja klasy npc.

0

Na jakim poziomie ludzi potrzebujecie?

Pisałem kiedyś w SFMLu jakieś proste rzeczy, myślę czy by nie dołączył ale z takim githubem to dopiero bym zaczynał a nie chciałbym Wam tam nabruździć na tym repo.

2

Tak wygląda system do "składowania" przedmiotów. Może służyć jako plecak (znane jako eq ;p), handel z NPC i wiele więcej.
Można ustawić prawy oraz górny margines przedmiotu, pogrubienie obramowania chmurki, kolor chmurki i marginesy tekstu (można jeszcze więcej) ;)
ss_1.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1