Escribiendo en C por primera vez: aventura textual *juego* *Hiper básico*

Iniciado por CrystalChild, 3 Marzo 2016, 08:51 AM

0 Miembros y 2 Visitantes están viendo este tema.

CrystalChild

O algo así como un juego.

Esto es bien para los muy principiantes en C *como yo, ejém..*
Hace mucho estoy interesada en la programación. Hace muy poco que he puesto las manos en la masa.
Dirán ¿Qué tiene de "aventura" un simple texto?
Bueno, solo los ávidos de lectura podrán entenderlo. En internet hay varios y bastante interesantes.

Busqué por ahí un tutorial para hacer algo como esto, que requiere conocimiento en extremo básico y es muy entretenido y no me costó nada encontrar material. Todavía ni he empezado, pero dejo el link porque seguro a algún otro newbie le interesaría.

Ehm... está en inglés. Creo que para todo programador es esencial ese idioma, pero en cualquier caso puedo facilitar una traducción.

http://home.hccnet.nl/r.helderman/adventures/htpataic01.html

Está genial porque, si bien es un tutorial,  no te lleva taaan de la mano como podría esperarse.

I hope this is useful for somebody  :-[ o al menos una idea divertida para alguien que ya la tenga clara con este lenguaje. Me encantaría ver algunas historias de ustedes!

MAFUS

Hola, compañera.

Siempre me gustaron las aventuras conversacionales y alguna que otra vez he iniciado la programación de una aventura en C, pero lo abandonaba al poco tiempo. Se me da mejor jugarlas que crearlas: para hacer una madianamente interesante se necesita más de buen escritor que de buen programador.
En cuanto tenga algo de tiempo le echo un ojo al link.  :D

Capitan Rolfi

Hola CrystalChild...

Está bueno tu idea, de querer hacer una aventura textual, para aprender a programar en C o C++.
Me gustò el link y los códigos de ejemplos. Muy interesantes.
Como seria tu fin? Hacer una aventura textual, o aprender a programar en C+? O ambas.

C es muy potente y podes hacer cualquier cosa.

Lo que quiero darte una opinion personal es que quizas, te quedes corto pensando en hacer una aventura textual solamente. Como que vas a poner muchas lineas de dialogo y vas a programar poco (o sea, vas a terminar repitiendo printf, if, else, etc)
Asi que, para empezar, y aprender a programar en C, si es el lenguaje que preferis. Si. Dale para adelante.

Ahora, si te gustaria escibir una aventura o novela, y poder distribuirla a tus amigos o conocidos, o en Internet. Te sugeriria, que, primero, si aprendas a programar. Al mismo tiempo que vas escribiendo el guiòn de tu aventura. Y luego, podes hacer un juego o novela visual, usando elementos de programaciòn màs avanzada.

Te lo digo, asi no te estancas con una programaciòn super bàsica, y asi seguis cada dia aprendiendo.
De paso, tu novela o aventura, tiene mejores funciones. O funciones más avanzadas.
Coo por ej. que el usuario pueda elegir distintas opciones de conversacion como respuestas.

Otra opcion mas adelante que podes usar para ponerte de meta, seria hacer una novela visual. Una novela visual es como un videojuego, pero te va mostrando las conversaciones pero con imagenes, o renders de characers con backgrounds y sonido de fondo. Este genero es muy común en Japón y Corea.


Besos


CitarSiempre me gustaron las aventuras conversacionales y alguna que otra vez he iniciado la programación de una aventura en C, pero lo abandonaba al poco tiempo. Se me da mejor jugarlas que crearlas: para hacer una madianamente interesante se necesita más de buen escritor que de buen programador.
Opino casi lo mismo.
Si, tendrias que escribir un buen guiòn.
Y como programadora, agregar funciones e ir innovando.

Obviamente que si es un programa en C, en consola, y solo uno presiona ENTER, no es tan agradable. BUeno, ahi vas viendo

MAFUS

Hombre, un entorno bueno de aventura conversacional no es tan sencillo. En una aventura hay muchísimos tipos diferentes de objetos: estáticos (solo se pueden examinar), transportables, contenedores (se pueden poner otros objetos dentro), mesas (se pueden poner objetos sobre ellos), edibles, bebibles, transparentes, luminosos, NPC estáticos y móviles, etc. Después los capítulos de la historia, en un capítulo deben existirexistir objetos en ciertos lugares y en posteriores capítulos deben estar en otro sitio y tener comportamientos diferentes.
Por otra parte una aventura gráfica es básicamente un point and click, los comandos son muy básicos y por ende los objetoa. Sin embargo una conversacional puede haber tantos comandos diferentes como verbos tenga el lenguaje español. Además hay que pensar en los álias o sinónimos que pueda usar el jugador para referirse a un objeto; los adjetivos para diferenciar por ejemplo el tronco largo del tronco rugoso. Y muchas cosas más.
Para ver como de complicado se puede hacer todo solo hay que echar un viatazo al programa Infor 6, que es un lenguaje orientado a objetos, y sus librerías. No digo Inform 7 porqué es un paradigma totalmente diferente: lírico se le podría definir.

Capitan Rolfi

Desconozco mucho el tema de las aventuras conversacionales.
Todo tan a pecho, tan literal.
YO me referia mas bien, y preguntaba, en que enfoque se estaria dando CrystalChild.

O sea, si enfocarse en aprender a programar usando como proyecto una aventura conversaional? O crear una aventura conversaional como proyecto final.

Creo que nos estamos confundiendo y estamos mezclando los terminos MAFUS.

Bah, por lo que tengo entendido y ella se refiere, es crear una aventura textual/conversacional usando C. He visto el link que pasó.
Y podria verse como un programa tipo juego mostrando diferentes textos, y permitir dierentes opciones para el usuario dentro de la misma ventana de consola.
Bah, es lo que yo llegue a entender.

Pero si es asi, lo que pregunto es. Si es con el fin de crear un videojuego de este tipo, o con el fin de aprender a programar en C usando como proyecto hacer algo simple como esto?

Porque, vos decis de aventuras conversacionales, y de que jugaste muchos. Que se te da jugarlos, que hacerlos. Por eso digo. Ella está hablando de programar uno en C, con la consola, para aprender a programar en C. Lo básico, para empezar.

Nos estamos confundiendo con los terminos como te dije.
Lo que supongo que CrystalChild quiere es: programar en C, un programa en consola, e ir pasando textos, y a la vez que el usuario pueda elegir distintos caminos o opciones, o distintas respuestas. Esto con el fin de aprender C. En este caso, seria todo textual. Nada de imagenes, sonido. Todo una pantalla en la consola.

Lo que yo dije, es que más adelante, si le interesaba lo de programar un videojuego, podrìa hacer una novela visual. O bien aventura grafica. O aventura conversacional usando imagenes.
Esto obviamente si uno es capaz de crearse un guiòn, y está interesado en crearse un videojuego para que otras personas puedan jugarlo.
Programandolo en cualquier lenguaje a eleccion (C, C++, .NET, Java). Se puede usar librerias como OGRE o CrystalSpace3D. Puede ser en Consola, en 2D, en 3D, en Flash o Navegador Web. Se puede usar algún motor de videojuegos como Unreal o Unity.
Lo dije en el caso de que ella, quiera realmente hacer un videojuego. Porque, distribuir un videojuego en consola, no creo que sea lo que todo el mundo prefiera, y más hoy en dia. Pero seguro ella busque aprender a programar.

MAFUS

Como sabrás una aventura conversacional es todo texto. El jugador no necesita más que una pantalla en modo consola ybun teclado. Lo que venía dar a entender es que una aventura conversacional se puede complicar muchísimo más de lo que lo hará cualquier aventura gráfica.
Se puede aprender a programar creando un parser básico y un mundo muy sencillo, pero si se quiere se puede exprimir al máximo las posibilidades del lenguaje de programación y seguir, de cara al usuario final, con un texto describiendo una habitación en la pantalla y un teclado para introducir el siguiente movimiento del jugador.

CrystalChild

CitarComo seria tu fin? Hacer una aventura textual, o aprender a programar en C+? O ambas.
Para librarnos de dudas, mi idea es hacerlo simplemente para empezar a programar. No como proyecto final ni a gran escala... de momento. Pero sí es un buen motor de práctica y, como dice Mafus, se pueden desarrollar áreas más complejas del C dentro de esto mismo... así que seguiré escribiéndolo hasta que le exprima todo lo que pueda, a modo de proyecto inicial, donde ir volcando lo que vaya absorbiendo y aprendiendo... hasta donde se pueda jajaj No creo que le vaya a añadir una secuencia fibonacci a una aventura textual.
Aunque con un poco de imaginación se puede.
Imaginación y capacidades de redacción, humildad aparte, no me faltan... pero tampoco voy a centrarme al 100% en crear una historia completamente atrapante. Es más bien para... practicar. De a poco tal vez la vaya puliendo si me gusta, al punto de que quizás la distribuya entre mis colegas como un mini juego raro.

Para el futuro no descarto la idea de una buena aventura gráfica. Digamos que dibujar tampoco se me da mal, tengo colegas que se dedican a ese área también, otros con experiencia real haciendo juegos... y yo estudio música! un par de amigos en el negocio de la producción musical. Por lo que tendría todas las áreas cubiertas y ese sí sería un gran proyecto final. Para el punto en que sea capaz de programar eso, tal vez conozca otros lenguajes más convenientes.
Pero eso mucho más adelante~

En sí no me adentré al mundo de la programación para hacer juegos (aunque es una hermosa fusión de los dos mundos que en mí coexisten, el arte y la informática), sino que me interesa más la seguridad y la ingeniería inversa.

Sé que C no tiene casi nada que ver con eso, eh! no me malinterpreten. Lo sé, lo sé.
Pero antes de usar ningún script, prefiero saber cómo funcionan los lenguajes y como esos scripts fueron desarrollados. Elegí empezar por C. Que como dijo don Rolfi, es muy potente... y es la base de la vida (?
Un paso a la vez.
Gracias por sus comentarios  ;D

furciorifa

Si vas a procesar mucho texto te recomiendo que utilices mejor Python, el problema de las aventuras gráficas, es que para poderles dar un sentido más real necesitas usar C en toda su extensión, con punteros dobles, o matrices de caracteres, para parsear la entrada, y que parezca más real, en fin es una sugerencia.