After learning more about the origins of Flappy Adventure and Juanmv94’s connection with the PlayStation scene in the first part of the interview, it is now time to dive into the technical side of the projects.
In this second part, we discuss the development process behind Flappy Adventure X and Flappy Adventure 3, tools and engines, the challenges of programming for PS1 hardware, level design, and the current state of the PS1 homebrew scene.
From collision systems and 3D rendering to memory limitations and low-level programming, this part of the interview offers a much deeper look into what it actually takes to develop modern homebrew games for the original PlayStation.
Part 2 - Inside the Technical Side of Flappy Adventure
- I understand that FADVX was your first PS1 project. Before that game, had you already experimented with the PS1 or did you jump straight into developing FADVX? What was the first thing you managed to get working in the game?
Before starting Flappy Adventure X, I first had to learn the basics of PS1 programming, so I created several very small demos (3D rendering, video playback, XA music and samples, memory card support, analog controls, etc.), although nothing particularly notable from a gameplay perspective.The first thing I got working in FADVX was rendering the level layout (without dynamic objects yet), along with the basic jumping mechanics and floor collision. Later I added scrolling backgrounds, wall collision, and the flap mechanic (jumping with forward movement). After that came coins, camera controls, and different terrain types, including ice. Sound, CD support, dynamic objects, and the rest came much later.
- What tools did you use? SDKs? Did you create any software to help with development?
I used SONY’s official C compiler: PSYQ, as well as other official tools such as TIM Tool, Movie Converter and VAG Editor. I also created my own tool to convert 3D models made in SketchUp into the .FEO and .FEW formats used by the Flappy Engine 3 engine.For Flappy Adventure X I also developed a level editor. For Flappy Adventure 3, it was no longer necessary.
- Which level is your favourite or the one you enjoyed creating the most (FADV3)?
The Feria de Albacete level, because it represents the area where I come from very well, and people from my region are always amazed to see something so familiar running on a PS1.
- And in FADVX?
This time, although I also made a time-trial level based on the Albacete fair that I really liked, I would choose the low-gravity level. Playing it requires calculating every jump carefully so you don’t overshoot or fall short, and that’s exactly what made the game fun without becoming excessively difficult.
- FADVX is a very difficult game. What criteria did you follow when designing the levels? Or in other words, what made you feel that a section was well designed?
For me, a level being difficult and/or forcing you to think was synonymous with good design. I didn’t want to make an easy and boring game. And maybe I went a little too far…
- What was the most difficult thing to program? Were there any bugs that were especially hard to fix?
The 3D engine and the collision system were by far the hardest parts, because I couldn’t find any decent examples for either of them and had to build everything completely from scratch.I needed a 3D engine capable of handling lighting, fog effects, and dividing levels into chunks, since the PS1 obviously cannot render an entire scenario at once.
For the collision system, I had to revisit mathematics books and study vectors, planes, and related concepts, while also researching how to take advantage of the PlayStation’s GTE mathematical co-processor to apply some of these calculations.
The thing that cost me the most effort was achieving decent performance with my new engine, Flappy Engine 3. While commercial PS1 games were often heavily optimised in assembly language to fully exploit the hardware, I wanted to keep the engine entirely written in C without making development excessively complicated.
- Was there any mechanic that initially seemed like a good idea but that you eventually had to remove during development?
Not really. The mechanics were already very clear from the beginning and were meant to be a continuation of Flappy Adventure 1. At one point I considered giving Flappy some sort of “attack,” but I never actually developed the idea.
- Artistically, the game looks very clean and attractive. Do you think it could be improved visually without sacrificing performance, or do you think this is close to the console’s limit?
My original idea for Flappy Adventure 3 was a 3D PC game with cel shading and a fun, cartoon-like visual style.
When I decided to move development to the PS1, I discarded the cel shading idea but kept the bright colours and minimal texture approach. Adding more textures or a wider colour variety would not really have affected performance.
Polygon count, however, has a major impact. Although AAA PS1 games such as Spyro pushed the hardware much further thanks to heavy low-level optimisation, I did not want to go that far.
- The minigames featured in some levels are really fun. I was especially surprised by the Tetris-style one. Which of them (Arkanoid, Tetris, or Space Invaders) was the hardest to create? Was there any other minigame idea you wanted to include?
If I remember correctly, the Space Invaders one had the most complex logic of the three. Fortunately I didn’t leave behind any discarded ideas and I managed to include every minigame I had planned, along with the rest of the puzzles featured throughout the levels.
- What was the biggest hardware limitation during development?
CPU speed is a major limitation when trying to maintain a stable framerate that never drops below 30 FPS.
The PS1’s 2MB of RAM are also very restrictive. Having more memory would have allowed me to create larger scenarios and optimise the chunk system much further, which would have resulted in better performance overall.
- What aspect of the project do you think people underestimate the most regarding its difficulty?
Creating a game for PS1 is much more difficult than creating one in engines such as Unity.You work in low-level C, you need to understand the PS1 hardware and the library functions, and if necessary, you must also create your own 3D engine and collision systems, things that modern engines already provide by default.
- If you could remake FADVX today with your current experience, what would you change?
Probably the visuals. I would design the level layouts as proper 3D models with depth and detail, where every area of the stage, including the ground and obstacles, looked visually distinct instead of relying on simple square blocks with identical appearances (something more similar to the PS1 Tarzan game), even if behind the scenes I still used the same editor for floor and wall collision.
- Do you plan to create more games in this saga or different projects for PS1?
I always considered Flappy Adventure 3 to be the last game I would develop, mainly because I’m now over 30 years old and should probably focus on other aspects of life.
However, programming is something I genuinely enjoy, so I cannot say with certainty that this decision is definitive.
- Which current PS1 homebrew developer or project impresses you the most?
I have also been very impressed by Elias Daler’s work on the PS1 projects he has been developing using his own custom engine.
- What advice would you give to someone interested in developing for PS1?
Have programming experience first, and if possible, use an already existing engine such as SplashEdit, although I personally have not used it.
- Is there anything else you would like to share with the community?
Flappy Adventure 3 and Flappy Adventure X are completely free to download.
You can also follow Flappy on Instagram:
https://www.instagram.com/fadv_ps1
I also run a technology blog:
https://tragicomedy-hellin
.blogspot.com/
We would like to give a huge thank you to Juanmv94 for taking the time to share his experiences and insights throughout this interview series.
It has been a real pleasure to explore the origins of the Flappy Adventure series, his connection with the PlayStation, and the creative journey behind these PS1 homebrew projects. With this second part, we conclude the interview. We hope you’ve enjoyed it and found it as interesting as we did.
We would also like to sincerely thank all our readers for following the FlappyWeek and supporting the event.
Finally, a special thanks once again to Juan for his time, openness, and contribution to the community.
Después de conocer más sobre los orígenes de Flappy Adventure y la conexión de Juanmv94 con la escena de PlayStation en la primera parte de la entrevista, ahora es el momento de profundizar en el lado técnico de los proyectos.
En esta segunda parte, hablamos del proceso de desarrollo detrás de Flappy Adventure X y Flappy Adventure 3, las herramientas y motores utilizados, los desafíos de programar para hardware de PS1, el diseño de niveles y el estado actual de la escena homebrew de PS1.
Desde sistemas de colisión y renderizado 3D hasta limitaciones de memoria y programación de bajo nivel, esta parte de la entrevista ofrece una visión mucho más profunda de lo que realmente implica desarrollar juegos homebrew modernos para la PlayStation original.
Parte 2 - Dentro del lado técnico de Flappy Adventure
- Entiendo que FADVX fue tu primer proyecto en PS1. Antes de ese juego, ¿ya habías experimentado con la PS1 o empezaste directamente desarrollando FADVX? ¿Qué fue lo primero que lograste hacer funcionar en el juego?
Antes de empezar a desarrollar Flappy Adventure X tuve que empezar aprendiendo las bases de programación en PS1, por lo que me hice algunas pequeñas demos muy simples (renderizado 3D, reproduccion de video, reproducción de samples y música XA, memory card, controles analógicos, ...) pero nada destacable desde el punto de vista "jugable".Lo primero que hice funcionar en FADVX fue renderizar el layout de nivel (sin objetos dinámicos aun) y las mecánicas básicas de salto, y colisión con el suelo. Posteriormente añadí los backgrounds scrolleables, colision con paredes, y mecanica de flap (salto con avance). Más adelante añadí las monedas, la posibilidad de subir y bajar la cámara, y los distintos tipos de terreno, incluyendo el hielo. El sonido, soporte para CD, objetos dinamicos,... vendría todo más adelante.
- ¿Qué herramientas utilizaste? ¿SDK? ¿Llegaste a hacer software propio para ayudarte en el desarrollo?
Utilicé el compilador oficial de SONY: PSYQ Así como otras herramientas oficiales como TIM Tool, Movie Converter y VAG Editor,... Cree mi propia herramienta para transformar modelos 3D creados en SketchUp al formato del motor Flappy Engine 3 .FEO y .FEW.Para Flappy Adventure X también hice un editor de niveles. Para Flappy Adventure 3 no me hizo falta.
- ¿Cuál es tu nivel favorito o el que más has disfrutado hacer en FADV3?
El nivel de la Feria de Albacete, ya que es muy representativo de la zona de donde vengo, y la gente de mi zona flipa al verlo funcionar en una PS1.
- ¿Y en FADVX?
En esta ocasión, aunque también hice un nivel contrarreloj basado en la feria de Albacete que me gustó mucho, me quedo con el nivel de gravedad baja, ya que jugarlo supone calcular cada salto para no pasarte o quedarte corto, y eso es justamente lo que hacía divertido el juego y sin llegar a ser demasiado difícil.
- La dificultad del FAX es alta. ¿Qué criterios utilizastes para diseñar los niveles? O dicho de otra forma, ¿Qué hacía que consideraras que una sección estaba bien hecha?
Para mi que un nivel fuese dificil y/o te hiciera pensar era sinónimo de que el nivel estaba bien diseñado. No quería un juego fácil y aburrido. Y puede que me pasase un poco...
- ¿Qué fue lo más difícil de programar? ¿Hubo bugs que te costaron solucionar?
El motor 3D y la colisión, puesto que no encontré ejemplos decentes para estas dos cosas y tuve que hacerlo todo desde 0. Yo necesitaba un motor 3D que manejase bien la iluminación, el efecto niebla, y dividiera los niveles en "chunks" ya que obviamente la PS1 no tiene capacidad para renderizar todo el escenario completo a la vez.
Para la colisión tuve que sacar los libros de matemáticas y documentarme sobre vectores, planos,... e investigar como podía aprovechar el co-procesador matemático GTE de la PlayStation para aplicar algunas de estas formulas.
Lo que más me costó es conseguir que mi nuevo motor "Flappy Engine 3" tuviera una performance decente, puesto que mientras los juegos triple A de PS1 suelen estar optimizados a nivel de ensamblador para exprimir al máximo la consola, yo no quería complicarme tanto y quería tenerlo puramente en C.
- ¿Hubo alguna mecánica que inicialmente parecía buena idea pero tuviste que eliminar durante el desarrollo?
Realmente no, las mecánicas ya estaban claras desde el principio e iban a ser una copia de Flappy Adventure 1. Si que me plantee en alguna ocasión dotar a Flappy de algun "ataque" pero nunca desarrollé la idea.
- A nivel artístico se ve muy limpio y atractivo. ¿Crees que se podría mejorar visualmente sin perder rendimiento o crees que es el límite de la consola?
Mi idea original de Flappy Adventure 3 era de un juego de PC en 3D con Cel Shading y aspecto divertido y caricaturesco. Cuando opté por desarrollarlo para PS1, descarté la idea del Cel Shading pero mantuve la idea de colores vivos y poquitas texturas. Haber añadido más texturas y una variedad mayor de colores no habría afectado para nada al performance.
La cantidad de polígonos no obstante, si afecta y bastante, y es que aunque juegos triple A como Spyro exprimen mucho más las capacidades técnicas de la consola al estar optimizados incluso a nivel de ensamblador, yo no quería llegar a tanto.
- Los minijuegos que hay en algunos niveles son muy divertidos. Me sorprendió muchísimo el que es tipo Tetris. ¿Cuál de estos (el Arkanoid, Tetris o Space Invaders) es el que más te costó hacer? ¿Tenías alguno en mente que te hubiera gustado hacer?
Si no recuerdo mal, el de Space-Invaders fue el que tenía la lógica mas compleja de los 3. Por suerte no me deje ninguna idea descartada e hice todos los minijuegos que tenía en mente, aparte del resto de puzzles de los demás niveles.
- ¿Cuál fue la mayor limitación por hardware a la hora de hacer el proyecto?
La velocidad de la CPU limita bastante a la hora de optimizar el juego para que funcione a un framerate estable y no baje nunca de 30fps.
Las 2MB de RAM también van un poquito justas, y haber dispuesto de más memoria me habría permitido crear escenarios mucho más grandes y optimizar los chunks del escenario, lo que habría supuesto un mayor rendimiento.
- ¿Qué aspecto del proyecto crees que la gente pasa por alto o no valora tanto en relación a la dificultad de implementar?
Crear un juego para PS1 es mucho más complejo que crear un juego con Unity, por ejemplo. Se programa en C a bajo nivel, tienes que conocer el hardware de la PS1, las funciones de las librerías, y en caso de necesitarlo tienes que crear el motor 3D y de colisiones que otros SDK como Unity ya te dan creado.
- ¿Tienes pensado hacer algún título más de esta saga u otro diferente para la PS1?
Siempre tuve en mente que FADV3 sería el último juego que desarrollaría, puesto que ya pasé de los 30 años y debo centrarme en otros aspectos de la vida. Pero programar es algo que me gusta y no puedo asegurar que sea una decisión definitiva.
- ¿Qué desarrollador o proyecto homebrew actual para PS1 te impresiona más?
El que más me ha impresionado de los que visto es NATP de GoldenAgeTurbo, aunque apenas he encontrado información sobre él y no se en que estado estará su desarrollo actualmente.También me ha impresionado mucho el trabajo de Elias Daler en dos juegos en los que ha estado trabajando para PS1 tras crearse él también su propio motor.
- ¿Qué consejo darías a alguien que quiere empezar a desarrollar para PS1?
Tener experiencia programando, y si fuera posible utilizar algún motor ya existente (como SplashEdit, aunque no lo he probado).
- ¿Hay algo más que te gustaría compartir con la comunidad?
Flappy Adventure 3 y Flappy Adventure X son gratis y de libre descarga.
Podéis seguir a Flappy en Instagram:
https://www.instagram.com/fadv_ps1
También tengo un blog de artículos de tecnología :
https://tragicomedy-hellin.blogspot.com/
Nos gustaría dar un enorme agradecimiento a Juanmv94 por dedicar su tiempo a compartir sus experiencias y conocimientos a lo largo de esta serie de entrevistas.
Ha sido un verdadero placer explorar los orígenes de la saga Flappy Adventure, su conexión con PlayStation y el recorrido creativo detrás de estos proyectos homebrew de PS1. Con esta segunda parte, damos por concluida la entrevista. Esperamos que la hayáis disfrutado y que os haya resultado tan interesante como a nosotros.
También queremos agradecer sinceramente a todos nuestros lectores por seguir FlappyWeek y apoyar el evento.
Por último, un agradecimiento especial una vez más a Juan por su tiempo, su cercanía y su contribución a la comunidad.