Estoy aprendiendo C y tengo unas dudas (no son del código)

Javielitros

Buenas!!

Pues como pongo en el post, estoy aprendiendo CSharp desde hace 15 días, me pongo un cursillo muy bueno que hay en YouTube que si quereis puedo compartir, y mientras voy anotando en un cuaderno todo lo que me parece interesante y la teoría que el mismo dicta y explica.

Mi idea es hacer un videojuego en Unity, con ayuda de más gente, mi especialización seria el script, las vidas que tiene las que pierde y esas cosas internas del juego.

De momento me va bastante bien la cosa lo voy pillando y me gusta bastante, pero tengo dos dudas.

  1. ¿En Unity el lenguaje es CSharp y me parece que un poco de JavaScript pero no estoy muy seguro, si yo una vez aprenda en Csharp quiero modificar algo de JavaScript aprendiendo un poco seria posible? ¿O es totalmente distinto y tendría que empezar a aprender nuevamente todo, por ejemplo se que muchas cosas si se utilizan igual lo que cambia es la manera de usarlo, pero es todo igual?

Me refiero, si && es (y) , y solo se ejecuta si los dos valores que tiene son verdaderos, en javascript tambien se podria usar && o es diferente.

  1. ¿Para poder programar un juego informandome por mi cuenta y echandole mucho tiempo, seria posible en unos meses enterarme de que va el tema y poder hacer mis cosillas? O es ser un poco irrealista?

Muchas gracias!!

ReEpER

Para empezar java es un lenguaje orientado a objectos y c ( no c++) es totalmente procedimental.... la sintaxis de cosas como los && , if , else... son muy similares... pero vamos que no se parecen mucho a nivel de lenguaje...

1 respuesta
Kaiserlau

c# != C

8 1 respuesta
Soltrac

Unity usa c# no c

1 respuesta
ReEpER

almenos as mas similar sharp que c ...

Aloy

Para mí personalmente lo más importante al empezar a programar es adquirir una buena base para saber cuando se debe usar un if, un bucle, una lista etc. o hacerte buenos algoritmos que solucionen lo que vayas necesitando.

De modo que sólo necesites saber si se escribe '&&' o 'and' o lo que sea y conocer un poco el manejo concreto del lenguaje que se use. A partir de ahí ya entra la experiencia, el aprender a usar los framework y todo lo demás que te vaya haciendo falta.

De Unity concretamente no puedo decir mucho porque no lo he trabajado nunca

1 respuesta
valdes86

Me parece una perfecta forma de empezar a programar, C es el lenguaje que se debería aprender siempre el primero, es un lenguaje de más bajo nivel, se aproxima más al computador que otros cono c++/c#, java , python... la sintaxis no difiere mucho, y la orientación a objetos es algo más teórico y "simple" que, una vez que sabes programar casi es hasta natural.
Por otro lado como te comentan en Unity se usa C# más similar a java y totalmente orientado a objetos, muy alto nivel lo que, en este caso, tampoco es problema, Unity se encarga de la mayoría del trabajo de bajo nivel.
Java que yo sepa no se usa, quizás lo confundes con Java script, no recuerdo si se puede usar en Unity pero NO ES JAVA, es un error bastante común entre gente que no sabe de programación pensar que son lo mismo.

Para programar un juego en unity, depende tu objetivo, empieza aprendiendo bien los conceptos básicos de la programación y la orientación a objetos, que es una clase, métodos públicos privados de paquete, algo de herencia... y cuando empieces a hacer tutorial es empieza con 2D si no tienes una base de álgebra que te permita entender como se trabaja con vectores miltidimensionales y transformaciones en el espacio. Una vez más Unity se encarga de lo más gordo pero es importante entender que esta pasando.

Por lo demás la programación en un 80% echarle horas y tener en favoritos stackoverflow.com
Ánimo y suerte!

1 respuesta
Javielitros

#2

Osea que cada vez que se aprende un lenguaje nuevo, hay miles de cosas nuevas y algunas parecidas no? que esa es más o menos mi duda, o sabiendo un lenguaje ya mas o menos entiendes un poquitin de todos lo que cambian cosas?

#3

int csharp = 1;
bool fail = true;

#4

