¿Cómo determino los requisitos mínimos de hardware / software de mis juegos?

72

Conmigo yendo solo en el desarrollo, solo tengo recursos limitados a mi disposición, es decir, una PC con la que desarrollo y pruebo el juego. así que solo sé con certeza que mi juego funciona con esa configuración.

¿Qué opciones tengo para probar el juego en las diferentes combinaciones de hardware / sistema operativo? Es un juego de escritorio de Windows.

Hoja Crippeo
fuente
3
Esto siempre ha sido muy vago para mí, así que pensé que un poco más de discusión al respecto podría ser bueno.
Jari Komppa
Impresionante pregunta! Me pregunto esto yo mismo
Dream Lane

Respuestas:

29

De lo mejor de mi cabeza, sugeriría intentar ejecutar el juego en algunas otras PC de amigos o familiares. Después de eso, es posible que desee considerar alguna forma de prueba beta, es decir, publicar una demostración o algo para que pueda obtener comentarios de la comunidad.

Raoul
fuente
1
Exactamente. Simplemente pruebe en una amplia gama de máquinas de gama baja.
David McGraw
1
Ok ... tienes razón, pero eso es lo que puede pensar de manera propagable para todos. Realmente no entiendo por qué esta respuesta en particular tiene demasiados puntos positivos. Sin ofender, es completamente correcto.
Notabene
24

Una de mis formas favoritas de encontrar esta información es mediante el uso de máquinas virtuales.

Al ver cómo puede configurar el hardware y la memoria que permite la VM, puede probar una amplia gama de configuraciones en su propia PC. Esto también le permite realizar pruebas en múltiples sistemas operativos.

G. Davids
fuente
77
La desventaja de las pruebas de VM es que esencialmente siempre está ejecutando la misma velocidad de reloj y el soporte 3D todavía es bastante abismal. Te ayudarán a cubrir tus bases para asegurarte de que tu juego funcione en 32/64 bits y en la gama de opciones de Windows.
Error 454
Estoy de acuerdo, aunque las máquinas virtuales cubren muchas bases, tiene limitaciones. Sin embargo, a juzgar por la gran cantidad de respuestas, creo que el autor de la pregunta estará bien ^ _ ^
G. Davids
1
@Error 454 No con ESXi, como se describe en mi respuesta. En realidad, puede controlar la cantidad de recursos de CPU y memoria que desea que tenga el sistema operativo
Ray Dey
@ Ray Dey lo siento, no es cierto, ESXi le ofrece un SVGA virtual , no hay acceso directo a su tarjeta de video: kb.vmware.com/kb/1011942
Error 454
@Error 454 No estaba seguro acerca de las capacidades de video, así que no hice ningún comentario al respecto. Debería haberlo dejado más claro. Pero gracias por aclarar eso para mí :)
Ray Dey
16

Deberías tener una idea aproximada de la especificación de minas solo desarrollando tu juego; por ejemplo, si hiciste una elección explícita de usar D3D10 +, obviamente estás eliminando las máquinas XP. Entonces ese es un lugar para comenzar.

Encuentre una manera de probar en tantas máquinas como sea posible, idealmente después de implementar alguna forma de recopilar métricas de rendimiento automáticamente (ya que los usuarios pueden ser poco confiables), así como información no identificable sobre la máquina en la que se está ejecutando el juego (procesador (es), recuento de núcleos, tipo de GPU, RAM, sistema operativo, etc., eche un vistazo al tipo de datos que recopila Steam Hardware & Software Survey ). Una de las mejores maneras de hacer esto es dar tu juego a amigos y familiares, como ya se ha sugerido muchas veces. Otra forma podría ser acercarse a una comunidad de desarrolladores de juegos de hobby y ver si están interesados ​​en probar tu juego. No estoy seguro de que tal cosa sea una pregunta apropiada aquí en GDSE, pero probablemente podría encontrar algunas personas en el área de 'chat' y también podría buscar / publicar en sitios web como:

Todos esos sitios web tienen foros o sub-foros dedicados de alguna manera a mostrar juegos, por lo que es posible que pueda obtener una respuesta razonablemente buena de ellos. Sin embargo, me aseguraría de revelar por adelantado las estadísticas que su juego recopila y / o envía, y por qué las está recopilando. Eso puede molestar a las personas si lo descubren después del hecho.

Tenga en cuenta que la encuesta de Steam también es una herramienta útil en sí misma para medir lo que debería ser una especificación por minuto: puede ayudarlo a ver cuál es la relación costo / beneficio de admitir una característica particular o una clase de hardware para usted.

Josh
fuente
13

