• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Borland CPP Builder 6, a pisanie gier

VPS Starter Arubacloud
+29 głosów
2,083 wizyt
pytanie zadane 3 czerwca 2016 w Nasze poradniki przez niezalogowany
edycja 4 czerwca 2016

Potraktujcie ten wpis (pytanie) jako luźny artykuł, w którym ponarzekam sobie (znowu) na środowisko Borland CPP Builder 6. Chciałbym też zauważyć, że jest to głównie moja opinia (więc nie oczekujcie obiektywnego podejścia), a postanowiłem udostępnić szerzej naszej społeczności, bo coś mi się już robi jak widzę kolejne pytania dotyczące BugBuildera.

To, że osobiście zalecam go omijać szerokim łukiem wspominałem już nie raz, choćby w [CR Obiektowy C++ #7] i wciąż nie doczekałem się odpowiedzi na postawione tam przeze mnie pytanie: "Jakie Builder ma zalety nie licząc prostoty, której bliżej jest do prymitywności?" Ale mniejsza o to, jeżeli ktoś czuje potrzebę użycia tak prostego narzędzia, to w porządku; ale mam prośbę: nie róbcie w nim projektów, których zrobienie zajmuje więcej niż kilka godzin, bo się rozczarujecie i niepotrzebnie sfrustrujecie.

Nie piszę tego wpisu aby w jakiś sposób sabotować pracę pana Mirosława, po prostu chcę Was przestrzec przed używaniem narzędzia, które nie jest wspierane od ładnych paru lat, dokumentacja to jakaś kpina (nie trzyma obecnych standardów), a główne źródło wiedzy to jedna [książka] (2link od góry), oraz stackoverflow. Podkreślę to jeszcze raz: jeżeli nie chcecie zrobić czegoś więcej niż prymitywna aplikacja (żadnych gier!) to builder ma sens, w przeciwnym wypadku szkoda waszego czasu.

Builder, a Gamedev

Skoro już wiemy, że Builder nie nadaje się do tworzenia bardziej skomplikowanych programów, to łatwo się domyślić że o tworzeniu gier nie ma mowy (mówiąc szczerze MZ pokazał niemal jego wszystkie możliwości: na serio tego jest tak mało).

Nawiasem mówiąc, to do pisania gier nie użyłbym żadnego narzędzia RAPID, bo samo GUI Windowsowe jest przystosowane po prostu do czego innego (choćby mamy różnicę w renderowaniu aplikację składających się stricte z systemowych kontrolek i okien w których renderowane są gry). Gra stworzona w ten sposób na pewno będzie gorzej wyglądała (bez szans na poprawę), nie będzie dało się jej fajnie rozwinąć, prawdopodobnie będzie nawet gorzej działała, a samo udostępniane API nie będzie spełniało waszych wymagań, albo rozwiązania pewnych problemów będą istniały, ale ich wykonanie ostatecznie okaże się trudniejsze (np animacje na buttonach, albo customowy wygląd samych buttonów).

Także: Czy pisanie gier przy użyciu Buildera ma sens: Nie.

Czego użyć do napisania gry?

Wybór jest spory, jeżeli chcesz po prostu napisać grę bez wchodzenia w większe szczegóły (które de facto są przydatne w zrozumieniu pewnych mechanizmów) to [Unity] jest fajną opcją (ważna sprawa: zacznij od gier 2D).

Jeżeli nie boisz się zejść niżej, tzn jesteś człowiekiem, który chce faktycznie się uczyć, czy to samego programowania, czy to pisania gier to istnieją inne rozwiązania, np: [SFML] (dygresja: pisząc w tej bibliotece nauczyłem się obiektówki), [SDL], czy jeżeli jesteście masochistami to możecie pouczyć się openGL (tutaj jest wybitnie dużo matmy).

 

Czego użyć do napisania programu?

To że nie Builder, to już oczywiste. Osobiście polecam [Qt], który jest dość prosty w użyciu, ma dużo większe możliwości niż Builder, przyjaźniejszą licencję, jest aktywnie rozwijany (Builder w normalnej wersji też jest rozwijany, ale społeczność tego forum skupiła się na wersji 6) i co ważne: jego znajomość coś znaczy na rynku pracy bo się go po prostu używa.

 

Wszelki feedback mile widziany

4
komentarz 3 czerwca 2016 przez Arkadiusz Waluk Ekspert (287,550 p.)
Wartościowy wpis, szczególnie może przydać się osobom, które dopiero zaczynają lub szukają alternatywy dla Buildera. Jest po części opinią, ale osoby znającej się w temacie (w końcu ekspert C/C++) i w dalszej części przekazuje konkrety. Tak więc pozwoliłem sobie chociaż na trochę "podpiąć" go na stronie głównej - niech dotrze do jak największej ilości osób ;)
komentarz 29 sierpnia 2016 przez dawid2002 Mądrala (5,190 p.)
szkoda że Pan Mirosław nie uczył programowania na swoim kanale programowania Visual Studio lub jakieś inne środowisko.

 