Cierto, pelada mia

#6

Si eso estoy intentado, coger una buena base y apuntar todo por si me atasco mirarme los apuntes y poder hacerlo

#7

Muchisimas gracias por la respuesta, si lo de c sharp ya me he dado cuenta de que la estaba pelando, rectifico jeje, pero si yo consigo entender csharp bien, si luego me pusiera a programar en c no tendria ni pajolera idea?, unity hasta que manera ayuda?, es tantisimo lo que se nota?

Gracias a todos por contestar !!, soy un novatin aun en esto pero le pongo ganas y tiempo jajaja.

Edit: Edit ninja al post de arriba :ninjaedit:

2 respuestas
Aloy

#8
Ánimo y dedícale mucho tiempo.

Después ya verás que la lógica detrás de un if es la misma en Csharp, C o Java y lo bueno es llegar al momento en que te dé igual cómo se escriba en ese lenguaje en concreto. Y lo mismo pasa con muchos otros conceptos de programación en general.

Para mí lo más complicado fue pasar el momento de "cambiar el chip", de saber lo que necesitas que haga tu programa y poderlo expresar fluidamente en bucles, clases, condicionales y variables. Una vez tengas eso, todo irá rodado.

1 respuesta
Kaiserlau

#8 Lo q necesitas es ponerte ya a ello.

1 respuesta
Javielitros

#9

Si todo los dias me pongo un par de horitas a tomar apuntes y luego pongo en practica algunas cosillas, es algo que me llama mucho la atención la verdad, claro esa era mi pregunta, si la lógica es la misma, porque se que por ejemplo para sacar un texto en c++ en printf y ahora en csharp para sacarlo pon consola tengo que poner Debug.Log, que a fin de cuentas sera "lo mismo", pero expresado de diferente forma, de hay vienen mis dudas.

#10

En ello estoy! jaja :clint:

Gracias gente! asi da gusto

2 respuestas
Kaiserlau

#11 Tomar apuntes y tal esta bien pero lo q necesitas es picarlo hacer practicas y poner en uso lo que vayas viendo (equivocarte,fallar es un parte del proceso). Y por otro lado da igual el lenguaje con q lo hagas.

GOOOO! Lok0!

1 respuesta
Javielitros

#12

Claro, pero de momento necesito moverme sobre una base, porque me quedo atascado mil veces, y necesito comprender la teoria, en cuanto más o menos la conozca me pongo en marcha a intentar hacer algo

1 respuesta
Kaiserlau

#13 ok pero no te agobies, de todas maneras a todos los ha pasado eso xD las primeras semanas o meses de introduccion siempre son un camino escarpado. Luego ya te vas soltando segun vas haciendo tus primeros scripts/programllas.

1 respuesta
Javielitros

#14

No si voy poco a poco pero tengo un cacao mental de cojones jajaja, digo yo que con el tiempo lo iré comprendiendo mejor.

Una pregunta asi un poco idiota, ¿con csharp se puede llegar a generar un programa?, ¿o solo es para hacer scripts? ¿o en el caso de unity solo sirve para hacer scripts?

Porque cuando empece con c++ si que habia posibilidad de hacer tus programillas y tal, me fui a bajar la libreria allegro pero me acabe rallando por los resultados que tenia y me quise meter a algo mas "gordo" con el que pudiese abarcar juegos de esta época

2 respuestas
A

esto no tendria que estar en el apartado de estudios?

1 respuesta
Javielitros

#16

Sinceramente no lo se, como eran dudas y me he metido dentro del apartado y eran códigos y de mas no quería liarla por alli, y como se que el off topic es para cualquier cosilla pues lo he puesto aquí

Kaiserlau

#15 en c# como lenguaje de alto nivel puedes hacer muchas cosas, tienes librerias especificas etc.. Que unity use c# como lenguaje para interactuar con su motor o entre entidades etc (no toco unity) no quiere decir que en c# no puedas hacerte otro tipo de programas o scripts mucho mas sencillos. Pasate por google y las guias de microsoft para hcerte una idea.

1 respuesta
Javielitros

#18

Y si yo aprendo c# por mi cuenta, luego lo puedo emplear tambien en Unity como lo aprendido + lo que añada Unity?

