Una breve hoja de trucos para evaluar bibliotecas, marcos, motores y SDK y elegir el mejor
- Las bibliotecas, los frameworks, los SDK de motores, etc., son herramientas destinadas a resolver problemas por usted o ayudarlo a resolver problemas y cumplir con ciertos requisitos.
- Evaluar significa descubrir cuál cumple con la mayoría de los requisitos.
Por lo tanto, incluso antes de comenzar a evaluar, debe ser claro en qué escenario se encuentra y qué requisitos tiene / desea tener porque estas son las preguntas que la evaluación debe responder.
El escenario define de dónde provienen los requisitos (quién decide qué es un requisito y qué no).
Los escenarios típicos son:
El escenario del proyecto más pasatiempo
Tú solo o con algunos amigos quieres crear tu (tal vez el primero) juego. Perfecto, puede decidir todo por su cuenta y solo está limitado a las desiciones técnicas básicas y los requisitos técnicos (si se trata de un juego móvil, un juego de PC, un juego de consola, un juego web, ...). Puedes decidir lo que quieras.
Los requisitos implícitos serán que tal vez desee aprender algo específico (un lenguaje, un marco / motor específico)
El escenario estudiantil
Los requisitos pueden provenir de su maestro. Requisitos típicos que tenía en ese caso: el juego debe tener algunos elementos físicos y soporte de red multijugador. O tiene que estar escrito en C ++. Entonces evaluar se vuelve fácil. Está buscando un motor de juego que le permita codificar en c ++ y ya puede incluir un motor de red y física.
Un requisito más malvado (de la vida real): todo tiene que escribirse desde cero (pero está permitido usar bibliotecas). Por lo tanto, no se permite ningún editor (por ejemplo, Unity3D). Por lo tanto, no está buscando motores / sdks sino bibliotecas.
El escenario del juego indie
Quieres ganar dinero con el juego más adelante. Por lo tanto, deberá venderlo de alguna manera, lo que lo llevará a verificar qué requisitos provienen de la tienda en la que desea vender su juego.
¿Permite juegos Java, juegos HTML5, ....)
¿Requiere que incluya bibliotecas específicas (en caso afirmativo, en qué idiomas están disponibles esas bibliotecas)
Google Playstore requerirá que escribas tu juego como juego de Android, Apple AppStore requerirá que escribas tu juego como aplicación de iOS. O tiene el requisito de elegir un motor multiplataforma.
El escenario profesional
No solo tiene una tienda que proporciona requisitos, sino que es muy probable que un editor o un cliente tenga sus propias imaginaciones de requisitos. En este escenario, también tendrá un equipo más grande de desarrolladores empleados. Dependiendo de su conjunto de habilidades, surgen nuevos requisitos (nuestros programadores solo pueden escribir c ++, por lo que no podemos usar un motor de juegos Java / Android puro sin que necesiten (mucho) tiempo para aprender algo nuevo).
No voy a entrar en detalles para este escenario, una vez que logró formar un equipo de empleados y encontrar un cliente / editor, ya sabe lo que está buscando para evaluar las cosas.
¿Cómo decido cuáles son mis requisitos cuando soy un hobbiest o indi y nadie más me lo dice?
¿Hacerte preguntas sobre tus objetivos y tu juego?
¿Cuál debería ser mi juego? móvil, pc, web (html / Js), qué controladores usaré (pantalla táctil, giroscopio, gamepad)
Qué hay de nuevo en mi juego y qué otros juegos también tienen. Esas partes que otros juegos también tienen (renderización, audio, manejo de entrada) serán realizadas por la mayoría de las herramientas (motores de juego) que puedas encontrar o es fácil agrupar bibliotecas que tengan esa funcionalidad en tu propio juego o motor de juego.
¿Cuál es la dimensión de mi proyecto: pájaros enojados o skyrim? Angry Birds se puede hacer en casi todas las herramientas y skyrim se limitaría a herramientas de alto rendimiento con (supuesta) años de personalización adicional (los motores de terreno de alto rendimiento no son fáciles)
¿Mi único objetivo es terminar un juego? ¿si? perfecto, puedes usar algo muy avanzado como Unity, Unreal, ... tener un editor útil y una gran comunidad que te proporcione tutoriales y responda tus preguntas. Le quita la carga de manejar tareas de bajo nivel como la carga de malla, implementar sus propias funciones matemáticas, ...
¿Mi objetivo es aprender algo específico? ¿si? ¿Que quieres aprender?
¿Qué idioma debo elegir? Si el objetivo sigue siendo hacer tu juego, ¿elige el que tú / tu equipo conocen mejor? Si quieres aprender un idioma específico, elegirás una herramienta en ese idioma.
¿La herramienta X tendrá suficiente rendimiento para mi juego? Tal vez, nunca lo sabrás. Incluso en grandes producciones, la fase de optimización y pulido lleva mucho tiempo y es un gran esfuerzo hacerlo. Comience a preocuparse por el rendimiento cuando tenga problemas de rendimiento. No sabe cómo funcionará la herramienta a menos que alcance sus límites. Todo en el sitio web del desarrollador de herramientas es solo una suposición aproximada. Después de años de evaluar herramientas, dejé de creer cualquier cosa del sitio web de los desarrolladores.
Responder tales preguntas lo lleva a los requisitos. La evaluación es encontrar una lista de herramientas y PRUEBAS (no solo leer la página de inicio) de lo que la herramienta puede proporcionar o no.
Los requisitos no se cortan en piedra sino que son dinámicos. Van y vienen durante el desarrollo. Si el juego necesita física o no, por ejemplo, depende del diseño. Si el diseño cambia, el requisito también puede cambiar.
Tome los requisitos que tiene y comience. Los requisitos cambiantes son el pan de cada día del sufrimiento, ahm, desarrolladores felices, independientemente del tamaño del proyecto y el nivel de experiencia.