consejos para empezar a programar

Si tienes alguna duda y crees que alguien podría resolverla, ponla aquí. || If you have any doubt about programming, post it here.

Moderador: CEZ

Responder
Avatar de Usuario
grijander
32 bits
32 bits
Mensajes: 466
Registrado: 06 Ene 2007 18:06
Ubicación: Talavera de la Reina

consejos para empezar a programar

Mensaje por grijander »

hola chicos. Tengo 36 tacos y nunca me había dado por intentar programar mis jueguecitos. No tengo ni idea del tema y por eso me surgen muchas dudas que me gustaria que me aclararais en la media de lo posible. siempre y cuando teniendo en cuenta que lo que quiero hacer son juegos retor para spectrum o cpc.
mis dudas son las siguientes:

- cuales son los pasos a seguir teniendo en cuenta que no tengo ni idea de programación?. Supongo que tendré que empezar con basic , echarle paciencia y luego intentar el código máquina, no?

- que maquina es mas facil para programar, el cpc o el spectrum?

- qué es mejor, programar en un emulador o sobre la máquina original?.

- en caso de que la respuesta a la pregunta anterior sea el emulador, cual es el mejor para ello?

- tengo el curso de basic de microhobby. ¿creeis que seria bueno empezar con eso?

- y por último. creeis que es factible que alguien que no tiene ni idea del tema, como yo, pueda llegar a programar algo medianamente decente?. ¿cuanto tiempo se puede tardar si se es constante en hacer alguna cosilla decente?.

Ya no os aburro más. un saludo a todos.
Free as a bird at last !!!
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: consejos para empezar a programar

Mensaje por josepzin »

grijander escribió:h
- qué es mejor, programar en un emulador o sobre la máquina original?.
yo, yo! esta me las sé!!

Siempre será mas practico hacerlo en PC, emulando.

Y si no sabes nada de programación creo que deberías empezar por el Basic.
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Mensaje por na_th_an »

No es necesario. Yo no perdería el tiempo y empezaría directamente con C. C tiene cosas de lenguaje estructurado (que te servirán para aprender otros lenguajes estructurados como Java o BASIC) y cosas de bajo nivel (que vienen de perlas para meterse en el lenguaje de ensamblador). Además, te sirve para programar en todas las plataformas, desde el Spectrum hasta la XBOX 360.

Sobre cuál es más fácil de programar, el Spectrum y el CPC son iguales de jodíos :P
Avatar de Usuario
grijander
32 bits
32 bits
Mensajes: 466
Registrado: 06 Ene 2007 18:06
Ubicación: Talavera de la Reina

Mensaje por grijander »

y en al caso de programar en C, ¿qué lecturas me aconsejas para aprender?.
¿se pueden luego portar programas en C a cpc o spectrum?
Free as a bird at last !!!
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Mensaje por josepzin »

Si es para programar cosas para Spectrum/CPC, pienso que solo te serivirá BASIC y Assembler?codigo maquina del Z80... no?
Avatar de Usuario
Babul
32 bits
32 bits
Mensajes: 527
Registrado: 29 Mar 2005 06:31
Ubicación: Zaragoza

Mensaje por Babul »

Mi consejo, de novato aprendiz por cierto.

Programa algo sencillo en PC. Usa Fenix o Cdiv, algo mas fácil quel C.
No busques algo complicado, un moñaco que se menea entre varias pantallas con vista "desde arriba" es suficiente.
No busques animaciones del prota, ni scroolls de pantalla ni nada complicado.

Al principio es mejor algo básico, con el tiempo ya te complicarás la vida.

Saludos.
Avatar de Usuario
Zemman
256 bits
256 bits
Mensajes: 3162
Registrado: 14 Nov 2005 14:47

Mensaje por Zemman »

Estoy de acuerdo con Babul, pero aqui, te van a dar muy buenos consejos y te va orientar, yo soy tambien novato y, estoy con Fenix, del cuel he conseguido hacer ya varias cosillas, como mover un grafico, que dispare y, alguna cosilla mas, esta bastante bien, hay un manual buenisimo y muchos ejemplos, la decision es tuya :wink:
Avatar de Usuario
grijander
32 bits
32 bits
Mensajes: 466
Registrado: 06 Ene 2007 18:06
Ubicación: Talavera de la Reina

Mensaje por grijander »

ok. Y donde puedo encontrar el programa Fenix y el manual ese que me dices?
Free as a bird at last !!!
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Mensaje por josepzin »

Sí, Felix es una muy buena alternativa (aunque no funciona ni en Spectrum ni en CPC)
Alx
256 bits
256 bits
Mensajes: 5895
Registrado: 25 Dic 2005 19:42
Ubicación: Barcelona

Mensaje por Alx »

Fénix Josezpín Féenix ... :lol: :lol: :P

---

Si lo que quieres es programar para Spectrum o CPC aprende C y las librerías para ello como el z88dk. Yo sobre esto no tengo ni piiii idea y Nathan, Ben o alguno más que ronda por aquí te podrá guiar.

Fénix para lo único que te servirá es para aprender a programar en PC juegos sin 3D (aunque tienen pensado incluirlo en futuras versiones) y que la calidad va a depender de tí mismo, porque Fénix es potente, fácil y te deja en poco tiempo acabar haciendo algo.

Lo malo es que te puede pasar como a mí, que como te acostumbras y te va tan bien, querrás pasar a C que es lo profesional y con lo que se programa hasta el windows y te costará un montón, aparte de la perrería que dá.

Para Fénix:

(FénixWorld :: Portal de Fénix dónde encontrarás todos los recursos)

:arrow: http://fenixworld.se32.com/e107_plugins ... 0.show.9.9

(Foros sobre Fénix, Cdiv, etc, etc ...)

:arrow: http://forum.divsite.net/index.php

(Explicación en wikipedia sobre Proyecto Fénix)

:arrow: http://es.wikipedia.org/wiki/Proyecto_Fenix

¿Te suena DIV GAMES STUDIO? Fénix es la evolución de él, Hammer Technologies hacercó a muchísima gente que no tenía ni idea de programar nada a este fantástico mundillo en el que aunque hagas un simple monigote que se mueve, te puede hacer sentir muy muy bien.
1:1 Amarás al Spectrum por encima de todas las cosas
Avatar de Usuario
pagantipaco
128 bits
128 bits
Mensajes: 2922
Registrado: 03 Oct 2006 11:41
Ubicación: Madrid
Contactar:

Mensaje por pagantipaco »

Me gustaría agregar algunas herramientas más a las que ya se han citado de programación en PC:

Si quieres 3D creo que lo mejor es Crystal Spaces, Ogre3D o incluso el proyecto que hay de integrar Crystal Spaces dentro de Blender3D, ya que éste último tiene un motor de juegos incluido dentro del propio modelador. Todo esto es gratuito y si buscas por sus nombres en internet encontrarás mucha información. Con Ogre3D se han hecho juegos comerciales y es C++.

Si quieres 2D y aprender un lenguaje estructurado orientado a objeto, puedes usar Java. Hay una librería llamada GTGE gratuita que aunque está en la versión 0.24 da de sí un montón y tiene todo lo necesario para hacer un juego completo. Para programar en Java sólo necesitas el JDK (Java Development Kit) 1.5 de Sun (http://java.sun.com) que trae el compilador de Java (javac). Para editar tus proyectos bájate Eclipse (como suena) que es un entorno de programación excelente con el que aprendes un montón porque él sabe qué escribir y dónde, vamos, que para que te hagas una idea, yo no sé en qué paquete están todas las clases de Java y él escribe automáticamente todo el código de los "includes". La única pega de hacer un juego en Java es que necesitas que el que lo usa tenga el JRE (Java Runtime Environment) de Sun, pero es una necesidad que actualmente casi es un deber tenerla instalada. Mi experiencia es muy positiva y la utilización de una tecnología de programación de orientación a objeto pura quita muchos quebraderos de cabeza y aporta robustez.

Y luego está la libería SDL que está escrita en C, con la que guarreé durante una temporada y parece estar muy bien, pero me pareció de demasiado bajo nivel para el tiempo que tenía para programar, es decir, había que construir muchas cosas que otras librerías ya te vienen dadas.

En la variedad está el gusto y cuesta decidirse, desde luego. Todas tienen pros y contras, lo cual es normal, lo único que cuando ya estás metido en el desarrollo vas solucionando los problemas que te encuentras y solventando las carencias ;-)