o i jeszcze jedno jeśli nie podoba ci się wygląd button'ów w builder'ze to zamiast ich możesz użyć Label'ów w ostatnim odcinku programowania obiektowego c++ Pan Mirosław pokazał takie zastosowanie.
komentarz 30 sierpnia 2016 przez niezalogowany
Tia, tylko że to stosowanie labeli do innych buttonów to raczej workaround niż pełnoprawne rozwiązanie

5 odpowiedzi

+2 głosów
odpowiedź 4 czerwca 2016 przez maly Nałogowiec (37,190 p.)

mówiąc szczerze MZ pokazał niemal jego wszystkie możliwości: na serio tego jest tak mało

Jak rozumiem jesteś ekspertem od Buildera C++ 6.

Jakie Builder ma zalety nie licząc prostoty, której bliżej jest do prymitywności

 To samo co wyżej. O Builderze można powiedzieć wiele ale napewno nie że jest prymitywny.

 

Podstawową jego wadą kulawy kompilator który ma problemy z kompilcją nawet w standardzie C++99 a co za tym idzie, niema możliwości wykorzystania w nim praktycznie żadnych zewnętrzych bibliotek.

Nie mam zielonego pojęcia jakim cudem Builder, który był tworzony wyłącznie dla bazodanowych aplikacji i ogólnie aplikacji biznesowych, został uznany jako środowisko przeznaczone dla początkujących.

+1 za uświadamianie że nie ma sensu pakować się w tak stare technologie.

1
komentarz 4 czerwca 2016 przez efiku Szeryf (75,160 p.)
"Nie mam zielonego pojęcia jakim cudem Builder, który był tworzony wyłącznie dla bazodanowych aplikacji i ogólnie aplikacji biznesowych, został uznany jako środowisko przeznaczone dla początkujących."
To może podeślemy ministerstwu edukacji link do tego forum ? :D Kto wie..
komentarz 4 czerwca 2016 przez niezalogowany
Nie, nie jestem ekspertem ale z niego korzystałem, czytałem manuale w ramach pomocy innym na forum i jest tego po prostu mało w stosunku do giganta od Nokii jakim jest Qt. I może faktycznie trochę zbyt wyolbrzymiłem jego prymitywność, ale pierwotnie ten wpis nie miał trafić do poradników, a do offtopu jako wyraz protestu przeciwko używania go do pisania gier (dopiero za sugestią Arka przeniosłem go tutaj).
+1 głos
odpowiedź 3 czerwca 2016 przez draghan VIP (106,230 p.)

Dobry wpis, plusuję.

a postanowiłem udostępnić szerzej naszej społeczności, bo coś mi się już robi jak widzę kolejne pytania dotyczące BugBuildera.

