Warsztat » Forum

[Programowanie grafiki] BlitzBasic i inne - jest sens?

Oct 30, 2005 | Quavitor |
34 wypowiedzi na 3 stronach:
1 2 3
yfan
Nov 5, 2005

Odp: BlitzBasic i inne - jest sens?

[QUOTE]
Nie wiem ile ironii jest zawarte w słowach "wymiatacz z warsztatu" (...)
[/QUOTE]
Żadnej  ::).

Kiedyś na jakimś forum gamemakerowym ktoś rzucił "nie przesadzaj (machnięcie ręką), nie jestem jakimś wymiataczem z warsztatu" :D. Myślę, że jego podziw był autentyczny, ale na pewno za zabawne zjawisko uważam powszechną tu na forum pogardliwą niechęć do klików i tych prostych języków nastawionych na szybkie efekty. No rzeczywiście bardziej szlachetną drogą jest zaczynanie od konsoli... Myślę, że przedmówcy wystarczająco już tą kwestię rozjaśnili.
vashpan
Nov 7, 2005

Odp: BlitzBasic i inne - jest sens?

Wystarczy pod C++ podpiac dowolny wysokopoziomowy silnik i dostajemy to samo przeciez :) A "prostota" pisania ? Nie wiem, dla mnie, wychowanym na jezykach C-podobnych wszelkie BASIC'i maja dosc rozbuchana i wcale nie taka prosta skladnie IMO - dla mnie.

Czy poczatkujacy wiecej skuma ? Nie wiem, byc moze... Ale prawda jest tez taka, i to JEST niestety prawda, ze im ludzik zaczyna od wyzszego poziomu, tym programista gorszy, widac to na przykladzie Javy, C# - najlepsi programisci tych jezykow to ci ktorzy zaczynali z C++

Ale jezeli jest tak jak mowisz i to tylko hobby - to prosze bardzo, tez pogrywam czasami w gry stworzone w gamemakerach czy flashu - sa naprawde fajne... ( aczkolwiek nie chcialbym widziec jaki kod za to odpowiada ;) ) tyle ze no trzeba sobie uswiadomic ze nic ponad to, nie da sie wykonac, choc oczywiscie to co sie da - jest wystarczajace dla hobbystycznych czy casualowych zastosowan.
wyszo
Nov 8, 2005

Odp: BlitzBasic i inne - jest sens?

Cytat:

Wystarczy pod C++ podpiac dowolny wysokopoziomowy silnik i dostajemy to samo przeciez :) A "prostota" pisania ? Nie wiem, dla mnie, wychowanym na jezykach C-podobnych wszelkie BASIC'i maja dosc rozbuchana i wcale nie taka prosta skladnie IMO - dla mnie.


Wczoraj myślałem dokładnie tak samo jak Ty: "po co takie coś? C++ i silnik i mamy to samo". Ale poszukałem jakiś przykładowych programików na necie i w jednej chwili wszystko stało się jasne. Właśnie używając gotowego silnika i wysokopoziomowego języka nie dostajemy tego samego! Jeśli będziemy używać takiego na przykład irrlichta, to faktycznie - różnice nie będą tak wielkie (sam zobacz: http://irrlicht.sourceforge.net/tut001.html). Ale popatrz na przykład bazujący na preferowanym przeze mnie modelu:

Kod: 

#include "nGENE.h"

class MyFirstApp: public FrameworkWin32
{
public:
    MyFirstApp() {}
    ~MyFirstApp() {}

    void createApplication()
    {
        FrameworkWin32::createApplication();

        SceneManager* sm = Engine::getSingleton().getSceneManager(0);

        Camera* cam;
        cam = sm->createCamera(L"CameraFirstPerson", L"Camera");
        cam->setPosition(Vector3(0.0f, 2.0f, -5.0f));
        sm->getRootNode()->addChild(L"Camera", cam);
        Engine::getSingleton().setActiveCamera(cam);

        PrefabBox* box = sm->createBox(1.0f, 2.0f, 1.0f);
        box->setPosition(0.0f, 3.0f, 7.0f);
        Surface* surf = box->getSurface(L"Base");
        Material* mat = MaterialManager::getSingleton().getLibrary(L"default")->getMaterial(L"crate");
        surf->setMaterial(mat);
        sm->getRootNode()->addChild(L"Box", box);

        Engine::getSingleton().getRenderer().setLightEnabled(false);
    }
};

int main()
{
    MyFirstApp app;

    app.createApplication();
    app.run();

    app.shutdown();

    return 0;
}


A teraz popatrz na kod realizujący to samo (wyświetlenie sześcianu na ekranie, tu akurat w przeciwieństwie do przykładu powyżej będzie nieoteksturowany) w Blitz Basicu:

Kod: 

Graphics3D 800, 600, 16, 2

SetBuffer BackBuffer()

camera=CreateCamera()
light=CreateLight()

cube=CreateCube()
PositionEntity cube,0,0,5

While Not KeyHit(1)
    TurnEntity cube,.1,.2,.3

    UpdateWorld
    RenderWorld

    Flip
Wend

End


Kiedy zobaczyłem ten drugi przykład, to z automatu przestałem mieć jakiekolwiek pytania i wątpliwości dlaczego ludzie uważają drugie rozwiązanie za łatwiejsze i szybsze w pisaniu ;) Ten drugi kod zrozumie co bardziej rozgarnięty 10-cio latek ;) A pierwszy: wskaźniki, singletony, dziedziczenie, funkcje wirtualne... Gdybym miał syna w wieku 10-lat, nawet nie próbowałbym mu tego tłumaczyć :] Z resztą - wystarczy porównać objętość kodu. Wygląda na to, że wybierając Blitz Basica dostajemy szybkie i łatwe do nauki oraz używania używania narzędzie, ale niestety kosztem elastyczności i możliwości.
GLSL
Nov 8, 2005

