Juego RPG en python (minijuego tipo text)

in #spanish8 years ago

Desde ya hace varios años he querido escribir un juego en algún lenguaje de programación sencillo, donde pueda compartir y mejorar el código con mis amigos y otros programadores interesados en el tema.


 Pero nunca he podido cuajar la idea. Voy a hacer una bitácora de mas o menos por donde he pasado para llegar hasta aquí: primero comencé por algo sencillo hace unos 5 o 6 años con aquel motor para guindows que con wine corría bien el llamado RPGmaker pero un día llegue a una comunidad que quería escribir el mismo código pero para linux en c y como yo medio se Perl y andaba con Ruby haciendo algunas mejoras en rpgmaker termine pensando que era buena idea esperar a el otro motor que estaban haciendo para Linux que creo que nunca salio y bueno me olvide de rpgmaker.


Luego de hacer un par de buenos juegos según creo yo. El problema de rpgmaker es su baja potabilidad y su poca libertad de hacer mas con lo que tienes, ya que el código aunque muy sencillo de usar es cerrado, por que ademas las nuevas versiones son de pago.


Luego seguí intentando cosas con Liballegro y C con C++, pero me quedaba corto c++ es muy difícil de depurar con un solo programador y muy difícil de hacer que otros que no quieren aprender a programar tanto para hacer un juego se interesen por lo que desistí aunque pase por Ogre3d para ver que este era un escenario muy profesional y de nuevo solo no veía el horizonte.


Estos días como habrán leído he revisado Pygame en realidad hace mucho tiempo revise pero esto de los Sprits no me terminaba de convencer hasta que me di cuenta que en CSS3 debía usar estos Sprits en lugar de flash para hacer imágenes dinámicas de calidad y que compartían el mismo método y funcionalidad por lo que me decidí el problema de siempre es que no soy diseñador y aunque lo he intentado no voy a lograr hacer nada en el diseño tengo mas esperanzas con la programación :D.


Para los que quieran hacer sus juegos y saltarse todo lo que aquí tengo que decir y debatir y mejorar en grupo con mis amigos y con los que se unan les recomiendo leer http://programarcadegames.com/ muy buena pagina pero cuando comenzó con las imágenes lo deje por que quiero aprender mas de la lógica del juego antes de usar imágenes.


Por lo que al final dije tengo un Blog donde guardo mis notas y comparto información para mi importante, por que no usar este medio para intentar formar un equipo para de verdad crear un juego así sea del tipo texto aunque como yo lo veo no es tan difícil pasarlo a imágenes con los Sprits de Pygame o posiblemente intentar usar otro motor, aquí lo que importa es la lógica.


El juego puede cambiar de muchas maneras la lógica es lo importante, para ir aprendiendo los principios de la programación orientada a objetos y sobre la historia al principio no es importante pero podemos inventar una :D


Para comenzar aquí les dejo un pequeño código de un combate sencillo  en texto :D

"""part of http://ThePythonGameBook.com
source code: https://github.com/horstjens/ThePythonGameBook/blob/master/python/goblins/slowgoblins006.py"""

import random

hitpoints_shadow = 22
hitpoints_python = 43
combat_round = 0
print(" --- Python Dice Duelo ---")
print("round hitpoints")

while hitpoints_shadow >0:
  print("{0:2d} shadow: {1:2d} python: {2:2d}".format(combat_round, hitpoints_shadow, hitpoints_python))
  combat_round += 1
  hitpoints_python -= random.randint(0,6)
  if hitpoints_python <= 0:
    break
  hitpoints_shadow -= random.randint(0,6)
print("Game Over")

if hitpoints_shadow > hitpoints_python:
  print("Shadows Gana")
elif hitpoints_python > hitpoints_shadow:
  print("Python Gana")
else:
  print("Quien ha ganado? es un empate?")

print("Gracias por jugar este juego!!!")

Para darles una idea a los que no entendieron de que iba esto, vamos a programar la lógica de un juego claro con un poco de juego :D, primero la función Random es usada en casi todos los juegos, luego vemos que se ejecuta un bucle hasta que se cumpla una condición luego los condicionales nos dicen quien gano.

Dios les Bendiga