⚠️ Advertencia: Gameeky aún se encuentra en las primeras etapas de desarrollo y, por lo tanto, está sujeta a cambios.
📝 Nótese: Este documento no es un tutorial exhaustivo sobre todo lo que Gameeky puede hacer, pero debería proporcionar suficientes instrucciones para comenzar.
Gameeky brinda experiencias de aprendizaje a estudiantes jóvenes y educadores, permitiéndoles crear y explorar con juegos cooperativos. Más específicamente:
📝 Nótese: Esta es una herramienta de aprendizaje en forma de motor de juego. No es un motor de juego profesional. Si está buscando una herramienta para crear videojuegos profesionales, considere el motor de juegos Godot.
El método de instalación recomendado es a través del centro de software del sistema, por ejemplo, GNOME Software. Busque Gameeky y proceda a instalarlo. Alternativamente, también se puede instalar desde Flathub. De manera similar, busque Gameeky y siga las instrucciones del sitio web.
Por último, también se puede instalar desde la terminal:
flatpak --user install flathub dev.tchx84.Gameeky
Gameeky proporciona paquetes con bloques de construcción predefinidos para diferentes intereses, por ejemplo, un juego de rol agrícola ambientado en un mundo de fantasía medieval. Un paquete temático contiene:
Estos bloques de construcción se pueden reutilizar para crear escenas personalizadas, juegos nuevos y muchos materiales de aprendizaje.
El método de instalación recomendado es a través del centro de software del sistema, por ejemplo, Software GNOME. Los paquetes temáticos se ofrecen como complementos desde la página del centro de software. Alternativamente, también se puede instalar desde Flathub. Del mismo modo, los paquetes temáticos se ofrecen como complementos del sitio web. Seleccione el complemento y siga las instrucciones del sitio web.
Por último, los packs también se pueden instalar desde la terminal:
flatpak --user remote-ls flathub | grep dev.tchx84.Gameeky.ThematicPack
flatpak --user install flathub dev.tchx84.Gameeky.ThematicPack.FreedomValley
Gameeky proporciona cinco componentes principales:
El lanzador sirve como punto de partida de Gameeky. Proporciona una
manera fácil de administrar paquetes temáticos instalados como
complementos y proyectos ubicados en el directorio
~/Gameeky
. El administrador soporta todas las operaciones
básicas de gestión:
El lanzador proporciona una forma sencilla de compartir proyectos. Para exportar un proyecto, siga estos pasos:
Para importar un proyecto, siga estos pasos:
El reproductor proporciona una representación visual del mundo del juego y los medios para interactuar con ese mundo.
Para iniciar un juego, haga clic en el botón Jugar del proyecto desde el lanzador. Esto iniciará la escena predeterminada para ese proyecto. Cada paquete temático y proyecto viene con una escena predeterminada. Para jugar otras escenas del mismo proyecto, siga estos pasos:
Una vez en el juego, la escena ocupa la mayor parte de la pantalla, pero también hay otros elementos.
El HUD es una interfaz ubicada en la parte inferior central de la pantalla. Este elemento se utiliza para visualizar las estadísticas del personaje del usuario. Está compuesto por las siguientes partes:
Otro elemento es el visor de diálogos. Este visor se coloca en la parte inferior de la pantalla y se utiliza para mostrar diálogos del juego, por ejemplo, un mensaje de un personaje del juego o del narrador. Está compuesto por las siguientes partes:
Una vez en el juego, el personaje del usuario se puede controlar con dos métodos:
El personaje del usuario puede realizar múltiples acciones para interactuar con el mundo del juego:
El estado del juego se puede guardar en cualquier momento y restaurar más tarde. Los archivos guardados son copias completas de la escena y, por lo tanto, archivos de escena normales.
Gameeky fue diseñado desde cero para crear y compartir experiencias cooperativas. Todos los juegos creados con él, se pueden jugar de forma cooperativa. No hay requisitos especiales. Aunque no existe un límite teórico en cuanto a cuántos usuarios pueden unirse a un juego cooperativo, existen limitaciones técnicas. Por ejemplo, recursos informáticos limitados.
Para iniciar un juego cooperativo, siga estos pasos:
Para unirse a un juego cooperativo:
📝 Nótese: Todos los usuarios que se unan a un juego cooperativo deben tener una copia del mismo paquete temático o proyecto.
📝 Nótese: No es necesario compartir las escenas personalizadas creadas a partir de paquetes temáticos. La escena se comparte automáticamente durante el juego, siempre que todos los usuarios compartan el mismo paquete temático.
📝 Nótese: Los usuarios pueden unirse a una sesión como cualquier entidad definida en el paquete temático, por ejemplo, como un árbol o una roca. Para hacer esto, expanda la sección Avanzado del diálogo de creación y seleccione un Tipo de Entidad diferente.
El editor de escenas permite a los usuarios crear y modificar mundos del juego. Sirve como la experiecia inicial y más sencilla de creación sin código en Gameeky.
Para editar una escena existente, haga clic en el botón Editar del proyecto desde el lanzador. Para crear una nueva escena, se recomienda comenzar con un proyecto existente, como un paquete temático. Siga estos pasos para agregar una nueva escena:
📝 Nótese: Los paquetes temáticos no se pueden modificar. Por lo tanto, se debe crear una copia editable. En el menú de opciones del paquete temático, seleccione la opción Copiar.
Una escena es una colección de entidades dispuestas en una cuadrícula de mosaicos. Las propiedades básicas de una escena son:
El flujo de trabajo de edición de escenas se parece al de una herramienta de diseño gráfico. Las entidades se pintan y se retiran de la escena. Los pasos básicos para editar una escena son los siguientes:
Además, el editor de escenas proporciona ayudas para facilitar las cosas, como por ejemplo:
Para una mejor experiencia, siga estos consejos y trucos:
El editor de entidades permite a los usuarios crear y modificar criaturas y objetos del juego. Proporciona una experiencia de creación sin código más profunda, ya que requiere comprender los sistemas subyacentes de Gameeky.
Antes de crear una nueva entidad desde cero, se recomienda inspeccionar las entidades existentes de los paquetes temáticos. Entonces, para inspeccionar una entidad existente, siga estos pasos:
Para crear una nueva entidad:
Las entidades representan todo lo que puede existir en el juego, por ejemplo, la hierba, el personaje del usuario, una fuente de luz, la música de fondo e incluso la lógica del juego. Una entidad se compone de tres partes:
Estas propiedades determinan cómo las entidades se comportan e interactúan con otras entidades; por ejemplo, diferentes combinaciones de estas propiedades determinarán si una entidad actúa como una piedra estática o como un enemigo vivo.
Aunque hay dos docenas de propiedades, algunas de ellas requieren atención especial aquí:
📝 Nótese: Al crear un nuevo paquete temático, asuma que la entidad con el número de identificador 1 se asignará al personaje del usuario en el juego.
Las entidades se representan en pantalla a través de gráficos 2D, que pueden ser estáticos o animados.
Estos gráficos se asignan a combinaciones específicas de estado y dirección, por ejemplo, se representará una animación específica cuando una entidad se Mueva hacia el Oeste, mientras que se representará otra animación cuando la misma entidad esté Quieta hacia el Sur.
Todas las entidades deben proporcionar un gráfico Predeterminado, por ejemplo, para visualizarlo en el editor de escenas o al depurar complementos.
De manera similar a los gráficos, las entidades pueden emitir sonidos cuando se encuentran en estados específicos, por ejemplo, el sonido de pasos se reproduce cuando la entidad se está Moviendo. Las direcciones no importan aquí.
No hay sonidos Predeterminados, ya que los sonidos son opcionales.
El flujo de trabajo de creación de entidades es similar a completar un formulario o una plantilla. La entidad más básica se crea con los siguientes pasos:
Para una mejor experiencia, siga estos consejos y trucos:
Tener soporte para juegos cooperativos abre la puerta a cooperadores que pueden controlarse con código. Para lograr esto, Gameeky proporciona una pequeña biblioteca que permite a los usuarios controlar una única entidad usando Python, en una experiencia similar a LOGO.
Siga estos pasos para iniciar un juego cooperativo:
Para unirse al juego con código se deben seguir estos pasos:
Unirse y abandonar un juego:
from gameeky.library import Game
= Game()
game
game.join() game.quit()
Realizar acciones:
from gameeky.library import Game, Direction
= Game()
game
game.join()
game.update()
=1000)
game.idle(time=1000)
game.move(Direction.EAST, time=1000)
game.move(Direction.WEST, time=1000)
game.take(time=1000)
game.use(time=1000)
game.drop(time=1000)
game.interact(time
game.quit()
Inspeccionar la posición y las propiedades básicas del personaje del usuario entidad:
from gameeky.library import Game
= Game()
game
game.join()
game.update()
print(game.entity.position.x, game.entity.position.y)
game.quit()
Inspeccione el estado de la escena:
from gameeky.library import Game
= Game()
game
game.join()
game.update()
for entity in game.scene.entities:
print(entity.position.x, entity.position.y)
game.quit()
📝 Nótese: Los cooperadores solo pueden ver su entorno inmediato en la escena, no la escena completa.
Inspeccionar las estadísticas avanzadas de la entidad del personaje del usuario:
from gameeky.library import Game
= Game()
game
game.join()
game.update()
print(game.stats.durability, game.stats.stamina, game.stats.held)
game.quit()
Para una mejor experiencia, siga estos consejos y trucos:
Los actuadores pueden modificar el comportamiento de una entidad. Una sola entidad puede utilizar múltiples actuadores para modelar comportamientos más complejos. Aunque existe una amplia gama de actuadores predefinidos, el resultado final es limitado en comparación con el código real.
Por lo tanto, Gameeky proporciona soporte para actuadores creados por el usuario, e ir más allá de lo que pueden hacer los actuadores predefinidos.
Hay tres tipos de actuadores:
Todos los actuadores utilizan las propiedades de juego de su entidad para modificar su comportamiento:
Para crear un nuevo actuador, siga los pasos:
~/Gameeky/NOMBRE_DEL_PROYECTO/actuators/NOMBRE_DEL_ACTUADOR.py
📝 Nótese: También se puede acceder a los actuadores creados por el usuario desde el editor de escenas al personalizar entidades específicas.
Una clase actuador mínima:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
def tick(self) -> None:
pass
Inspeccionar la entidad:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
def tick(self) -> None:
print(self.entity.name)
Realizar una acción sobre la entidad:
from gameeky.plugins import Actuator as Plugin
from gameeky.common.definitions import Action, Direction
class Actuator(Plugin):
def tick(self) -> None:
self.entity.perform(Action.MOVE, Direction.SOUTH)
Enviar un diálogo a la entidad:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
def tick(self) -> None:
self.entity.tell("Hello...")
Inspeccionar todas las demás entidades que se encuentran en frente a la entidad:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
def tick(self) -> None:
for entity in self.entity.obstacles:
print(entity.name)
Inspeccionar todas las demás entidades que comparten la misma posición que la entidad:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
def tick(self) -> None:
for entity in self.entity.surfaces:
print(entity.name)
Inspeccionar todas las demás entidades que rodean la entidad:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
def tick(self) -> None:
for entity in self.entity.surroundings:
print(entity.name)
📝 Nótese: El método surroundings tiene en cuenta la propiedad Radio de la entidad.
Inspeccionar todas las entidades en la escena, que no sean estáticas:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
def tick(self) -> None:
for entity in self.entity.scene.mutables:
print(entity.name)
Inspeccionar todas las entidades controladas por usuarios:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
def tick(self) -> None:
for entity in self.entity.scene.playables:
print(entity.name)
Crear un actuador que actúa cada cinco segundos:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
= True
activatable
def tick(self) -> None:
if not self.ready:
return
print("Activated...")
super().tick()
📝 Nótese: La propiedad ready tiene en cuenta la propiedad Tasa de la entidad.
Crear un actuador que actúa solo cuando los usuarios interactúen con él:
from gameeky.plugins import Actuator as Plugin
class Actuator(Plugin):
= True
interactable
def prepare(self, interactee: "Entity") -> bool:
if interactee.playable is False:
return False
return super().prepare(interactee)
def tick(self) -> None:
if self.interactee is None:
return
print(f"Interacted with {self._interactee.name}")
super().tick()
Para ver ejemplos más complejos, consulte el directorio actuadores predefinidos de Gameeky.
Para una mejor experiencia, siga estos consejos y trucos: