Popochiu 2.0 - Alpha 1


Popochiu 2.0 Alpha 1 (for Godot 4.0 stable) Godot v4.0

English

Lee la versión en Español más abajo

Popochiu has been preparing for this moment for several months already since the beta versions of Godot 4 started to be released, but with what we achieved in Popochiu 1.9 regarding direct access to game objects from the code editor, and some decisions made regarding file naming, we had to make many changes before we could release this first alpha.

We hope you will help us test it to find bugs and make the official version the best possible.

New features

  • E.run([]) is now called E.queue([]), but you don’t need it to queue instructions with that method anymore!!!. You can do that with GDScript 2.0’s await.
    func _on_click() -> void:
    	# This much better, right?
    	await C.walk_to_clicked()
    	await C.face_clicked()
    	await C.Goddiu.say('My old toy car...')
    	await I.ToyCar.add()
      	await A.sfx_toy_car.play()
    
  • If you want to use E.queue([]), you’ll need to use the queue_ version of each method:
    func _on_click() -> void:
     # Doing the same in the old way
     	E.queue([
     		C.queue_walk_to_clicked(),
     		C.queue_face_clicked(),
     		'Player: My old toy car...',
     		I.ToyCar.queue_add(),
     		A.sfx_toy_car.queue_play(),
     	])
    
  • Now on_interact() and on_click() methods in Props, Hotspots, Characters and Inventory items are called _on_click() and _on_right_click(). We made this change because we wanted the plugin to not impose how to identify such interactions. Thanks go to @StickGrinder for bringing this to our attention.
  • The id property of the PopochiuDialogOption returned by D.show_inline_dialog(options: Array) is now a String number starting at 0.
      var op: PopochiuDialogOption = await D.show_inline_dialog([
      	'Hi', 'Hola', 'Ciao'
      ])
    
      match int(op.id): # You can compare the String if you prefer
      	0:
      		C.Goddiu.say("How is it going?")
      	1:
      		C.Goddiu.say("¿Cómo te va?")
      	2:
      		C.Goddiu.say("Come sta andando?")
    
  • Now the Points node inside each PopochiuRoom is called Markers (because you’ll use Godot 4 Marker2D nodes to define positions in the room that can be used to move characters to them). Consequently, the method of the PopochiuCharacter class previously named walk_to_room_point(id: String) is now named walk_to_marker(id: String).

Known issues

  • Code autocomplete when accessing game objects is not working at the moment. We reported this on this issue but we have not yet received an answer. This doesn’t happen when accessing the properties and methods defined in the state of those objects.
    # This won't show anything for autocompletion
    C.Goddiu.
    # But here Godot will suggest properties and methods in the state script of the character
    C.Goddiu.state.
    
  • Setting the project as Pixel or 2D in the setup popup won’t have any effect.

Things to come

  • A better system for Dialogs creation. We’ve discussing this, and in the short-term, each dialog option will have its own script, so you don’t have to write a match to evaluate which option was selected.
  • @stickgrinder @mgdesign and @drbbgh have been working on improving the animation system for characters (something that will benefit props and rooms later), and an Aseprite importer for those animations. This component will be available in Popochiu 1.10, and will be part of Popochiu 2.0 too!
  • A tool to handle localization.
  • A better system to customize the graphic interface of the game.
  • More word effects and text transition effects for the DialogText node (the one used to show dialogue lines).

Español

Popochiu se ha estado preparando, desde que empezaron las publicaciones de las versiones Beta de Godot 4, para este momento, pero con las mejoras que logramos en la versión 1.9 respecto al acceso a los objetos del juego desde el editor de código, y algunas decisiones que tomamos en relación al nombrado de los archivos, tuvimos que hacer varios cambios adicionales con tal de publicar la primera versión alfa.

Esperamos que nos ayuden a probar el plugin para encontrar errores que hagan que el lanzamiento salga lo mejor posible.

Lo nuevo

  • E.run([]) ahora se llama E.queue([]), pero ¡¡¡no será necesario usarlo para encolar instrucciones!!!, para eso puedes usar el await de GDScript 2/
    func _on_click() -> void:
      # Esto se ve mucho mejor
      await C.walk_to_clicked()
      await C.face_clicked()
      await C.Goddiu.say('Mi viejo carrito de juguete...')
      await I.ToyCar.add()
      await A.sfx_toy_car.play()
    
  • Puedes usar E.queue([]), pero tendrás que usar los métodos que empiezan por queue_:
    func _on_click() -> void:
      # Así se hace a la antigua
      E.queue([
        C.queue_walk_to_clicked(),
        C.queue_face_clicked(),
        'Player: Mi viejo carrito de juguete...',
        I.ToyCar.queue_add(),
        A.sfx_toy_car.queue_play(),
      ])
    
  • Ahora los métodos on_interact() y on_click() en las Props, las Hotspots, les personajes y les objetos de inventario se llaman _on_click() y _on_right_click(). Hicimos este cambio porque no queríamos que el plugin impusiera el modo de nombrar a dichas interacciones. Tenemos que agradecer a @StickGrinder por hacernos caer en cuenta de esto.
  • La propiedad id de los PopochiuDialogOption que retorna la llamada al método D.show_inline_dialog(options: Array) es ahora número String que inicia en 0.
    var op: PopochiuDialogOption = await D.show_inline_dialog([
      'Hi', 'Hola', 'Ciao'
    ])
    
    
    match int(op.id): # También podrías comparar directamente el String
      0:
        C.Goddiu.say("How is it going?")
      1:
        C.Goddiu.say("¿Cómo te va?")
      2:
        C.Goddiu.say("Come sta andando?")
    
  • Ahora el nodo Points que hace parte de cada PopochiuRoom se llama Markers (ya que en Godot 4 usarás nodos Marker2D para definir posiciones dentro de la habitación a la que podrían moverse les personajes). En consecuencia, el método walk_to_room_point(id: String) de la clase PopochiuCharacter ahora se llama walk_to_marker(id: String).

Errores conocidos

  • El autocompletado de código para acceder a las propiedades y métodos de los objetos del juego no está funcionando. Reportamos este error en el repositorio de Godot, pero aún no hemos recibido respuesta. Esto no sucede cuando se intenta acceder a las propiedades y métodos de la propiedad state de dichos objetos.
    # El editor de código aquí no mostrará nada
    C.Goddiu.
    # Pero aquí sugerirá propiedades y métodos en el script state del personaje
    C.Goddiu.state.
    
  • Establecer el proyecto como Pixel o 2D en la ventana emergente de configuración (Setup) no tendrá ningún efecto.

Lo que viene

  • Un mejor sistema para crear diálogos. Hemos estado discutiendo esto, y a corto plazo haremos que cada opción de diálogo tenga su propio script. Así no tendrán que usar un match para evaluar qué opción se ha seleccionado.
  • @StickGrinder @mgdesign y @drbbgh han estado trabajando en mejorar el modo de definir animaciones para les personajes (algo que ha futuro también se extenderá a las props y las habitaciones); y en componente para importar dichas animaciones directamente desde Aseprite. ¡Esta mejora estará disponible en la versión 1.10 también!
  • Una herramienta para agregar localización.
  • Un sistema mejorado para personalizar la interfaz gráfica del juego.
  • Más efectos para las transiciones y las palabras renderizadas en el nodo DialogText (el que se encarga de mostrar lo que dicen los personajes).

Files

popochiu_v2.0-alpha1.zip 285 kB
Mar 26, 2023

Get Popochiu - Godot point n' click engine

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.