Un saludo.
Paco.
Alx
256 bits
256 bits
Mensajes: 5895
Registrado: 25 Dic 2005 19:42
Ubicación: Barcelona

Mensaje por Alx »

A mi lo que no me gusta de Java es que está orientada a internet ¿cierto no? es que no estoy del todo seguro y me gustaría que me lo aclararais. Por lo menos, todo lo que he visto en Java es para Internet.
1:1 Amarás al Spectrum por encima de todas las cosas
Avatar de Usuario
pagantipaco
128 bits
128 bits
Mensajes: 2922
Registrado: 03 Oct 2006 11:41
Ubicación: Madrid
Contactar:

Mensaje por pagantipaco »

Efectivamente mucho está orientado a internet ya que la plataforma J2EE es la que mejor funciona en entornos serios de aplicaciones.

Pero hay otra parte que está orientada a aplicaciones clientes (AWT, Swing, etc.) y otra a juegos con Java2D e incluso interfases con OpenGL como LWJGL.

Si buscas información sobre programación de juegos en Java podrás encontrar gente que se lo curra en ese lenguaje.

Con esto no estoy diciendo que es el mejor, desde luego que no, pero sí que se le puede tener en cuenta al lado de lenguajes como BASIC, Perl, Python y otros interpretados, al fin y al cabo (Java genera un bitcode que luego es interpretado por la máquina virtual, por eso es multiplataforma).

Un saludo.
Paco.
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Mensaje por josepzin »

Alx escribió:Fénix Josezpín Féenix ... :lol: :lol: :P
juas!!! :lol: :lol: cierto, cierto
Avatar de Usuario
grijander
32 bits
32 bits
Mensajes: 466
Registrado: 06 Ene 2007 18:06
Ubicación: Talavera de la Reina

Mensaje por grijander »

ok chicos. Empezaré con Fenix. Ya os contaré a ver que tal me va. Gracias.
Free as a bird at last !!!
Alx
256 bits
256 bits
Mensajes: 5895
Registrado: 25 Dic 2005 19:42
Ubicación: Barcelona

Mensaje por Alx »

Jejeje ... ¿y a qué se debe tu elección? C es en el fondo lo mejor, pero más difícil (creo).

---

Aquí verás como empezamos Zemman y yo a hacer un juego desde cero (que algún día seguiremos :roll: )

:arrow: http://www.retrobytes.creatuforo.com/vi ... retrobytes
1:1 Amarás al Spectrum por encima de todas las cosas
Avatar de Usuario
Zemman
256 bits
256 bits
Mensajes: 3162
Registrado: 14 Nov 2005 14:47

Mensaje por Zemman »

Alx escribió:Jejeje ... ¿y a qué se debe tu elección? C es en el fondo lo mejor, pero más difícil (creo).

---

Aquí verás como empezamos Zemman y yo a hacer un juego desde cero (que algún día seguiremos :roll: )

:arrow: http://www.retrobytes.creatuforo.com/vi ... retrobytes
Hombre, la verdad es que me gustaria terminarlo algun dia, por el hecho de las molestias tomadas, aparte de los posteos tan cojonudos que hicistes y, por ayudarme :wink: ....

