Atari Lynx is experiencing an influx of new games 29 years after it's initial release. Of these one that really stands out is Wyvern Tales, a Japanese role playing game in the style of the very familiar Final Fantasy series. This is a first for the Lynx in this genre and if you haven't heard about it, go now and read the unboxing article and the game review.
I've been in contact with Jasper van Turnhout aka Ninjabba, the creator of the game and he graciously has agreed to talk about the development challenges, future plans and to answer other retro gaming related questions. So without further adieu lets see what Jasper had to say!
Jasper forewarned that he may have gone on too long in some answers but I don't think so. Considering this has been a project seven years in the making, there is a great deal to talk about!
AA> Hello Jasper, thanks for taking your time to talk about Wyvern Tales. This game has now been released for several months and seems to be gaining in popularity, how much demand are you seeing?
JT> Plenty of demand it seems. I'm quite happy to find out that I'm not the only one that was waiting to play this type of game on the Lynx. First batch is sold out and I'll probably need another 3 or 4 to meet the current demand.
AA> What are your future plans for WT?
JT> After I've worked through my buyer/waiting list I want to open a portal on my website to sell the surplus, until then I'm selling it directly by reaching out to people. If something severe [like a game breaking bug] pops up I'll try to have it fixed, but I'm extremely limited in what I can still add/change in the current codebase due to the fact that it all needs to fit in 256KB. I only have a few bytes left to work with. Maybe some alternating box art or a special edition would be fun to create if people want to see it happen. I'm a big fan of PS1 releases like Lunar that made crazy special editions.
AA> How has the feedback been on WT? How is the Atari Lynx community receiving the game from your perspective?
JT> I think the feedback so far is mainly positive. Its nice to read about how people are discovering the game and genuinly enjoying it, I think that's the best I could wish for. Of course I see some comments on obvious flaws in the design (eg. the way music gets interrupted when talking to NPCs), but these kind of flaws were mainly introduced due to growing complexity and limitations in my codebase. Memory management on the Lynx is involved and can get tricky.
AA> You've been working on this game since 2012, what were the main challenges that you had to overcome?
JT> Phew... Where to start... I actually started working on this game in 2010 under the name DragonSaga, but I forgot to register a domain and interestingly enough a few months later there was an MMO released called Dragon Saga, so I had to change the name. This time I made sure to get the domain name before any announcement.
The memory management specifically was something I had to learn about and work with. This learning curve resulted in refactoring the codebase a dozen times because it was unclear to me how the memory layout is best optimized for the game I made, but back then I was still having fun doing this.
I've severly underestimated the part of the music to the point I was about to give up and release a game without any sound because I couldn't get it all to fit together. Eventually I got some help from DerLuchs who helped me with the music creation, and Sage who helped me with the sound driver that was needed. After yet another round of rewriting the code (read: few months of work) to make it all fit in memory I had music integrated after trying for 2 years. These were probably my darkest hours in developer hell, especially because its something I couldn't have managed by myself and until I got the help, the whole project was in a very unclear state.
The last big part was balancing and testing the gameplay. I had help from people playtesting the game for me next to myself playing the game over and over.
AA> What about some of your breakthroughs? Do you want to mention any special contributions?
JT> I've started working using an existing template, designed by Karri, and learned how to build puzzle games with that (You can find these examples and some code linked from my profile on AtariAge - http://atariage.com/forums/user/22942-ninjabba/). Getting familiar with the pieces gave me confidence to build a bigger project. 108Stars was very helpful during the initial days by providing some pixel art and overall feedback. I was also lucky that DerLuchs initiated a conversation on how he could provide me with music around the time I wanted to give up. I've tried this myself over the years and had to conclude I really don't have those skills, but he could provide me with quality within a few days! With help from Sage I finally managed to squeeze a sound driver and the music into the codebase.
AA> Were you always a fan of the Atari Lynx? How extensive is your collection and what is your favourite game (beside WT)?
JT> The Lynx was my first console that I paid for myself as a kid by saving up money for a year. After it got broken twice during my childhood, I decided to buy it second hand when I was at the university because I wanted to replay Crystal Mines, my favorite game on the Lynx and still an excellent puzzler/action game to this day.
My current collection is about 2 Lynxes, 36 official releases with a few doubles to be able to play over ComLynx (Warbirds and Xenophobe are amazing for this!) and some of the more rare games like Desert Strike, Eye of the Beholder, Hot Dog and an alternate version of Super Astroids/Missile Command.
AA> How did you get into game development? What were the main reasons and drivers for you to want to do it?
JT> When I was a kid I tried making some text-based adventures in QBASIC. I always wanted to give game development a shot, but I realized during my studies that doing this professionally (talking about pre-smartphone/Unity era), it would require a lot of team effort to create something nice on modern machines.
After releasing some puzzle games on the AtariAge forum and getting nice feedback on this, I tried to implement parts of the current engine and had some pleasing results of an overworld with a character walking around and very basic random battles within a month of work. This encouraged me to continue working on something bigger and inspired me to try a full RPG. Since I'm a big fan of the retro JRPG games, I wanted to see this gap filled in the library of the Lynx.
AA> How/What language did you code WT in?
JT> I've used the CC65 compiler which allows me to use C directly. Some features that were made by others were already incorporated into the template from Karri. Some features required assembler, but I've only managed to include and re-use what was already out there. I'm OK with C, but if the whole game had to be written in assembler, it wouldn't have happened.
AA> Where there any specific bottlenecks or challenges in having chosen this language that you needed to overcome?
JT> Like I mentioned earlier, the music part turned out to be the worst. Initially I thought I could use a module called abcmusic that was within the template, but it lacks tools to create songs. I've tried to implement some music using this module, but since I have no musical background it never got beyond frantic sounds that sounded awful to listen to. Luckily there is Lynx Chipper which is a tracker tool in which you can create beautiful chiptunes if you know what you're doing. Initially the tool wouldn't export code specifically for CC65, a feature that Sage created after I asked him for help. I still couldn't create anything worthy after the help of Sage and it was DerLuchs who approached me and offered his help.
The last big part of the puzzle was to balance the gameplay. Its not trivial to get nice random numbers out of a Lynx and you'd notice a bad randomizer within a few minutes of playing the game. Also key to a succesful RPG is the gradual increase in difficulty, something that I could only figure out by playing and replaying the game over and over. Its still not perfect, but I'm personally quite happy how the balancing played out.
AA> There are a lot of assets required for a game like art, sounds and music. What other tools did you make use of during development to incorporate these assets into WT?
JT> My entire toolkchain was CC65 for coding, Gimp for the pixel art, a tool called sprpck for converting bitmaps into Lynx encoded sprite assets that has been developed by people from the early days of the Lynx scene (Matthias Domin, Bastian Schick) and Chipper, the tracker tool specifically made for the Lynx.
AA> What about your development environment, your workstation, prototype carts, what do you use?
JT> Development started to get more exciting after I received a flashcart made by Lynxman which allowed me to test all components of the game on actual hardware, including the save feature. I've been a lot on the move while developing, so I can't say I have a specific environment. During the development time I had several laptops, some of them got stolen, and 2 different desktops.
AA> How did you go about testing the game?
JT> Testing took forever.. I've had some friends and people on AtariAge helping me out and giving me feedback, but it took years to wrap it up. It didn't help that I managed to squeeze in features during the testing phase, for example initially none of the enemies could use magic, so it happened a few times that after implementing an exciting new feature all testing had to be done again. There were some protos burned by Karri and distributed to a few people. The images on my website still show this prototype. Functional testing started all the way back in 2014 (think of testing movement, menus, the general stuff) and the balance testing started somewhere in 2016 and ended in November 2017.
AA> You must have some screenshots of early prototypes, can you share any of these?
JT> Early stage work was posted under the name DragonSaga which you can find on AtariAge as well. A lot was stolen during a burglary back in 2012, including laptops that had demos and sprite art, so I'm afraid things were lost during the journey. You can find the thread here: http://atariage.com/forums/topic/171991-dragonsaga/
AA> I love the fact that there is a save feature in this game, what made you add this extra complication in hardware and software instead of using a 'passcode' type system that Bill and Ted's Excellent Adventure uses? Did you ever consider any other options for save states?
JT> Before doing any announcement about the game I had some discussions on the AA programming forums about this save feature and had it working quickly on Lynxman's Flashcard. Since Lynxopoly already proved it is possible to save high scores (this game came in demo version with the Flashcard), it was clear that WT can use a save feature as well. No other options were considered at any point, luckily, since this mechanism is key to any RPG.
AG> What is the write endurance on the save memory and how many times would you expect it is safe to write save games? Would you discourage players from saving very often?
JT> The project uses the 93C46 EEPROM. There are checks done on the EEPROM to make sure it only writes when the digits change in order to minimize writing. The EEPROM should handle easily 1 million writes and has data retention of a 100 years, so it shouldn't limit people to save a lot.
AA> Any spoilers of what kind of game may be coming next from you?
JT> Initially I promised myself never to make a game again after this, but the feedback has been so great that I'm playing with the idea of working a bit more on the Lynx. I'm working with a template that works for 512KB binaries and want to solve a lot of boilerplate code. From there on it gets a bit unclear what I would like to try.. I do have a ton of code laying around from WT that could make a sequel with some improvements. At the same time I feel like I could look into the direction of some more modern platforms. However, this time I'll be orienting myself for some good months before starting a new project.
AA> Jasper, thanks for your time and the amazing wealth of information you've shared. Do you have any closing remarks?
JT> I'd like to thank all the people from the Lynx scene that made this project possible. A lot of people have been directly and indirectly involved in the creation of this game. Years of development done before I joined the scene and ongoing encouragement coming from AtariAge and friends made it all possible.
Well that certainly was insightful! Thanks again to Jasper for taking the time to answer all of these questions. If you want to get a copy of this game head on over to the Official Wyvern Tales website and sign up to the mailing list to be put in the queue. Personally I would be very keen to see a special collector's edition and hope that Jasper does go ahead with that!-AG