Proyecto de código abierto más necesario [cerrado]

15

Algunas preguntas en el sitio han mencionado la necesidad de más proyectos de código abierto. Estoy de acuerdo y me pregunto qué marcos deberían desarrollarse.

Comenzaré la lista.

  • Un núcleo de geometría, que incluye serialización (JSON, binario, binario comprimido), adaptado para OpenGL / DirectX
  • Reconocimiento de gestos
Jonathan Fischoff
fuente
55
No es una pregunta real.
Petrus Theron
2
@FreshCode: de ahí la bandera "Wiki de la comunidad". Si bien este sitio aún no tiene pautas exactas para wikis de la comunidad, se encuentra dentro de los límites de la bandera en otros sitios de SE, por ejemplo, MathOverflow ( mathoverflow.net/faq#communitywiki ).
99
Si está comenzando una pregunta de la lista, sería mejor si sus respuestas están en una respuesta en lugar de la pregunta para que se puedan votar por separado.
Tetrad

Respuestas:

43

Ya me he quejado de esto en otra pregunta, pero tener sistemas abiertos de distribución digital sería glorioso. Esto abarca tanto los sistemas de parches como las cosas de tipo mercado de usuarios finales. Steam maneja mucho de esto, pero está lejos de ser una plataforma abierta. Incluso si no se tratara de un único mercado compartido como lo es Steam (o cómo van los mercados telefónicos), tener una solución que pueda cambiar fácilmente de marca e implementar para usted sería un gran paso adelante (suponiendo que la gente realmente hiciera cosas como enviar parches en sentido ascendente y toda esa bondad de FOSS).

coderanger
fuente
He pasado los últimos dos años aquí trabajando en nuestro sistema interno, por lo que probablemente estoy un poco sesgado.
coderanger
Para ser justos, ¡esto sería excepcionalmente valioso incluso fuera del dominio del juego!
Stewart
@Coderanger ¿Abierto con qué fin? Estoy trabajando en algunas herramientas como esta para mi sitio web, y me encantaría elegir tu cerebro.
Jesse Dorsey
@Noctrine Mi correo electrónico es noah @ <mi sitio web>, no dude en enviarme una línea :-)
coderanger
¿No era eso lo que se suponía que era Launchpad + APT, y se convirtió en una pesadilla barroca?
4

No es un proyecto de software, sino uno de documentación:

Una lista de verificación de calidad técnica del juego (como trcs o tcrs)

Muchas veces el diseño de un juego de producción se ha visto afectado por estos documentos bastante importantes. Los juegos independientes los necesitan tanto como los desarrolladores de juegos profesionales, ya que es al menos una simple garantía de que has hecho un trabajo razonable.

Certificación

No podría haber un organismo de certificación, pero podría ser una cosa de autocertificación para comenzar.

Si la lista de verificación era concisa, podría convertirse más fácilmente en una lista de verificación generalmente acordada. Una vez acordado, puede ser razonable que los distribuidores permitan la revisión por pares para confirmar o denegar reclamos, con lo cual la información se convierte en parte del paquete de información básica de los distribuidores sobre los artículos en su tienda.

Ubicación

¿Por qué no comenzar uno en el juego dev wiki ... http://wiki.gamedev.net/index.php/Main_Page ?

Richard Fabian
fuente
Obviamente, no puede haber un organismo certificador, ni algunos de los TCR de los principales titulares de plataformas son relevantes, pero esta es una idea realmente interesante. ¿Sabes si alguien ha trabajado en algo como esto?
2
Existe la lista de verificación del mal para los juegos XBLIG (y una lista de verificación correspondiente no tan malvada).
coderanger
La lista de verificación no tan malvada ( creators.xna.com/en-us/help/peerreview_notsoevilchecklist ) parece mucho más útil fuera del mundo de XBLIG.
4

Desarrolladores de controladores de gráficos. Sin controladores gráficos que funcionen, otros proyectos relacionados con el juego son irrelevantes.

AMD y NVIDIA realmente hacen controladores utilizables, pero estoy hablando de controladores de código abierto. Mesa solo es compatible con OpenGL 2.1.

editar: esta respuesta solo es aplicable a GNU / Linux.

