Najbardziej potrzebny projekt Open Source [zamknięty]


15

Kilka pytań na stronie wspomniało o potrzebie większej liczby projektów typu open source. Zgadzam się i zastanawiam, jakie ramy należy opracować.

Zacznę listę.

  • Jądro geometrii, w tym serializacja (JSON, binarny, skompresowany binarny), dostosowane do OpenGL / DirectX
  • Rozpoznawanie gestów

5
To nie jest prawdziwe pytanie.
Petrus Theron,

2
@FreshCode: Stąd flaga „Community Wiki”. Chociaż ta strona nie ma jeszcze dokładnych wytycznych dla wiki społeczności, to mieści się w granicach flagi na innych stronach SE, np. MathOverflow ( mathoverflow.net/faq#communitywiki ).

9
Jeśli zaczynasz pytanie od listy, byłoby lepiej, gdybyś udzielił odpowiedzi zamiast pytania, aby można było głosować osobno.
Tetrad,

Odpowiedzi:


43

Narzekałem już na to w innym pytaniu, ale posiadanie otwartych cyfrowych systemów dystrybucji byłoby wspaniałe. Obejmuje to zarówno systemy łatania, jak i produkty typu marketplace dla użytkowników końcowych. Steam obsługuje wiele z tego, ale daleko mu do otwartej platformy. Nawet jeśli nie byłby to jeden wspólny rynek, jakim jest Steam (lub jak działają rynki telefoniczne), posiadanie rozwiązania, które można łatwo zmienić na własną rękę i wdrożyć dla siebie, byłoby ogromnym krokiem naprzód (zakładając, że ludzie faktycznie robili takie rzeczy, jak przesyłanie łatek w górę i cała ta dobroć FOSS).


Ostatnie dwa lata spędziłem tutaj, pracując nad naszym wewnętrznym systemem, więc prawdopodobnie jestem trochę stronniczy.
coderanger

Szczerze mówiąc, byłoby to wyjątkowo cenne nawet poza domeną gier!
Stewart,

@Coderanger Otwarty na jaki koniec? Pracuję nad takimi narzędziami dla mojej witryny i chciałbym wybrać twój mózg.
Jesse Dorsey

@Noctrine Mój e-mail to noah @ <moja strona internetowa>, napisz do mnie :-)
coderanger

Czy nie taki miał być Launchpad + APT, a właśnie zmienił się w barokowy koszmar?

4

Nie projekt, ale dokumentacja:

Lista kontrolna jakości technicznej gry (np. Trcs lub tcrs)

Bardzo ważne dokumenty często wpływały na projekt gry produkcyjnej. Gry niezależne potrzebują ich tak samo jak profesjonalni twórcy gier, ponieważ jest to co najmniej prosta gwarancja, że ​​wykonałeś rozsądną robotę.

Orzecznictwo

Nie może istnieć jednostka certyfikująca, ale na początek może to być coś, co samo zaświadcza.

Gdyby lista kontrolna była zwięzła, łatwiej mogłaby stać się ogólnie uzgodnioną listą kontrolną. Po uzgodnieniu może się okazać, że dystrybutorzy mogą zezwolić na wzajemną ocenę w celu potwierdzenia lub odrzucenia roszczeń, po czym informacje stają się częścią podstawowego pakietu informacyjnego dystrybutorów na temat produktów w jego sklepie.

Lokalizacja

Dlaczego nie założyć jednej na wiki twórców gry ... http://wiki.gamedev.net/index.php/Main_Page ?


Oczywiście tak naprawdę nie może istnieć jednostka certyfikująca, ani niektóre TCR od głównych właścicieli platform są istotne, ale to naprawdę interesujący pomysł. Czy wiesz, czy ktoś zrobił już coś takiego?

2
Istnieje zła lista kontrolna dla gier XBLIG (i odpowiednia niezbyt zła lista kontrolna).
coderanger

Lista kontrolna nie taka zła ( creators.xna.com/en-us/help/peerreview_notsoevilchecklist ) wygląda na znacznie bardziej przydatną poza światem XBLIG.

4

Develpers sterowników grafiki. Bez działających sterowników graficznych inne projekty związane z grą są nieistotne.

AMD i NVIDIA faktycznie nadają się do użytku, ale mówię o sterownikach typu open source. Mesa obsługuje tylko OpenGL 2.1.

edycja: Ta odpowiedź dotyczy tylko GNU / Linux.


