Ir al contenido

publicidad
publicidad

Foto

¿ Me conviene aprender C# solo por XNA ?


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
11 respuestas en este tema

  • gotenx

  • Bahamut

  • vida restante: 100%
  • Registrado: 13 ene 2008
  • Mensajes: 4.253
#1

Escrito 25 enero 2011 - 18:04

Pues eso, de vuelta en Windows habia pensado en iniciarme a la programacion de videojuegos (mas alla del Game Maker...) con XNA, el problema es que tengo que aprender un nuevo lenguaje (C#),el que dicen que es muy facil,pero en comparación con C o C++ me parece mucho mas complicado,por ejemplo, donde en C++ hacia un cout << "hola/n" en C# tengo que hacer un system.console.writeline "Hola".
Y por eso me entro la duda de si me es factible aprender este lenguaje solo para XNA,porque sabiendo C++ dudo que lo use (aunque dicen que las GUI son mas faciles) o si me recomendais hacer juegos con Allegro,SDL,etc. y olvidarme de esta plataforma.
Gracias.

#2

Escrito 25 enero 2011 - 19:08

Sabes Java? Lo digo porque Java y C# son practicamente iguales, con lo que si sabes uno sabes casi autoamticamente el otro.

Si controlas C++, no te llevará mucho tiempo defenderte con C#. Hay por ahi videos y libros de como pasar de C++ a C# en poco tiempo. A mi no me costó casi nada. Aunque eso si: una cosa es saber C# y otra cosa es dominar C#.

Si solop lo haces por XNA... hombre, XNA tiene cosas buenas. Y la comunidad que hay detras de XNA es bastante potente. Aunque eso si, olvidate de linux, NDS, PSP, etc... Solo Windows, XBOX y WP7

Yo si que lo haria, aunque es mi opinion. Otros te diran que no

Un saludo

  • Btc

  • Adramalech

  • vida restante: 100%
  • Registrado: 15 oct 2007
  • Mensajes: 1.932
#3

Escrito 25 enero 2011 - 19:30

XNA ahora también se puede usar (con ciertos límites) en VB.NET.... pregúntale a OllyDBG que el entiende ;)

  • gotenx

  • Bahamut

  • vida restante: 100%
  • Registrado: 13 ene 2008
  • Mensajes: 4.253
#4

Escrito 25 enero 2011 - 22:14

@rantamplan87
No,no se java,habia pensado en estudiarlo pero... me parecio complicado.
Sobre lo de las plataformas,basicamente es para Windows,para practicar,tampoco voy a vender ni nada por el estilo X-D
@Btc
no entiendo... que se puede implementar con Visual Basic.NET ? De todas formas no se VB :D... si fuese con C...

#5

Escrito 25 enero 2011 - 22:44

Es muy facil el C#, hasta diria que es más complicado el Java.

Se que ver el nombre ese tan brutal que le ponen a ciertas funciones hace que se te quede cara de póker al ver el código.

Lo que pasa es que lo que usas son librerías y te haces un lío. Si quieres abreviar el uso de la consola, simplemente encima del todo de la clase antes de escribir el codigo pon: "using system".

De esta manera, para escribir "Hola mundo" simplemente se pone:

Console.WriteLine("Hola mundo").

O bien de esta manera:

Console.Write("Hola mundo" +'\n')

C# y XNA es un camino muy fácil para hacer juegos, aunque tambien podrias probar con Pygame, que es algo similar al SDL pero hecho en Python, un lenguaje de programacion muy simple.

  • gotenx

  • Bahamut

  • vida restante: 100%
  • Registrado: 13 ene 2008
  • Mensajes: 4.253
#6

Escrito 25 enero 2011 - 23:05

Si,bueno,Python se,de PyGame me habia olvidado,voy a probar a ver :D
He encontrado unos cuantos tutoriales de C#,voy a ver cual me gusta mas y me pongo con el.
Gracias.

  • Caid

  • Ultima

  • vida restante: 100%
  • Registrado: 07 ene 2003
  • Mensajes: 1.810
#7

Escrito 27 enero 2011 - 19:27

C# es muchísimo más sencillo que C++. Es más, sabiendo C++ y teniendo claro los conceptos básicos de la programación orientada a objetos, puedes estar desarrollando en C# en menos de una semana. Te lo digo por experiencia propia.

