Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Como puede iniciarse uno?

Iniciado por vib, 20 de Noviembre de 2012, 08:51:12 PM

« anterior - próximo »

vib

Hola buenas, escribo el post simplemente porque he visto algun post algo relacionado pero sin cumplir bien mis dudas.
Creo hace tiempo ver un post muy relacionado pero no he dado con el estos dias.
El caso esque el otro dia estuve en una conferencia sobre videojuegos...y el chico nos recomendo que para iniciarse en este mundillo aprendieramos a usar el UNITY3D el cual al llegar a casa me entraron unas duditas: ya que yo en este mundillo "tengo algo de experiencia"

Yo, de lenguajes conozco bennugd (6meses), c#(sin nada de videojuegos solo menus, mezcla con sql) y el que mas conozco es c++(3 años y pico largo).
He diseñados pequeños videojuegos en bennu pero sobretodo con c++ usando la libreria SDL.

Ahora estoy estudiendo diseño de videjuegos y en mis ratos libres programo usando SDL.

El caso es el siguiente:
Yo quiero llegar ha poder formar parte de alguna plantilla de trabajadores que desarrollen videojuegos..o que alguna de mis ideas llegara a ver la luz... el caso es.. que hago? y como lo hago?

Que es lo que me recomendais? que lenguaje, librerias, motor grafico..aprendo a usar? ya que seguro que hay algunas que se usan mas que otras y estan mas demandadas a la hora de hacer curriculum

Yo tenia pensado... de
acabar los 3 proyectos de c++ usando SDL para acabar de definir bien mi programacion en 2d.
Luego empezar a tocar OGREGL y junto con SDL entrometerme en el mundo del 3d.
y Luego ya el año que viene que en clase nos enseñaran JAVA..empezar a aprender android para moviles.

Como lo veis? Unity3d entonces que?
Hago proyectos buenos y curradisimos? o voy haciendo cosillas simples?
Me imagino que para tirar curriculum en empresas necesitare enseñar mis trabajos por eso digo si mejor cosas curradas en tema de programacion " de diseño tengo un 0" o voy haciendo muchas cosas sencillas pero que se vea que tengo imaginacion?

Me interesaria vuestra opinion ya que soys mas expertos que yo.. y no quiero perder el tiempo aprendiendo a programar con X o con Y para que luego vea que a nivel de trabajo no me sirve de demasiado.

Gracias!

PD:lamento mis faltas, creo haber dicho que tengo un poco de dislexia...que eso lo comenso con buenos conocimientos de mates os lo aseguro :D

julen26

#1
Cita de: vib en 20 de Noviembre de 2012, 08:51:12 PM
Que es lo que me recomendais? que lenguaje, librerias, motor grafico..aprendo a usar?

Primero deberías pensar en QUE hacer, y luego decidir COMO hacerlo. No hay ninguna regla que te guíe por donde tienes que tirar.
Tu mismo te has puesto un ejemplo, quieres programar en Android? pues podrías entrar en Java (o no)...

De todos modos, mientras piensas en lo que puedes querer hacer y mirando al tema del curriculum que comentas, no es mala idea que acabes los proyectos que tienes en curso.

Después depende de tu iniciativa. Unity3D es una buena opción para formar un pequeño grupo donde se desempeñan roles de programador, animador, modelador...

Aquí tienes una discusión reciente sobre Untity: http://www.stratos-ad.com/forums/index.php?topic=15562.0

Ánimo!

Gallo

Por lo que has comentado tienes dos objetivos claros, o bien entrar en una empresa de videojuegos o bien sacar un proyecto tuyo y que vea la luz.

Deberías valorar las necesidades de esos dos objetivos, y en función de esas necesidades o requisitos escoger las herramientas que deberás aprender a utilizar.

Por ejemplo si quieres entrar en una empresa que haga juegos web como juegos de facebook, lo mas normal es que aprendas a hacer juegos en Flash y/o HTML5, si tu objetivo es entrar en una empresa para hacer juegos de Nintendo DS lo normal es que te pongas a estudiar la arquitectura de esa consola y la API de algún SDK no oficial para crear un juego de prueba en C/C++.

Si tu intención es crear un juego para ti, piensa en que plataformas quieres publicarlo, de que recursos económicos dispones y en si que es lo que quieres obtener. Mencionas lo de aprender OpenGL, esa api no es para hacer juegos, OpenGL es para hacer motores gráficos, si tu objetivo real es hacer un juego, molestarse en aprender OpenGL e implementar el motor gráfico con el es una pérdida de tiempo, aunque, si tu objetivo NO es hacer un juego si no hacer un motor de render, entonces aprender a utilizar la API de OpenGL o DirectX seria el camino a seguir.

Si quieres simplemente céntrate en hacer un juego es recomendable usar un motor como Unity, donde te centras en programar sobretodo Gameplay y pequeñas "utilidades" para adaptar el editor a tu juego, o simplemente facilitarte algunas tareas, pero sobretodo te centrarás en programar el juego y en crear contenido del juego, no en gestionar la memoria, ni en instanciar buffers en la gráfica, leer archivos de assets para cargarlos en memoria, etc... Además de las ventajas claras de un editor de escenarios. El escoger Unity u otro motor similar dependerá como dije de necesidades o requisitos, tiene que ser algo totalmente gratis o hay un presupuesto determinado? Tiene que ser para móvil? Será en 3D o en 2D? En función de eso escojes la herramienta que aprender.