SurvivalMachine
fuente
3
¿Por qué es tan importante para Linux tener controladores de código abierto, si los controladores propietarios son utilizables? Dejando a un lado la ideología, ¿qué relevancia tiene para los juegos?
Kylotan
@Kylotan: no todas las GPU tienen controladores propietarios disponibles. Intel es uno de ellos, y su hardware, aunque no es muy rápido, es lo suficientemente rápido como para jugar muchos juegos. Los jugadores disfrutarían de conductores más rápidos / con menos errores. Informar errores no es suficiente, Mesa / Intel necesita más desarrolladores. Para conseguirlos, necesitan una mejor documentación.
SurvivalMachine
2
@Kylotan Los controladores propietarios son una gran broma en el mejor de los casos. El rendimiento y la compatibilidad con OpenGL son terribles e irregulares, especialmente en los controladores de ATI. Parece que sus controladores de Linux solo se crearon porque alguien les torció el brazo.
Bob Somers
@Kylotan: Porque podría tener una comunidad inteligente que mejorara los controladores, en lugar de estar a merced de los sentimientos de reflujo y flujo de ATI / NVidia frente a la comunidad Linux. Su enfoque, con buena razón, es soportar la plataforma Windows. Linux es, en el mejor de los casos, secundario.
alphadogg
Nunca va a pasar. La línea corporativa es que creen que permitir que la comunidad de código abierto cree controladores expone demasiados secretos a los competidores.
alphadogg
4

Una herramienta de edición de juegos multiplataforma genérica que te permite editar el contenido del juego (2D y 3D) para cualquier motor de juego. Se puede complementar con complementos de edición y exportación para un motor de juego específico, o para las necesidades de edición de un género de juego específico (por ejemplo, editor de juegos de plataforma 3D, editor de interfaz de usuario 2D, editor de mosaico 3D, etc.).

Justificación: la mayoría de los motores de juegos de código abierto no proporcionan herramientas de edición. La mayoría de las herramientas de edición de juegos existentes son patentadas y solo funcionan con el motor de juego del proveedor (Torque, Unity, Shiva, etc.), o tienen un uso limitado (edición 2D Tilemap). Si cambia motores o plataformas, generalmente tiene que dejar atrás las herramientas con las que estaba trabajando y aprender o incluso escribir una nueva herramienta, o trabajar sin ninguna herramienta.

¿Qué piensas de esta idea? ¿Crees que es deseable? ¿Y sería factible?

LearnCocos2D
fuente
3
Es factible Y existe. Se llama 3ds Max (o XSI, o Blender, o ...).
Neverender
Esos son modeladores 3D, no editores de contenido de juegos. Se ha abusado de ellos, debo decir, para editar algunos juegos, pero aparte de lanzar algo muy rápido, es difícil crear niveles / mundos de juego reales.
LearnCocos2D
Bien, prueba Syntensity, Tiled, etc. Hay otros editores más especializados. Si está buscando algo tan fácil como el editor en Spore o ModNation, está buscando algo que tiende a ser demasiado específico para un juego.
alphadogg el
3

Un núcleo de geometría también pide un núcleo de animación, incluida la mezcla.

Jeff
fuente
2

Un buen reproductor Flash, ya que Adobe parece desinteresado / sin fondos para trabajar realmente en los sistemas operativos que no son de Windows, y faltan las implementaciones existentes (incluso, por ejemplo, ScaleForm tiene problemas importantes para ser "Flash adecuado" como esperan los diseñadores / artistas).

usuario744
fuente
Ver también gamedev.stackexchange.com/questions/3563/…
Bart van Heukelom el
1

Supongo que el servicio abierto para sprites de avatar personalizados sería útil especialmente con el crecimiento de los juegos en línea y móviles basados ​​en HTML5. Describí la idea aquí .

Aidas Bendoraitis
fuente
1

EA STL (o equivalente).

