eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › chrząszcz
Ilość wypowiedzi w tym wątku: 12

  • 1. Data: 2013-09-04 07:43:13
    Temat: chrząszcz
    Od: xuesheng <p...@g...com>

    Witam,

    Zrobiłem nowy release chrząszcza - to gra labiryntowa w C++, do ściągnięcia z
    http://sourceforge.net/projects/chrzaszcz/.

    Celem gry jest przejście przez cały labirynt. W każdej chwili gracz ma dwa klucze.
    Niekiedy brak odpowiedniego klucza do otwarcia drzwi. Aby zdobyć klucz trzeba
    wymieniać się z orkami mieszkającymi w labiryncie. To jakie klucze otrzymamy przy
    wymianie zależy od tego co mamy (czasami orki odmawiają wymiany). Wymiana jest zawsze
    odwracalna, wystarczy znaleźć tego samego orka i nacisnąć Enter odpowienią ilość
    razy.

    To nadal wersja beta. Gra jest deterministyczna. Mam z nią mały problem - niekiedy
    generuje labirynty, których nie da się przejść. Problem jest w klasie maze_generator.

    Wczytywanie gry jeszcze nie działa.

    Pozdrawiam,
    Paweł Biernacki


  • 2. Data: 2013-09-06 11:51:16
    Temat: Re: chrząszcz
    Od: xuesheng <p...@g...com>


    >
    > To nadal wersja beta. Gra jest deterministyczna. Mam z nią mały problem - niekiedy
    generuje labirynty, których nie da się przejść. Problem jest w klasie maze_generator.
    >

    Wrzuciłem wersję 0.0.8, algorytm generowania labiryntu jest poprawiony, są też różne
    poziomy trudności.

    Idea labiryntu jest taka:
    Labirynt dzieli się na n komnat (w programie nazywanych "chambers"), wszędzie tam
    gdzie to możliwe powstają drzwi łączące komnaty, maksymalnie jest ich n*(n-1)/2, ale
    może być mniej, zależnie od topologii. Tworzona jest macierz zero-jedynkowa
    zawierająca przejścia między komnatami. Jest ona kwadratowa i symetryczna. W
    programie nazywa się "matrix_of_transition_chambers". Ilość jedynek w tej macierzy to
    dwa razy ilość drzwi w labiryncie.

    Następnie generowane są wszystkie symetryczne macierze, które w miejscu jedynek
    macierzy przejścia mają zera lub jedynki, czyli wybieramy kombinacje. Ich ilość
    wynika z ilości wszystkich kluczy i symbolu Bernoulliego. Bierzemy tylko te z
    macierzy, które zawierają dwa lub mniej kluczy. Mówiąc po prostu generujemy
    kombinacje wszystkich par i jedynek kluczy (macierz zerowa też jest odrzucona). To
    arbitralna decyzja, chciałem żeby gracz miał w każdej chwili maksymalnie dwa klucze,
    ale nigdy zero. Wszystkie te macierze będę dalej nazywał macierzami kluczy.

    Następnie generowane są pary (komnata, macierz kluczy). Właściwy labirynt to tak
    naprawdę graf nieskierowany, w którym węzłami są te właśnie pary. Krawędzie grafu
    odpowiadają albo przejściu do innej komnaty z TYMI SAMYMI kluczami, albo wymianie
    kluczy w TEJ SAMEJ komnacie.

    Nawet na najniższym poziomie trudności, dla trzech komnat, ilość tych par może być
    np. 15. Dla siedmiu komnat wyszło mi 144 (to oczywiście wartość losowa). Przejście do
    innej komnaty jest możliwe zawsze, gdy mamy odpowiedni klucz. Natomiast wymiana
    kluczy w tej samej komnacie nie zawsze jest możliwa.

    W każdej komnacie, w której można wymienić klucze chodzi sobie ork, któremu odpowiada
    pewna relacja równoważności na zbiorze macierzy kluczy. Relacja ta dzieli ów zbiór na
    klasy równoważności. Wymienić się można tylko na macierze-reprezentantów klasy,
    której reprezentanta już mamy. Czyli ork pozwala nam odwrócić każdą transakcję, ale
    nie na każdą transakcję się zgodzi. Mimo to labirynt jest tak skonstruowany, że
    istnieje rozwiązanie, tj. istnieje ścieżka w grafie z każdej pary (komnata, macierz
    kluczy) do każdej innej pary.

    Przepraszam, jeśli trochę przynudzam. Tego typu labirynty wydają mi się ciekawe.
    Myślałem o grze, w której oprócz kluczy mamy jeszcze inne przedmioty, które
    zwiększają ilość węzłów w grafie. Wówczas orki mogłyby oferować różne transakcje,
    zależnie od tego czy mamy np. Święty Gral, czy nie.

    Pozdrawiam,
    Paweł Biernacki


  • 3. Data: 2013-09-10 12:17:39
    Temat: Re: chrząszcz
    Od: g...@g...com

    Hej,
    gdybys chcial pozwiedzac swoje labirynty w 3d,
    to swego czasu zaimplementowałem w C++/SDL/OpenGLu
    engine "portalowy". Zrodla sa do sciagniecia tutaj:
    http://sourceforge.net/projects/goose/files/goose/pr
    e-alpha-0.02/goose.tar.gz/download

    prawdopodobnie odpalenie tego wymagaloby nieco roboty,
    ale znow nie az tak duzo. (ja na najnowszym ubunciaku
    musialem dodac -lGLU do Makefile'a, i trzeba by bylo
    jeszcze gdzies w mainie wywolac glutInit -- i trzeba
    byc ostroznym, bo jak sie zepsuje odpalone w trybie
    pelnoekranowym, to moze zmienic rozdzielczosc i wtedy
    jest klopot)

    Opis swiata znajdziejsz w pliku game.cc. Idea polega
    na tym, ze tworzy sie sektory, do ktorych dodaje sie
    sciany (rownania plaszczyzn), a nastepnie "utozsamia sie"
    ze soba dwie rozne sciany w dwoch sektorach (w ten sposob
    tworzy sie portale). Punkty przeciecia plaszczyzn sa
    liczone automatycznie, wiec jedyne zmartwienie projektanta
    to zdefiniowanie rownania plaszczyzny.

    Od dawna nie rozwijam juz tego engine'u (a z cala
    pewnoscia nie w takiej postaci), ale pomyslalem sobie,
    ze moze moglbys zaprzac go do swojego projektu (bo
    z tego co zagladalem, to obsluge wyswietlania masz
    zrobiona dosc topornie -- zrzucasz animacje modeli
    z blendera i potem ladujesz obrazki klatka po klatce)

    Fakt, ze ja tutaj nie implementowalem zadnych animacji
    szkieletowych, i nawet nie ma mozliwosci ladowania modeli.
    Tym niemniej sporo roboty juz jest tam wykonane, i mysle,
    ze moglbys dosc niewielkim sumptem to wykorzystac.
    (W razie czego sluze pomoca)


    Pozdrawiam!
    MG.


  • 4. Data: 2013-09-10 20:01:23
    Temat: Re: chrząszcz
    Od: xuesheng <p...@g...com>

    W dniu wtorek, 10 września 2013 13:17:39 UTC+3 użytkownik g...@g...com
    napisał:
    > Hej,
    >
    > gdybys chcial pozwiedzac swoje labirynty w 3d,
    >
    > to swego czasu zaimplementowałem w C++/SDL/OpenGLu
    >
    > engine "portalowy".

    To doskonały pomysł, chrząszcz 3D. Przyszedł mi oczywiście do głowy i pewnie spróbuję
    to zrobić.

    >
    > jeszcze gdzies w mainie wywolac glutInit -- i trzeba
    >
    > byc ostroznym, bo jak sie zepsuje odpalone w trybie
    >
    > pelnoekranowym, to moze zmienic rozdzielczosc i wtedy
    >
    > jest klopot)
    >

    Miałem ten kłopot ;)


    > z tego co zagladalem, to obsluge wyswietlania masz
    >
    > zrobiona dosc topornie -- zrzucasz animacje modeli
    >
    > z blendera i potem ladujesz obrazki klatka po klatce)
    >

    Właśnie tak robię.

    >
    >
    > Fakt, ze ja tutaj nie implementowalem zadnych animacji
    >
    > szkieletowych, i nawet nie ma mozliwosci ladowania modeli.
    >
    > Tym niemniej sporo roboty juz jest tam wykonane, i mysle,
    >
    > ze moglbys dosc niewielkim sumptem to wykorzystac.
    >
    > (W razie czego sluze pomoca)
    >
    >

    Bardzo dziękuję. Może rzeczywiście przesiądę się do projektowania tego w OpenGl.

    Chrząszcz 0.0.9 potrafi już zapisać i wczytać grę, są też specjalne zdolności zależne
    od klasy (np. teleportacja dla wizardów). I są misje, gra jest dzięki nim nieco
    trudniejsza.

    W OpenGl - trochę już próbowałem, myślałem o wykorzystaniu modeli MakeHuman, nawet
    zrobiłem trochę skryptów dla Blendera (w Pytonie)... Ale to daleka droga.

    Pozdrawiam,
    Paweł Biernacki


  • 5. Data: 2013-09-10 20:40:28
    Temat: Re: chrząszcz
    Od: "Ghost" <g...@e...pl>


    Użytkownik "xuesheng" <p...@g...com> napisał w wiadomości
    news:ffc46f78-181c-411a-a244-ef6a8a18ec80@googlegrou
    ps.com...
    W dniu wtorek, 10 września 2013 13:17:39 UTC+3 użytkownik
    g...@g...com napisał:
    > Hej,
    >
    >> gdybys chcial pozwiedzac swoje labirynty w 3d,
    >> to swego czasu zaimplementowałem w C++/SDL/OpenGLu
    >> engine "portalowy".

    >To doskonały pomysł, chrząszcz 3D. Przyszedł mi oczywiście do głowy i
    >pewnie spróbuję to zrobić.

    Nie przestawaj. Powinienes dojechac co najmniej do "chrzaszcz 11D".


  • 6. Data: 2013-09-10 20:56:13
    Temat: Re: chrząszcz
    Od: xuesheng <p...@g...com>

    W dniu wtorek, 10 września 2013 21:40:28 UTC+3 użytkownik Ghost napisał:
    [...]
    >
    > >To doskonały pomysł, chrząszcz 3D. Przyszedł mi oczywiście do głowy i
    >
    > >pewnie spróbuję to zrobić.
    >
    >
    >
    > Nie przestawaj. Powinienes dojechac co najmniej do "chrzaszcz 11D".

    ;))))))

    Dobre.

    Może w zamyśle nieco sarkastyczne, ale po głębszym namyśle...


  • 7. Data: 2013-09-10 21:06:00
    Temat: Re: chrząszcz
    Od: "Ghost" <g...@e...pl>


    Użytkownik "xuesheng" <p...@g...com> napisał w wiadomości
    news:64a23199-bbef-464f-837a-6cdbb842c747@googlegrou
    ps.com...
    W dniu wtorek, 10 września 2013 21:40:28 UTC+3 użytkownik Ghost napisał:
    [...]
    >
    >> >To doskonały pomysł, chrząszcz 3D. Przyszedł mi oczywiście do głowy i
    >
    >> >pewnie spróbuję to zrobić.
    >
    >
    >
    >> Nie przestawaj. Powinienes dojechac co najmniej do "chrzaszcz 11D".

    >;))))))

    >Dobre.

    >Może w zamyśle nieco sarkastyczne, ale po głębszym namyśle...

    Wszechswiat jest 11 wymiarowy. W kazdym razie wg niektorych modeli.


  • 8. Data: 2013-09-11 09:33:15
    Temat: Re: chrząszcz
    Od: g...@g...com

    W dniu wtorek, 10 września 2013 20:01:23 UTC+2 użytkownik xuesheng napisał:
    >
    > > gdybys chcial pozwiedzac swoje labirynty w 3d,
    > > to swego czasu zaimplementowałem w C++/SDL/OpenGLu
    > > engine "portalowy".
    >
    > To doskonały pomysł, chrząszcz 3D. Przyszedł mi oczywiście
    > do głowy i pewnie spróbuję to zrobić.
    >
    >
    >
    > > jeszcze gdzies w mainie wywolac glutInit -- i trzeba
    > > byc ostroznym, bo jak sie zepsuje odpalone w trybie
    > > pelnoekranowym, to moze zmienic rozdzielczosc i wtedy
    > > jest klopot)
    >
    > Miałem ten kłopot ;)

    No wlasne, ja tez :)
    Ale rozumiem, ze w koncu udalo sie odpalic?
    (to jest tak zrobione, ze mozna robic rocket-jumpy
    i nawet wypuszczac grappling hooka, a potem go skracac
    walkiem od myszy)

    > > Fakt, ze ja tutaj nie implementowalem zadnych animacji
    > > szkieletowych, i nawet nie ma mozliwosci ladowania modeli.
    > > Tym niemniej sporo roboty juz jest tam wykonane, i mysle,
    > > ze moglbys dosc niewielkim sumptem to wykorzystac.
    > > (W razie czego sluze pomoca)
    > >
    > >
    >
    > Bardzo dziękuję. Może rzeczywiście przesiądę się
    > do projektowania tego w OpenGl.

    Ja zachecam, glownie dlatego, ze mam wrazenie, ze
    daloby sie to zrobic dosc latwo. No i odnioslem
    wrazenie, ze oba projekty sa napisane w podobnym
    stylu

    > Chrząszcz 0.0.9 potrafi już zapisać i wczytać grę, są też specjalne zdolności
    zależne od klasy (np. teleportacja dla wizardów). I są misje, gra jest dzięki nim
    nieco trudniejsza.

    Brzmi super.
    Z checia zobacze w wolnej chwili (jezeli uda mi sie takowa znalezc).
    Troche drazniace bylo dla mnie to, ze nie moglem odpalic gry zaraz
    po skompilowaniu, tylko musialem jej zrobic "make install", i to
    nawet nie do dowolnego katalogu wskazanego skryptowi ./configure
    przez --prefix, ale do domyslnego katalogu (/usr/local), bo w przeciwnym
    razie sie wykrzaczal, ze nie moze znalezc obrazkow.

    pozdrawiam!


  • 9. Data: 2013-09-11 20:18:00
    Temat: Re: chrząszcz
    Od: xuesheng <p...@g...com>

    W dniu środa, 11 września 2013 10:33:15 UTC+3 użytkownik g...@g...com napisał:
    [...]
    > Ale rozumiem, ze w koncu udalo sie odpalic?

    Tak.

    > Ja zachecam, glownie dlatego, ze mam wrazenie, ze
    >
    > daloby sie to zrobic dosc latwo. No i odnioslem
    >
    > wrazenie, ze oba projekty sa napisane w podobnym
    >
    > stylu

    ;))))

    [...]
    > Troche drazniace bylo dla mnie to, ze nie moglem odpalic gry zaraz
    >
    > po skompilowaniu, tylko musialem jej zrobic "make install", i to
    >
    > nawet nie do dowolnego katalogu wskazanego skryptowi ./configure
    >
    > przez --prefix, ale do domyslnego katalogu (/usr/local), bo w przeciwnym
    >
    > razie sie wykrzaczal, ze nie moze znalezc obrazkow.
    >

    A może nie skompilowałeś ponownie po ustawieniu prefiksu? Kompilator dostaje makro
    DATADIR i zmiana prefiksu bez ponownej kompilacji nic nie daje, to jest raczej nie
    zmienia katalogu z którego obrazki są czytane. Mnie się udało zainstalować do
    $HOME/TEST, tylko zrekompilowałem po ustawieniu configure --prefix=$HOME/TEST.

    Pozdrawiam,
    Paweł Biernacki






  • 10. Data: 2013-09-20 13:31:01
    Temat: Re: chrząszcz
    Od: xuesheng <p...@g...com>

    W dniu wtorek, 10 września 2013 13:17:39 UTC+3 użytkownik g...@g...com
    napisał:
    > Hej,
    >
    > gdybys chcial pozwiedzac swoje labirynty w 3d,
    >
    [...]

    Zrobiłem wersję 3d, tak na próbę, nazywa się chrząszcz2:

    https://docs.google.com/file/d/0B7KLeyeL98gIY3E5Q2cw
    YWw4Vjg/edit?usp=sharing

    Ale prawdę mówiąc nie jestem przekonany. Wygląda ładniej, bo to OpenGL, tylko w takim
    labiryncie łatwo się zgubić. Może trzeba dorzucić jakieś obiekty gwoli orientacji,
    albo mapę. W rzucie izometrycznym jest łatwiej, bo od razu widać które drzwi są
    otwarte no i gdzie się jest.

    Pozdrawiam,
    Paweł Biernacki

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: