logo principalgaliviart

Videoxogos artesanais

bandeira de España
bandeira de Reino Unido
bandeira de Galicia

Videoxogos feitos combinando HTML, CSS e JS con ilustracións propias. 0% IA

separador sección
lápis
pluma

GaliViarT

Ola! O meu nome é Juan, ou Gali, dependendo de a quen lle preguntes. Esta web na que te atopas foi creada para almacenar e permitir a descarga dos meus videoxogos. Son xogos desenvolvidos por min (ou, quen sabe, en colaboración con outros nun futuro), empregando os códigos habituais na creación web (HTML, CSS e JS) para o seu funcionamento e debuxando un a un os seus elementos visuais. O como e o porqué me embarquei nesta laboriosa e peculiar tarefa, explícocho a continuación.

Debido á miña formación e ás miñas experiencias vitais, ata xaneiro de 2025 as miñas habilidades e coñecementos de informática non superaban a media da poboación xeral. Tal vez destacaba un pouco no manexo de Excel e nalgún proxecto tolo feito con Windows Movie Maker nun pasado bastante remoto. Nese mes, comecei un curso de formación en confección de páxinas web. Principalmente, foi por pasar o tempo, pois non tiña moi claro que me fose servir para algo útil.


No curso descubrín o que era o código HTML, empregado para crear o esqueleto dunha páxina web, e pareceume moi sinxelo e intuitivo. Despois chegou o código CSS, para manipular o aspecto visual. E con el, as animacións. Adorei as animacións. Pasei horas facendo todo tipo de animacións, cada unha máis tola ca anterior. Mesmo tiven a idea de crear unha páxina web onde colgar "animacións adaptativas" que, con só copiar o código e cambiar as imaxes que se animaban, puidesen servir para calquera tipo de proxecto e dispositivo.


Pero esas ideas víronse eclipsadas cando aprendemos JavaScript, o código que permite darlle interactividade e maior funcionalidade ás webs. Tardei un pouco máis en asimilalo, pero en canto puiden facer que, premendo un botón, cambiasen as propiedades dun elemento —a súa posición dentro da web, neste caso—, xurdiume unha pregunta na cabeza: "Combinando HTML, CSS e JS, poderase crear un videoxogo funcional?"

Obviamente, había un camiño doado para resolver esa pregunta: buscar en Google. Pero decidín non facelo e púxenme o reto persoal de resolver o enigma eu só, o que me serviría como unha actividade moi didáctica (e, obviamente, sen usar Intelixencia Artificial, para ter que esforzar máis o cerebro). Supoño que alguén o faría antes, pois a estas alturas da existencia inventar algo é moi complicado, pero na data de publicación desta páxina aínda non indaguei nada sobre o asunto, co fin de manter as miñas ideas e os próximos proxectos que teño en mente sen contaminar e intentar acadar algo orixinal.


Os comezos foron duros, pero nun par de semanas creei e asimilei o que eu denomino “bucles controlados” e a manipulación de clases dos elementos. Os "bucles controlados" consisten en que, cada vez que se preme unha tecla, execútase unha función que, por unha banda, incrementa ou diminúe o valor dunha variable e, pola outra, realiza un cambio na propiedade dalgún elemento que dependerá do valor actual desa variable. Polo tanto, dependendo do número de veces que se premese a tecla, o resultado da función variará. Isto permite, por exemplo, que se o valor dunha variable é dous, o avance na posición que lle damos a un elemento sexa do 20%, se é tres, do 30%, e así sucesivamente.


código de bucle controlado

Por outra banda, manipulando as clases (que serían algo así como etiquetas ou nomes que lle podemos dar a un elemento), podemos indicar que un elemento está nunha determinada posición da pantalla. Deste xeito, pode interactuar con outro elemento a través dunha función cuxo criterio será que ambos os dous posúan unha certa clase nun momento dado. Así, cos "bucles controlados" e coa manipulación das clases dos diferentes elementos, o xogo comezou a funcionar. Puiden superar todos os retos que me propuxen ao longo do desenvolvemento de todos os niveis, sen usar máis que os métodos e propiedades básicas de JS, como style, classList ou setTimeout. Se a alguén lle interesa máis este punto, seguro que sabe como indagar no código do xogo unha vez que o descargue.


Como nun principio a miña intención era que o xogo fose para dispositivos móbiles, isto limitou o tamaño da pantalla de xogo, tal e como explicarei máis polo miúdo na sección específica de Dunkxar. Para mellorar a xogabilidade en PC, asignei funcións a diferentes teclas do teclado. Por este motivo, xogar no ordenador fíxose moito máis cómodo ca en dispositivos móbiles.

Unha vez que o xogo estaba en marcha, quedaba un problema: o apartado visual. Mover cadradiños pola pantalla non ía interesar nin a min nin a ninguén. Había que darlles unha identidade a eses cadradiños, polo que debían conter imaxes. Sempre me gustou debuxar, sobre todo dinosauros e dragóns, pero hai que recoñecer que sempre o fixen de forma non moi refinada. E se falamos de debuxo dixital, aínda peor. Só usara o Paint para saír de apuros, e con resultados bastante mediocres. A continuación, adxunto a imaxe do primeiro intento de protagonista para o videoxogo, a cal me fixo dar conta de que había que evolucionar neste apartado:

debuxo arcaico de Dunkxar feito con paint

Na etapa inicial de experimentación con animacións CSS usei a IA para algunha ilustración. Porén, neste proxecto non me ía servir, xa que para as animacións que tiña en mente, como a de andar do personaxe principal, a intelixencia artificial non me ía proporcionar os resultados exactos que precisaba. Ademais, xa que non tiña a intención de usar a IA para facer o código, tampouco a quixen para o aspecto visual. A excepción foron as tipografías dos logotipos. Como teño mala caligrafía a man, e aínda é peor facéndoa co rato, neses casos elaborei as palabras coa IA usando os comandos axeitados ás características que quería. Despois, debuxei e modifiquei por riba das letras nun programa de debuxo ata obter o resultado desexado.


Así que pedín consello sobre programas de debuxo que podería utilizar e comecei a practicar con Krita. Con paciencia, comecei a obter resultados máis ou menos decentes. O feito de aprender a debuxar por capas foi moi útil para mellorar o aspecto do xogo, facilitando a creación de diferentes niveis de terreo no eixo z, para a auga, os obstáculos, os sombreados ou as distintas posicións das animacións para os inimigos. Finalmente, o aspecto visual acadou un estilo propio que espero que sexa atractivo, ou que polo menos se poida entender o que quere transmitir. De momento, xa me sorprendín a min mesmo, sobre todo se se compara a ilustración que deixei máis arriba coas ilustracións da historia, que foron os últimos elementos que realicei para o xogo.


ilustración elaborada con Krita

Unha vez que o xogo estaba completo e funcional, na carpeta do proxecto había unha infinidade de elementos e arquivos. Despois de meses de traballo, gustaríame que máis xente puidese xogalo, para o cal había que transformar esa carpeta nunha aplicación. Por sorte, durante o curso de confección de páxinas web, explicáronnos como utilizar os frameworks ElectronJS e CapacitorJS para crear aplicacións para ordenador e dispositivos móbiles. Así que esta foi a metodoloxía que utilicei para empaquetar o xogo nun formato fácil de distribuír e executar (na sección de descarga do xogo inclúo as instrucións necesarias). Por desgraza, o máis probable é que nun inicio non estean dispoñibles as versións para Mac e iPhone, xa que aínda teño que estudar a metodoloxía necesaria.

Cando xa levaba feitos uns poucos niveis de Dunkxar, xa tiña claro que quería ter unha páxina web para que estivese dispoñible para calquera que o quixese xogar. Pero atrasei o comezo do seu deseño ata que o xogo estivo rematado. Despois de moito pensar no aspecto visual que quería para a páxina, decidín que a mellor idea era que lembrase o tipo de xogo que quero ir facendo e que tivese un deseño característico. Polo tanto, os elementos da web, dende o logotipo ata as etiquetas, están debuxados por min. Tamén lle engadín animacións para darlle un toque divertido.


En canto á estrutura da páxina, quixen que funcionase coma un caderno. Que cada sección fose unha páxina do mesmo, sinalizada cunha etiqueta que sobresae, como se fose un marcapáxinas nun caderno real. Para acadar este obxectivo, as seccións están superpostas no mesmo espazo e chámase a cada unha á primeira posición ao premer a súa etiqueta correspondente. Esta estrutura tamén permite que, aínda que no futuro engada máis seccións ao ir creando novos xogos, o aspecto da páxina se manteña igual, detectándose á primeira vista só a aparición de máis etiquetas.


Tamén coloquei dous botóns, un para moverse á dereita e outro á esquerda entre as seccións. Estes botóns proporcionan máis comodidade para navegar na web, ademais de dar a sensación de que a propia páxina funciona coma un videoxogo, sobre todo na versión móbil. Nela, os botóns colócanse na parte inferior da pantalla, no lugar perfecto para seren premidos por cada un dos polgares.


As seccións máis importantes da páxina serán as correspondentes a cada videoxogo, onde aparecerán as ligazóns para a súa descarga, así como datos e curiosidades sobre o seu desenvolvemento


Debido ao tempo que me levará facer un xogo novo, engadín a sección de “Proximamente”. Nela, darei detalles sobre o proxecto no que me atope traballando e en que estado se atopa.


Por último, está a sección de Contacto, onde deixarei unha ligazón para que poidas comunicarte comigo por correo electrónico para avisarme de erros nos xogos, transmitirme opinións, etc. Tamén incluirei ligazóns de interese, como Instagram ou GitHub, e outras por se alguén quere colaborar co proxecto, como Patreon ou PayPal, co fin de pagar clases de debuxo e que mellore o aspecto visual dos xogos, o mantemento da páxina e, principalmente, animarme a seguir facendo xogos e que non me gañe a preguiza.

En canto remate de crear esta páxina e a deixe dispoñible, teño pensado seguir co desenvolvemento doutro xogo que xa teño comezado. Esta vez será un xogo estilo os de naves espaciais dos anos oitenta, como o Space Invaders ou o Galaga. Xa teño listo o código que move a nave e o da secuencia de disparos, así que a cousa pinta ben. O que intentarei ir facendo será publicar avances do novo proxecto tanto na sección “Proximamente” coma nas redes sociais, ademais de ir colgando versións temperás do xogo en Patreon.


Iso si, espero que os seguintes proxectos non me leven tantos meses de desenvolvemento coma Dunkxar...

maxia do portal
marco do portal
luz verde
luz laranxa
luz azul
luz amarela
luz violeta
luz vermella
separador sección
posicion1 dunkxar
posición2 dunkxar
posicion3 dunkxar
parpadeo
pico xirarosa
lateral xirarosa
xirarosa aberta
xirarosa pechada
lume
lume
lume
xema
xema
xema
xureloide1
xureloide2
xureloide3
planta1
planta2

Preme na icona que represente o dispositivo no que queiras xogar Dunkxar (sempre que apareza como dispoñible) para comezar a descarga.

icono pcdescarga
icono androiddescarga
icono iPhonenon dispoñible
icono MACnon dispoñible

DESCARGA GRATUiTA

  • Ao descargar a versión para PC Windows, obterás un ficheiro en formato RAR. Descomprímeo no lugar que queiras. Na carpeta resultante atoparás un arquivo chamado Dunkxar.exe, que executa o xogo. Tamén se inclúe un acceso directo para colocares no escritorio. Coa xanela do xogo aberta, podes premer F11 para xogar a pantalla completa.
  • Ao descargar a versión para Android, obterás un ficheiro .apk. O máis habitual é que o dispositivo non che permita abrilo, ao non proceder da Play Store e non estar asinado. Para poder abrilo, tes que concederlle á aplicación coa que tentas abrir o .apk o permiso para "instalar aplicacións de orixe descoñecida" (lembra retiralo despois de finalizar a instalación). Unha vez feito isto, a aplicación instalarase automaticamente no dispositivo.
  • Versión para iPhone aínda non dispoñible.
  • Versión para MAC aínda non dispoñible.

A miña primeira creación, Dunkxar, é un videoxogo de aventuras con vista cenital. O obxectivo é rescatar a túa irmá das gadoupas dos temibles Dreitel. Para iso, guiarás a Dunkxar a través de 10 niveis (máis un epílogo extra) recollendo xemas, esquivando e calcinando inimigos, sobrevoando obstáculos mortais e buscando a mellor maneira de rematar cada nivel antes de que se esgote o minuto de tempo dispoñible.



Cando se me ocorreu a idea de elaborar un código que puidese funcionar como xogo, tiven que decidir que tipo de xogo quería facer, obviamente. Non tardei moito en decidirme por un xogo con vista cenital, como os Zelda orixinais e moitos outros similares, xa que me pareceu a opción máis sinxela ao ter que modificar as posicións dos elementos en catro direccións sobre un mapa estático.


Como a idea inicial era crear un xogo compatible con dispositivos móbiles, a pantalla de xogo é cadrada, dividida nunha cuadrícula de 10×10. Isto permite xogar co móbil tanto en posición normal coma apaisada. Polo tanto, os botóns e a interface do xogo deseñáronse para adaptarse a cada posición, colocándose debaixo ou nos laterais da pantalla de xogo, segundo corresponda.


ilustración onde se aprecian as diferentes posicións do xogo

O primeiro nivel foi o campo de experimentación para as mecánicas do xogo e para o seu deseño visual. Optei por que o protagonista fose unha especie de lagarto, xa que, ao usar unha vista cenital, íame ser máis sinxelo animar o movemento das patas (ao sobresaír do corpo) e dar a sensación de que camiña cando se move entre as posicións da cuadrícula. Como posteriormente fun capaz de desenvolver o código para que lanzase lume e puidese voar, engadinlle ás e pasou a ser unha especie de dragón reptante.


Unha vez establecidas as bases e as mecánicas no primeiro, o desenvolvemento de cada nivel posterior comezou co debuxo da disposición dos diferentes elementos do mapa nunha cuadrícula de 10×10. Estes elementos incluían obstáculos, caídas, xemas, o portal, os percorridos dos inimigos, etc. Así, ao ter as coordenadas da cuadrícula de cada un, a súa posterior expresión no código foi moito máis rápida e sinxela.


esquema do xogo comparado co debuxo final

Unha vez rematado o bosquexo do nivel, o seguinte paso foi debuxar o escenario en Krita. Para isto, dividindo o lenzo na mesma cuadrícula, mantivéronse perfectamente as distancias e as proporcións planeadas. Para cada escenario, elaboráronse diferentes capas de elementos. Isto permitiu crear sombras e elementos polos que o personaxe pasa por debaixo, ao colocalos nunha posición do eixe z máis alta. Unha vez debuxado o escenario, creáronse os inimigos e outros elementos dentro dun lenzo cadrado (a maioría) para poder integralos na cuadrícula de forma sinxela.


Cos elementos visuais xa rematados, cargáronse no código HTML do correspondente nivel e colocáronse na súa posición correcta. Posteriormente, engadindo animacións co código CSS, e mediante JavaScript, as funcións xa elaboradas en niveis anteriores fóronse adaptando, introducindo os novos elementos ou creando funcións novas, de ser preciso. E así, cada nivel vai quedando rematado.


Outra parte importante do desenvolvemento do xogo foi a adición de efectos sonoros. Por exemplo, o son dos pasos de Dunkxar cambia segundo o tipo de chan polo que camiñe e cesa cando está a voar. Descarguei os sons da páxina web freesound.org, tendo que adaptarme moitas veces ás opcións existentes, pero creo que obtiven un bo resultado neste apartado.


Ao ser un proxecto cunha finalidade autodidáctica, propúxenme o reto de que cada nivel achegase unha innovación para forzarme a crear código novo e, deste xeito, adquirir máis coñecementos:

  • -No primeiro nivel establecéronse as mecánicas do xogo, creando todas as funcións básicas: movemento, proxectil, recollida de elementos, caídas, obstáculos, inimigos, etc.
  • -No segundo nivel, o reto foi conseguir que o personaxe puidese somerxerse en auga. Para iso, desenvolvei o sistema de colocar diferentes capas no eixe z.
  • -No terceiro nivel, o meu obxectivo foi simplemente crear condicións atmosféricas. Conseguino engadindo unha capa superior coa animación de folerpas de neve e aplicando un filtro escuro para simular o escurecemento do ceo.
  • -No cuarto nivel coloquei moitísimos obstáculos, xa que en niveis anteriores sufrin certos problemas coa interacción cos elementos do mapa. Como reultado, levoume a entender a importancia da orde do código en JavaScript, xa que a orde incorrecta facía que o personaxe se desplazase cara atrás en vez de pararse ó moverse cara un obstáculo.
  • -No quinto nivel propúxenme facer unha batalla contra un minixefe e colocar elementos no mapa cos que houbese que interactuar para poder alongala, como botóns para abrir portas, neste caso.
  • -No sexto nivel, quixen deseñar un sistema para poder realizar máis dun ataque de lume por nivel e cambiar o sistema de movemento, o cal, ao final, tamén apliquei a todos os niveis anteriores. Orixinalmente, ao premer a tecla para mover o personaxe, este movíase instantaneamente. Co novo sistema, primeiro xira na dirección do movemento e, ao volver premer, é cando se move.
  • -No sétimo nivel, que é o mellor deseñado na miña opinión, quixen crear diferentes niveis de altura. Para iso, tiven que implementar a posibilidade de subir ao superior por un punto concreto e de poder caer dese nivel superior ao inferior. Tamén conseguín compartir espazo cun inimigo sen que che mate por estardes a diferente altura. Se fago unha secuela ou outro xogo parecido, desenvolverei o código a partir deste nivel.
  • -No oitavo nivel, o reto foi coordinar perfectamente unha animación CSS co cambio de clases dun elemento a través de JavaScript (JS). Isto fíxeno para poder crear o efecto duns pinchos que saen e volven meterse na terra e só maten ó personaxe no momento correcto.
  • -No noveno nivel, quixen crear unha maior interactividade cun elemento do mapa, xerando a ilusión de poder empurrar algo. Conseguino desencadeando, cunha acción concreta, unha animación que combina JavaScript (JS) con CSS.
  • -No nivel final, o obxectivo foi crear unha batalla con diferentes fases e algo sorprendente, tendo en conta o pouco tempo dispoñible. Creo que conseguín un resultado bastante aceptable.
  • -No epílogo, quixen ofrecer un ambiente relaxado no que se puidese pasear e interactuar con diferentes elementos. Isto permitiu desencadear dous finais de xogo diferentes.

Ao ir adquirindo novos coñecementos, tanto de programación coma artísticos, todos os niveis sufriron reescritura de código e retoques visuais. Por exemplo, non se me ocorreu poñer as sombras ata o nivel 6, polo que houbo que retocar os fondos de todos os niveis anteriores. O último retoque a nivel xeral foi ter que modificar o código de todos os niveis para que o personaxe principal e os da súa especie pestanexasen, só para darlles un aspecto máis vivo.