Compruebe:
- Cuánta RAM usa
- Cuánta textura + memoria GPGPU usa
- Velocidad de fotogramas mínima / Velocidad de fotogramas actual * Velocidad de CPU * SpeedUpFactorOf (número mínimo de núcleos que puede usar)
- Ecuación similar para unidades de cálculo de GPU
- qué nivel de opengl / directx / cuda que su motor de juego requiere del adaptador de gráficos
: cuánto espacio en disco ocupa la instalación + información del usuario ...

También pruebe en varias configuraciones de hardware.

Danny Varod
fuente
2
Para la mayoría del software, esa relación entre el número de núcleos y la velocidad de cuadros no es lineal.
Ponkadoodle
2
Esta relación también implica que el juego está limitado por la CPU, lo cual no es cierto a menudo.
Kromster dice que apoya a Mónica el
Me refería a eso como una dirección general: cada programador debería verificar qué tecnologías utilizó y de qué recursos dependen. Modifiqué ligeramente mi respuesta.
Danny Varod
8

Básicamente, desea probar en tantas otras máquinas como pueda, desde la plataforma de juegos de núcleo duro de su amigo hasta la máquina de correo electrónico e Internet de su abuela. Especialmente la máquina de correo electrónico e Internet de tu abuela, porque probablemente esté cargada de software y otras cosas que interferirán y ralentizarán tu juego.

Las pruebas de compatibilidad con PC son una gran lata desagradable de gusanos, y hay una razón por la cual las pruebas profesionales son caras. Por lo tanto, desea probar tantos escenarios extraños diferentes como sea posible.

La prueba beta es el camino a seguir, creo, tanto con amigos y familiares como con un círculo más amplio en su comunidad de fanáticos. Lo clave: no confíe en informes anecdóticos. Se puede confiar en que sus amigos realmente responderán, pero la comunidad en general no lo hará, a menos que se lo facilite.

Cree el inicio de sesión en su aplicación para brindarle datos concretos sobre FPS, tiempo de inicio, etc. Entregue al usuario un cuestionario fácil, idealmente integrado en el juego, donde puede informar si lo jugó bien o no. Y tenga esas estadísticas y registros fácilmente enviables por correo electrónico / transmisibles, para que pueda estudiarlos más tarde. Cuantas más estadísticas obtenga, mejor será la idea de si su título es a) trabajando en absoluto en otros sistemas yb) funcionando bien en otros sistemas.

MrCranky
fuente
6

Pruebe en la mayor cantidad de PC que pueda (eso también lo ayudará a detectar todos los errores específicos). Como desarrollador, debe conocer sus principales cuellos de botella: concéntrese en estresarlos. Puede preguntar a sus amigos, colegas en el trabajo, novia, padres, mucha gente en los foros.

PD Solo para referencia:

  • Requisito de CPU = ejecutar el juego con una resolución mínima o sin procesamiento de GPU (espero que el código de procesamiento utilice un mínimo de CPU)
  • Requisito de GPU = ejecutar el juego en una CPU potente con resolución predeterminada y ver qué GPU es suficiente para hacer la tarea, también mencionar la versión mínima de Direct3D / OpenGL
  • Requisito de RAM = cuánta RAM necesita el juego (por ejemplo, a través de TaskManager, con la columna de tamaño de VM, para ver toda la RAM asignada, no solo activa)
  • Sonido = casi todo encaja, solo mencione la compatibilidad con 2 / 5.1 canales
  • Pantalla = especificar resolución mínima jugable donde se ajustan los controles del juego
  • Red = algunas pruebas de carga masivas y ver qué ancho de banda lo permite (módem de 56k, DSL, T1, LAN)
  • Teclado / Ratón / Tableta / Joystick, etc.
Kromster dice que apoya a Mónica
fuente
2
Después de obtener esas cifras, seguramente querrás aumentarlas ligeramente, en caso de que tu juego se ejecute con un uso de memoria bajo.
El pato comunista
2

Para los requisitos, asumiría las cosas mínimas necesarias para ejecutar su juego. Dependerá de las tecnologías que utilice para desarrollar sus juegos.

Por ejemplo, si usa API específicas, como D3D9 u OpenGL 3.0, necesitará especificar eso, porque ciertas API no son compatibles con versiones anteriores.

Si compila con Windows con .NET Framework, también necesitará especificar eso también.

Para los requisitos de rendimiento, probar diferentes máquinas es la mejor opción, aunque es posible que pueda medir el rendimiento relacionado mediante el cálculo.

por ejemplo, si su tarjeta de video actual funciona a 60 fps, y otra computadora con la configuración similar, excepto la tarjeta de video es la mitad de la suya, debería correr aproximadamente la mitad de la velocidad de su máquina. Nuevamente, esto es solo una estimación, muchas otras propiedades afectarán el rendimiento de manera diferente, pero puedes usar esa información básica para probar tu juego en dispositivos específicos.

Espero que ayude, y cualquiera puede corregirme por cualquier motivo.

León
fuente
1