Neverender
fuente
2
Solo me preguntaba, ¿por qué? El enfoque básico de EASTL se detalla más que suficiente en el documento para copiar las piezas que necesita; los detalles de implementación particulares de EASTL ahora tienen varios años y probablemente haya mejores formas de hacerlo en los compiladores C ++ más nuevos; y muchas de las extensiones de las que hablan están disponibles en Boost (por ejemplo, boost :: intrusive :: list) o tr1 (por ejemplo, unordered_map estándar). Quedan algunas cosas útiles, pero nunca diría que es el proyecto de código abierto más necesario.
¿Por qué duplicar el esfuerzo? ¿Por qué no beneficiarse de la revisión por pares? Boost y TR1 no hacen nada para mejorar el diseño del asignador con daño cerebral, por ejemplo. La STL podría adoptar muchos de los cambios propuestos y la STL sería mejor para ello. Pero eso nunca pasara.
Neverender
1
Bueno, ¡parece que tu sueño se hizo realidad! github.com/paulhodge/EASTL
1

Una colección similar a stl de estructuras de datos con plantillas utilizadas a menudo en juegos:

  • máquinas de estado [jerárquicas]
  • quad / octrees
  • árboles bsp
  • árboles de esfera
  • árboles kd
  • [cualquier otra estructura de datos espacial útil no incluida en la lista]
  • administradores de recursos
  • Lineal / pool / otros asignadores
  • temporizadores
  • árboles de decisión

Sería realmente bueno tener estos disponibles en una forma fácil de usar que se sabe que está bien probado y estable.

Si bien existen implementaciones de código abierto de algunas de las estructuras de datos enumeradas, a menudo no tienen la plantilla de usar ningún tipo de datos (por ejemplo, a menudo se ve obligado a usar otra estructura de matriz / vector), no en un estado utilizable, muerto o faltante revisión por pares y pruebas.

revs sarahm
fuente
0

Redes.

Para empezar, un buen sistema para NAT (Network Address Traversal) y enrutamiento, para combatir cualquier problema con firewalls y servidores proxy. Los jugadores de PC nunca deberían tener que lidiar con puertos de reenvío o algo similar.

Aún mejor: una red de juegos multijugador distribuida de código abierto (por ejemplo, Battle.net, Xbox Live, PSN ...). Básicamente, este sería un protocolo que cualquiera puede implementar y cualquiera puede ejecutar un servidor; simplemente se comunican entre sí para transmitir información sobre quién se puede encontrar dónde. Similar a las redes sociales distribuidas (por ejemplo, Diáspora), esto evita que cualquier parte tenga el control, al tiempo que permite que cualquier juego independiente se integre sin problemas.

Imagínese si pudiera agregar a sus amigos como 'amigos', y luego cualquier juego que haya jugado podría invitarlos de inmediato, sin direcciones IP, sin búsquedas de identificación, simplemente llévelos con usted. Básicamente lo que B.net/XBL/PSN ya hace, ¡pero abierto y gratuito para todos!

usuario3469
fuente
1
Su segunda sugerencia es una capa bastante trivial sobre XMPP, el problema no es que se haga, sino que todos lo apoyen.
-2

Una verdadera plataforma MMO, es decir. uno que proporciona el middleware, funciones de lobby, etc., en el que puede enchufar su motor.

alphadogg
fuente
-1, no hay forma de que este sea el proyecto más necesario, dado que casi cualquier otro proyecto sugerido aquí es un requisito previo para ello.
¿Cada? Hay muchas bibliotecas de red abiertas decentes (no necesita una versión distribuida), los modeladores abiertos ya existen (Blender), no veo la necesidad de EA STL, existen motores de juego, etc. El único proyecto viable de la competencia IMO es la distribución digital que sería genial. Puedo entender no votar por él, ¿pero votar a favor? Gran parte de los juegos ocurren en línea, sin embargo, ni siquiera hay nada cerca de una plataforma viable y abierta para el ecosistema alrededor de un MMO.
alphadogg
Sí, casi todos. Necesitaría un parche, un editor de contenido y núcleos de geometría y animación. Necesitaría algún tipo de características sociales para su red. También necesitarías una biblioteca estándar que funcione para juegos; EA STL es una de esas bestias, aunque podrías encontrar otra o escribir la tuya.
Editor de contenido: Blender, Tiled, Syntensity. Kernels: no estoy seguro exactamente a qué te refieres aquí. Kernel es un término sobrecargado. Game dev "biblioteca estándar": muchos idiomas diferentes y diferentes tipos de juegos. ¿Una biblioteca para manejarlos a todos? De Verdad? Por último, "características sociales" es exactamente lo que propongo como parte de una plataforma para juegos en línea.
alphadogg