En realidade, nin a historia nin o obxectivo final do xogo estaban definidos cando comecei o proxecto. Inicialmente, só era un xogo no que tiñas que coller seis obxectos para abrir un portal e acceder a outro nivel. O resto funo decidindo sobre a marcha, xa que non sabía ata onde podería chegar. Espero que, aínda así, o xogo acadase certa coherencia ao final. O que si decidín ao pouco de comezar foi que o xogo tería un máximo de dez niveis, para non eternizarme co proxecto e poder comezar outros novos, que intentarei planificar mellor antes de inicialos.


O máis probable é que Dunkxar teña unha secuela (ou precuela), pero cunha pantalla de xogo máis grande. Desplazarase o fondo do mapa ao chegar aos bordos, e cada nivel terá un mínimo de catro seccións. Isto permitiría crear unha aventura moito maior. Nun principio, deseñareino só para PC para eliminar a limitación do tamaño da pantalla e, despois, se é posible, adaptareino para dispositivos móbiles.

Nesta táboa irei informando das diferentes versións do xogo que se irán lanzando, co obxectivo de resolver erros ou actualizar algún punto mellorable. Deste xeito, saberás se tes descargada a última versión.

Versión

Resumo

Data

Inicial

Primeira versión lanzada. Sen erros detectados en PC, pero con problemas de son en móvil

09/ 2025

Dunkxar versión vagancia

Versión de Dunkxar en modo vagancia, ou sexa, tes un menú despregable que permite aceder directamente a calquera dos 10 niveis sen ter que pasar polos anteriores. Inclue a versión de Windows e Android.

boton

Ilustracións

5 imaxes da historia

Paquete coas 5 imaxes que aparecen na Historia do videoxogo, con un tamaño de 800x650 px.

boton
separador seccion
bombilla
luz
martelo1
martelo2
interrogación
martelo1
martelo2
bombilla
luz

Proximamente

O xogo que teño actualmente en desenvolvemento está inspirado nos xogos de naves típicos dos anos 80. As funcionalidades básicas xa as teño programadas. As funcionalidades básicas xa as teño programadas. A pantalla ten unhas dimensións de 10x15 seccións, polo que vai ser máis ancha que alta, xa que vou tentar que a forma óptima para xogalo sexa nun dispositivo móbil en posición vertical.
A nave pódese mover a esquerda e dereita, pódense disparar 4 láseres e "matar" a un inimigo (cadrado aamrelo) ó acertarlle. Tamén hai un indicador (liña de catro cadradiños) para saber que láseres están listos para ser disparados e cal dos catro vai ser o seguinte.

Actualización decembro 2025: engadín un fondo formado por 5 ilustracións que se desprazan de maneira infinita nun ciclo no que van pasando unha tras outra e volvendo á primeira , creando a ilusión de que a nave se está a mover. Tamén creei un sistema de tres puntos de vida para a nave, morrendo tras tocar 3 veces a un inimigo ou un proxectil .
As ilustracións da captura son completamente provisionais.

captura de desenvolvemento do xogo 2
separador sección
sobre1
sobre2
corazón
arroba
hi!

Contacto/Redes

Na caixa de arriba tes unha ligazón para contactar comigo por correo electrónico e así informar de erros nos xogos ou na web, ou achegar calquera suxestión que se che ocorra.
Tamén hai ligazóns a diferentes redes sociais, onde intentarei ir informando dos avances en novos proxectos.
Por último, podes atopar o Patreon e o PayPal de Galiviart por se queres animarme a seguir facendo xogos e axudar co mantemento do sitio web. No Patreon subirei algún contido exclusivo, como ilustracións ou versións dos xogos con algunha funcionalidade extra.

moneda
frecha esquerda
frecha dereita