Dependiendo de su mercado objetivo (supongo que no es de vanguardia en 3D, es decir, se necesitan tarjetas gráficas caras), consideraría elegir una selección de tarjetas gráficas más antiguas de algún lugar como EBay para que pueda probar en NVidia y ATi tarjetas

PhillC
fuente
1

Siempre es perfecto recibir comentarios de la comunidad como se mencionó. Pero, ¿dónde conseguir la comunidad y las personas que intentarán probarlo? Publicarlo en algunos foros de juegos independientes ayudará, pero el problema será obtener comentarios reales.

Solo un pequeño porcentaje de personas que probarán un juego te escribirán su configuración exacta y los problemas que ocurrieron. La gente simplemente no hace eso. Una forma mucho mejor es habilitar algún tipo de punto de referencia con la lectura de la configuración del sistema de los usuarios. Solicite al usuario que ejecute un punto de referencia de un botón. Ofrezca algunos números y horarios (sí, a la gente le gusta :-)) y permita que se compare con otros usuarios (con el envío de datos) ... Será de gran ayuda.

Y luego tiene una base de datos llena de configuraciones, resolución de pantalla, tiempos de renderizado y características fallidas ...

Si está en Windows, llamar a DXdiag lo ayudará a leer la configuración de los usuarios. Pero hay algunos programas que puede usar en otros sistemas.

Notabene
fuente
1

Como lo mencionaron otros, la mejor manera es obtener una versión beta y recopilar comentarios de la comunidad para obtener resultados confiables.

También me gustaría sugerir el uso de ESXi. Es una solución de máquina virtual de VMWare. No se desanime porque es una solución de VM. ESX es mucho más bajo nivel.

Esto probablemente sería ideal para usted ya que tiene una máquina. Puede probar diferentes sistemas operativos, configuraciones de hardware (excluyendo el hardware de gráficos, ESXi usaría lo que haya instalado en su máquina).

Básicamente, es su propio sistema operativo muy reducido que puede instalar otros sistemas operativos. Lo usamos en el trabajo por compatibilidad entre una gran cantidad de sistemas operativos. Es muy rápido y confiable, casi tan sensible como una máquina de vainilla.

Sé que los requisitos de hardware son lo que está buscando y ESXi tiene una característica muy agradable en la que puede limitar la cantidad de RAM, CPU o uso del espacio en el disco por parte del sistema operativo y podría emular cómo su juego se ejecutaría desde un nivel bajo CPU final o poca memoria, para CPU de uso superior o uso de memoria (limitado por su hardware real).

Entonces, si tuvieras una PC con altas especificaciones, podrías instalar ESXi en ella, instalar los sistemas operativos que quisieras y jugar con la CPU y el uso de la memoria (¡creo que incluso puedes modificar la cantidad de núcleos que usa el sistema operativo también!)

Aquí hay un enlace: http://www.vmware.com/products/vsphere-hypervisor/index.html

Lo mejor de esto? ¡Es 100% gratis!

Ray Dey
fuente
0

Ejecutar algún tipo de herramienta de creación de perfiles sería una forma. Para los programas Java, puede usar VisualVM ( https://visualvm.github.io/ ). Wikipedia enumera algunos otros. Ver: https://en.wikipedia.org/wiki/List_of_performance_analysis_tools . Lo mismo ocurre con la memoria de depuración. Ver: https://en.wikipedia.org/wiki/Memory_debugger

Básicamente, esto equivale a verificar el uso de la memoria y la CPU en un intervalo regular mientras ejecuta el programa / juega el juego. Luego calcula un rango promedio y eso es lo que necesita la mayor parte del tiempo. Idealmente, esto estaría automatizado (por coherencia y precisión) y querría excluir las cantidades de esos recursos consumidos, compartidos o utilizados por otros procesos. No podría haber algunos problemas prioritarios que ocultan el hecho de que su programa podría usar más memoria si estuviera disponible. Es decir, si el sistema operativo estaba súper ocupado, su programa podría fallar un poco por no tener suficiente memoria.

En última instancia, debe probar / benchmark / profile y luego analizar esas pruebas. Es bueno tener una métrica de rendimiento predefinida para comparar. Por ejemplo, en un FPS, es posible que desee más de 30 FPS para juegos jugables / agradables. En base a eso, establecería la barra mínima en / por encima de las especificaciones de hardware necesarias para cumplir con más de 30 FPS en algún porcentaje del tiempo (siempre es posible que el usuario ejecute demasiado de una vez y cause bloqueos y bloqueos).

Como han dicho otros, realmente necesita que otras personas lo prueben en una variedad de hardware diferente. En un mundo ideal, tendría un grupo de grupos con hardware similar dentro de un grupo y realizaría algún tipo de control frente a pruebas experimentales para ver si más / menos memoria, cpu, gpu importaban cuando los otros factores se mantenían constantes.

Jeremy Harton
fuente