Nie jesteś sam. :) Ale ludzie nie słuchają, jak się im mówi, żeby zostawili Buildera i użyli czegoś współczesnego. Znam tylko jeden przypadek na tym forum, nicku niestety nie pomnę, ale zanotowałem w pamięci że ktoś faktycznie się wziął i przepisał (albo chociaż zaczął) swój projekt na Qt (albo wxW, nie jestem w 100% pewien).

Do wad Buildera należy również zaliczyć monoplatformowość. To jest narzędzie jedynie dla MS Windows. Rozumiem, że ktoś programuje dla pasji i niekoniecznie go to obchodzi, ale odcina się tym od szerokiego grona użytkowników innych systemów operacyjnych.

Co tu jeszcze... Dorzucę może jeszcze dwie alternatywy. Dla gier Allegro - choć API jest bardziej C-style, niż C++-style. Dla aplikacji okienkowych - wxWidgets.

komentarz 4 czerwca 2016 przez efiku Szeryf (75,160 p.)
Niestety jakiś geniusz wymyślający podstawę programową dla Technik informatyk wpadł na pomysł, że Builder jest "łatwy" jako wstęp do OOP. (Bzdura) Temu ciągle są tutaj pytania o to i będą.
Też miałem projekt w tym napisać, ale przeniosłem się na SFML.
komentarz 4 czerwca 2016 przez draghan VIP (106,230 p.)
Cooooo...? o.O Zaskoczyłeś mnie. To chyba doszło w "nowej" formie kształcenia? Ja nie miałem takich cudów.
komentarz 4 czerwca 2016 przez efiku Szeryf (75,160 p.)
No u mnie to już było w podstawie :)
komentarz 4 czerwca 2016 przez draghan VIP (106,230 p.)
Kiedy robiłeś dyplom?
0 głosów
odpowiedź 3 czerwca 2016 przez Avernis Nałogowiec (27,400 p.)

czy jeżeli jesteście masochistami to możecie pouczyć sięopenGL (tutaj jest wybitnie dużo matmy).

Widać jestem masochistą, a zarazem sadystą dla humanistów(gdyby nie korekta na stronie, to by było to mnóstwo błędów (choćby mnóstwo przez "u")) . Poza tym jeśli ktoś lubi programować niskopoziomowo, to szeroko polecam tą bibliotekę(wystarczy ją sobie opakować w funkcje). 

1
komentarz 4 czerwca 2016 przez niezalogowany
Też uważam że oGL jest fajny, bo trzymamy się bardzo blisko karty graficznej, jednakże nie uważam tego jako dobry wybór na start, szczególnie jeżeli ktoś jest raptem po kursie podstawowym programowania
komentarz 4 czerwca 2016 przez Avernis Nałogowiec (27,400 p.)
Ja jestem po kursie, po 2 kursie: https://www.youtube.com/user/MinDControlDx

Po sfmlu, więc chyba mogę xD
komentarz 4 czerwca 2016 przez niezalogowany
Nie mówię że nie można, po prostu ogl jest trudny dla początkujących ;)
komentarz 4 czerwca 2016 przez Avernis Nałogowiec (27,400 p.)
Jak się umie obsługiwać ogl'a to jest bardzo fajny
0 głosów
odpowiedź 4 czerwca 2016 przez Mirosław Zelent Nałogowiec (34,750 p.)

Witam. Przyczyny wyboru środowiska RAD w tej konkretnej serii wyjaśniłem już w odcinku tutaj: ZOBACZ wystarczy wysłuchać ze zrozumieniem. Builder stanowi najłagodniejsze wdrożenie się do stosowania zasad obiektowości i dlatego jest świetnym narzędziem dydaktycznym w kursie "Obiektowy C++", który ma wykształcić podstawy myślenia obiektowego, czyli położyć fundament pod rozumowanie abstrakcyjne w kategoriach klas /obiektów /konstruktorów /przyjaźni /dziedziczenia /polimorfii. Predefiniowane klasy VCL ułatwiają szybką wizualizację obiektowości w praktyce i dlatego niejednokrotnie stosuje się Buildera mimo jego leciwości w wielu programach nauczania. Samo obcowanie z inspektorem obiektów uczy myślenia w kategoriach obiekt/właściwości/zdarzenia. Nigdy nie sugerowałem, że narzędzie to jest przeze mnie uważane za najlepsze do tworzenia gier (to nie jest kurs tworzenia gier tylko kurs obiektowy) - kiedy stworzę serię na temat budowania światów w grach, to nie będę w niej na pewno używał Buildera / Delphi / VCL :)