Aunque la sintaxis te parezca más complicada, Visual Studio ayuda mucho a escribir en C# El entorno puede buscar un método en los espacios de nombres, puede examinar un objeto para decirte qué métodos son accesibles, qué parámetros toman, qué sobrecargas hay... Y eso sin abrir la ayuda.

No sé si se nota que soy un entusiasta del lenguaje :D

  • Ollydbg

  • Valefor

  • vida restante: 100%
  • Registrado: 05 sep 2008
  • Mensajes: 6.259
#8

Escrito 27 enero 2011 - 22:17

A ver, por partes. Creo que hay gente tiene una idea bastante equivocada o más bien algo distorsionada sobre el arte de la programación.
Y sí, habéis leido bien, la programación es un arte, independientemente del lenguaje utilizado.
No se puede pretender que por el mero hecho de saber la "sintaxis" de un lenguaje en particular (léase C, C#, Java, Ruby, etc) se pueda considerar que "ya se sabe programar".

Programar va mucho más allá de saber que si en C los bucles que escriben tal que así:
[code:1]for(int i = 0; i < 10; i++)
{
vector = i;
}[/code]
o en VB se escriben "asá":
[code:1]For i As Integer = 0 To 9
vector(i) = i
Next[/code]
o que en Pascal se escriben "asín":
[code:1]For i := 0 to 10 do
begin
vector[i] = i;
end;[/code]

Pongamos por ejemplo C#. Puedes saber "mucho de C#" por ejemplo para aplicaciones Windows Forms, en la "típica aplicación" de gestión.
Por "mucho que sepas de C#" en ese ámbito (gestión), te darás de tortas (por no decir de ostias) si intentas, por ejemplo, programar un sistema de reconocimiento de visión artificial, usando lógica difusa y redes neuronales. (Aquí es cuando alguien exclama ¿HOLA? :O )

Sí, si, que vale, que "sé mucho de C#", pero de visión artificial, redes neuronales y lógica difusa, ni pajolera idea.

Y esto ocurre con cualquier lenguaje de programación. lo del ejemplo anterior en C#, es sólo un ejemplo, que no se me mal interprete eh! :)

A donde quiero llegar, es que es más importante saber los conceptos o fundamentos, que la sintaxis del lenguaje en cuestión.

En la programación de videojuegos en particular:
- ¿Sabes como implementar algoritmos de tipo A* (pathfinding)?
- ¿Sabes implementar Octrees o BSP Trees para optimizar la carga de render de una escena?
- ¿Sabes como funciona en general la programación de multi-threading?
- ¿Sabes como implementar shaders para generar mapas de oclusión y/o colisión en una escena?
- ¿Sabes utilizar realmente la potencia de la programción de objetos para implementar herencia, polimorfismo, sobrecargas, operadores lambda, etc?
- ...y podría seguir así hasta mañana...

Lo que quiero decir, es que tu pregunta está mal enfocada.
Puedes "saber XNA", y no "saber C#"
De la misma forma que un tio que se pasa 8 horas al día desarrollando aplicaciones mega-tochísimas en Java para el Banco 'Z'antander, sabrá mucho de "Java para gestionar un banco", pero quizás no tiene ni idea de usar "Java para hacer juegos para móviles" ¿"[i]Me se
" entiende el concepto? ;)

Por lo tanto y es mi consejo (que es gratis), es que busques una librería, framework o engine que cubra tus espectativas, y que luego, en función del lenguaje que soporte dicha librería, framework o engine utilices el que te sea más cómodo.

Saludos.

-Editado-

Como he visto que eres "fan" de Minecraft, te dejo esta perla:

http://www.youtube.com/watch?v=TcuHy63T5gY

OJO: 48 MINUTOS DE VIDEO:


http://www.youtube.com/watch?v=chQjS3vUbE0

La página principal esta aquí: http://manicdigger.s...forge.net/news/

Ahora te vas aquí: http://sourceforge.n...ts/manicdigger/

Te descargas el código fuente en C# y a-l-u-c-i-n-a pepinillos.
Ya puedes "saber mucho, muchisimo, muchisisisimo, C#" :)

En particular, ese "rip-off" de Minecraft está programado enteramente en C# usando esta librería: OpenTK

OpenTK permite usar cualquier lenguaje .NET, por ejemplo C# pero tambien VB.NET.

Yo me descargue el código fuente y aún me duele la cabeza :)

Re-Saludos.

#9

Escrito 28 enero 2011 - 13:26

