Foro

Duda seria sobre lenguajes de programación (C# y C++)

Otros lugares, otras opciones :: Sin clasificar :: Duda seria sobre lenguajes de programación (C# y C++)

Este hilo ha sido cerrado.
09/10/2019, 17:35
Editado: 09/10/2019, 17:36

A ver, esta sí va en serio... xD Es algo de lo que no tengo ni idea y creo que me voy a volver loco si le sigo dando vueltas a este maldito tema.

Veamos, tengo intención de aprender a programar con miras a desarrollo de videojuegos. Mi especialidad es la parte gráfica, pero llevo años queriendo aprender la parte de programación por pura curiosidad y para poder poner a funcionar mis propios modelos y las texturas en algo más complejo que andar y saltar. No pretendo ni de lejos hacerme un crack, pero sí saber lo suficiente para defenderme en entornos de desarrollo como Unity o Unreal, sobre todo para poder dar funcionalidad sencilla a proyectos de visualización y eso... funcionalidades básicas, principalmente.

Y aquí viene mi principal duda, que es muy concreta: ¿Si aprendo a manejarme en C# (que es el lenguaje con el que trabaja Unity), la transición a C++ (que es el que maneja Unreal) será muy dramática? Lo digo porque tengo una pila de cursos muy guapos de C# con Unity y me gustaría hacérmelos... pero luego lees por ahí que si está muy limitado, que no es tan general como C++, que si coges vicios, que si C++ es más complicado pero mejor... Vamos, que tengo un lío en el coco de la leche entre los dos lenguajes. Lo ideal parece empezar por el más accesible y luego ampliar al otro cuando lo necesite, sobre todo teniendo en cuenta que están emparentados, pero... ¿se puede empezar por C# y luego esa experiencia sirve para cuando quiera aprender C++? ¿O realmente es mejor empezar por C++ sin más?

Ah, ya sé que Python mola y todo eso, pero mi intención es conocer por lo menos uno de los anteriores para trabajar con los entornos mencionados. Pyhton también lo miraré, pero por otras razones.

Gracias y a ver si alguien me puede despejar un poco la nebulosidad mental... -_-u

09/10/2019, 18:04
Editado: 09/10/2019, 18:05

A ver, más fácil es C#, que no deja de ser un Java de Microsoft y está enfocado a la programación de alto nivel, por tanto hay cuestiones de las que no te tienes que preocupar para armar algo que haga cositas. El aprendizaje, por tanto, es bastante sencillo y con un poco de esfuerzo te haces a ello.

Pero si vas a pasar al final a C++ ¿Por qué no empezar por ahí desde el principio? En ese sentido yo no puedo darte una opinión objetiva. Empecé por C, luego C++, etc, etc... por lo tanto para mi ha sido una especie de progresión. C++ es más "difícil" porque tienes que asimilar una serie de conceptos intrincados con lo que es la programación en si, por eso al final es más potente y estable porque C++ puede atacar a los mismos fundamentos del funcionamiento de la máquina en sí. Tarde o temprano, si vas a querer ir a C++/Unreal vas a tener que aprenderlos, pero es verdad que para el que no ha dado programación nunca puede ser un poco árido o aburrido (imagino eh? que conste).

Como no sé cuáles son tus conocimientos previos ni tu motivación, tampoco sabría decirte bien porqué empezar. Si estas supermotivado y tienes algunos conocimientos ya, ¿a qué esperas para ir a por C++?

Si no tienes ni idea, ni tampoco sabes si te va a gustar o no, pues C# puede ser menos frustrante.

09/10/2019, 19:09

Hombre, realmente lo ideal en mi caso sería conocer C++, dado que el entorno en el que estoy especializado es Unreal Engine. Pero también me han dicho que igual no es mala idea que me inicie con Python y de ahí pase a profundizar con C++ cuando realmente lo necesite. Al fin y al cabo, Unreal tiene programación por nodos con Blueprints para funcionalidades básicas y prototipado...

Pero no sé si será muy locura intentar un salto de Python a C++. Si no tienen nada que ver, igual me la pego. Si quisiera empezar por un lenguaje más accesible como antesala a C++, me parece más intuitivo un salto desde C# que desde Python. Pero como mis conocimientos no llegan a tanto, igual me equivoco.

Y también es verdad que saber Python no sobrará, teniendo en cuenta lo que se está extendiendo y que también hay entornos de desarrollo de videojuegos basados en él...

Naein
 
09/10/2019, 21:04

Bueno, creo que en este tema puedo hablar con conocimiento de causa en C# y C++, (que no Unity/Unreal) de los que llevo unos cuantos años a las espaldas. Voy a suponer que cómo me hablas de estas dos opciones me estás hablando de un SO Windows y que tienes (...) el  Visual Studio, que es en mi opinión el mejor IDE de los que he probado (y también llevo unos tantos). Si todo esto es cierto, sin dudarlo haría una aproximación por C#. Porque? Meterte directamente en C++ a pelo al nivel de frameworks de tan bajo nivel significará meterse en el mundo tan maravilloso de los punteros y... Eso no es algo que recomendaría a ningun principiante.

A partir de ahí, cuando tengas un poco claro C# y sepas defenderte algo, podrías acercarte a C++ empezando con lo básico y creando librerías para llamarlas desde tu programa en C#. Con esto podrías hacer rutinas que llamen a Unreal en C++ y usarlas en un programa en C#.

Pero si te quieres especializar y conocer sólo C++... Te recomiendo que empieces en C++/CLI y no C++ a pelo. Que básicamente es un C++ con .NET. Aunque este sendero es algo más escabroso por la escas documentación de C++/CLI.

Si tienes dudas, en algo, no dudes en preguntar.

09/10/2019, 21:05

Python es muy buen lenguaje para empezar a aprender a programar por un montón de motivos pero programar no es para todo el mundo, igual que no es para todo el mundo hacer puzzles o hacer la torre eiffel con palillos. Yo te aconsejaría que si lo que quieres saber es si te gusta programar empieces por Python o C# ,si ya quieres ir orientandote. C++ como te han dicho es mucho más crudo que C# pero tiene potencia infinita... probablemente te toparas con cosas como punteros, parámetros por valor o por referencia que igual pueden ser avanzados si es la primera vez que te acercas a la programación.

El salto desde Python a C++ no diré que es como del blanco al negro pero casi. Mi consejo es que pruebes a programar a ver si va contigo porque te sorprenderías la cantidad de ingenieros informáticos que salen de la carrera con tirria a tirar código.

Estos son dos cursos gratuitos que pueden servirte para meterte la patita y ver si te ves haciendo eso o no. El primero está en inglés pero se basa en programar jueguecillos chorras en Python, creo que acababas haciendo un Asteroids. El segundo no lo conozco pero está en castellano

https://www.coursera.org/learn/interactive-python-...

https://www.coursera.org/learn/a-programar

09/10/2019, 21:11

Meterte directamente en C++ a pelo al nivel de frameworks de tan bajo nivel significará meterse en el mundo tan maravilloso de los punteros

No puedo evitar soltar una vez más el...

¡¡¡LOS PUNTEROS NO SIRVEN PARA NADAAAAAAA!!!

Resultado de imagen de take cover gif

Es broma, por supuesto. xD Sé que son una parte indispensable de la programación en C++, y que son famosos por su potencia para optimizar el uso de memoria, aunque no tengo más que una nebulosa idea de cómo funcionan y probablemente sea errónea. Pero me dan mucha curiosidad. =)

El salto desde Python a C++ no diré que es como del blanco al negro pero casi. 

Ese es el miedo. La verdad es que Python me atrae bastante más que C# como lenguaje de introducción porque ya lo manejo un poco (muy poco), y hay un montón de programas y entornos de desarrollo que lo usan y me interesan. Pero el salto a C++... no sé si será factible.

Lo de gustarme programar no es problema, ya he comprobado que me gusta. El problema conmigo es precisamente ese, que me suele gustar todo y me cuesta horrores concentrarme en una cosa concreta. Por eso quiero decidirme por un lenguaje, dejar de dar bandazos y aprender en condiciones. Cuando lo domine, ya pasaré a aprender otro si lo necesito. xD

09/10/2019, 21:31

En mi opinión, conociendo los fundamentos de la programación, pasar de un lenguaje a otro no es tan traumático. Yo aconsejaría primero aprender a programar con phyton, como ya se sugirió aquí, luego pasar a c# y más tarde a c++. Tampoco descartaría probar otros lenguajes como java (que también es de la familia del c) o pascal. Cada uno tiene sus ventajas y desventajas. Al final uno se forma su propia opinión sobre qué le sirve y qué no, dependiendo que qué es lo que quieras hacer y cómo te gusta trabajar.

Naein
 
09/10/2019, 22:00
Editado: 09/10/2019, 22:02

Señores, estoy muy en desacuerdo con vosotros... Si, python es sencillo, pero pasar a C++ después de conocer Python en el que casi todo lo que haces se hace por "arte de magia", es una muy peor opición (desde mi punto de vista). Ahora, si me dices que ya sabes python, pues podría ser interesante, aunque creo que, como tu dices, por otras razones. A mi python siempre me ha parecido un lenguaje muy bueno para el prototipaje (hacer cositas rápidas y funcionales), pero para algo como videojuegos me parece una aproximación incorrecta. Creo que pasar de python a C++ es un cambio de paradigma, uno mucho más complicado que de C# a C++ por la intrínseca sencillez de programar en python.

(Si, también conozco python, es lo que tiene trabajar actualmente con frameworks de IA... todo está en python XDD)

09/10/2019, 22:44

Naein, si tienes razón, si pudiera saltar directamente a C++ sería una pasada pero no es para todo el mundo el tirarse directamente al triple salto mortal con tirabuzón y carpado. Todo depende de como quieras gestionar tu curva de aprendizaje... con Python/Java/C# se pueden hacer cositas de forma rápida e ir cacharreando, con C++ cacharrear es bastante costoso y los conceptos que maneja a nivel de programación son más avanzados :D

Drawnin, nunca preguntes a un programador sobre lenguajes de programación. Huye insensato!! XDD

PD: Si aprendes Python podemos esclavizarte al remo de la natilla.... XDDDDDD

10/10/2019, 00:51

Alaaaa!

Pues me viene como anillo el dedo el hilo ya que creo que voy a empezar un curso de Unity y videojuegos, así que se que aquí se controla del tema... Por preguntar dudas y eso cuando surjan jeje.

Respecto a lo de que hay informáticos que odian picar código, os doy la razón. Muchos hay. Pero también estamos el grupo de los que nos gusta, aunque no le podamos dedicar mucho tiempo. Tiene que haber de todo que si no nos aburririamos.

No conozco en persona los lenguajes que planteais. Llevo mucho tiempo con ABAP y estoy obsoleta en lo que se lleva ahora. Así que también me orientais a mi en este mundillo con vuestros comentarios.

Lo dicho... Que lo mismo os voy preguntando sobre todo a los que conozcais Unity! :p

rahel
 
10/10/2019, 00:57

Lo dicho... Que lo mismo os voy preguntando sobre todo a los que conozcais Unity! :p

 

Yo fui a un curso de Unity. Espero que el tuyo esté mejor organizado y sea menos desastre que el mío, porque estuve recordando el curso entero ese gag de los simpson de 

-podría dar clases de piano

-Mamá, tu no sabes tocar el piano.

-Solo hay que sacarle una lección al alumno.

 

Por cierto, estate atenta a Humble Bundle, que de vez en cuando salen unos packs de utilidades y cursos para unity maravillosos. Ahí conseguí un curso completísimo de Zenva entre otras chuladas.

Feynn
 
10/10/2019, 09:41

Yo aprendí primero C y de ahí a C++ fue un paseo. No obstante como te recomiendan por ahí C# y después C++ te proporcionará una curva de aprendizaje mas dulce.

Igualmente da igual con lo que empieces y continúes, al final aprendidos 2-3 lenguajes verás que la lógica detrás siempre es la misma. Lo importante es echar horas y pegarte con ellos, comprender los conceptos de cada uno y luego ya practicar y practicar resolviendo errores súper sencillos que asgh@khs!! como no pudiste ver desde el segundo 1 y te has tirado 5 horas buscando.

10/10/2019, 11:01

Pues me viene como anillo el dedo el hilo ya que creo que voy a empezar un curso de Unity y videojuegos,

Algún día, de esta web saldrá el videojuego definitivo. Tiempo al tiempo... xD

10/10/2019, 14:36
Editado: 10/10/2019, 14:38

A ver, que quieres hacer exactamente? La parte gráafica de videojuegos? blender y otros programas de animacion 3d tienen muy poco de programación(como usar bien photoshop, no tiene nada que ver), motores como unity o unreal o three.js te facilitan las cosas, dándote millones de cosas hechas,por tanto a mi parecer el lenguaje no es tan interesante, si quieres hacer el motor gráfico y las físicas tu todo, pues c++, pero creo que eso es demasiado para abordarlo a nivel particular, la verdad.

Hacer un videojuego tiene un desafío evidente, diseño, multimedia y jugabilidad, por contrapartida la parte técnica... tiene su cosilla pero no es para tanto.

Con c# para unity vas sobrado.

10/10/2019, 15:22

A ver, que tampoco parto de cero. xD

Todas esas cosas las domino, mi máster fue de desarrollo de videojuegos, pero se centró en la parte gráfica y narrativa. De programación solo dimos un poco de Kismet* en Unreal 3, de ahí que quiera ampliar esa parte.

*Por llamar a Kismet "programación"... xD

Naein
 
10/10/2019, 16:01
Editado: 10/10/2019, 16:03

por contrapartida la parte técnica... tiene su cosilla pero no es para tanto.

Uff, me ha dolido a mi y mira que no soy desarrollador de videojuegos... pobres programadores de la industria del gaming. XDD

Por cierto, lo que no entiendo es: Con los motores actuales y eso que tenéis del kismet y esas cosas, en qué parte necesitáis en el gaming la programación? Sólo para el modelaje de la lógica del juego? (que si puntos de vida, daño del disparo, etc, etc?)

10/10/2019, 17:20

Tecnicamente si vas a por un indie, no hace falta más que Unity. Grandes juegos (Ori and the Blind Forest, por ejemplo, o Heartstone) son puro Unity. Mi consejo es que empieces por algo sencillo como Phyton y aprendas como va el tema antes de meterte en harina. Cambiar de lenguaje es un follón, pero es mucho más follón no controlar lo que estás haciendo y no tener recursos, aunque sean recursos de otra historia.

10/10/2019, 18:44

He estado en comunidades de desarrollo de video juegos y te dire que lo que sobraban era fuerza técnica y faltaban artistas, es decir, dibujantes, modeladores 3d, animadores por encima de lo demás.
Un video juego 2d probablemente lo hagamos en esta comunidad muy facilmente, en cuanto a la perspectiva tñecnica, pero hacer las animaciones.... es otro cantar.

10/10/2019, 18:45

Un video juego 2d probablemente lo hagamos en esta comunidad muy facilmente

Estoy por soltar un "no hay huevos", a ver qué pasa... xDDD

Naein
 
10/10/2019, 19:24

Suéltalo si te atreves...

Yogurt RPG: Empezando desde nivel "Espectro Friki" avanzando por la comunidad blandiendo el juego de rol de la señorita Pepis matando Hodrums a diestro y siniestro hasta llegar a nivel Frikimaster y poder enfrentarte al Demiurgo... Sólo para que al final justo antes de derrotarlo y quedarte con el Yogurt todopoderoso, saque una... Natilla!

Pues le veo futuro XDDD

10/10/2019, 19:31

Para un Autorol sería la risa... xD

10/10/2019, 21:22
Editado: 10/10/2019, 21:23

Si la web 2.0 es la natilla, el juego es yogur?
Unepic, lo habéis jugado? Algo así si que se puede.

11/10/2019, 11:15

Estoy por soltar un "no hay huevos", a ver qué pasa... xDDD

No hay huevos. :P

¿Necesitáis algún actor de doblaje para las cinemáticas? :3 

Este hilo ha sido cerrado.