Odp: BlitzBasic i inne - jest sens?

No wszystko pięknie Wyszo, ale co się dzieje w tych 3 funkcjach ?

CreateCamera()
CreateLight()
CreateCube()

Je tez trzeba przecież napisać, a wtedy wyjdzie na to samo, choć sama złożoność zapisu faktycznie może być mniejsza.

Riddlemaster
Nov 8, 2005

Odp: BlitzBasic i inne - jest sens?

Lobsang zwraca uwagę na istotną sprawę. Tak na prawdę nie ma znaczenia czy użyjemy Blitz Basica, Game Factory, Lua + C++ czy czegokolwiek innego. Ważne jest dla prostoty użytkowania to, żeby operować na jak najwyższym poziomie. I właśnie to robi większość tego typu narzędzi - ukrywa zbędne szczegóły implementacyjne, zostawiając nam jedynie to co niezbędne.

@Wyszo: jeden z tych przykładów wygląda znajomo ;)
desco
Nov 8, 2005

Odp: BlitzBasic i inne - jest sens?

Mi się jakoś podoba :) na sam początek może być ok xD
dieboy
Nov 8, 2005

Odp: BlitzBasic i inne - jest sens?

Ja radziłbym Ci wybrać to w czym na starcie lepiej Ci się piszę. Osobiście lubię po prostu programowanie - nie ważne w czym i czego, sprawia mi to przyjemność i to właśnie lubię :) Tak czy siak, życzę powodzenia.
desco
Nov 8, 2005

Odp: BlitzBasic i inne - jest sens?

Jeśli nie jesteś przygotowany na programowanie w c++ to weź się albo za Visual Basic albo właśnie Blitz Basic.
vashpan
Nov 8, 2005

Odp: BlitzBasic i inne - jest sens?

Cytat:

Lobsang zwraca uwagę na istotną sprawę. Tak na prawdę nie ma znaczenia czy użyjemy Blitz Basica, Game Factory, Lua + C++ czy czegokolwiek innego. Ważne jest dla prostoty użytkowania to, żeby operować na jak najwyższym poziomie. I właśnie to robi większość tego typu narzędzi - ukrywa zbędne szczegóły implementacyjne, zostawiając nam jedynie to co niezbędne.

@Wyszo: jeden z tych przykładów wygląda znajomo


Tak tez i ja mysle. Silnikow moze byc wiele, jedne mniej drugie bardziej wysokopoziomowe. Ktos rzeczywiscie musial zaimplementowac wczesniej caly framework na ktorym ten BlitzBasic sie opiera, a sadze ze go zaimplementowal wlasnie w C++ ;)