Yo considero que un programador de videojuegos o programador en general debe ser capaz de adaptarse a cualquier herramienta, Unity no constituye una tecnología en si, es simplemente una API que se corresponde con necesidades muy comunes en los videojuegos como operaciones matemáticas para transformar objetos, asignar una textura a un modelo, reproducir un sonido, animación de esqueletos, aplicar físicas a un cuerpo y ese tipo de cosas, pero esas cosas las tienen todos los motores de juegos, en un motor será: sword.PlaySound(1) y en otro será: sword.sounds.get('sound1').play() pero no te preocupas como lo hacen por dentro que es donde está realmente la tecnología que usan. En otras palabras, aprender a hacer juegos con Unity es aprender a hacer juegos con cualquier otro motor, los conceptos son los mismos.

Imagina por ejemplo, que el próximo Final Fantasy lo hagan con Unity3D (que algo leí de que iba a ser así, no estoy seguro), crees que se escoge Unity3D por que SquareEnix sepa usar ese motor? no, simplemente se escoge ese motor por que se adapta a sus necesidades, pueden ser simplemente por las herramientas que aporta, por cuestiones económicas o lo que sea, parte de su equipo aprenderá a usar la herramienta fácilmente por que ya saben programar juegos, solo han de aprender otra api, y otra parte del equipo seguramente lo ficharan de fuera para aportar seniors y agilizar el desarrollo. En tu caso, obviamente aprenderías a usar el motor mientras haces el juego.

En resumen ten claros los objetivos en cuanto a lo que quieres tener al final de tus proyectos, quieres tener un motor? quieres tener un juego? quieres tener una demo técnica de alguna tecnología?, piénsalo, quizá quieras ambas cosas, si es así dividiría el proyecto en fases. En función de esos objetivos escoge la herramienta que mas se adapte para no entretenerte en lo que realmente no quieres obtener como resultado final.

Saludos.

vib

agradezco vuestros comentarios.

Me estuve mirando asi por encima el unity3d.. y veo que por ejemplo..aspectos como sombras o posicion de la camara ya lo haces graficamente.
Con esto me a surgido una dudita..ese tipo de cosas es trabajo de los grafistas? me refiero a que en un sitio alla mas luz o menos luz, que el juego este desde una perspectiva...la camara y tal?
Porque pensaba que era cosa del programador controlar esos detalles y al ver que unity ya lo haces automatico me he quedado vaya quizas esto no necesite saber como se programa....
Que me deciis?

Luego una ultima cosa que no recorde mencionar.
Ahora con unos compañeros vamos a empezar a crear juntos alguna cosilla.... somos 3 un grafista un musico y yo como programador.. la duda que me ha surgido es...ver que asta los videojuegos asi simples suelen tener sobre todo mas  programadores
Entonces como se reparte el trabajo si hay mas de 1 programador?
1 se dedica a movimiento
otro a crear enemigos
otro crear objetos

y cosas asi? alguien podria decirme como lo hace para tener un ejemplo :D

Gallo

Las tareas que mencionas las suele hacer un LEVEL DESIGNER, que en un grupo como el tuyo es un rol que puede adquirir cualquiera. Piensa por un momento que no tienes editor de mapas en Unity: un artista diseña gráficamente un nivel, primero unos concept donde se ve la iluminación, texturas, colores, elementos, etc, el mismo artista crea los modelos y hace las texturas de este escenario. Luego un game designer diseña el nivel lógico, osea DESCRIBE como interactua el jugador con el entorno y los elementos del escenario y por ultimo el programador cogeria ambos datos y los implementaria, por un lado la colocación de elementos y su lógica como indica el diseñador, y por otro la iluminación, decorado, etc.

Ahora ese trabajo con editor no hace falta que lo haga el programador, el programador se dedica a programar la lógica propia de objetos del juego (gameplay), y una persona que no tiene por que saber programar puede montar el nivel arrastrando los elementos, haciendo que interactuen entre si, poner las luces y decoraciones, e incluso parte de la lógica relacionando objetos.

En cuanto a lo de tener mas de un programador, primero que no es estrictamente necesario, pero si hay mas de un programador uno puede dedicarse por ejemplo a la lógica del personaje principal y otro a la lógica de los enemigos, u objetos con los que se interactuan, etc.. A nivel mas técnico te diria que los programadores se reparten las Clases (osea archivos .js o .cs en Unity) que se han de tocar, para no pisarse el código.

vib

Gracias, me han quedado creo que bien aclaradas las duas

Por ahora seguire con mis pequeños proyectos en 2d que tengo para algun tiempo...
luego hare una pequeña introduccion en OpenGl mas que nada para saber un poco como funciona la programacion en 3d
y luego ya me metere en Unity3d...
Aunque tengo algun amigo que se anima hacer la parte grafica y quizas continue en OpenGl..depende de como se me dé
:P






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.