¿Qué tan bien debo conocer C # para desarrollar juegos de Android e iOS en Unity?

Para escribir cualquier programa informático de calidad de producción (incluido un juego) en cualquier lenguaje de programación (incluido C #) utilizando cualquier IDE o biblioteca o middleware o plataforma o motor de creación de contenido (incluido Unity), debe ser competente en el lenguaje de programación, usted debe ser competente para desarrollar ese tipo de programa, y ​​debe ser competente con la plataforma.

Tener “un poco de conocimiento sobre Python” probablemente no lo hace competente para escribir software de calidad de producción incluso en Python, y ciertamente no en C #. Su conocimiento de Python no le brinda, en sí mismo, ningún conocimiento de las plataformas iOS, Android o Unity. No le da, en sí mismo, ninguna competencia específica en la construcción de juegos (que a menudo son sistemas en tiempo real con interfaces de usuario críticamente importantes).

Incluso un experto en programación empresarial con C # no es automáticamente un gran programador de Unity C #. El entorno de la aplicación y el conjunto de bibliotecas difieren lo suficiente entre las plataformas que el programador de Enterprise necesitará desaprender / volver a aprender muchos hábitos y patrones que no son adecuados para el desarrollo de juegos móviles.

Para comenzar, considere lo siguiente:

  • Busque un tutorial básico de C # en línea o en un libro. Léalo y trabaje en los ejemplos. No necesita aprender todo sobre .NET; centrarse en los conceptos básicos del lenguaje de C # en sí.
  • Luego, busca un conjunto de tutoriales de creación de juegos de Unity que usen C #. Unity ofrece algunos de estos en línea, y puede encontrar más en otras fuentes en línea y de libros. Por ejemplo, puede encontrar un conjunto de tutoriales que lo ayudan a crear cuatro o cinco juegos de diferentes tipos, utilizando C # y Unity. Lea los tutoriales y analice los ejemplos.

Cuando trabaje con tutoriales, no solo copie y pegue el código. No solo ejecute los ejemplos preconstruidos desde el disco. Realmente trate de entender cada línea de código. Escríbalo en la computadora usted mismo. Lea el texto cinco veces si es necesario, y regrese y mire ejemplos anteriores, o manuales de referencia, si no está seguro de algo.

Una vez que haya hecho esto, puede comenzar a pensar en escribir sus propios juegos en C # usando Unity, según los patrones que ha aprendido en los tutoriales. Los mejores deseos para su éxito.

Con conocimientos básicos de Python, será mejor que hagas juegos para plataformas de escritorio. Significado PC.

Esto se debe a que para el desarrollo de Android REALMENTE necesita mantener el uso de los recursos bajo control, minimizar la generación de basura, etc., y esto requiere más esfuerzo que la programación para PC de escritorio. Básicamente, la plataforma de Android es menos indulgente.

Por ejemplo, el primer programa que intenté portar a Android (estaba ayudando a alguien) ni siquiera comenzó, porque alguien tuvo la brillante idea de marcar todas las texturas como si necesitaran formato ARGB32 sin comprimir, y todas eran 2k o 4k, incluso para los más pequeños. cosas. Lo que significa que la aplicación se quedó sin memoria y se bloqueó al inicio. Esto se debe a que UNA textura 2048 × 2048 en formato ARGB32 requiere 16 megabytes de memoria.

Por ejemplo, hay esta guía interesante para la optimización móvil:

Optimizando juegos de la unidad (Google IO 2014)

Cuando trabajas en una plataforma de PC, generalmente no necesitas hacer algo así.

El otro problema es la generación de basura, y C # no tiene muchos mecanismos para hacerle frente. Por ejemplo, vea este artículo:
Gestión de memoria C # para desarrolladores de Unity (parte 1 de 3)

C # memoria y consejos de rendimiento para Unity

Entonces, básicamente, tomará más que un “poco conocimiento de Python”. Como mínimo, debería ser capaz de buscar entre montones de información que explique este o aquel comportamiento de C # en lo que respecta al rendimiento.

En general, recomendaría seguir con la programación para plataformas de escritorio al menos al principio.

No harás los juegos más súper optimizados, y no te convertirás en un profesional de inmediato.

Pero definitivamente puede comenzar sin ningún conocimiento de C #, y hasta cierto punto, sin conocer un lenguaje de programación antes. Los niños (mayores de 10 años) también usan Unity y hacen las cosas lo suficientemente buenas como para ser llamadas un juego [en días], por lo que creo que realmente no se requiere mucha información de C #.

Los conceptos básicos de programación no cambian al pasar de Python a C #, por lo que todo lo que necesitaría es acostumbrarse a la sintaxis, lo que definitivamente haría cuando complete todos los tutoriales oficiales (excelentes) de Unity.

Como Christopher dijo en su respuesta, no se requiere conocimiento de .NET. Cuando comencé, no sabía nada sobre .NET, pero sabía C # (60–80%, la mayoría de las veces nunca usaré cosas como inseguras en Unity); la mayoría de mis juegos de pasatiempos no requerían el uso de las funciones de la biblioteca mucho, y Unity en sí tenía alguna alternativa en su propia API.

Dado que Unity es multiplataforma, todo lo que necesita hacer es cambiar su plataforma desde el menú y listo. Si tiene algún problema después de cambiar de plataforma, puede buscar el problema en Google y casi siempre encontrará alguna solución debido a la popularidad de Unity.

Te recomiendo que descargues el editor de Unity y veas los tutoriales ahora mismo.

Yo diría, en el caso de la unidad, que de hecho podrías crear un juego con muy poco conocimiento inicial de C #. Diría que es muy probable que uno renuncie al nivel de conocimiento que implica que posee en este momento, por no decir que no podría hacerlo.

Hay tantos paquetes y tanto código en línea para la unidad que podrías hacer un juego con él. Pero uso el término juego libremente allí. Probablemente sería más una demostración gráfica si fueras un artista razonable.

También es posible usar el código en línea y los tutoriales para aprender lo suficiente como para combinar una especie de juego.

Sin embargo, de verdad y de todo corazón, cuanto más tiempo aprendas antes de participar, más fuerte serás en el proyecto y más lejos podrás llegar.

¡La mejor de las suertes!