Zreszta w ogole uwazam ze programowanie w najwiekszej ogolnosci mozna sprowadzic do pisania coraz to kolejnych wartstw abstrakcji. Zaczynamy od procesora i sprzetu a konczymy wlasnie na takich blitz basicach czy Javie. Wszystko sprowadza sie do kolejnych poziomow zbudowanych na nizszych warstwach... :) Fajnosc C,C++ i D polega IMO na tym, ze mozemy pisac we wszystkich tych warstwach, uzywajac tego samego jezyka. ( pomijajac pewne szczegoly na najnizszym poziomie ktore trzeba napisac w stosunkowo niewielkiej ilosci asm ;) ) A to daje nam mozliwosc zwrocenia sie z warstwy wyzszej do nizszej, jakkolwiek przewaznie nie jest to potrzebne, czasami moze byc uzyteczne ;)

@desco: wydaje mi sie ze lepiej nauczyc sie jezyka ogolnego, najlepiej C++, bo jest nam latwiej uczyc sie kolejnych. Wiekszosc dzisiejszych jezykow wzorowala sie na C++, takze te BlitzBasiki ktore wiecej wlasnie z C++ czy Pascalem maja wspolnego niz ze starym Basikiem znanym z Atari, Commodore czy innych 8-bitowcow.
GLSL
Nov 9, 2005

Odp: BlitzBasic i inne - jest sens?

Cytat:
na pewno za zabawne zjawisko uważam powszechną tu na forum pogardliwą niechęć do klików i tych prostych języków nastawionych na szybkie efekty.
Zastanówmy się dlaczego tak jest, ja myślę, że na warsztacie można znaleźć głownie miłośników programowania jako sztuki, którzy programowanie traktują jako wyzwanie intelektualne, a sam efekt programowania jest jakby drugorzędny "nie ważne by złapać kurkę, ale by gonić ją, gonić" ;D Dlatego też być może na warsztacie z mniejszym szacunkiem są traktowane osoby, które używają prostszych narzędzi.

Natomiast typowy użytkownik klikaczy czy prostych języków typu Blitz to ktoś, kogo interesuje głównie rezultat końcowy, czyli po prostu działająca gra, zrobiona jak najszybciej, zaś sama zabawa w szachy pod nazwą C++ jest dla nich mniej interesująca :D Krótko mówiąc to sa dwie grupy mające odmienne interesy :)

Trochę uprościłem sprawę, ale mniej więcej tak to widzę :)
wyszo
Nov 9, 2005

Odp: BlitzBasic i inne - jest sens?

Cytat:

No wszystko pięknie Wyszo, ale co się dzieje w tych 3 funkcjach ?

CreateCamera()
CreateLight()
CreateCube()

Je tez trzeba przecież napisać, a wtedy wyjdzie na to samo, choć sama złożoność zapisu faktycznie może być mniejsza.


Gwoli wyjaśnienia - nie trzeba. http://www.blitzbasic.com/b3ddocs/command.php?name=createcamera&ref=goto
Ale to prawda, że jeśli będziemy chcieli robić cokolwiek z tą kamerą - na przykład zrobić z niej ChaseCam na potrzeby gry wyścigowej - kod będzie wygladał właściwie tak samo, bez względu na użyty język. Mimo to nie widziałem nigdy (wiem, mało widziałem) w C++ silnika, w którym inicjalizacja i tworzenie obiektów byłyby uproszczone do takiego stopnia że można renderowanie obracającego się sześcianu w 20 linijkach, z którego 7 jest pustych ;)

No w każdym razie, ja rezygnuję z dyskusji - na Blitz Basica nie mam zamiaru się przerzucać. Ale jak będę miał synka, to już wiem jaki język mu pokazać na początek :D

btw. Lobsang Rampa: całkowicie zgadzam się z powyższym postem :)
vashpan
Nov 9, 2005

Odp: BlitzBasic i inne - jest sens?

Lobsang Rampa: A ja poniekad nie ;) Mimo ze traktuje owszem programowanie jako sztuke to:

Cytat:

Cytat:
na pewno za zabawne zjawisko uważam powszechną tu na forum pogardliwą niechęć do klików i tych prostych języków nastawionych na szybkie efekty.
Zastanówmy się dlaczego tak jest, ja myślę, że na warsztacie można znaleźć głownie miłośników programowania jako sztuki, którzy programowanie traktują jako wyzwanie intelektualne, a sam efekt programowania jest jakby drugorzędny "nie ważne by złapać kurkę, ale by gonić ją, gonić" ;D Dlatego też być może na warsztacie z mniejszym szacunkiem są traktowane osoby, które używają prostszych narzędzi.

