🧠🎮 Cómo programar en Range Game Engine?

 


🧠🎮 Cómo programar en Range Game Engine

Este es un excelente tutorial para quienes quieren empezar a practicar scripting en Range Game Engine (basado en Blender 2.79, NO UPBGE) 🚫🆙.

✍️ Por wkk (post original en Blender Artist)
📘 Python Tutorial: How to script in Range


🚀 Introducción (no tan rápida) al scripting en Python para Range

Hay bastantes cosas que revisar, lo siento… 😅
Pero no es tan difícil. ¡Sé valiente! 💪🐍


🧱 Logic Brick: Controlador Python

Un controlador Python es básicamente un logic brick que puedes programar usando scripts en Python 🐍, dentro de Range Game Engine.

Si observas cómo se comporta normalmente un controlador, hacen cosas bastante simples:

  • 🔗 Controlador AND: Cuando todos los sensores conectados están activos, activa todos los actuadores.
  • Controlador OR: Cuando uno de los sensores está activo, activa todos los actuadores.
  • 🚫 Controlador NAND: Cuando ningún sensor está activo, activa los actuadores.
  • Controlador XOR: Cuando solo uno de los sensores está activo, activa los actuadores… etc.

Todas estas son compuertas lógicas básicas, pero… 🤔
¿qué pasa si quieres más control dentro de Range?

Por ejemplo:

  • ✔️ Ver si un sensor está activo
  • 🔎 Revisar valores internos del sensor

Ahí es cuando usas un controlador Python 🐍✨

image

⚠️ Importante:
Necesitas al menos un sensor conectado al controlador para que se ejecute.
Puede ser cualquier sensor, pero el disparador siempre viene de uno.


✍️ Escribiendo tu primer script en Range

Para escribir un script, abre el Editor de Texto de Blender 📝 (usado por Range) y empieza a escribir.

Un pequeño aviso: cuando la gente ve código suele decir:

“Eso es de hackers, es demasiado complejo” 😱

Pero no temas 😌
Los programas están pensados para escribirse usando palabras en inglés, como una receta 🍳.
Es solo una lista de instrucciones para ir de un estado A a un estado B.

import Range  # módulo para interactuar con Range Game Engine

# Obtenemos el controlador actual
controller = Range.logic.getCurrentController()

# El objeto que posee este controlador
owner = controller.owner

# Movemos el cubo hacia arriba
owner.worldPosition.z += 0.1

# Lo hacemos rotar
owner.applyRotation([0, 0, 0.1])  # [x, y, z]

Aunque estemos usando Range, la API sigue siendo compatible con el BGE clásico, por lo que este código funciona sin problemas 💡, pero si debes tomar en cuenta que debes cambiar el import de “Import bge” a “Import Range”, y usar “Range” cuando se asigna el controlador.


🤷‍♂️ “No sé Python para empezar…”

Tal vez valga la pena jugar un poco con Python por separado, al menos para cubrir lo básico 🧩.

Recomendación principal:

https://jakevdp.github.io/WhirlwindTourOfPython/

Otros recursos útiles 📚:

https://www.techbeamers.com/python-tutorial-step-by-step/

Y Google también ayuda bastante 😄:

https://developers.google.com/edu/python/set-up

👉 Elige uno y tómate tu tiempo.

Si haces esto, estarás listo para lanzar tus primeros hechizos en Range 🧙‍♂️✨🎮.


🐞 Cómo ver qué falló (debugging) en Range

⚠️ ¡MUY IMPORTANTE!

Al escribir scripts en Range, cometer errores es totalmente normal 😄.

🖥️ Ver la consola

  • Windows: Window > Toggle Console
  • Linux / Mac: Ejecuta Blender/Range desde una terminal

Ahí verás errores como:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

Esto indica que estás usando una variable no definida ❌.

🔴 Al inicio verás muchos SyntaxError.
La línea marcada no siempre es el origen real del problema.

👉 Respira, revisa y sigue 🙂.


📚 ¿Dónde encontrar funciones y variables para Python en Range?

Esta es la documentacion de Range Game Engine 👇

https://rangeengine.tech/api/16/html/index.html

Para comenzar, revisa el módulo bge.logic:

https://rangeengine.tech/api/16/html/api/Range.logic.html

Ahí se explica qué puedes hacer y cómo hacerlo dentro de Range.


🔍 Ejemplo práctico de búsqueda

🧠 “Quiero mover un objeto en Range” (Range game engine API aun no esta cocnluida, pero la de Blender 2.79 sirve)

Documentación principal:
https://docs.blender.org/api/2.79/

Buscador 🔎: “move”

https://docs.blender.org/api/2.79/search.html

Resultado interesante 👀:

image

imagen

Página clave:
https://docs.blender.org/api/2.79/KX_GameObject.html

💡 Tip importante en Range: muchas funciones aceptan listas de 3 valores:

i_am_a_list = [0, 1, 2]
object.applyMovement(i_am_a_list)

Todo se reduce a:
🧪 experimentar
📖 leer docs
🔁 repetir


📂 Usar módulos Python desde tu disco en Range

Para proyectos medianos o grandes en Range, necesitas orden 🗂️.

Estructura recomendada:

game_folder/
├── game.blend
├── script_1.py
├── script_2.py

⚠️ Importante: Siempre usa .py

Importar módulos:

import script_1
script_1.some_function()

Usando carpetas:

game_folder/
└── script_folder/
    ├── script_1.py
    └── script_2.py
from script_folder import script_1

😛 Sí… el editor de texto de Blender no es el mejor.


⚙️ Llamar funciones desde un controlador Python en Range

Cambia el controlador Python de Script a Module:

image

Ejemplo:

# scripts/controllers.py

def rotate(controller):
    owner = controller.owner
    owner.applyRotation([0, 0, 0.1])

En el controlador escribe:

scripts.controllers.rotate

image

✨ Así Range ejecuta directamente la función.


🧠 ¿Y ahora qué?

Bienvenido al desarrollo real con Range Game Engine 😄:

  • 📖 Leer documentación
  • 🐌 Optimizar código
  • 🖨️ Usar print() para depurar
  • 😵‍💫 Desesperarte un poco

Pero Range + Python te permite hacer MUCHÍSIMAS cosas 🎮🔥.

No es fácil ❌
Pero vale totalmente la pena

La programación es un juego de paciencia y perseverancia 🧘‍♂️💻.

🍀 ¡Buena suerte y feliz scripting en Range!


 

Leave a Reply

Your email address will not be published. Required fields are marked *

Hey!

I’m Bedrock. Discover the ultimate Minetest resource – your go-to guide for expert tutorials, stunning mods, and exclusive stories. Elevate your game with insider knowledge and tips from seasoned Minetest enthusiasts.

Join the club

Stay updated with our latest tips and other news by joining our newsletter.