Al crear prototipos rápidos, ¿es mejor usar el lenguaje que usará al final?

23

He estado trabajando con SFML (C ++) y Flash (AS3) y generalmente creando prototipos para algunas ideas que tengo.

¿Es mejor usar el lenguaje que va a usar al final (C ++ generalmente) o usar algo simple y rápido (AS3, Python, etc.) para que funcione y luego comenzar desde cero cuando comience con el producto principal?

Ólafur Waage
fuente

Respuestas:

31

Depende en gran medida de cuáles son sus objetivos.

Si está tratando de probar el juego, la velocidad de iteración es probablemente su objetivo más importante y, por lo tanto, debe elegir un idioma y un entorno que se adapten a eso.

Si está tratando de probar la tecnología (usando middleware o no), sus objetivos también incluirían elegir qué idioma usar.

Tétrada
fuente
66
Una cosa para agregar, usar un idioma que no sea el idioma de destino final evitará que su prototipo se convierta en código de producción. Es posible que desee tener eso en cuenta al pensar en la política de su empresa.
jessecurry
1
@jessecurry, me encanta cómo dijiste "ayudar a prevenir". He visto que el código prototipo de Ruby cobra vida en unos días junto con la instalación del soporte de ruby ​​en los servidores de alojamiento.
gradbot
A menos que desee probar el rendimiento, la elección del idioma tampoco es importante para probar la tecnología. Es decir, para responder la pregunta "¿Funcionaría esto en absoluto?", Un prototipo rápido con guión puede darle todas las respuestas que necesita.
Rachel Blum
@Rachel Bueno, claro, es por eso que presenté toda la pregunta con "depende".
Tetrad
14

La idea de la creación de prototipos es obtener una versión de trabajo rápida y sucia de su idea y luego desechar el prototipo para crear una arquitectura sólida para su producto final.

Es importante reconocer que un prototipo no está destinado a ser (y nunca debe ser) refactorizado en un producto, por lo que no es necesario escribirlo en el mismo idioma que desea escribir su juego final. Es mejor elegir un lenguaje de programación que permita un desarrollo rápido, como Flash, como usted mencionó.

Los prototipos por su naturaleza no están diseñados para ser un código duradero. Los prototipos están diseñados para ser desechados. Son únicos. Es inapropiado sobre-diseñar un prototipo. Un prototipo es como una ciudad en una película del oeste. Todo es fachada. No hay nada detrás de eso. No puede mudarse y criar una familia en una de esas casas.

Si quieres construir algo que quieras usar más, este no es un Prototipo sino más bien una Tracer Bullet, como lo llaman Andy Hunt y Dave Thomas en el libro The Pragmatic Programmer .

Michael Klement
fuente
4

El consejo general con los prototipos es usar algo que sea completamente desechable. El objetivo de un prototipo cuando se desarrollan juegos es simplemente asegurarse de que está brindando la diversión. ¿La mecánica de juego principal en la que se basa su software realmente hace que sea un juego divertido? Esa es una pregunta importante, y una que desea que se responda lo más rápido posible. Use cualquier medio que sea necesario para llegar a esa respuesta.

Hokiecsgrad
fuente
1

Creo que la respuesta aquí depende en cierta medida de lo cómodo que esté en los distintos idiomas y de las necesidades técnicas del producto final. Con muchos juegos de bajo presupuesto en estos días, realmente no hay necesidad de codificar en C ++: nunca necesitará la velocidad que le brinda.

Mi experiencia ha sido que si te estás esforzando mucho para que un prototipo funcione, has hecho todo tipo de compromisos en la calidad de tu código para llegar allí. Me gusta tirar esos prototipos y recodificarlos; Con las lecciones que he aprendido de ellos, codificar lo que quiero de nuevo (independientemente del idioma en que se encuentre) será bastante rápido y tendrá una calidad de código mucho mayor.

CommanderTso
fuente