Natomiast typowy użytkownik klikaczy czy prostych języków typu Blitz to ktoś, kogo interesuje głównie rezultat końcowy, czyli po prostu działająca gra, zrobiona jak najszybciej, zaś sama zabawa w szachy pod nazwą C++ jest dla nich mniej interesująca :D Krótko mówiąc to sa dwie grupy mające odmienne interesy :)

Trochę uprościłem sprawę, ale mniej więcej tak to widzę :)


Moim zdaniem nie powinno tak byc i tak nie jest. Gdyby tak bylo komercyjni producenci gier dawno temu przerzuciliby sie na BlitzBasica i inne "proste" jezyki, bo one po prostu zwiekszaja produktywnosc. Szkoda tylko ze za tym nie idzie efekt koncowy wlasnie :) Obecnie z wiodacych jezykow ( niestety D nadal jest niszowy, a by sie nadal jak nigdzie indziej ) jedynie C++ zapewnia maksymalny stosunek produktywnosci do maksymalnej ( a tylko taka sie liczy w "high endowych" grach ) wydajnosci.
yfan
Nov 9, 2005

Odp: BlitzBasic i inne - jest sens?

Lobsang: Jestem powalnony taką szczerością, że tu nie chodzi o gry, tylko o programowanie :). Fakt, oczywiście, że się zgadzam i takie samo odnoszę wrażenie. Dla ścisłości nie mówiłbym o programowaniu jako sztuce, tylko inżynierii oprogramowania i pięknie dobrze zrobionych silników, co niekoniecznie musi mieć związek ze sztuką.

vashpan: oczywiście, że w c++ ostatacznie możesz zrobić więcej, ale podaj przykład gry z warsztatu, która ma solidny zabawny gameplay oparty na unikatowej technologicznej funkcjonalności, którą uzyskać możesz tylko grzebiąc w niskopoziomowym kodzie.
GLSL
Nov 9, 2005

Odp: BlitzBasic i inne - jest sens?

Zgadza się Vashpan, z tym że należy pamiętać, że użytkownicy prostych narzędzi oczekują głownie szybkiego rezultatu, godząc sie na mniejsza wydajność i technologiczną złożoność gry.

Cytat:
Lobsang: Jestem powalnony taką szczerością, że tu nie chodzi o gry, tylko o programowanie. Fakt, oczywiście, że się zgadzam i takie samo odnoszę wrażenie.
To jest tylko taka moja obserwacja, mogę sie mylić oczywiście :D

Cytat:
Dla ścisłości nie mówiłbym o programowaniu jako sztuce, tylko inżynierii oprogramowania i pięknie dobrze zrobionych silników, co niekoniecznie musi mieć związek ze sztuką.
Ale dlaczego, dobrze napisany kod jest piękny, a piękno to czysta sztuka :D
yfan
Nov 6, 2005

Odp: BlitzBasic i inne - jest sens?

Na fajną pupę też powiesz "ładna sztuka", ale to inne znaczenie tego słowa ;). To, że coś estetycznie cię zadowala, nie koniecznie sprawia, że coś jest sztuką. Ot dlatego :). Scisłość wyrażenia, mówię ci, ścisłość wyrażenia.
vashpan
Nov 7, 2005

Odp: BlitzBasic i inne - jest sens?

Cytat:

Lobsang: Jestem powalnony taką szczerością, że tu nie chodzi o gry, tylko o programowanie :). Fakt, oczywiście, że się zgadzam i takie samo odnoszę wrażenie. Dla ścisłości nie mówiłbym o programowaniu jako sztuce, tylko inżynierii oprogramowania i pięknie dobrze zrobionych silników, co niekoniecznie musi mieć związek ze sztuką.

vashpan: oczywiście, że w c++ ostatacznie możesz zrobić więcej, ale podaj przykład gry z warsztatu, która ma solidny zabawny gameplay oparty na unikatowej technologicznej funkcjonalności, którą uzyskać możesz tylko grzebiąc w niskopoziomowym kodzie.



Nie dam takiego przykladu ;p A niestety dlatego ze dla wielu gameplay = lepsza grafika - a to implikuje uzycie C++ jako najwydaniejszego jezyka wysokopoziomowego.

Mozna by tez podpiac pod ten przyklad roznorakie modele gameplayu bazujace na uzyciu duzej mocy obliczeniowej.
Strony:
1 2 3