1 respuesta
Aloy

#11
Exactamente a eso me refiero, ya sabes que puedes pintar líneas de texto en programación de algún modo. Ahora ya te da igual si es usando 'printf' o 'debug.log' o 'console.log' o 'System.out.println()'.

Esa es la base que digo, y lo mismo es aplicable a muchísimas cosas más. Que sólo tengas que consultar cómo es específicamente en el lenguaje que estés usando.

A lo de #15 no lo sé, si se pueden llegar a hacer aplicaciones completas con Csharp. De todos modos también te aconsejo que no quieras controlar muchas librerías al principio porque van a ser un lío. Mejor afianzar conocimientos y luego ya verás que su uso es más fácil de lo que parece.

1 respuesta
Kaiserlau

#19 Si, pero ya te estamos diciendo no es tanto aprenderte c# o java etc (en el fondo para aprender da igual juana q su hermana), es ir pillando conceptos, metodologia etc..

pd: Animo que todo el mundo a pàsado por esa etapa xd

1 respuesta
Javielitros

#20

Claro pero igual que puedes pintar lineas de textos que en cada lenguaje usara su "código", también los if, arrays, <=, ?, switch, todo eso es igual? o cambian?

Me refiero con esto, en un lenguaje puede ser switch(loquesea){
case 1:
etc...

en otro lenguaje puede ser (un ejemplo) suprima(loquesea){
casetedelaprima 1:
etc...

0 == 1 // 0 h 1 (y referirse a igual los dos, o siempre sera == en este caso?)

¿? osea, lo que es la base la misma pero cambian las palabras y eso no?

#21

Te pongo el mismo ejemplo que a el,

de ser asi entonces me alegra, porque al menos no voy a tener que entender todo mil quinientas veces, osea lo que es la base, luego claro las palabras si cambian pues si tendré que aprenderlas.

Y si de momento me especializaré en hacer scripts en unity porque si no yo creo que va a ser mucho follon, o me recomendais que vaya aprendiendo algun tipo de lenguaje que luego me vaya a servir en un futuro para comprender mejor la programación?

Gracias por la ayudita!

2 respuestas
Zapador

Yo admiro a aquellas personas que se ponen a aprender de forma autodidacta...así que ánimo tío.

Solo recordar mis primeros tres meses en el ciclo superior de programación, me pone malo.

1 respuesta
D

python > all

nada mejor que aprender empíricamente. :D

2
Javielitros

#23

A ver.. en mi situación no me quedan más pelotas a si que a ver como se da la cosa en un tiempo

Kaiserlau

#22 Si que cambian cosas de unos a otros pero es cuestion de mirar la documentacion una vez que sabes que necesitas para construir lo que sea. Luego cada lenguaje tiene su cosillas, pero ya te digo solo es cuestion de mirar la docu mirarte dos ejemplos y ya.

1 1 respuesta
Javielitros

#26

Valee!! perfect, hay estaba mi dudilla osea que , una vez aprendes la funcion de cada cosa, aunque se llame de distinta manera, se emplea igual no?

Aloy

#22

Puede variar bastante mas que solo las palabras. Por ejemplo que en lugar de {} el bloque tenga SWITCH [contenido] ENDSWITCH y lo mismo pase para los case: , pero si has entendido que estás comparando posibles valores con un dato y en función del que sea ejecutas un bloque de código, ¿que mas da que palabras y símbolos sean?

1 respuesta
Javielitros

#28

Uf claro hay ya se complica un poco más la cosa, no hombre a ver, a las malas pues mirartelo otra vez con lo que quieras empezar, pero claro con lo que me esta costando esto, no me imagino poniendome con todos como estoy haciendo con este, es más que nada el esfuerzo por volver a aprender todo nuevamente por eso la duda tan existencial jajaja

1 respuesta
Aloy

#29

El más arduo es el primero, porque todo es nuevo. Cuando aprendas a programar en uno, verás que es mucho más sencillo aprender otros.

De hecho llegará el momento en que mirando una cheatsheet y dedicando unos ratos a familiarizarte con el lenguaje nuevo, podrás ir tirando hasta pillar experiencia con ese lenguaje en concreto.

1 respuesta

Usuarios habituales