Jump to content

Archived

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

TSr

[pomysł] Symulator mechaniki 2D i walki robotów

Recommended Posts

Pomysł “męczy” mnie już od dłuższego czasu. Początkowo myślałem tylko o prostym programie do rozwiązywania zadań z mechaniki, ale może to być znacznie ciekawsze :twisted: Chcę stworzyć symulator mechaniki 2D, który możliwie dokładnie odzwierciedlał by rzeczywistość. Projekt jest na tyle rozległy, że sam raczej nie mam szans na jego zrealizowanie.

Projekt składa się z trzech bardzo ogólnych części:
1.Symulator fizyki 2D
2.Silnik rozgrywek
3.Edytory (robotów, materiałów, map i inne)

:idea: Ad1. Symulator fizyki 2D
:arrow: Każde ciało “wpuszczone” na arenę zachowuje się zgodnie z prawami fizyki (grawitacja, magnetyzm, lepkość, zderzenia, siły bezwładności i co tylko się da).

:arrow: Zdefiniowane zostaną podstawowe elementy, z których będzie budowało się owe roboty. Np: pręty, siłowniki, silniki, cięgna, sprężyny, przyssawki, uchwyty i inne.
Każdy element będzie wykonany z jednorodnego materiału, który będzie posiadał swoje właściwości (wytrzymałości, gładkość, twardość).
Elementy łączone będą ze sobą za pomocą połączeń przegubowych.

:arrow: Arena (miejsce akcji) będzie przypominała wyglądem gry takie jak Worms czy Soldat. Jeszcze nie wiem czy samą arenę będzie dało się odkształcać czy będzie niezniszczalna. Akcja może dziać się w różnych ośrodkach (powietrze, woda, olej itd.) i przy różnej grawitacji. Wprowadzić można warunki atmosferyczne (wiatr, temperatura). Areny pełne będą niespodzianek. Tu czy tam może uderzyć piorun. Ukryte zapadnie. Pola magnetyczne. Co kto wymyśli jeszcze wink.gif

:arrow: Zbudowanym robotem sterować będzie można “ręcznie”, definiując odpowiednio ruchy (lub całe cykle ruchów) napędów za pomocą klawiatury i/lub myszki. Będzie też możliwość pisania skryptów AI.

:idea: Ad2. Silnik rozgrywek
“Czystym” symulatorem chyba długo nikt się nie będzie bawił więc można zrobić z niego całkiem niezłą gierkę.
Pomysły mam takie:
Wyścigi – na specjalnie przygotowanej arenie. Kto pierwszy z punktu A do B, albo wyścig na okrążenia.
Walki robotów (wg mnie najciekawsze :> ) - materiały, z których budowało by się maszyny miały by określone wytrzymałości na różne parametry tak więc będzie można je niszczyć. Pole do popisu ogromne. Można też zastosować wirtualnych sędziów do oceny walki (np opartych na skryptach).

:idea: Ad3. Edytory
:arrow: Materiałów – Definiowanie materiałów, z których wykonane będą elementy.
:arrow: Elementów – Tworzenie części składowych do budowy robotów.
:arrow: Robotów – projektowanie robotów z gotowych elementów oraz definiowanie klawiszologii, sposobu ruchu i inne.
:arrow: Map – projektowanie konkretnych aren.


Założenia techniczne
:arrow: Język programowania: Object Pascal (FreePascal, Lazarus)
:arrow: Systemy operacyjne: Linux, Windows
:arrow: Inne: Technologia COM (jeszcze nie wiem jak z tym na Linux'ie jest), grafika - SDL, dźwięk - OpenAL (lub też SDL lub inna)

Czekam na uwagi, pomysły, propozycje i ... chętnych do pracy, którym podoba się pomysł 8)

Share this post


Link to post
Share on other sites
no no no... pomysł mi się podoba.
Nie życzę ci źle ale moim zdanie to będzie naprawdę ciężkie do zrealizowania.
Mam nadzieje że ci się uda i dasz się tym pobawić :]

Share this post


Link to post
Share on other sites
Witam !
No muszę przyznać, że pomysł ciekawy smile.gif
Tylko tak samo jak destruction obawiam się, że mogą wystąpić spore problemy np. z napisaniem silnika fizycznego i szybkością działania, ale masz ten komfort że piszesz w 2D więc jest to możliwe.

Pisałeś już kiedyś tego typu rzeczy ?
Daj jeszcze jakieś swoje prace/wcześniejsze projekty/dokładniejsze informacje(bo to jest tylko wynik jaki chcesz osiągnąć), w ciemno to raczej nikt o zdrowych zmysłach się nie przyłączy smile.gif.
Życzę powodzenia.

Pozdrawiam
Spider ^*^

Share this post


Link to post
Share on other sites
jak będzie ustawiona mapa? zakładamy, że mapa jest pozioma, czy pionowa?
różnica jest znaczna- przy mapie poziomej nie bierzemy pod uwagę np. grawtacji (bo nie można się unieść nad mapę)
Z kolei w przypadku mapy pionowej nie będzie można przejść przed/za przeszkodą. ma to znaczenie np. w starciach z piorunami.

Share this post


Link to post
Share on other sites
Projekt bardzo śmiały i równie ciekawy, życzę powodzenia! Jednak jak moi poprzednicy uważam, że to będzie niezły hardkor ;-)

Share this post


Link to post
Share on other sites
To na razie brakuje śmiałków? laugh.gif

CYTAT(Spider100)Pisałeś już kiedyś tego typu rzeczy ?
Daj jeszcze jakieś swoje prace/wcześniejsze projekty/dokładniejsze informacje(bo to jest tylko wynik jaki chcesz osiągnąć), w ciemno to raczej nikt o zdrowych zmysłach się nie przyłączy smile.gif.

Pisałem, ale nie aż tak skomplikowane. Od efektu końcowego właśnie zaczynam. Chcę w miarę precyzyjnie określić co ma być stworzone, a sposobami i metodami zająć się [b]puźniej.
To będzie raczej otwarty projekt i nie wiem co masz na myśli pisząc \"w ciemno\". To nie jest tak, że zbiera się ekipa i od razu zaczynamy klepać kod. Najpierw trzeba trochę poplanować.

Co do szczegółów technicznych to cały projekt będzie podzielony na wiele małych modułów. Zapewne będą to biblioteki [b]dołanczane dynamicznie...

CYTAT(ktoś)jak będzie ustawiona mapa? zakładamy, że mapa jest pozioma, czy pionowa?

Nie bardzo rozumiem o co chodzi :?
Mapa (arena) będzie mogła być dość dowolna. Czyli taka jaką ktoś sobie wymyśli smile.gif Grawitacja może wystąpić bądź nie. Może być punktowa lub jednorodna. Wszystko ma być w pełni konfigurowalne.

[quote] uważam, że to będzie niezły hardkor wink.gif [/quote]
Ja również tak uważam laugh.gif , ale Ambicja ponad wszystko :twisted:
Projekt nie ma na celu jedynie osiągnięcie założeń, ale także doskonalenie swoich umiejętności 8)

Share this post


Link to post
Share on other sites
CYTAT(TSr) [quote]
jak będzie ustawiona mapa? zakładamy, że mapa jest pozioma, czy pionowa? [/quote]

Nie bardzo rozumiem o co chodzi :?
Mapa (arena) będzie mogła być dość dowolna. Czyli taka jaką ktoś sobie wymyśli smile.gif Grawitacja może wystąpić bądź nie. Może być punktowa lub jednorodna. Wszystko ma być w pełni konfigurowalne.

Ktosiowi (jak to sie odmienia? biggrin.gif ) chyba chodziło o to czy mapa jest widziana od boku (tak jak np. soldat) czy od gory (np. gta1-2).

Co do samego projektu to wydaje sie byc bardzo ciekawy, ale ukonczenie go (dojscie do 'uzywalnej' wersji) bedzie, jak to poprzednicy okreslili, nizlym hardkorem.
Szczerze mowiac to chyba bardziej interesuje mnie samo granie (czyli programowanie AI) niz pisanie tej gry - jesli juz to chyba tylko w tym pierwszym bylyby jakies efekty tongue.gif

Share this post


Link to post
Share on other sites
Mnie interesuje dokładnie to, co Wosiedem ;-) ale to tylko świadczy dobrze o projekcie, bo ludzie czekają na wersję finalną i deklarują, że z chęcią by się tym 'pobawili' ;-)

Share this post


Link to post
Share on other sites
[quote] To będzie raczej otwarty projekt i nie wiem co masz na myśli pisząc \"w ciemno\". [/quote]

Mam na myśli stratę czasu ;p.
Często wyobrażamy sobie takie rzeczy, których tak na prawdę nie jesteśmy w stanie osiągnąć. Założenie że „jeszcze się tego nauczę” nie są najlepsze do grupowej pracy :-).

Share this post


Link to post
Share on other sites
Cokolwiek grywalnego z całą pewnością nie pojawi się zbyt szybko. Tak więc jest to zajęcie dla wytrwałych. Też chciałbym się już pobawić gierką, ale siłą rzeczy się nie da laugh.gif Nawet jeśli się projekt nie uda (odpukać!) to wg mnie nie będzie to stratą czasu smile.gif
Na razie poszukuję kogoś potrafiącego programować obiektowo w Pascalu i znającego podstawy Linux'a. Puźniej jeśli projekt pozostanie otwarty wink.gif każdy będzie mógł się przyłączyć. Wymagania nie są duże, a resztę potrzebnej wiedzy można zdobywać w trakcie prac - wbrew temu co pisze Spider, ale wiem o co chodzi wink.gif Mój zapał nie jest tym, który posiada osoba nie znająca się na rzeczy i myśląca, że zaraz zabierze sie za zrobienie własnej wersji Quake'a albo innego znanego tytułu biggrin.gif - ja mam konkretną koncepcję i wizję :!:

Share this post


Link to post
Share on other sites
Heh... nie pozostaje mi nic innego jak życzyć powodzenia. Jak powstanie coś otwartego godnego uwagi to może dopiszę soft body (mam już gotoe, tylko że do 3d) ;-).

Share this post


Link to post
Share on other sites
znającego podstawy linuxa? jaki to ma związek, jeżeli można wiedzieć, ? chcesz to pisać z przeznaczeniem dla linuxa? nie żebym miał coś przeciwko, bo uważam, że linux jest lepszy od windowsa, ale linux nie jest zbyt popularny...

Share this post


Link to post
Share on other sites
[quote] znającego podstawy linuxa? jaki to ma związek, jeżeli można wiedzieć, ? chcesz to pisać z przeznaczeniem dla linuxa? nie żebym miał coś przeciwko, bo uważam, że linux jest lepszy od windowsa, ale linux nie jest zbyt popularny... [/quote]

Jak napisałem w założeniach - program ma działać na obu platwormach tzn i Windows i Linux (osobiscie zalezy mi nawet bardziej na Linux'ie). Ze względu na to, że jest to projekt niekomercyjny, nie muszę się liczyć z popularnością 8)

Share this post


Link to post
Share on other sites
Sam kiedyś próbowałem robić coś takiego wink.gif
Małe pytanie: Czy będzie to czymś w rodzaju wormsów( np. różne bronie, odkształcany teren) czy crazy machines (typu : wszystko zależy od skryptu i rozmieszczenia elementów)?
Bo wtedy trzeba będzie programować w innym kierunku smile.gif
Możesz zrobić to tak, że sama gra inaczej działa z różnymi bibliotekami dll (np. tarcie.dll, aerodynamika.dll, grawitacja.dll) które użytkownik będzie mógł ściągnąć z internetu lub sam napisać(pomyśl więc o jakimś dodatkowym kreatorze)

Share this post


Link to post
Share on other sites
interesujace ale malo realne -> za duzo na raz.
niemniej moze w przyszlosci pomoge (raczej dalszej niz blizszej)
Ogolnie bariera dla mnie to SDL/Linux o ile SDL pewnie da sie przskoczyc bez wiekszego problemu o tyle Linux/FP raczej nie bedzie dla mnie do przejscia (przynajmniej narazie)

Tego typu projekt zaczalbym od obrej dokumentacji, jako ze sam (jak stwierdziles) nie dasz rady tego napisac, a bez doc nie pomoga ci inni za bardzo przy takim projekcie.

BTW. Czesc tego co opisales + pewnie wiele przydatnych innych rzeczy mamy w KN, jesli sie Blind/Force zgodzi mozemy ci udostepnic rozne czesci kodu. Mamy poczatek systemu fizyki + klasy do obudowy propertiesow/Edyotra + sporo helperow i interfejsow.

Anyway powodzenia smile.gif

Share this post


Link to post
Share on other sites
Odgrzał się stary temat biggrin.gif Od tego czasu dużo się zmieniło. Nabierałem ciągle wprawy w pisaniu pod Linuksem. O pomyśle ciągle pamiętam i mam zamiar zacząć od planowania. Oznacza to, że nie napiszę ani linijki kodu zanim nie będzie jakichś dokumentów - taki mały przełom w moim podejściu do programowania wink.gif

Ten kod chętnie obejrzę więc mój mail czeka smile.gif
tsr at fenix.katowice.pl

Share this post


Link to post
Share on other sites
wiesz 64MB na maila to mam jakies opory smile.gif
pogadam z chlopakami i pchne ci zaproszenie do assembli.
z tym ze piszemy w TD wiec pewnie bedzie spory zgrzyt z lazarusem

OT:
Nie zwrocilem uwagi na date zalorzenia tematu, ale GRIGO czy ty czlowiku z choinki sie urwales ? odkopales temat z przed roku ! Myslalem ze to cos nowego ale teraz dopiero zwrocilem uwage ze dopisujesz jakies cuda do tematow ktore od miesiecy nikt nie uzywal... litosci...

Share this post


Link to post
Share on other sites
[quote] Możesz zrobić to tak, że sama gra inaczej działa z różnymi bibliotekami dll (np. tarcie.dll, aerodynamika.dll, grawitacja.dll) które użytkownik będzie mógł ściągnąć z internetu lub sam napisać(pomyśl więc o jakimś dodatkowym kreatorze) [/quote]

O tak najlepiej dawać rady nie mając pojęcia o czym sie pisze smile.gif
tarcie.dll, aerodynamika.dll, grawitacja.dll? lol
Co to ma znaczyć ? Nie wystarczy fizyka.dll i pliki konfiguracyjne ? po za tym tarcie definiuje sie głownie dla obiektów a nie sceny.

Share this post


Link to post
Share on other sites

×
×
  • Create New...