3
Dlaczego tak ważne jest, aby Linux posiadał sterowniki open source, skoro zastrzeżone sterowniki są użyteczne? Odkładając na bok ideologię, jakie ma to znaczenie dla gier?
Kylotan,

@Kylotan: nie wszystkie procesory graficzne mają dostępne zastrzeżone sterowniki. Intel jest jednym z nich, a ich sprzęt, choć niezbyt szybki, jest wystarczająco szybki, aby grać w wiele gier. Gracze lubią szybsze / mniej wadliwe sterowniki. Zgłaszanie błędów nie wystarczy, Mesa / Intel potrzebuje więcej programistów. Aby je zdobyć, potrzebują lepszej dokumentacji.
SurvivalMachine,

2
@Kylotan Zastrzeżeni kierowcy to w najlepszym razie ogromny żart. Wydajność i obsługa OpenGL jest straszna i nierówna, szczególnie w sterownikach ATI. Wygląda na to, że ich sterowniki dla Linuksa zostały utworzone tylko dlatego, że ktoś skręcił rękę.
Bob Somers,

@Kylotan: Ponieważ możesz mieć doświadczoną społeczność ulepszającą sterowniki, zamiast być na łasce odpływów ATI / NVidii i płynności względem społeczności Linuksa. Nie bez powodu skupiają się na obsłudze platformy Windows. Linux jest w najlepszym razie drugorzędny.
alphadogg,

To się nigdy nie wydarzy. Linia korporacyjna polega na tym, że wierzą, że umożliwienie społeczności open source tworzenia sterowników ujawnia zbyt wiele tajemnic konkurentom.
alphadogg,

4

Ogólne, wieloplatformowe narzędzie do edycji gier, które pozwala edytować zawartość gry (2D i 3D) dla dowolnego silnika gry. Można go uzupełnić edycją i eksportowaniem wtyczek do określonego silnika gry lub do potrzeb edycji określonego gatunku gry (np. Edytor gier platformowych 3D, edytor interfejsu użytkownika 2D, edytor map tilemap 3D itp.).

Uzasadnienie: większość silników gier typu open source nie udostępnia narzędzi do edycji. Większość istniejących narzędzi do edycji gier jest zastrzeżona i działa tylko z silnikiem gry producenta (Torque, Unity, Shiva itp.) Lub ma ograniczone zastosowanie (edycja 2D Tilemap). Jeśli zmieniasz silniki lub platformy, zwykle musisz zostawić za sobą jakiekolwiek narzędzie, z którym pracujesz i albo nauczyć się, a nawet napisać nowe narzędzie, albo pracować bez żadnych narzędzi.

Co sądzisz o tym pomyśle? Czy uważasz, że to pożądane? Czy byłoby to wykonalne?


3
To wykonalne. I istnieje. Nazywa się 3ds Max (lub XSI, Blender lub ...).
Neverender

Są to modelerzy 3D, a nie edytory treści gry. Byli, powiedzmy, nadużywani do edytowania niektórych gier, ale oprócz szybkiego zrzucania czegoś razem, utrudniają tworzenie rzeczywistych poziomów / światów gry.
LearnCocos2D,

Dobra, wypróbuj Syntensity, Tiled itp. Istnieją inne, bardziej wyspecjalizowane edytory. Jeśli szukasz czegoś tak łatwego jak edytor w Spore lub ModNation, to szukasz czegoś, co może być zbyt specyficzne dla jednej gry.
alphadogg

3

Jądro geometrii również prosi o jądro animacji, w tym mieszanie.



1

Wydaje mi się, że otwarta usługa niestandardowych ikonek awatarów byłaby przydatna, szczególnie przy rozwoju gier online i mobilnych opartych na HTML5. Pomysł opisałem tutaj .


1

EA STL (lub odpowiednik).


2
Zastanawiam się tylko dlaczego? Podstawowe podejście EASTL jest szczegółowo opisane bardziej niż wystarczająco, aby skopiować potrzebne części; szczegółowe szczegóły implementacji EASTL mają już kilka lat i zapewne są lepsze sposoby na to w nowszych kompilatorach C ++; wiele rozszerzeń, o których mówią, jest dostępnych w trybie Boost (np. boost :: intrusive :: list) lub tr1 (np. standardowa unordered_map). Zostało w nim kilka przydatnych rzeczy, ale nigdy nie powiedziałbym, że jest to najbardziej potrzebny projekt open source.

