Por lo general, cada vez que quiero comenzar un juego, creo que tengo una buena arquitectura básica para renderizar y un mejor bucle de juego desde cero. Por lo general, no quiero usar motores existentes. La razón detrás de esto es que quiero implementarlo por mi cuenta para aprender cosas.
Pero muchos blogs y desarrolladores dicen que no es una buena opción para reinventar la rueda.
¿Me estoy perdiendo de algo?
architecture
Ayyappa
fuente
fuente
Respuestas:
No, no es algo malo en absoluto. El aprendizaje y la capacidad de aprender es absolutamente fundamental para ser un buen programador.
PERO
Lo importante cuando se construye algo desde cero es terminarlo hasta su finalización. No importa cuán arrogante y poco optimista sea, si lo completa hay una sensación de satisfacción como ninguna otra. Todo le dará una experiencia valiosa y siempre puede hacer que el código sea más elegante o tener un mejor rendimiento más adelante cuando tenga algo funcional. Al final del día, lo único que separa a los programadores asombrosos de los mediocres es la experiencia y la práctica.
Por supuesto, cuando hayas hecho algo y quieras crear más juegos, no hay razón para reutilizar tu antigua base de código.
Si estás buscando comenzar una carrera en el desarrollo de juegos, o cualquier tipo de desarrollo realmente, la experiencia te llevará muy, muy lejos. Pero si está buscando producir juegos rápida y fácilmente (relativamente fácil, en comparación con escribir sus propias cosas), use un motor existente.
Para ser honesto con usted, una combinación de experiencia usando su propio código Y usando una variedad de bibliotecas y motores diferentes lo convertirá en un codificador mucho mejor.
fuente
Eso es probablemente lo más importante. Si su objetivo es aprender, escribir sus propios motores de renderizado y bucles de juegos desde cero está bien, y es una experiencia de aprendizaje perfectamente buena. Si su objetivo es hacer un juego terminado de forma rápida y sencilla, utilice un marco existente.
fuente
Reinventar la rueda te enseña cómo funcionan las ruedas.
fuente
Depende de lo que estés buscando. Si quieres aprender, reinventa tantas ruedas como quieras. Conozco personas que han escrito sus propios cargadores JVM o PNG por el gusto de hacerlo.
La mayoría de los blogs probablemente dan consejos sobre cómo llegar a las cosas que le pagan rápidamente, pero no sé si es una buena estrategia a largo plazo. Si no sabes con qué estás jugando, ¿cómo sabes si es una buena opción? ¿Qué harás cuando encuentres problemas, te quejes en los foros o puedas resolverlo tú mismo?
fuente
Hay mucho desánimo sobre esta frase en la comunidad de programación general, pero creo que todos sabemos que muchos de nosotros amamos nada más que reinventar la rueda y encontrar una manera de hacerla girar un poco mejor, más rápido y más fresco.
Están surgiendo nuevas tecnologías todo el tiempo que necesitan personas para reinventar la rueda. OpenCL y otros lenguajes de computación GPU son un buen ejemplo.
Podrías usar un marco que incluyera las nuevas capacidades de este año pero haciéndolo por tu cuenta, si realmente investigas y haces mejoras en lo que ya existe, ... realmente puedes encontrar un nuevo terreno en rendimiento y utilidad.
Una vez que haya inventado algunas ruedas para que pueda rodar, ¡conoce sus cosas bastante bien como una gran ventaja!
Además, es muy divertido.
fuente
Y hay quienes afirman que son más productivos precisamente porque reinventan la rueda.
Caso en cuestión: Eskil Steenberg, creador de World of Love (excelente video donde habla sobre su juego, su motor y herramientas increíbles , y su filosofía: http://vimeo.com/18423305 )
fuente
Si es la primera vez, aunque sea solo para aprender, es mejor usar algún tipo de motor porque aprenderá lo que el motor puede proporcionarle.
El uso de "la rueda" en la metáfora es el concepto, no la implementación. Incluso si no va a reinventar la rueda, aún debe elegir si comprará una o la hará por su cuenta. Por lo tanto, crear su propio motor ni siquiera es reinventar la rueda, solo desea crear su propia rueda para algún propósito, que puede ser para aprender, a bajo costo, para un tamaño pequeño o cualquier uso o requisitos específicos.
fuente
La cuestión es que lo que lleva mucho tiempo cuando se hace un juego es el contenido real y la creación y prueba de activos, en general no escribir código. Es probable que sea por eso que es fácil omitir esa parte y usar un motor existente para poder pasar más tiempo en contenido, diseño de juegos y errores de nivel superior.
Creo que hacer cosas desde cero para aprender generará una buena sensación del trabajo detrás de los motores existentes y mejorará la capacidad de seleccionar uno más adelante si es necesario.
Por diversión y para aprender, haga lo que quiera. Si tuviera que escribir clases de canalización de contenido desde cero, manejando todos los detalles molestos y casos extremos del sistema de archivos y cargadores de activos, me volvería loco, siempre y cuando haya aprendido lo suficiente como para tener una buena comprensión de cómo hacerlo, Tiendo a evitar hacerlo si alguien ya lo ha hecho bien (aunque es cierto, muchos frameworks y motores no encajan en mi propia idea de "bueno", lo que sería motivo para reescribir algo). Si no sé cómo hacerlo, realmente me gusta completarlo al menos una vez, solo para comprender los detalles más finos de lo que sea, como ya dijo Ray Dey.
fuente
Es solo un error si no tienes tiempo para aprender. Si tienes tiempo, anímate. Si no lo haces, entonces no lo hagas.
fuente