41 respuestas

  1. Bline
    14/06/2010

    Lo que realmente me gusta de la idea del proyecto es en si la flexibilidad que se le puede dar a la hora de programarlo. A diferencia del rpgmaker que no te deja salvo lo estricto aqui puedes hacer, igual con un poco bastante más de esfuerzo, algo muchísimo mejor.

  2. admin
    14/06/2010

    De eso se trata programar a pelo y no hacerlo con un programa. Hombre todo tiene sus pros y sus contras, programar un juego desde 0 es mucho mas trabajoso, hay que hacerlo todo como hemos visto.

    A nivel amateur como es nuestro caso, yo que me siento programador pues prefiero hacerlo así porque lo que me gusta es resolver problemas y ver como puedo hacer las cosas por mí mismo. No espero que este proyecto compita con el maker, pero si divertirme haciéndolo y aprender como se hacen videojuegos desde 0. Y si de paso al poner mi experiencia aquí a alguien le sirve pues mejor que mejor.

    Gracias por seguir los artículos, con que haya alguien interesado en él ya es un motivo para exponer aquí los avances, ya estoy trabajando en nuevas entregas.

  3. Bline
    19/06/2010

    ¿Hasta donde piensas llegar con el tutorial admin? Lo digo porque esto puede prometer :p

  4. devil
    19/06/2010

    Hola admi, quería decirte que es un buen tutorial, yo lo sigo desde el principio y la verdad es que es muy bueno .
    Un saludo, y espero que sigas con los tutoriales

  5. admin
    19/06/2010

    Bline, hasta donde se pueda. Mi objetivo es desarrollar un Engine completo, pero eso serán muchas y muchas entregas. Vamos poco a poco, pero por ahora te puedo decir que no tengo en mente dejarlo y que ya hay muchos mas avances hecho que necesito crearles un tutorial.

    Un saludo.

  6. Ubuntero
    26/06/2010

    Ánimo con los tutoriales, son interesantes y no es facil a veces encontrar tutoriales extensos, fracionados, fáciles de seguir y ambiciosos :-)

  7. admin
    27/06/2010

    Ubuntero, no lo es, y yo lo hago a ver si se toman ejemplos y la gente se anima a hacer cosas parecidas. Que cuando quieres aprender algo siempre es ir buscándose uno la vida para todo.

  8. Bline
    29/06/2010

    ¡Engine XII!

  9. admin
    30/06/2010

    Pronto Bline, he estado liado y los tutoriales que vienen a continuación tienen chicha. Pronto habrá novedades jugosas.

  10. Bline
    30/06/2010

    xD lo decía en broma hombre! :p que se que escribir y sobretodo hacerlo comprensible es muy difícil y mas si tienen “chicha” como yo xD

  11. Roberto
    10/07/2010

    Quisiera felicitarte ADMIN estos tutoriales no los encuentras en ningún sitio tan bien explicados como lo están aquí.
    Estamos deseosos de que salga el número XII por que esto va enganchándome cada vez más.
    Un saludo y sige así

  12. Anker
    16/07/2010

    Muy buenos tutos me ha gustado mucho, gracias y estoy a la espera de los proximos un saludo y sigue asi

  13. Emlett
    16/07/2010

    Como todos los comentarios anteriores, te felicito por los tutoriales.
    Me encontre con tu pagina de casualidad y me han ayudado mucho.
    Mi juego quiero hacerlo como metal slug, pero tu tutorial, aunque sea para rpg, me a ayudado mucho en el avance de este.

    Muchas gracias y sigue asi, tienes todo nuestro apollo!!!! =)

  14. admin
    16/07/2010

    Gracias a todos por el apoyo, así dan ganas de seguir, estoy trabajando en nuevas entragas, que eso nadie lo dude.

    Emlett, puedes usar el foro para exponer tu proyecto así entre todos podemos ayudarte y demás.

  15. David
    18/07/2010

    Siempre he querido hacer un jueguecito de estos (sin el RPGmaker, que eso no vale jaja).

    De Python no tengo ni idea, pero lo mismo un día me pongo y lo hago en Java que es lo mio.

    En todo caso ánimo, te está quedando un tutorial muy en condiciones ^^.

  16. TeCh
    18/07/2010

    Comentario desde un usuario avanzado que se ha pegado de ostias en el mercado laboral como un programador que le encanta su trabajo pero no se ve recompensado por su trabajo: “Eres la polla!”. Te digo esto porque pienso que en este pais estamos sobrados de mentes maravillosas como la tuya, que no se queda en estrujarse para llegar a saber mas, sino que siente la necesidad de compartirlo para llegar a un bien bastante mejor!

    Es uno de los tutoriales que mas me han gustado, aunque no tenga intencion de hacer un videojuego, solamente leyendo el tutorial(que por ahora me lo he pimplao enterito!) entran ganas de hacer uno! xD

    Me alegro muchsimo que haya gente que quieran superarse y hacer que la gente aprenda de lo aprendido y te animo a que sigas indagando sobre el tema.

    A mi me anda rondando la idea de montar un sistema base sobre php para creacion de paginas web con gestor de contenido, en lo que todo sea automatizado y a la vez gestionado por el propio usuario (con los quebraderos de cabeza que eso conlleva… xD).. algun dia de estos caera la breba pero hasta entonces, me encantara leer articulos como el tuyo!

    El conocimiento no ocupa lugar, y en nuestra profesion… es nuestro principal arma!!!!

    Un abrazo! :D

  17. adrigm
    18/07/2010

    TeCh, muchas gracias por tu comentario, son de los que motivan a seguir. Si todos fuéramos capaces de intentar dejar constancia de nuestro trabajo y como hemos conseguido las cosas el conocimiento que habría podría ser brutal, por eso yo aporto lo que buenamente puedo para todos.

    Te animo con tu proyecto y todo es cuestión de ganas y paciencia, yo hace un año no sabía mas que hacer programas en la consola y ahora mira.

    Un saludo.

  18. TeKNo dUKe
    19/07/2010

    Buen tutorial. La verdad que dan ganas de ponerse a programar el engine. Pregunta pensaste en algun momento poner un svn o algo similar para poder bajarnos la ultima versión del enige tal cual la tienes tu? Igual algun .tag.gz con el proyecto y agregarlo a las entradas.

    Quedo pendiente a nuevas entregas, gracias por compartirlo con todos :).-

  19. V@CHY
    20/07/2010

    Muy bueno che!!! Parece que esperamos el XII, vamos a probar como es esto… consulta: en el chareset la columna 1 y 3 son iguales, esto es intencional o se puede obviar una de estas???

    Abrazo y muchas gracias por la info, se valora mucho!

  20. trigop
    20/07/2010

    Muy buen trabajo compañero! Felicidades por el trabajo que estas haciendo y sobre todo por facilitar a las personas que empiecen una buena base para enterarse de que va todo esto. Mucha suerte y energía y esperamos leerte a menudo!

    Un abrazo.

  21. Zombie
    20/07/2010

    Excelente… llegué acá por el gmail que anunció una noticia del barrapunto.com

    Sigue así, que se necesita y se agradece la experiencia de otros.

    Saludos.

    ó.ò

  22. Olimpiodoro
    23/07/2010

    Sé que está fuera de contexto pero ¿qué realiza exactamente la función append? Me perdí varias clases de python y hay algunas cosas que no entiendo del todo por los cabos sueltos, así como tampoco conozco con total certeza range.

  23. adrigm
    23/07/2010

    Olimpiodoro, deberías mirar Python bien antes de seguir.

    append es un método que tienen todas las listas para añadirle un elemento al final.

    Por ejemplo:

    lista = [4, 6, 8]
    lista.append(5)
    

    eso hace que nuestra lista ahora sea:

    [4, 6, 8, 5]

  24. unomas
    23/07/2010

    Muchas gracias por el tuto, podrías dejar una fecha aproximada de publicación de la siguiente entrega, la cual podrías modificar en función de tus retrasos/adelantos, es para no mirar el tuto todas las semanas (engancha).

    Olimpiodoro, abrir cualquier cosa como append siempre es para añadir algo al final, es decir, que el puntero de escritura se pone al final tras el último elemento, eso para todos los lenguajes en sus funciones de apertura de ficheros (aquí listas pero es el mismo principio). Pues los modos de apertura write (escribir) o read (leer) en una función open() abren el fichero y situan el puntero al principio.

  25. adrigm
    23/07/2010

    unomas, el proyecto está llevando a cabo una restructuración total, reescribendose desde el principio, hay ya más hecho de lo que hay en los tutos, pero habrá que hacer una serie nueva, me temo.

  26. unomas
    23/07/2010

    Vaya, acabo de ir al origen del blog y veo que estás escribiendo acerca de tus nuevos avances: reestructuración, reedición, …

    Es lo que pasa por venir de barrapunto y directamente al listado de artículos del engine.

    Gracias por tu tiempo y dedicación.

  27. Wadk
    08/08/2010

    Creo que la función cortar_chara quedaría mejor así:

    def cortar_chara(ruta,col=4,fil=0):
    	if fil==0:
    		fil=col;
    	image=load_image(ruta,True);
    	rect=image.get_rect();
    	w=rect.w/col;
    	h=rect.h/fil;
    	sprite=range(fil);
    	for i in range(fil):
    		sprite[i]=range(col);
    
    	for f in range(fil):
    		for c in range(col):
    			sprite[f]1=image.subsurface((rect.left,rect.top,w,h));
    			rect.left+=w;
    		rect.top+=h;
    		rect.left=0;

    porque supongo que generalmente los charasets son de 4*4, y así no hay que especificarlo si es el caso. Al mismo tiempo, si se quiere poner un charaset de otro tamaño, es probable que el número de filas y columnas sea el mismo, y así sólo hay que especificar el número de columnas y el número de filas se obtiene automáticamente.

    Además, el número de columnas debería ir antes, porque por convención lo que tiene que ver con ancho va antes de lo que tiene que ver con alto.

  28. adrigm
    08/08/2010

    Wadk, pero tosas las suposiciones que haces la vuelven menos genérica, yo prefiero dejar que el usuario elija el tamaño del chara (en realidad lo más común es 3×3 y no 4×4) y que pueda especificar el numero de filas y columnas, no todas los sprites tienen animaciones en ambos sentidos.

    Precisamente como lo que se mide ante es el ancho por convención primero deben ir las filas, se toma una fila y se recorren sus columnas, se toma la siguiente file y se recorren sus columnas. Yo al menos trabajo así.

  29. Wadk
    10/08/2010

    Pero igual se puede especificar. Parece que no sabés sobre valores por defecto en argumentos de funciones, lo cual me impresionaría si es cierto.
    Usando la función como la puse antes, este código sería correcto:

    cortar_chara("a.png"); # Sprite de 4*4
    cortar_chara("b.png",5); # Sprite de 5*5
    cortar_chara("c.png",3,2); # Sprite de 3*2

    Lo de las columnas y filas, supongo que depende de por dónde se mire.

  30. Wadk
    10/08/2010

    Por cierto, noto que se me olvidó el “return sprite;” en mi otro post :P

  31. adrigm
    10/08/2010

    Wadk, claro que se de argumentos por defecto, pero pienso que para este caso no es necesario y tiende a confundir o a causar errores difíciles de detectar, prefiero dejar los argumentos por defecto para cuando realmente a falta de valor halla que usar uno concreto.

    No me parece el caso de cortar los sprites que puede haber en cada juego de diferentes grados de animación. Porque no pienses solo en el caminar, piensa en uno de saltar tendría varios frames más, yo la verdad prefiero dejarlo si parámetros por defecto.

  32. Wadk
    11/08/2010

    Bueno, a mi me parece una buena idea. Pero es cuestión de preferencia personal, supongo.

  33. tony
    21/10/2010

    una pregunta no sabes como puedo hacer los diálogos ,para simular una conversación entre personajes ,me ayudarías mucho.
    gracias.

  34. Pedro
    01/10/2011

    Excelente trabajo, me ha servido muchísimo.

    Saludos!

  35. mirko
    21/03/2012

    Porque !!! justo ahora que estaba programando TwT se acabo el tutorial .__. no me aparecio nada en algo me equivoque

  36. Ludivia
    25/03/2013

    De acuerdo con Mirko, es una lástima que en este blog haya tantas cosas incompletas, que de haber seguido se hubieran llegado a cosas realmente grandiosas.
    Simplemente se deja un proyecto y se comienza otro sin más.

  37. JunKa Ortega
    04/09/2013

    No puedo avanzar me sale el siguiente error:

    sprite[i] = range(col)

    TypeError: ‘range’ object does not support item assignment

  38. Braian
    19/09/2013

    No hay alguna posibilidad de que continues con los tutoriales del engine? Muchisimas gracias!! Saludos.

  39. Juan Soza
    20/10/2013

    amigo buen dia cuando corro el sistema me sale un error que es el sigueinte no se si me podrias ayudar gracias
    ubuntu@ubuntu:~/Desktop/engine$ python engine.py
    Traceback (most recent call last):
    File “engine.py”, line 52, in
    main()
    File “engine.py”, line 40, in main
    heroe = Actor(mapa.start)
    File “/home/ubuntu/Desktop/engine/actors.py”, line 14, in __init__
    self.rect = self.image.self.get_rect()
    AttributeError: ‘tuple’ object has no attribute ‘self’
    ubuntu@ubuntu:~/Desktop/engine$

  40. ariel
    17/04/2014

    me sale el mismo error que juan soza, pero es ‘int’ object has no attribute ‘get_rect’

  41. expertuslucius
    12/03/2017

    engine.py
    libpng warning: iCCP: known incorrect sRGB profile
    Traceback (most recent call last):
    File “engine.py”, line 52, in
    main()
    File “engine.py”, line 40, in main
    heroe = Actor(mapa.start)
    File “/home/lucio/Downloads/engine/actors.py”, line 9, in __init__
    self.image = self.chara[0][0]
    TypeError: ‘pygame.Surface’ object has no attribute ‘__getitem__’

Responder

 

 

 

Volver arriba
móvil escritorio