¿Cómo pueden los desarrolladores no independientes dejar de reinventar la rueda?

8

Parece que el statu quo en la industria de los juegos es escribir la mayoría del software interno, tal vez excluyendo el motor si usas una de las docenas más o menos. Antes de trabajar aquí, era principalmente un desarrollador de código abierto, por lo que esta mentalidad me parece francamente loca. ¿Hay alguna buena manera de que todos podamos dejar de construir cosas como visores de registros, diagnósticos de red y sistemas de parches?

2 revoluciones
fuente

Respuestas:

15

Podemos dejar de reinventar la rueda ... dejando de reinventar la rueda. Use bibliotecas externas, motores de juegos, etc.

Tengo la sensación de que la gente no reinventar la rueda para:

  • Evite los derechos de autor, regalías, etc. en bibliotecas o código prestado
  • Evite pagar por un motor de juego (para un juego completo de AAA, esto puede ser enormemente costoso)
  • Mantener una familiaridad íntima con toda la base de código: agregar bibliotecas externas, vincular a motores de juegos, etc., solo significa más código para familiarizarse y posiblemente mantener
  • Escribir todo su código usted mismo significa que puede optimizarlo específicamente para su juego
  • Ese código se puede licenciar a otros si lo desea, reutilizarlo para otros proyectos, etc., mientras mantiene el control de propiedad
Sean James
fuente
¡Estoy de acuerdo con todo eso! Yo mismo tuve que reinventar algunas cosas para evitar el código patentado, también tuve que evitar pagar por un motor de juego, y finalmente, a menudo tengo problemas que no son mi culpa (como mi juego actual que tiene 3 defectos, uno es que el motor de física tiene un comportamiento contrario a la intuición ... esto significa que tendré que leer su fuente profundamente ... el otro es que el mezclador aparentemente tiene una forma arbitraria de elegir prioridades, y finalmente, el motor del juego en sí con editor de mapas, segfaults aleatoriamente cuando descargo un mapa ... De nuevo, esto significa un barrido de código ...)
speeder
La pregunta es más social, ¿cómo podemos alentar eso? ¿Existen, por ejemplo, herramientas para parchar que sean independientes del juego? Hay algunos algoritmos y bibliotecas subyacentes para la manipulación de datos (algoritmo rsync, zlib), pero no sé de nada que vaya tan lejos como una interfaz de usuario.
coderanger
1
De hecho, se ha perdido la posibilidad de ingresar y solucionar problemas en las bibliotecas durante la crisis de lanzamiento sin tener que tener en cuenta el tiempo de respuesta de un tercero en su fuente cerrada, y optimizar las bibliotecas para su caso de uso preciso. Esos pueden ser muy valiosos.
sombra de luna
1

Depende. Creo que en realidad hay una buena cantidad de middleware, que se usa, ... si está dispuesto a pagarlo.

Al mismo tiempo, a veces es fácil hackear algo para llegar realmente rápido sin tantas dependencias externas, si el alcance es pequeño.

Creo que en el extremo superior, tienes que comparar compañías como EA y Ubisoft con otras grandes compañías de software, como Apple, Google, Facebook, lo que tienes.

Todos escriben una gran cantidad de código personalizado, cuando hay alternativas existentes, porque quieren obtener una ventaja competitiva.

Como @Sean James dijo que hay razones legales y muchas otras, pero creo que incluso si no hubiera obstáculos, las compañías de software inventivas aún desarrollarían alternativas personalizadas a los componentes de software existentes comunes si pensaran que podrían mejorarlos.

Sin embargo, también estoy de acuerdo en que siempre hay espacio para comenzar algunos proyectos de los que todos podríamos beneficiarnos. Por ejemplo, creo que necesitamos reemplazar COLLADA con algo mucho más simple que esté basado en JSON. Quizás algo que solo maneja mallas arbitrarias, pero nada más. Creo que realmente necesitamos un mejor formato de malla.

Jonathan Fischoff
fuente
No solo existe la ventaja competitiva de escribir su propio 'middleware', sino que también significa soporte interno. Eso puede ser útil en momentos de crisis importante, o cuando un error es imposible de reproducir sin entregar todo el juego.
Kaj
Sin mencionar si se compra la compañía de motores de juegos o si se piratea su código, la lista continúa. Dependiendo de otra persona, el código es una responsabilidad que puede ser difícil de cuantificar; no hay muchos usuarios, como es el caso de muchos middleware especializados
Jonathan Fischoff,
No creo que el código personalizado desaparezca, pero la falta de uno o varios formatos viables para compartir datos no está ayudando al desarrollo de herramientas.
Jonathan Fischoff el
Muchas veces, al menos en mi empresa, la gente preferiría reconstruir cosas en casa solo porque el personal ya está presupuestado y la compra de middleware comercial no lo es (y es más fácil pedirles a los programadores que trabajen 10 horas al día de lo que es). obtener HQ para autorizar grandes gastos de capital). ¿No serían los beneficios de una colaboración más libre una bendición mayor que la ventaja competitiva de las herramientas propietarias?
coderanger
Creo que se puede mejorar, pero creo que es un problema que se extiende más allá de las compañías de juegos. Hay mucho menos reutilización de código de lo que debería en general, no solo con los juegos. A nivel personal, me encantaría ayudar a poner en marcha algunos proyectos.
Jonathan Fischoff el
1

¿Hay alguna buena manera de que todos podamos dejar de construir cosas como visores de registros, diagnósticos de red y sistemas de parches?

En mi experiencia, estas cosas se tratan como simples extras que se pueden agregar junto con su programación 'real'. Por supuesto, resultan estar lejos de ser simples y lejos de ser 'extra', siendo partes complejas e importantes del sistema, pero para entonces ya hay demasiada inversión en la versión a medida.

¿Existen buenas bibliotecas de código abierto o comerciales que brinden este tipo de funcionalidad? No estoy seguro de que exista, y hasta que alguien dé un paso y proporcione uno, seguirá así. Los desarrolladores de negocios a menudo no pueden producir bibliotecas que sean adecuadas para juegos ("¡ ¿qué, quieres decir que no puedes eliminar por completo todas las llamadas en una versión de lanzamiento ?! ") y los desarrolladores de juegos a menudo no están interesados ​​en hacer este tipo de como un paquete independiente cuando tienen un juego con el que seguir adelante.

Kylotan
fuente