grijander, si necesitas el manual de Fenix, te lo paso, esta muy bien explicado, te dejo un enlace de ejemplos, que te pueden servir de ayuda, no recuerdo si lo ha posteado Alx ya o no....aqui lo tienes.

http://usuarios.lycos.es/tgames/resume.html
Alx
256 bits
256 bits
Mensajes: 5895
Registrado: 25 Dic 2005 19:42
Ubicación: Barcelona

Mensaje por Alx »

Por lo menos si acaba eligiendo Fénix me alegro de contribuir a la escena Fenixera jejeje ... otro más pa' la saca :lol:

Fénix lo que tiene es que es bastante fácil y rápido de aprender; en poco tiempo algo haces seguro, pero te repito que a la larga C es lo que manda :wink:
1:1 Amarás al Spectrum por encima de todas las cosas
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Mensaje por na_th_an »

Sigo opinando que ponerse a aprender Fénix es una pérdida de tiempo, a menos que lo que quieras es tener un juego sencillo "ya".

Es mi opinión. Creo que el problema de Fénix es, principalmente, lo cerrado que es. Te plantea una interesante forma de programar: el tema de que todo se mueva automáticamente por procesos que lanzas o matas y por lo demás te olvidas es muy atractiva y te quita de mucho problema... Pero luego te pones (por necesidad o por lo que sea) delante de un lenguaje "real" en el que eso no pasa "automáticamente" y te das cuenta que en todo el tiempo que has pasado con Fénix has aprendido bastante poco.

Lo más importante del motor de un videojuego es saber hacer máquinas de estados y construir el bucle de juego con un manejador de objetos que controle qué tiene que hacer cada sprite en el juego. Eso Fénix te lo da hecho. Cuando te quieras pasar a otra cosa... ¿qué has aprendido? ¡Es empezar "casi" de cero de nuevo!

Yo probé DIV2 allá por 1999 e hice varios juegos, pero lo dejé porque en cuanto intentabas salirte de las tres cosas que se suelen hacer empezaban a surgir los problemas, y para cosas tan sencillas como tener mapas de varias profundidades y planos o hacer efectos especiales, o simplemente para hacer una intro en la que fuera saliendo un texto acompañado de imagenes sincronizado todo con la música había que armar la de cristo.

Me parece que Fénix es un lenguaje muy válido y que se pueden hacer geniales juegos con él, pero también me parece una pérdida de tiempo. No es un lenguaje de programación, es como si fuera un script de un motor ya hecho. No eres tú el que programa un motor y por tanto controlas cada aspecto y puedes hartarte de optimizar, sino que básicamente le estás diciendo a un motor ya hecho cómo comportarse por medio de un script. Es como programar una fase para el Quake en Quake C.

Siempre como opinión personal.
Avatar de Usuario
cht666cht
128 bits
128 bits
Mensajes: 2145
Registrado: 06 Oct 2005 12:20
Ubicación: Barcelona

Mensaje por cht666cht »

Además que el Fenix no te va a servir para programar el CPC o el Spectrum. Yo de ti me metia con C con el que aprenderás a programar "de verdad" y te servirá para cualquier cosa... luego puede que encuentres algún lenguaje que se amolde mejor a lo que quieras hacer, pero lo que habrás aprendido con C no te lo quita nadie.
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Mensaje por na_th_an »

Exacto.

En realidad, el primer lenguaje de programación es lo de menos siempre que sea un lenguaje multipropósito procedural de nivel medio, ya que aprendiendo uno los aprendes todos. Si sabes Pascal puedes aprender BASIC o C en 0.2 sólo cambiando la sintaxis, por ejemplo. El problema de Fenix es que no es un lenguaje de programación multipropósito, sino el script de un motor de juegos.
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Mensaje por josepzin »

A ver, aqui hay 2 cosas distintas...

- Yo sé programar, pero si ahora mismo tengo ganas de hacer un juego lo haría en Fénix porque es lo mas simple y rápido para hacer juegos 2D.

