{"id":795,"date":"2026-01-26T09:00:38","date_gmt":"2026-01-26T09:00:38","guid":{"rendered":"https:\/\/salvador.mata.com.mx\/blog\/?p=795"},"modified":"2026-03-19T20:06:21","modified_gmt":"2026-03-19T20:06:21","slug":"game-loop-range-upbge-bge","status":"publish","type":"post","link":"https:\/\/salvador.mata.com.mx\/blog\/2026\/01\/26\/game-loop-range-upbge-bge\/","title":{"rendered":"\ud83c\udfae El Game Loop &#8211; Range \/ UPBGE \/ BGE"},"content":{"rendered":"<h2 data-section-id=\"1uaekfm\" data-start=\"5\" data-end=\"33\">\ud83c\udfaf Objetivo del tutorial<\/h2>\n<p data-start=\"35\" data-end=\"213\">El objetivo de este tutorial es explicarte c\u00f3mo funciona el <em><strong>game loop en Range<\/strong><\/em> y por qu\u00e9 es fundamental para entender el comportamiento de tus proyectos en tiempo real.<\/p>\n<p data-start=\"215\" data-end=\"567\">A lo largo del contenido, aprender\u00e1s c\u00f3mo se ejecutan los procesos internos en cada frame, c\u00f3mo interact\u00faan los bloques de l\u00f3gica dentro de este ciclo y c\u00f3mo esto impacta directamente en el resultado de tus sistemas. Este conocimiento te permitir\u00e1 detectar errores que no son evidentes a simple vista y mejorar la forma en la que estructuras tu l\u00f3gica.<\/p>\n<p data-start=\"569\" data-end=\"729\" data-is-last-node=\"\" data-is-only-node=\"\">Al finalizar, tendr\u00e1s una comprensi\u00f3n m\u00e1s s\u00f3lida del funcionamiento interno de Range, lo que te ayudar\u00e1 a crear sistemas m\u00e1s precisos, predecibles y eficientes.<\/p>\n<hr \/>\n<h2>\ud83c\udfae El Game Loop en Blender Game Engine (BGE)<\/h2>\n<p>Si est\u00e1s leyendo esto, lo m\u00e1s probable es que est\u00e9s pensando en <span style=\"color: #008000;\"><strong>crear un juego<\/strong><\/span>.<br \/>\nEl <a href=\"https:\/\/rangeengine.tech\/\" target=\"_blank\" rel=\"noopener\"><strong>Range Game Engine<\/strong><\/a>, <span style=\"color: #008000;\"><strong>UPBGE<\/strong> <\/span>o incluso el antiguo <span style=\"color: #008000;\"><strong>Blender Game Engine (BGE)<\/strong><\/span> es una gran plataforma para hacerlo \ud83d\ude80.<\/p>\n<p>Esta gu\u00eda deber\u00eda ayudarte a <span style=\"color: #008000;\"><strong>entender c\u00f3mo funciona el motor de juegos<\/strong><\/span> y, en consecuencia, <span style=\"color: #008000;\"><strong>c\u00f3mo funciona tu juego<\/strong><\/span> internamente.<\/p>\n<p>Hay una cosa que <span style=\"color: #008000;\"><strong>todo juego tiene<\/strong><\/span>:<\/p>\n<h2>\ud83d\udd01 EL GAME LOOP<\/h2>\n<h2 data-start=\"184\" data-end=\"210\">\u00bfQu\u00e9 es el <em data-start=\"198\" data-end=\"209\">Game Loop<\/em>?<\/h2>\n<p data-start=\"212\" data-end=\"450\">El <span style=\"color: #008000;\"><strong data-start=\"215\" data-end=\"228\">Game Loop<\/strong><\/span> (o <em data-start=\"232\" data-end=\"249\">bucle del juego<\/em>) es el <span style=\"color: #008000;\"><strong data-start=\"257\" data-end=\"292\">coraz\u00f3n de cualquier videojuego<\/strong><\/span>.<br data-start=\"293\" data-end=\"296\" \/>Es un ciclo que se ejecuta constantemente mientras el juego est\u00e1 activo y se encarga de que <span style=\"color: #008000;\"><strong data-start=\"388\" data-end=\"449\">todo funcione, se actualice y se renderice en tiempo real<\/strong><\/span>.<\/p>\n<p data-start=\"452\" data-end=\"533\">En t\u00e9rminos simples:<br data-start=\"472\" data-end=\"475\" \/><span style=\"color: #99cc00;\">\ud83d\udc49 <em data-start=\"478\" data-end=\"532\">el game loop es lo que hace que el juego \u201cest\u00e9 vivo\u201d<\/em><\/span>.<\/p>\n<hr data-start=\"535\" data-end=\"538\" \/>\n<h2 data-start=\"540\" data-end=\"566\">\u00bfQu\u00e9 hace el Game Loop?<\/h2>\n<p data-start=\"568\" data-end=\"680\">En cada iteraci\u00f3n (cada \u201cvuelta\u201d del ciclo), el game loop suele realizar estas tareas, <strong data-start=\"655\" data-end=\"679\">en este orden l\u00f3gico<\/strong>:<\/p>\n<ol data-start=\"682\" data-end=\"1274\">\n<li data-start=\"682\" data-end=\"779\">\n<p data-start=\"685\" data-end=\"779\">\ud83c\udfae <strong data-start=\"688\" data-end=\"727\">Leer la entrada del <span style=\"color: #008000;\">jugador<\/span> (Input)<\/strong><br data-start=\"727\" data-end=\"730\" \/><span style=\"color: #99cc00;\">Teclado, mouse, control, pantalla t\u00e1ctil, etc.<\/span><\/p>\n<\/li>\n<li data-start=\"781\" data-end=\"969\">\n<p data-start=\"784\" data-end=\"832\">\ud83e\udde0 <strong data-start=\"787\" data-end=\"830\">Actualizar la l\u00f3gica del juego (Update)<\/strong><\/p>\n<ul data-start=\"836\" data-end=\"969\">\n<li data-start=\"836\" data-end=\"864\">\n<p data-start=\"838\" data-end=\"864\"><span style=\"color: #99cc00;\">Movimiento de personajes<\/span><\/p>\n<\/li>\n<li data-start=\"868\" data-end=\"886\">\n<p data-start=\"870\" data-end=\"886\"><span style=\"color: #99cc00;\">IA de enemigos<\/span><\/p>\n<\/li>\n<li data-start=\"890\" data-end=\"904\">\n<p data-start=\"892\" data-end=\"904\"><span style=\"color: #99cc00;\">Colisiones<\/span><\/p>\n<\/li>\n<li data-start=\"908\" data-end=\"929\">\n<p data-start=\"910\" data-end=\"929\"><span style=\"color: #99cc00;\">Estados del juego<\/span><\/p>\n<\/li>\n<li data-start=\"933\" data-end=\"969\">\n<p data-start=\"935\" data-end=\"969\"><span style=\"color: #99cc00;\">L\u00f3gica de scripts y <em data-start=\"955\" data-end=\"969\">logic bricks<\/em><\/span><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-start=\"971\" data-end=\"1135\">\n<p data-start=\"974\" data-end=\"1012\">\ud83c\udfa8 <strong data-start=\"977\" data-end=\"1010\">Renderizar la escena (Render)<\/strong><\/p>\n<ul data-start=\"1016\" data-end=\"1135\">\n<li data-start=\"1016\" data-end=\"1038\">\n<p data-start=\"1018\" data-end=\"1038\"><span style=\"color: #99cc00;\">Dibujar modelos 3D<\/span><\/p>\n<\/li>\n<li data-start=\"1042\" data-end=\"1061\">\n<p data-start=\"1044\" data-end=\"1061\"><span style=\"color: #99cc00;\">Aplicar shaders<\/span><\/p>\n<\/li>\n<li data-start=\"1065\" data-end=\"1080\">\n<p data-start=\"1067\" data-end=\"1080\"><span style=\"color: #99cc00;\">Iluminaci\u00f3n<\/span><\/p>\n<\/li>\n<li data-start=\"1084\" data-end=\"1135\">\n<p data-start=\"1086\" data-end=\"1135\"><span style=\"color: #99cc00;\">Efectos visuales (como <em data-start=\"1109\" data-end=\"1121\">Lens Flare<\/em>, Bloom, etc.)<\/span><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-start=\"1137\" data-end=\"1274\">\n<p data-start=\"1140\" data-end=\"1274\">\u23f1 <strong data-start=\"1142\" data-end=\"1174\">Controlar el tiempo (Timing)<\/strong><br data-start=\"1174\" data-end=\"1177\" \/><span style=\"color: #99cc00;\">Mantener una velocidad estable (FPS) para que el juego no dependa de la potencia del hardware.<\/span><\/p>\n<\/li>\n<\/ol>\n<p data-start=\"1276\" data-end=\"1330\">Este ciclo se repite <span style=\"color: #008000;\"><strong data-start=\"1297\" data-end=\"1329\">decenas de veces por segundo<\/strong><\/span>.<\/p>\n<p>Entender estos conceptos te ayudar\u00e1 a explicar muchos de esos comportamientos \u201cmisteriosos\u201d que probablemente hayas notado alguna vez \ud83e\udd14.<\/p>\n<hr \/>\n<h2>\ud83d\udd04 El Game Loop<\/h2>\n<p>Cada ciclo dentro del Game Loop representa <strong>un frame l\u00f3gico<\/strong>, tambi\u00e9n conocido como <strong>logic tick<\/strong>.<br \/>\nEste es el <strong>intervalo de tiempo m\u00e1s peque\u00f1o<\/strong> dentro de tu juego.<\/p>\n<p>Cada ciclo realiza los siguientes pasos:<\/p>\n<p><span style=\"color: #008000;\">1\ufe0f\u20e3 <strong>Las escenas son procesadas<\/strong><\/span><br \/>\n<span style=\"color: #008000;\">2\ufe0f\u20e3 <strong>Los dispositivos de entrada son revisados<\/strong><\/span><br \/>\n<span style=\"color: #008000;\">3\ufe0f\u20e3 <strong>La imagen final es renderizada<\/strong><\/span><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-797 aligncenter\" src=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/gameLoop.jpg\" alt=\"\" width=\"284\" height=\"482\" srcset=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/gameLoop.jpg 284w, https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/gameLoop-177x300.jpg 177w\" sizes=\"auto, (max-width: 284px) 100vw, 284px\" \/><\/p>\n<p>\u26a0\ufe0f Es importante saber que el <span style=\"color: #008000;\"><strong>render puede ser omitido<\/strong><\/span> si el frame anterior consumi\u00f3 demasiado tiempo de procesamiento (lag).<\/p>\n<p>Existe un l\u00edmite de renders que pueden ser omitidos (por defecto = 5).<br \/>\nSi este l\u00edmite se supera, el render se ejecutar\u00e1 <span style=\"color: #008000;\"><strong>sin importar cu\u00e1nto tiempo tome<\/strong><\/span>.<\/p>\n<p>Este tipo de <em>render lag<\/em> provoca <em>logic lag<\/em>, haciendo que el juego se ejecute <span style=\"color: #008000;\"><strong>m\u00e1s lento de lo esperado<\/strong><\/span> \ud83d\udc0c.<\/p>\n<hr \/>\n<h2>\ud83c\udfac El Scene Loop (Ciclo de Escena)<\/h2>\n<p>Este ciclo es un poco m\u00e1s complejo.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-803\" src=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/sceneLoop.jpg\" alt=\"\" width=\"311\" height=\"461\" srcset=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/sceneLoop.jpg 311w, https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/sceneLoop-202x300.jpg 202w\" sizes=\"auto, (max-width: 311px) 100vw, 311px\" \/><\/p>\n<p>El Scene Loop recorre <span style=\"color: #008000;\"><strong>todas las escenas activas<\/strong><\/span> y ejecuta los siguientes pasos <span style=\"color: #008000;\"><strong>para cada escena<\/strong><\/span>:<\/p>\n<p>1\ufe0f\u20e3 <span style=\"color: #99cc00;\">Evaluaci\u00f3n de sensores<\/span><br \/>\n<span style=\"color: #99cc00;\">2\ufe0f\u20e3 Ejecuci\u00f3n de controladores<\/span><br \/>\n<span style=\"color: #99cc00;\">3\ufe0f\u20e3 Ejecuci\u00f3n de actuadores<\/span><br \/>\n<span style=\"color: #99cc00;\">4\ufe0f\u20e3 Actualizaci\u00f3n de f\u00edsicas<\/span><br \/>\n<span style=\"color: #99cc00;\">5\ufe0f\u20e3 Reproducci\u00f3n de sonido \ud83d\udd0a<\/span><\/p>\n<p>Los pasos <strong>1 al 3<\/strong> conforman el concepto <strong>SCA<\/strong> (<em>Sensors, Controllers, Actuators<\/em>), que es lo que configuramos como <strong>Logic Bricks<\/strong>.<\/p>\n<p>\ud83d\udc49 <strong>Este orden es muy importante. Tenlo siempre en mente<\/strong>:<\/p>\n<ul>\n<li><span style=\"color: #99cc00;\">Nunca ver\u00e1s un controlador ejecutarse antes de que un sensor sea evaluado<\/span><\/li>\n<li><span style=\"color: #99cc00;\">Nunca ver\u00e1s un actuador ejecutarse antes de que todos los controladores hayan sido ejecutados<\/span><\/li>\n<li><span style=\"color: #99cc00;\">La actualizaci\u00f3n de f\u00edsicas ocurre <strong>despu\u00e9s<\/strong> de los actuadores, pero <strong>antes<\/strong> del render<\/span><\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83e\udde9 SCA \u2013 Sensores<\/h2>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-804\" src=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/SCAsensors.jpg\" alt=\"\" width=\"216\" height=\"272\" \/><\/p>\n<p>Los <span style=\"color: #008000;\"><strong>sensores activos siempre son evaluados<\/strong><\/span>, sin importar los par\u00e1metros que se les asignen.<br \/>\nNo existe ning\u00fan par\u00e1metro que evite que un sensor sea evaluado en cada frame.<\/p>\n<p>Un sensor es considerado activo si:<\/p>\n<ul>\n<li>Est\u00e1 conectado a un controlador<\/li>\n<li>Y ese controlador pertenece a un<span style=\"color: #008000;\"> <strong>estado activo<\/strong><\/span><\/li>\n<\/ul>\n<p>Si un sensor <span style=\"color: #008000;\"><strong>no est\u00e1 conectado a un controlador en un estado activo<\/strong>, <strong>no ser\u00e1 evaluado<\/strong><\/span>.<br \/>\nEsto es muy \u00fatil cuando quieres desactivar sensores \u201cpesados\u201d, como <span style=\"color: #008000;\"><strong>Ray<\/strong> <\/span>o <span style=\"color: #008000;\"><strong>Radar<\/strong><\/span>, para ahorrar recursos \u26a1.<\/p>\n<p>Dependiendo de sus par\u00e1metros, los sensores evaluados <span style=\"color: #008000;\"><strong>disparan<\/strong> <\/span>los controladores conectados.<\/p>\n<hr \/>\n<h2>\ud83e\udde0 SCA \u2013 Controladores<\/h2>\n<p>Todos los <span style=\"color: #008000;\"><strong>controladores disparados<\/strong><\/span> son ejecutados, <span style=\"color: #008000;\"><strong>sin importar si el estado del sensor es True o False<\/strong><\/span>.<\/p>\n<p>\u26a0\ufe0f Solo los controladores disparados se ejecutan.<br \/>\nNo existe forma de ejecutar un controlador si no ha sido activado por un sensor.<\/p>\n<p>Por esta raz\u00f3n, <span style=\"color: #008000;\"><strong>elegir correctamente los sensores es fundamental<\/strong><\/span>.<\/p>\n<p>Los controladores ejecutados env\u00edan se\u00f1ales de:<\/p>\n<ul>\n<li><span style=\"color: #99cc00;\">Activaci\u00f3n<\/span><\/li>\n<li><span style=\"color: #99cc00;\">Desactivaci\u00f3n<\/span><\/li>\n<\/ul>\n<p>a los actuadores conectados, dependiendo de la entrada del sensor.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-805\" src=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/SCAControladores.jpg\" alt=\"\" width=\"415\" height=\"275\" srcset=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/SCAControladores.jpg 415w, https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/SCAControladores-300x199.jpg 300w\" sizes=\"auto, (max-width: 415px) 100vw, 415px\" \/><\/p>\n<hr \/>\n<h2>\u2699\ufe0f SCA \u2013 Actuadores<\/h2>\n<p>Los actuadores reciben se\u00f1ales de activaci\u00f3n o desactivaci\u00f3n desde los controladores.<\/p>\n<p>Sin embargo, <span style=\"color: #008000;\"><strong>recibir una se\u00f1al no significa necesariamente que el actuador se active o desactive<\/strong><\/span>.<br \/>\nSu comportamiento depende de:<\/p>\n<ul>\n<li><span style=\"color: #99cc00;\">El tipo de actuador<\/span><\/li>\n<li><span style=\"color: #99cc00;\">Sus par\u00e1metros internos<\/span><\/li>\n<\/ul>\n<p>La duraci\u00f3n de un actuador activo var\u00eda:<\/p>\n<ul>\n<li><span style=\"color: #99cc00;\">Algunos se desactivan en un solo frame<\/span><\/li>\n<li><span style=\"color: #99cc00;\">Otros esperan una se\u00f1al de desactivaci\u00f3n<\/span><\/li>\n<li><span style=\"color: #99cc00;\">Otros permanecen activos hasta terminar su acci\u00f3n, ignorando la desactivaci\u00f3n<\/span><\/li>\n<\/ul>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-806\" src=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/SCAactuadores.jpg\" alt=\"\" width=\"538\" height=\"273\" srcset=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/SCAactuadores.jpg 538w, https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/SCAactuadores-300x152.jpg 300w\" sizes=\"auto, (max-width: 538px) 100vw, 538px\" \/><\/p>\n<hr \/>\n<h2>\ud83d\udc0d Python dentro del sistema SCA<\/h2>\n<p>El sistema SCA es un <strong>sistema de eventos muy eficiente<\/strong>, ya que separa:<\/p>\n<ul>\n<li><span style=\"color: #99cc00;\">Los eventos<\/span><\/li>\n<li><span style=\"color: #99cc00;\">De las tareas resultantes<\/span><\/li>\n<\/ul>\n<p>Esto permite ejecutar tareas costosas <span style=\"color: #008000;\"><strong>solo cuando es necesario<\/strong><\/span>.<\/p>\n<p>La interfaz gr\u00e1fica de Blender facilita mucho la configuraci\u00f3n de la l\u00f3gica, pero por su naturaleza:<\/p>\n<ul>\n<li><span style=\"color: #99cc00;\">Est\u00e1 limitada a estados <strong>True \/ False<\/strong><\/span><\/li>\n<li><span style=\"color: #99cc00;\">Y a se\u00f1ales de <strong>Activaci\u00f3n \/ Desactivaci\u00f3n<\/strong><\/span><\/li>\n<\/ul>\n<p>Para mayor flexibilidad, se puede usar <span style=\"color: #008000;\"><strong>Python como Logic Brick<\/strong><\/span>, disponible \u00fanicamente como <span style=\"color: #008000;\"><strong>controlador<\/strong><\/span>.<\/p>\n<p>Con esto puedes:<\/p>\n<ul>\n<li><span style=\"color: #99cc00;\">Crear controladores personalizados<\/span><\/li>\n<li><span style=\"color: #99cc00;\">Ejecutar tareas que normalmente har\u00edan los actuadores<\/span><\/li>\n<li><span style=\"color: #99cc00;\">Cambiar el estado actual del juego<\/span><\/li>\n<\/ul>\n<p>\u26a0\ufe0f Importante:<br \/>\nEl c\u00f3digo Python se ejecuta <strong>antes<\/strong> de que los actuadores corran, ya que los controladores se ejecutan primero dentro del Scene Loop.<\/p>\n<hr \/>\n<h2>\u23f3 Nota importante sobre el procesamiento<\/h2>\n<p>Algunos cambios no se aplican inmediatamente, por ejemplo:<\/p>\n<ul>\n<li>Eliminar objetos<\/li>\n<li>Cambiar de escena<\/li>\n<\/ul>\n<p>Estos cambios se colocan en una <strong>cola<\/strong> y se procesan m\u00e1s tarde, lo cual puede causar confusi\u00f3n si no se conoce este comportamiento.<\/p>\n<hr \/>\n<h2>\ud83d\ude80 Rendimiento y buenas pr\u00e1cticas<\/h2>\n<p>\u2714\ufe0f<span style=\"color: #99cc00;\"> El c\u00f3digo Python debe ejecutarse <strong>lo m\u00e1s r\u00e1pido posible<\/strong><\/span><br \/>\n<span style=\"color: #99cc00;\">\u274c C\u00f3digo largo provoca lag<\/span><br \/>\n<span style=\"color: #99cc00;\">\u274c Bucles infinitos congelan el juego<\/span><\/p>\n<p>Es mejor <strong>no ejecutar un controlador<\/strong>, que ejecutar uno que no hace nada.<\/p>\n<p>\u26a0\ufe0f El controlador Python es el m\u00e1s pesado en t\u00e9rminos de rendimiento.<br \/>\n\u00dasalo solo cuando sea necesario.<\/p>\n<p>Los <strong>Logic Bricks suelen ser m\u00e1s r\u00e1pidos que Python<\/strong>, por lo que <strong>no es recomendable recrear l\u00f3gica existente en Python<\/strong> (como un AND o un Motion Actuator).<\/p>\n<p>Python resulta eficiente cuando:<\/p>\n<ul>\n<li><span style=\"color: #99cc00;\">Un solo script reemplaza m\u00faltiples Logic Bricks<\/span><\/li>\n<li><span style=\"color: #99cc00;\">Se validan entradas complejas<\/span><\/li>\n<li><span style=\"color: #99cc00;\">Se realizan acciones agrupadas en un solo paso<\/span><\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83e\udde0 Resumen visual<\/h2>\n<p>Finalmente, ambos loops (Game Loop y Scene Loop) pueden representarse en un solo esquema.<\/p>\n<p>\ud83d\udd39 <span style=\"color: #008000;\">Los shaders <strong>no influyen<\/strong> en la l\u00f3gica ni en las f\u00edsicas<\/span><br \/>\n<span style=\"color: #008000;\">\ud83d\udd39 La l\u00f3gica <strong>s\u00ed influye<\/strong> en los shaders<\/span><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-807\" src=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/complete_gameloop.jpg\" alt=\"\" width=\"625\" height=\"462\" srcset=\"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/complete_gameloop.jpg 625w, https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/complete_gameloop-300x222.jpg 300w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/p>\n<hr \/>\n<h2>\ud83c\udfaf Conclusi\u00f3n<\/h2>\n<p>Ahora ya sabes <span style=\"color: #008000;\"><strong>c\u00f3mo se ejecuta el Game Loop en el BGE<\/strong><\/span> y qu\u00e9 ocurre en cada etapa.<br \/>\nEsto deber\u00eda ayudarte a entender <span style=\"color: #008000;\"><strong>qu\u00e9 sucede y cu\u00e1ndo sucede<\/strong><\/span> dentro de tu juego.<\/p>\n<p>El camino hacia un buen juego es largo, y espero que esta informaci\u00f3n te ayude a evitar obst\u00e1culos innecesarios en el proceso \ud83d\udea7\u27a1\ufe0f\ud83c\udfae.<\/p>\n<p>\u00a1Mucho \u00e9xito!<\/p>\n<hr \/>\n<h2>\u270d\ufe0f Cr\u00e9ditos<\/h2>\n<p>Autor: <strong>Monster<\/strong><br \/>\nPublicado en: <strong><a href=\"https:\/\/blenderartists.org\/t\/prof-monsters-bge-guide-to-the-gameloop\/510177\" target=\"_blank\" rel=\"noopener\">www.blenderartists.org<\/a><\/strong><\/p>\n<p><span style=\"color: #808080;\"><em>Traducci\u00f3n y adaptaci\u00f3n al espa\u00f1ol con fines educativos y de divulgaci\u00f3n.<\/em><\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83c\udfaf Objetivo del tutorial El objetivo de este tutorial es explicarte c\u00f3mo funciona el game loop en Range y por qu\u00e9 es fundamental para entender el comportamiento de tus proyectos en tiempo real. A lo largo del contenido, aprender\u00e1s c\u00f3mo se ejecutan los procesos internos en cada frame, c\u00f3mo interact\u00faan los bloques de l\u00f3gica dentro [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1080,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[136],"tags":[155],"class_list":["post-795","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-basics"],"jetpack_featured_media_url":"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/gameLoop2.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/posts\/795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=795"}],"version-history":[{"count":10,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/posts\/795\/revisions"}],"predecessor-version":[{"id":1081,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/posts\/795\/revisions\/1081"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/media\/1080"}],"wp:attachment":[{"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}