Po co powielać wysiłek? Dlaczego nie skorzystać z wzajemnej oceny? Boost i TR1 nie robią nic, by ulepszyć, na przykład, uszkodzony projekt mózgu. Wiele proponowanych zmian mogłoby zostać przyjętych przez STL, a STL byłoby dla niego lepsze. Ale tak się nigdy nie stanie.
Neverender

1
Wygląda na to, że twoje marzenie się spełniło! github.com/paulhodge/EASTL

1

Zbiór wzorcowych struktur danych podobnych do stl często używanych w grach:

  • [hierarchiczne] maszyny stanów
  • quad- / octrees
  • drzewa bsp
  • drzewa sferyczne
  • drzewa kd
  • [jakakolwiek inna przydatna przestrzenna struktura danych nie wymieniona]
  • menedżerowie zasobów
  • alokatory liniowe / puli / inne
  • timery
  • drzewa decyzyjne

Byłoby naprawdę miło mieć te dostępne w łatwej w użyciu formie, która jest dobrze przetestowana i stabilna.

Chociaż istnieją implementacje niektórych z wymienionych struktur danych typu open source, często nie są one szablonowane do użycia dowolnego typu danych (np. Często zmuszony jest użyć innej struktury macierzy / wektora), a nie w stanie użytecznym, martwym lub brakującym przegląd i testowanie.


0

Networking.

Na początek dobry system NAT (Network Address Traversal) i routingu, do zwalczania nieszczęść za pomocą zapór ogniowych i serwerów proxy. Gracze na PC nigdy nie powinni mieć do czynienia z portami przekierowującymi ani niczym podobnym.

Jeszcze lepiej: otwarta, rozproszona sieć gier wieloosobowych (np. Battle.net, Xbox Live, PSN ...). Byłby to w zasadzie protokół, który każdy może wdrożyć, a każdy może uruchomić serwer - po prostu komunikują się ze sobą, aby przekazywać informacje o tym, kto może gdzie znaleźć. Podobnie jak w rozproszonych sieciach społecznościowych (np. Diaspora), powstrzymuje to każdą ze stron od kontroli, jednocześnie umożliwiając płynną integrację dowolnej gry niezależnej.

Wyobraź sobie, że możesz po prostu dodać znajomych jako „znajomych”, a następnie w dowolnej grze, w którą kiedykolwiek grałeś, możesz zaprosić ich od razu, bez adresów IP, bez wyszukiwania identyfikatorów, po prostu zabierz ich ze sobą. Zasadniczo to, co robią B.net/XBL/PSN, ale otwarte i bezpłatne dla wszystkich!


1
Twoja druga sugestia jest dość trywialną warstwą w stosunku do XMPP, problemem nie jest jej zrobienie, ale zachęcenie wszystkich do jej obsługi.

-2

Prawdziwa platforma MMO, tj. dostarczający oprogramowanie pośrednie, funkcje lobby itp., do którego można podłączyć silnik.


-1, nie ma mowy, że jest to najbardziej potrzebny projekt, biorąc pod uwagę, że prawie każdy zaproponowany tutaj inny projekt jest jego warunkiem wstępnym.

Każdy? Istnieje wiele przyzwoitych otwartych bibliotek sieciowych (nie potrzebujesz wersji rozproszonej), otwarte modele już istnieją (Blender), nie widzę potrzeby EA STL, istnieją silniki gier itp. Jedyny realny projekt konkurencyjny IMO to cyfrowa dystrybucja, która byłaby fajna. Rozumiem, że nie głosowałem na to, ale głosowałem? Wiele gier dzieje się w Internecie, ale nie ma nawet czegoś zbliżonego do realnej, otwartej platformy dla ekosystemu wokół MMO.
alphadogg,

Tak, prawie każdy. Potrzebujesz patchera, edytora treści oraz jądra geometrii i animacji. Potrzebujesz sieci społecznościowej. Będziesz także potrzebować standardowej biblioteki, która działa dla gier; EA STL jest jedną z takich bestii, choć możesz znaleźć inną lub napisać własną.

Edytor treści: Blender, Kafelki, Gęstość. Jądra: nie jestem pewien, co masz na myśli. Jądro to przeciążony termin. Game dev „standardowa biblioteka”: Wiele różnych języków i różnych typów gier. Jedna biblioteka do obsługi ich wszystkich? Naprawdę? Wreszcie „funkcje społecznościowe” to dokładnie to, co proponuję w ramach platformy gier online.
alphadogg
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.