- Pero si tengo que aprender a programar pensando en que luego quiero hacer cosas mas complicadas, usar motores 3d, queseyoquemas, obviamente Fenix es un lenguaje muy limitado y que quizás nos mal-acostumbre, y que no refleja la realidad de la programación.
Avatar de Usuario
cht666cht
128 bits
128 bits
Mensajes: 2145
Registrado: 06 Oct 2005 12:20
Ubicación: Barcelona

Mensaje por cht666cht »

si, de hecho yo te recomendaría Pascal (Delphi) que es el que yo mejor conozco y me gusta mucho, y es algo más facil que C, lo que pasa es que luego te limita un poco porque es más facil encontrar compiladores para distintas plataformas de C, asi como documentación, librerias, ejemplos, etc... vamos que ya puestos a empezar pos mejor C :)
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Mensaje por na_th_an »

josepzin escribió:A ver, aqui hay 2 cosas distintas...

- Yo sé programar, pero si ahora mismo tengo ganas de hacer un juego lo haría en Fénix porque es lo mas simple y rápido para hacer juegos 2D.

- Pero si tengo que aprender a programar pensando en que luego quiero hacer cosas mas complicadas, usar motores 3d, queseyoquemas, obviamente Fenix es un lenguaje muy limitado y que quizás nos mal-acostumbre, y que no refleja la realidad de la programación.
Exacto :) Eso es lo que yo quería expresar, pero hoy yo y la síntesis parece que no nos llevamos bien :lol:

El mensaje es: "Fénix no es el "lenguaje" más adecuado para aprender a programar". :)
Avatar de Usuario
brodgar
16 bits
16 bits
Mensajes: 297
Registrado: 19 Oct 2006 23:09
Ubicación: No sé donde poner el huevo!

Mensaje por brodgar »

Bueno veo que te has decidido por Fenix no obstante si quieres aprender C,hay unos manuales muy basicos que te lo explican todo muy bien y claro, si lo buscas por internet seguro que lo encuentras, es de la universidad de navarra creo, se llaman:
"Aprende C como si estuvieras en primero" y "Aprende C++ como si estuviers en primero", de este ultimo hay dos,el primero es básico, y el 2º es avanzado.
Lo mejor es que pone muchos ejemplos y es mas sencillo de entender.
Suerte y ya nos contarás!
Avatar de Usuario
pagantipaco
128 bits
128 bits
Mensajes: 2922
Registrado: 03 Oct 2006 11:41
Ubicación: Madrid
Contactar:

Mensaje por pagantipaco »

Desde luego, para el Spectrum, Amstrad, etc. lo mejor es aprender C, porque los compiladores que hay son en ese lenguaje.

En PC la gente usa el C/C++ sobretodo y luego los lenguajes como el Fénix y BlitzBasic (o algo así) y otros.

Soy muy partidario de enseñar con Pascal pues el C es menos claro en sintaxis, pero está claro que el C llega más lejos. De acuerdo con Nathan de que un script no es lo más adecuado para aprender a programar.

Y luego está el Java que lo usamos cuatro locos y yo; aunque tiene buenos resultados y el lenguaje es el más estructurado y claro de todos, con una sintaxis cercana al C++ pero sin punteros declarados (aunque por dentro exista el "null" y el error "null pointer exception" que debería llamarse "objeto usado antes de ser creado", para no asustar) y con una fuerte orientación a objeto que te obliga a ser ordenado.

Hacer juegos es programar y programar no es sencillo si no tienes las cosas claras, así que mi consejo es: aprende a programar un lenguaje, pero de forma general, y luego orienta tu programación a los juegos.

Los juegos además de gráficos, tienen estructuras de datos, algoritmos y muchas otras cosas que no son visuales pero son imprescindibles para que funcionen: la lógica. Esa lógica es la programación pura y dura.