C# es muchísimo más sencillo que C++. Es más, sabiendo C++ y teniendo claro los conceptos básicos de la programación orientada a objetos, puedes estar desarrollando en C# en menos de una semana. Te lo digo por experiencia propia.

Aunque la sintaxis te parezca más complicada, Visual Studio ayuda mucho a escribir en C# El entorno puede buscar un método en los espacios de nombres, puede examinar un objeto para decirte qué métodos son accesibles, qué parámetros toman, qué sobrecargas hay... Y eso sin abrir la ayuda.

No sé si se nota que soy un entusiasta del lenguaje :D


Existen frameworks que hacen lo mismo para todos los lenguajes... igual con el drag and drop para crear aplicaciones con ventanas mas facilmente.


pd: estoy de acuerdo que saber programar va mas de saber resolver una lista creciente de problemas y no aprender uno u otro lenguaje. Aunque cuando la gente los estudia te metan meses y meses en ello, repitiendo conceptos que ya sabes, yo aprendo lenguajes nuevos con unas pocas horas porque una vez sabes lo que es un bucle, un foreach, una clase... etc, hacerlo en un lenguaje nuevo solo es memorizar la sintaxis y referencia de este y poco mas...

De todas formas...

- ¿Sabes como implementar algoritmos de tipo A* (pathfinding)?
- ¿Sabes implementar Octrees o BSP Trees para optimizar la carga de render de una escena?
- ¿Sabes como funciona en general la programación de multi-threading?
- ¿Sabes como implementar shaders para generar mapas de oclusión y/o colisión en una escena?
- ¿Sabes utilizar realmente la potencia de la programción de objetos para implementar herencia, polimorfismo, sobrecargas, operadores lambda, etc?
- ...y podría seguir así hasta mañana...


Cuidado que esto solo le va a servir por algunos tipos de juegos. Si hace 2d para sus amigos (era asi, no?) pues como que el multi threading, mapas, o renders se hacen inutiles. I las colisiones mejor por los bloques de los sprites, creo yo.

Lo del path finging si que es cierto que debera aprenderlo, aunque en realdiad existan codigos liberados ya para ello o muchos ejemplos...

  • gotenx

  • Bahamut

  • vida restante: 100%
  • Registrado: 13 ene 2008
  • Mensajes: 4.253
#10

Escrito 29 enero 2011 - 00:59

A ver Ollydbg,yo ya se que la base de la programacion bien no se sienta en el numero de lenguajes conocidos sino en la capacidad de pensar y resolver problemas pensando como un programador, por algo antes de dar lenguajes de programacion se dan algoritmos y pseudocodigo.
Al final he conseguido un buen libro de C# y me lo estoy leyendo,ya no me parece tan complicado,pero a alguien que viene de lenguajes mas antiguos como BASIC (que no VB) la POO le parece complicada y inutil al principio (reconozco que me lo parecio) pero luego te vas dando cuenta de su utilidad y de que una vez conocida no es tan complicada.
Saludos.
EDIT: La verdad es que esta muy bien hecho,me he bajado el codigo fuente y bueno,entenderse se entiende... un poco X-D aunque mi intencion no es hacer un juego como ese,es mas,supongo que me quedare en las dos dimensiones.

  • Caid

  • Ultima

  • vida restante: 100%
  • Registrado: 07 ene 2003
  • Mensajes: 1.810
#11

Escrito 29 enero 2011 - 19:23

Una vez pases del nivel más básico, te aconsejaría este libro:

C# 4.0 in a Nutshell
Joseph & Ben Albahari
O'Reilly

Es de nivel medio-avanzado, y como manual de referencia es lo mejor que he encontrado. Creo que van por la cuarta edición.

Y sí, al principio la POO parece algo artificial, pero empiezas a verle las ventajas (modularidad, reutilización de código, organización...) en cuanto tu programa crece un poco.

Saludos.

#12

Escrito 02 febrero 2011 - 00:01

[...]
- ¿Sabes implementar Octrees o BSP Trees para optimizar la carga de render de una escena?
[...]


SÍ! Lo siento pero hoy por la tarde he realizado el examen y una pregunta era generar el árbol BSP de una escena determinada y determinar qué recorrido se tomará para llegar a un punto conreto de la escena.
Tenía que decirlo XD después de tantos quebraderos de cabeza, por fin he terminado exámenes. Voy a viciar, saludos!!!


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
publicidad
publicidad