{"id":55,"date":"2026-10-24T21:01:49","date_gmt":"2026-10-24T21:01:49","guid":{"rendered":"https:\/\/lunaproject.mx\/sexfriend-translation\/"},"modified":"2026-10-24T21:08:12","modified_gmt":"2026-10-24T21:08:12","slug":"sexfriend-translation","status":"publish","type":"post","link":"https:\/\/lunaproject.mx\/es\/sexfriend-translation\/","title":{"rendered":"Traducir un juego cl\u00e1sico: el trabajo invisible detr\u00e1s de cada palabra"},"content":{"rendered":"<p><strong>SexFriend ya est\u00e1 traducido al espa\u00f1ol.<\/strong> Men\u00fas, sistema, ayuda e historia: todo el texto del juego est\u00e1 en espa\u00f1ol. Lo \u00fanico que nos separa del lanzamiento, previsto para el <strong>24 de noviembre de 2026<\/strong>, es adaptar el ejecutable para que funcione bien en <strong>macOS<\/strong>.<\/p>\n<blockquote>\n<p>Contenido para mayores de 18 a\u00f1os.<\/p>\n<\/blockquote>\n<h2>Donde empez\u00f3 todo<\/h2>\n<p>SexFriend tiene una historia muy bonita. No dir\u00edamos que es nuestra favorita, pero le tenemos un cari\u00f1o especial por otro motivo: junto con <strong>Princess Lover<\/strong>, fue uno de los dos juegos con los que empez\u00f3 todo para Luna Project en el mundo de la <strong>ingenier\u00eda inversa<\/strong>. Abrir sus archivos, entender c\u00f3mo piensa el motor y conseguir que dijera lo que nosotros quer\u00edamos fue el inicio de lo que hoy hacemos como estudio.<\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"661\" height=\"369\" class=\"wp-image-54\" src=\"https:\/\/lunaproject.mx\/wp-content\/uploads\/2026\/10\/sexfriend-aula.png\" alt=\"The first scene of the game: the classroom.\" srcset=\"https:\/\/lunaproject.mx\/wp-content\/uploads\/2026\/10\/sexfriend-aula.png 661w, https:\/\/lunaproject.mx\/wp-content\/uploads\/2026\/10\/sexfriend-aula-300x167.png 300w, https:\/\/lunaproject.mx\/wp-content\/uploads\/2026\/10\/sexfriend-aula-18x10.png 18w, https:\/\/lunaproject.mx\/wp-content\/uploads\/2026\/10\/sexfriend-aula-600x335.png 600w\" sizes=\"auto, (max-width: 661px) 100vw, 661px\" \/><\/figure>\n<h2>superNekoX: un motor primitivo<\/h2>\n<p>El juego est\u00e1 hecho con <strong>superNekoX<\/strong>, y sin dudas es uno de los motores m\u00e1s primitivos que hemos visto. Casi todo lo que en otros motores viene resuelto, aqu\u00ed hay que descubrirlo a mano: c\u00f3mo guarda los textos, c\u00f3mo dibuja la interfaz, c\u00f3mo encadena las escenas.<\/p>\n<p>Por eso <strong>CODEPINK<\/strong> merece reconocimiento: haber desarrollado un juego bastante &#8220;decente&#8221; sobre una plataforma as\u00ed tiene much\u00edsimo m\u00e9rito.<\/p>\n<h2>Por qu\u00e9 cada frase exigi\u00f3 investigaci\u00f3n<\/h2>\n<p>Antes de traducir una sola l\u00ednea hab\u00eda que averiguar d\u00f3nde vive el texto, qui\u00e9n lo dibuja y qu\u00e9 instrucciones lo rodean. Estos fueron los frentes que m\u00e1s condicionaron el trabajo:<\/p>\n<p><strong>01 \u00b7 Recursos cerrados.<\/strong> Escenas e interfaz est\u00e1n repartidas en archivos GPC y SNX. Parte del contenido est\u00e1 comprimido y organizado como registros, comandos y referencias a recursos. Primero hubo que reconstruirlos y seguir sus conexiones.<\/p>\n<p><strong>02 \u00b7 El juego interpreta sus propios guiones.<\/strong> Los archivos de escena no son simples documentos: contienen saltos, llamadas, esperas, men\u00fas y acciones. Tuvimos que entender c\u00f3mo se ejecutan para distinguir el texto visible de las instrucciones que deben quedar intactas.<\/p>\n<p><strong>03 \u00b7 La codificaci\u00f3n no alcanza para el espa\u00f1ol.<\/strong> El texto original usa CP932, que representa japon\u00e9s y caracteres latinos b\u00e1sicos, pero no incluye directamente la \u00e1, la \u00f1, la \u00bf ni la \u00a1. Hizo falta una estrategia de texto y fuentes Unicode compatible con el motor.<\/p>\n<p><strong>04 \u00b7 La longitud cambia el dise\u00f1o.<\/strong> Una traducci\u00f3n puede ocupar m\u00e1s espacio que el original. Las cajas de texto, los saltos de l\u00ednea, las fuentes y sus medidas deciden si el texto cabe, se mantiene alineado y no tapa botones ni ilustraciones.<\/p>\n<p><strong>05 \u00b7 No todo lo que parece texto es traducible.<\/strong> Marcas como <code>@n<\/code>, <code>@C<\/code> o <code>@B<\/code> cambian el salto de l\u00ednea, el color o la posici\u00f3n. Tambi\u00e9n hay nombres de recursos, variables y destinos de decisiones. Si se tocan como si fueran prosa, una escena se desv\u00eda o deja de dibujarse.<\/p>\n<p><strong>06 \u00b7 La cobertura real se prueba jugando.<\/strong> No basta con que el men\u00fa se vea bien: hay que comprobar clics, retornos, pantallas, p\u00e1ginas de ayuda y di\u00e1logos en secuencia, comparando siempre con el original.<\/p>\n<p>La traducci\u00f3n no se hace &#8220;a mano&#8221; sobre los archivos del juego: una capa propia traduce lo que se ve en pantalla y protege todo lo que el juego necesita para funcionar (identificadores, marcas <code>@\u2026<\/code> y la estructura de cada opci\u00f3n). As\u00ed el texto cambia, pero la l\u00f3gica de las escenas sigue siendo la original.<\/p>\n<h2>\u00bfY el ingl\u00e9s?<\/h2>\n<p>La versi\u00f3n en ingl\u00e9s llevar\u00e1 una <strong>traducci\u00f3n autom\u00e1tica (MTL)<\/strong>. No pretende ser la definitiva: la idea es dejar el terreno preparado para que los <strong>proofreaders<\/strong> puedan modificar el juego, corregir el texto y distribuir una versi\u00f3n m\u00e1s limpia.<\/p>\n<h2>Lo que falta: macOS<\/h2>\n<p>Aqu\u00ed est\u00e1 el \u00faltimo obst\u00e1culo. El juego es un <code>.exe<\/code> de Windows de hace muchos a\u00f1os, y hacerlo funcionar en Mac todav\u00eda no est\u00e1 a la altura: <strong>va muy lento y dispara el consumo de memoria RAM hasta 1 GB<\/strong>. Para un juego tan antiguo eso est\u00e1 muy mal, y no lo vamos a publicar as\u00ed.<\/p>\n<p>Estas semanas las dedicamos a optimizar la versi\u00f3n de macOS para que se juegue con fluidez y con un consumo de memoria razonable.<\/p>\n<h2>Fecha de lanzamiento<\/h2>\n<p>\ud83d\udcc5 <strong>24 de noviembre de 2026.<\/strong><\/p>\n<p>Mientras tanto, puedes seguir el avance aqu\u00ed en el blog, suscribirte a <strong>Noticias desde la luna<\/strong> para enterarte el d\u00eda del lanzamiento y, si quieres apoyar al estudio, dejar un donativo desde la <a href=\"\/es\/#donate\">portada<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>SexFriend ya est\u00e1 traducido al espa\u00f1ol. Te contamos qu\u00e9 hubo detr\u00e1s, qu\u00e9 pasar\u00e1 con el ingl\u00e9s y lo que falta antes del lanzamiento del 24 de noviembre: que el juego corra bien en macOS.<\/p>","protected":false},"author":2,"featured_media":57,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":3,"footnotes":""},"categories":[20],"tags":[26,37,35,36,23],"class_list":["post-55","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devlog","tag-macos","tag-reverse-engineering","tag-sexfriend","tag-translation","tag-visual-novel"],"_links":{"self":[{"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/posts\/55","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/comments?post=55"}],"version-history":[{"count":1,"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/posts\/55\/revisions"}],"predecessor-version":[{"id":56,"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/posts\/55\/revisions\/56"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/media\/57"}],"wp:attachment":[{"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/media?parent=55"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/categories?post=55"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lunaproject.mx\/es\/wp-json\/wp\/v2\/tags?post=55"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}