No sé si he desmoralizado a alguien :-( pero es la realidad, lejos de la guerra de lenguajes.

Un saludo.
Paco.
Kovenan
128 bits
128 bits
Mensajes: 1630
Registrado: 14 Sep 2006 15:16

Mensaje por Kovenan »

Pues yo creo que el Java ya no es de 4 locos que con los moviles se ha puesto mucha gente a programar en Java.

SALUDOs.
Avatar de Usuario
Benway
Site Admin
Site Admin
Mensajes: 9241
Registrado: 24 Dic 2005 10:18
Ubicación: Madrid
Contactar:

Mensaje por Benway »

brodgar escribió:Bueno veo que te has decidido por Fenix no obstante si quieres aprender C,hay unos manuales muy basicos que te lo explican todo muy bien y claro, si lo buscas por internet seguro que lo encuentras, es de la universidad de navarra creo, se llaman:
"Aprende C como si estuvieras en primero" y "Aprende C++ como si estuviers en primero", de este ultimo hay dos,el primero es básico, y el 2º es avanzado.
Lo mejor es que pone muchos ejemplos y es mas sencillo de entender.
Suerte y ya nos contarás!
Yo aprendí C como primera opción tras dudarlo mucho. Antes había "conocido" el PASCAL, en el 92, pero dejé la programación hasta noviembre del 2004, cuando lo retomé con esos documentos de la Univ. de Navarra que comenta brogdar.

A todo esto que te ha dicho brodgar, que fue con lo que yo aprendí, te pongo un par de enlaces más:

- http://www.conclase.net --> Curso de C++
- http://www.nachocabanes.com/videojuegos/index.php --> Programación de videojuegos en C / C++ / Allegro
Un saludo.
Imagen - Imagen - Imagen
Avatar de Usuario
grijander
32 bits
32 bits
Mensajes: 466
Registrado: 06 Ene 2007 18:06
Ubicación: Talavera de la Reina

Mensaje por grijander »

jejeje. La verdad es que me suena a chino la mitad de las cosas que estais diciendo. Lo cierto es que meterme con el C me susta un poco porque es un lenguaje de programación "serio", no?. Tened en cuenta que jamás me he puesto a programar . No tengo ni idea de nada. No se qué es un compilador, ni una libreria, ni nada de eso. Aun así pensais que es factible ponerme con C desde el principio?
Free as a bird at last !!!
Avatar de Usuario
Babul
32 bits
32 bits
Mensajes: 527
Registrado: 29 Mar 2005 06:31
Ubicación: Zaragoza

Mensaje por Babul »

Si quieres programar en condiciones aprende C/C++, pero si no te animas del todo, como alternativa a Fenix tienes CDiv.

Se diferencia en que CDiv es una librería de C con Allegro. Con CDiv puedes poner poner en el código lo que quieras, CDiv, C, Allegro o la librería que quieras. Así puedes poco a poco depender menos de algo sencillo y meterte mas con C.

CDiv utiliza un compilador de C, con lo que poco a poco, tus juegos pueden depender menos de CDiv, ya es cosa tuya.

Saludos.


EDITO: como no entiendo nada de lo que he escrito, pongo la definición del autor:

CDIV es un interfaz de programación multimedia sobre C/C++ (solo para las plataformas que soporten compilador C/C++ compatible con ALLEGRO 4.0.3), con ella se intenta dotar de un sistema de procesamiento paralelo virtual por medio de procesos sin utilizar técnicas multihilo, al estilo de la programación en DIV GAMES STUDIO.

Actualmente soporta Dev-C++ 4, MSVC 6 y 7 sobre WIN32.

Esta pensada en un principio para aplicaciones multimedia en 2D pero esto no quiere decir que no se pueda utilizar para desarrollar otro tipo de aplicaciones con las correspondientes modificaciones.

CDIV no obliga solo a utilizar las funciones propias de esta interfaz si no que se pueden utilizar cualquiera de las funciones de C/C++ y cualquiera de las funciones de ALLEGRO 4.0.3 o superior.
Responder