Dziękuję za wpis - jeśli ktoś miał problem ze zrozumieniem, że kurs obiektowości to co innego niż kurs tworzenia gier (wystarczy przeczytać nazwę/ opis kursu/ nie pomijać odcinków wstępnych z wyjaśnieniem i instalacją), to myślę skorzysta z tej informacji Szymona. Osobiście polecam przepracować Buildera tuż po poznaniu klas/obiektów w teorii, a jeszcze zanim wkroczy się w świat allegro, OpenGL, Unity czy QT - zajmie to tydzień, może dwa, a używanie inspektora obiektów i zdarzeniowości dobrze poukłada w głowie cały ten abstrakcyjny, obiektowy porządek rzeczy. Builder działa tylko na Windows, ale jest to narzędzie do nauki, a nie docelowe środowisko, w którym zamierzamy się specjalizować, pisać wielkie aplikacje. To tylko etap nauki, która jest prowadzona mądrze, bo stopniowo i z dobrą wizualizacją.

Czy można naukę poprowadzić inaczej - bez Buildera? Można, oczywiście. Ale według mnie to właśnie taka ścieżka jest optymalna. Nie trzeba wiele czasu, aby po przepracowaniu tutoriali z Obiektowego C++ zachcieć pójść dalej, bo bardzo szybko odczujemy "związane ręce" - pojawia się naturalna intuicja, że Builder to był tylko leciwy, dydaktyczny, interaktywny środek dydaktyczny. Nie sądzę, aby ktokolwiek po odcinku 11 serii uważał Buildera za środowisko, w którym powstają najnowsze gry, w którym nad wszystkim ma się pełną kontrolę i które wybierze za swoją jedyną specjalizację na rynku pracy :) 

Postanowiłem wyjaśnić swój punkt widzenia, myślę że te moje słowa będą wystarczające do zrozumienia dlaczego taki wybór padł w serii Obiektowy C++. Pozdrawiam!

 

1
komentarz 4 czerwca 2016 przez draghan VIP (106,230 p.)

Witaj. :)

Przyczyny wyboru środowiska RAD w tej konkretnej serii wyjaśniłem już w odcinku tutaj: ZOBACZ wystarczy wysłuchać ze zrozumieniem.
(...)
Czy można naukę poprowadzić inaczej - bez Buildera? Można, oczywiście. Ale według mnie to właśnie taka ścieżka jest optymalna.

Rozumiem Twoje podejście. Jest prawdą to, że próg wejścia w tę technologię jest bardzo niski - ot, wystarczy zainstalować i działać. Jednak można było zrobić to odrobinę lepiej, bez ponoszenia praktycznie żadnych kosztów. I nie odbierz tego jako atak na Twoją osobę, czy sposób nauczania, czy jakkolwiek inaczej negatywnie.

Twój dotychczasowy kurs C++ był prowadzony w Code::Blocks, który posiada własne narzędzie RAD, wxSmith. Wystarczyło przygotować* skompilowaną wersję biblioteki wxWidgets dla Twoich słuchaczy, żeby jedynie przerzucili pliki w odpowiednie miejsce na dysku i ustawili ścieżki linkera i kompilatora. I już. Byłaby współczesna technologia, ze świetną dokumentacją, w dodatku w narzędziu, które było wykorzystane w dotychczasowym kursie i zostało poznane przez Twoich słuchaczy. :)


*- Tak na marginesie, sądzę że już w ogóle świetnym krokiem dydaktycznym byłoby pokazanie, jak własnoręcznie skompilować tę bibliotekę - bo proces budowania większości bibliotek jest do siebie zbliżony, a że Twoi słuchacze zechcą pracować dalej w C++, używając coraz to innych technologii, zakładałeś od początku.


Nie sądzę, aby ktokolwiek po odcinku 11 serii uważał Buildera za środowisko, w którym powstają najnowsze gry, w którym nad wszystkim ma się pełną kontrolę i które wybierze za swoją jedyną specjalizację na rynku pracy :)

Może powinieneś był to zaznaczyć w kursie, jeśli tego nie zrobiłeś. Młodzi programiści nie do końca są świadomi tego, co dla bardziej doświadczonych jest oczywiste. Widzą, że ich nauczyciel, który przecież świetnie tłumaczy i wie co robi, uczy ich pracy w Builderze (w dodatku tworząc gry, jeśli mnie pamięć nie myli). Zaczynają tworzyć w tym całkiem spore projekty. Tworzą i w pewnym momencie utykają na naturalnych ograniczeniach tego środowiska.
Chwali się to, że robią coś własnego, ale jeśli wybraliby inną technologię - mogliby bez przeszkód dokończyć swoje projekty. Ogromną rolę pełni również wybrakowana dokumentacja - ktoś już o tym wspominał - a praca z dokumentacją powinna być podstawową umiejętnością programisty.

Pozdrawiam również. :)

komentarz 4 czerwca 2016 przez niezalogowany

Problem jest taki, że zanim napisałem swój komentarz pod CR odcinka o tym "dlaczego builder?", to starałem się znaleźć argumenty, w których miałby wygrywać z innymi narzędziami tego typu (np z Qt, zauważmy że poprawna nazwa posiada małe "t") i poza tym że jest prosty nie potrafiłem znaleźć żadnych innych pozytywnych różnic.

Nie sugeruję również, że pański kurs jest o tworzeniu gier, czy jego część została stworzona w tym kontekście. Mój wpis ma jedynie na celu podkreślenie faktu, że tak nie jest, bo niestety spora część pańskich widzów odebrała to inaczej i starają pisać się w nim gry (ostatnie pytania: [1] [2] [3]).

Dla mnie dużo bardziej naturalnym sposobem pokazania idei obiektowości byłoby skorzystanie właśnie z narzędzia umożliwiającego tworzenia gier (a na same gry powoływał się Pan nieraz w przykładach) i mam wrażenie, że napisanie jakiejś prostej gry narzędziem napisanym obiektowo zmuszającym tym samym do pisania w podobnym stylu, byłoby dużo bardziej pouczające niż skorzystanie z narzędzia, które polega na przeciąganiu obiektów (ale to tylko moje zdanie, jednocześnie zdaję sobie sprawę że człowiek chce osiągnąć widoczny efekt dość szybko bez zbędnego nakładu pracy).

komentarz 21 stycznia 2018 przez holahopper Nowicjusz (100 p.)
Czy Builder wygrywa z Qt? No dla mnie trochę tak, bo nie mam 300 dolarów na miesięczną subskrypcję.
komentarz 21 stycznia 2018 przez draghan VIP (106,230 p.)
Qt dostępne jest również z wolną licencją (L)GPL. ;)
komentarz 21 stycznia 2018 przez holahopper Nowicjusz (100 p.)
No chyba, że tak.
0 głosów
odpowiedź 4 czerwca 2016 przez marcin_w Gaduła (3,190 p.)
Wydaje mi się, że nie powinieneś dawać linka do książki C++ Builder, ponieważ jest chroniona prawami autorskimi.
komentarz 4 czerwca 2016 przez niezalogowany
W sumie racja, zamieniłem a link do wyszukiwania Google

Podobne pytania

–1 głos
1 odpowiedź 399 wizyt
pytanie zadane 3 czerwca 2016 w C i C++ przez krecik1219 Nowicjusz (180 p.)
+1 głos
1 odpowiedź 453 wizyt
+1 głos
1 odpowiedź 135 wizyt

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...