Back in January, I released my first original visual novel, Little White Lies, in conjunction with Victor V. Gurbo. In this post, I announce my second visual novel, Under the Alien Sky, which you can download for free from Itch.io.

Screenshot of scene from "Under the Alien Sky" with white text overlaying an alien sky background: "I gaze at the sky above, dyed in soft purples and oranges; shining forth in its luminous vestment. But whose sky is this? It is not the sky with which I am well-acquainted. For example, consider those two planets overhead; so close I feel as if I could reach upp and touch them. Also consider what appears to the the silhouette of a little alien creature passing in front of the closer planet. Rest assured that I am a native and denizen of planet Earth. I know enough about Earth to be assured that this scenery is not Earth's. Yet this place does not feel altogether unfamiliar."
Early scene from Under the Alien Sky. There are references to a certain short essay I once wrote about and the al|together festivals.

Like Little White Lies before it, I was inspired to undertake Under the Alien Sky as part of a submission to an Itch.io game jam, although in this case I designed it to fit within the constraints of not one, but two game jams, which I will detail below. But beyond its game jam origin, the project differs in some significant respects from Little White Lies.

Firstly, while Little White Lies was a collaboration between me and Victor, Under the Alien Sky is an entirely solo project. Secondly, while I had just over a month to work on Little White Lies and, with assets and input from Victor, put together the final piece in about 13 days, I put together Under the Alien Sky from start to finish (including coming up with the concept and writing the script) beginning on July 17 to completion on July 18. Thirdly, I made Under the Alien Sky using Galladite27’s ONScripter-EN, whereas Little White Lies was made with Ren’Py. Who, what, where, when, why, and how? I explain below.

How Under the Alien Sky Came to Be

Itch.io is a platform for distributing games and other media (it is mostly games, but some people use it for other things including books, software, or even blogs). It is a popular home for many “indie” game projects, including visual novels. I have reviewed several Itch.io visual novels on The New Leaf Journal, including what I would describe as Itch-first pieces in EDDA Cafe and Crystal the Witch. One reason Itch is popular with indie developers is because people can host “game jams.” Game jams are centered on a game concept and accompanied by rules and submission deadlines. I explained in my article about Little White Lies that Victor and I put it together as a submission to a game jam that required the use of assets from 1930 that enter the public domain in 2026.

In the last third of June, I checked in on upcoming game jams on Itch.io and bookmarked a few of interest. Under the Alien Sky is a submission to two game jams:

The O2A2 jam was the first to catch my attention. It ran from July 11-21 and is for very small visual novels. The rules provide that entries can only use one sprite and one background (or one illustration in lieu of a sprite and background), one sound file, one sound effect, one voice actor, and one piece of menu background art. Moreover, the script cannot exceed 1,000 words.

I had, and still have, what I think is a clever idea for a one-scene visual novel. Unfortunately, it would require some artistic chops that I do not possess (or at least tools not in my possession), so I set that idea aside for a future date (foreshadowing?).

After bookmarking the O2A2 jam, I came across Kenney Jam. The Kenney Jam is hosted by Kenney and Kay Kit, both of whom publish both free and paid assets for people to use in making games. This jam is centered around using the Kenney and Kay Kit assets. The rules are that submissions can only use Kenney and Kay Kit assets, with the exception of audio, fonts, logos, splash screens, and code-related assets. Kenney Jam ran from July 17 at 11:00 AM to July 19 at 1:00 PM. But Kenney also entailed another requirement as well.

While O2A2 is a visual novel jam, Kenney Jam is not, at least directly. The vast majority of Kenney and Kay Kit assets are more amenable for use in traditional games. But I did notice that the Kenney assets included a small font collection, which inspired me to see if I could fit it into a visual novel. Also, while the Kenney Jam is less restrictive in some respects than O2A2, it had one very significant limitation. Submissions had to incorporate a theme, and that theme would not be announced until the start of the two-day jam. Thus, even were one to be inclined to cheat and try to smuggle an already-completed or in-progress theme into the jam, he or she would run into the issue of not knowing the theme in advance. Very clever.

Coming Up With a Concept

I did not have time to work on a separate O2A2 jam idea due to having a good amount of real work in early July and being under the weather for much of the month (issues that had also put me behind the eight ball with respect to Little White Lies). It had occurred to me that assuming arguendo I entered Kenney Jam, I could probably submit something to two jams for the price of one (O2A2 explicitly allows submissions from other jams provided they meet the rules, Kenney Jam says nothing on the subject). Moreover, I had reviewed the Kenney assets and noted a few that could potentially be useful depending on the theme. I had enough time on July 19, 2026, to see what the theme was and if I had some idea that would fit.

What was the theme?

SCALE.

I groaned. Scale? The previous three themes were POWER (2025), CONNECTION (2024), and EXPLORATION (2023). Those were at least plausibly amenable to some ideas I already had in my head. But scale? That was less obvious.

Despite being nonplussed by the theme when combined with the time limit, I decided to give it a go. Moreover, the O2A2 word and other restrictions would be an asset insofar as they significantly limited the scope of my piece such that it would be small enough for me to write and “program” in about a day. But I had to make several decisions before writing a script.

Firstly, I needed to settle on a visual novel engine. I have some experience with Ren’Py, which is the most popular engine for English-language visual novels, from Little White Lies. However, I decided against Ren’Py for this project for four reasons. Firstly, Ren’Py feels like overkill for a very small visual novel. Secondly, I had some small concerns that some of Ren’Py’s built-in assets would go against the spirit of the Kenney Jam rules (I could not replace, say, text boxes, with Kenney assets within the time-limit). Thirdly, neither Jam required my submission to be playable online (note that I have no designs on winning a prize in Kenney Jam), which was a requirement for the jam I submitted Little White Lies to. Fourthly and finally, I had a simpler, smaller alternative to try: ONScripter-EN.

ONScripter-EN is a fork of ONScripter, which in turn is a free and open source implementation of NScripter, a freeware (but not open source) visual novel engine which is popular in Japan and has powered some of the most iconic Japanese visual novels. What evolved into ONScripter-EN was first developed by Insani in the mid-2000s for visual novel localizations, with one of the first notable ones being Narcissu. Regular readers of my visual novel writing may be familiar with my writing about the al|together festivals, which featured Insani and other translators and circles localizing 31 freeware indie Japanese visual novels into English in 2005, 2006, and 2008. Most, but not all, of the al|together games used early versions of ONScripter to convert Japanese NScripter games into English.

At the time I started reviewing the al|together novels (I started the project in April 2021 and published my last review in December 2024), development of ONScripter-EN had been largely dormant since 2011. But in early 2023, the development of ONScripter-EN was revived by a very talented maintainer and visual novel fan who goes by Galladite27. It continues to be free and open source and available on GitHub. While ONScripter-EN is best known (to the extent it is known) for being a tool to localize Japanese visual novels, it is an engine unto itself and can be used for producing original games. I reviewed two original English language visual novels written in older versions of ONScripter-EN in The Dandelion Girl (2016) and the earlier 2010 version of the same story. Moreover, Galladite27 has made a point of developing resources for people who are interested in using ONScripter-EN to make new visual novels in addition to localizing old ones.

Revealed here for the first time is that I started studying some of the syntax for ONScripter-EN not long after finishing Little White Lies (noting I had some familiarity from reading script files of al|together entries). Moreover, I have an in-progress, yet-unfinished ONScripter-EN game which works, but is missing a few things that I want to implement before releasing it into the wild. While the documentation for ONScripter-EN is not yet up to Ren’Py standards, and there are things which Ren’Py more or less handles automatically which ONScripter-EN does not, I was reasonably confident that I could swing a short piece in ONScripter-EN in line with the Jam restrictions. In fact, I would go so far as to say that ONScripter-EN is a bit easier for me to use for this project because it is easier to disable or not implement extraneous features.

ONScripter-EN does come with the trade-off of being less accessible out of the box. Ren’Py, along with some other modern engines, can be used to build working novels for Windows, MacOS, Linux, Android, and the Web with the click of a button. At the moment, Galladite27’s ONScripter-EN only has official builds for Windows and Linux. I am aware of some projects which make ONScripter-EN games playable on the web or potentially allow the Linux builds to run on Android, but those will be mostly of interest to dedicated visual novel readers. ONScripter-EN is also not properly supported at the moment on silicon CPU Macs although some older builds should work on Macs with Intel CPUs.

With the engine set, I needed a concept for my game. Unfortunately, due to my above-stated take on the “Scale” theme, I did not have a concept. Lacking an idea for the script, I figured I may as well decide which Kenney assets I was using first. Perhaps the assets themselves would give me an idea. (Note: Almost all of the Kay Kit assets are 3D models and I do not have the time or skill-set at the moment to incorporate those into a visual novel, so I focused solely on the Kenney assets.)

I had originally contemplated only using Kenney’s texts for a purely text-based visual novel, but since I was also submitting this piece to the O2A2 jam, I decided to make it “visual” as well (that turned out to be a project-saving decision). I zeroed in on Kenney’s Skyboxes and Planets collections for two reasons. Firstly, I figured even someone with my total lack of digital art skills could cobble together an interesting, 5 Centimeters Per Second-inspired background by combining a planet or two with the sky backdrop. Secondly, I would need to crop and re-size both the sky backdrop and planets to fit the impeccably modern 800×600 window I was using for this piece, so I liked the idea of artistically incorporating the theme (not to say I would not also implement it through the script).

Unfortunately, doing this in a competent way was easier said than done. Most of my digital art experience comes from creating “art” in Microsoft Paint. For this more “serious” project wherein I hoped to do the Kenney assets some justice, I used KDE’s Krita, a powerful free and open source drawing program. Unfortunately, I barely know how to use Krita, so I stumbled around trying to find things and refine my artwork for a couple of hours. I ultimately settled on Kenny’s “Alien” skybox along with two planets, which I re-sized, carefully placed, and carefully re-colored to make them fit into the alien sky-scene (I dare say I did not do too poorly for someone who is less than a rank amateur in that department). I still felt like I was missing something, so I pulled a little alien creature from Kenney’s Platformer Art Extended Enemies collection, colored it black, and placed it in front of one of my planets so it looks like a silhouette passing by. With that, I was done with the art.

Of course, it was the late afternoon by the time I finished the art and I still did not have a clear and distinct idea of what I was writing. Thus, I decided to search for music. While Kenney does have some sound asset packs, the jam rules explicitly allow for foreign music or sound effects, so I decided to turn to Free Sound to find one. At this point, I was thinking about a “dream” as the central-point of my story, and I came away with a short background music track called Mio’s Dream from Free Sound.

Having run out of ways to delay the inevitable, it was time to come up with a script.

I spent much of the evening of July 17 writing a script in the ONScripter-EN syntax and repeatedly testing my draft game looking for issues. Recall I noted earlier that one reason I bookmarked the Kenney Jam was because I thought it would be neat to use the one font pack in a visual novel. Unfortunately, that created an issue. While Kenney’s fonts are high quality and could be put to good use in traditional games, they are not designed for reading full paragraphs in a visual novel. Moreover, several of them were all upper-case, which did not fit what I was going for. I was able to make it “readable” in the small ONScripter-EN window by tweaking the text size and spacing settings in ONScripter-EN, but I eventually abandoned the idea of using the Kenney fonts and took advantage of the Jam’s explicitly allowing me to use my own fonts. Late that evening, I switched from trying different Kenney fonts to Literata, a free font created by Google primarily for ebooks. (More on fonts later…)

Over time, I gradually came up with a short “story” that I could fit into a visual novel while incorporating the “scale” theme well enough for all normal purposes (noting that I have no designs on winning a prize in Kenney Jam). Of course, being a self-styled writer and editor, I was not satisfied with my first few drafts and re-wrote the entire thing from scratch on Saturday afternoon with the clock ticking.

Screenshot of scene from "Under the Alien Sky" with white text overlaying an alien sky background: "I took an interest in Japanese media back in my school days. Browsing the internet at home, I happened upon a collection of visual novel localizations. Or sound novels as some called them. When you play through this sort of collection, you notice themes and tropes. For example, two novels from the set featured down-to-Earth extraterrestrial romances.
I trust people who played all of the al|together pieces can figure out which two I am referencing. Hint: They are both from al|together 2006 and rated highly in my final al|together ranking.

My theme was simple. The protagonist, an adult woman, sees the alien skyscape I created in her dream. She notes that it is altogether alien but not unfamiliar to her. Note my use of the word “altogether” (which appears in the novel), because it is very much a pun-intended situation. The woman reflects on her dream and realizes that she had seen the alien sky before, albeit not in reality. Her “eureka” moment takes her down memory lane, to that time in school when she happened upon a couple of visual novel localizations and wondered about what happened after certain partings from a perspective different than that of the original in-game narrators. I was satisfied that I had not only come up with a concept that technically satisfied the Jam themes and rules, but also tied it to the great legacy of unsung doujin Japanese visual novels and the al|together localizations. I can say “unsung” with confidence because neither of the two al|together pieces which inspired me rival Narcissu in terms of notoriety and popularity, but I liked them all the same. I would consider it a minor spoiler to note here which pieces I was inspired by (granting I reviewed them and encourage you to read them), so I will say that the were both from al|together 2006 and ranked highly in my final evaluation despite not being high scorers on Visual Novel Database.

Actually Developing the Novel

(Note: I discovered only after finishing the final pre-upload version of Under the Alien Sky that Galladite27 has published some new plain-English ONScripter-EN guides. I will study those closely for future projects.)

Developing the novel went “mostly” smoothly, although I did run into a few hiccups. I relied on the current NScripter API Reference document for syntax and I have seen how various commands are used in working ONScripter localizations. Note that I used a very small subset of the syntax (as you can see by reviewing my game’s 0.utf file).

ONScripter-EN novels all have a script file where the game’s script, including the code and text visible to the reader, goes. I had initially thought about throwing in a choice or two but determined that I did not have time to introduce more things that would require testing. Thus, I kept things simple and made Under the Alien Sky entirely kinetic (meaning no choices). I also saved myself some time and trouble by skipping a title screen and menu, instead going for a very brief introduction before heading straight into the novel. The entire thing can be read in 3-5 minutes, so there is no need for saves or a convoluted right-click menu.

Screenshot from N.A. Ferrell's visual novel, "Under the Alien Sky". Text on black screen: "Under the Alien Sky": A short visual/sound novel by Nicholas A. Ferrell. This piece was made for Kenney Jam 2026 and O2A2 VN Jam 2026. The former limited me to assets from Kenney and Kay Kit (exempting fonts and music). The latter is a micro visual novel jam with strict asset limitations and a 1000 word limit.
The title screen is simply part of the novel.

The main technical issue came from my trying to take advantage of ONScripter-EN’s support for variable fonts. NSCripter, and prior versions of ONScripter, only support monospaced fonts. There is an older fork of ONScripter called PONScripter with non font support (PONScripter was used for some commercial localizations, most notably the When They Cry visual novels). ONScripter-EN has some proportional font support. Unfortunately, I could not resolve with finality issues where lines would occasionally break in the middle of a word. I am sure there is a solution, but given my tight deadline – I do not have time to figure it out at the moment. Thus, I switched from Literata (to which I had switched from Kenney fonts) to Nikita Prokopov’s Writer, which is a useful enough monospaced font that I am adding it to my collection of working fonts. I had no breaking issues after switching to monospace, so monospace it is.

After completing my working draft, I had time to make some improvements before unleashing my visual novel on an unsuspecting public:

  • I decided to enable a right click menu and log so that readers can re-read text. This was not difficult.
  • I decided to add a single choice at the end of the script which would allow readers to go back to the beginning of the story. However, because I started with a brief introduction, I also wanted to make it possible for readers to skip the introduction and start with the story. I had not read much about ONScripter-EN choice syntax, so this took me about 15-20 minutes to get down. Then I had to ensure that the right background displayed. I added a second pure black background to make everything work (I hope that is not “cheating” for the one asset Jam!).
  • I wanted the background music track to loop. It was not looping. I found the proper syntax to play it as a loop, but my first attempted failed. I read more closely and realized I had to call the same background music twice.
  • I reduced the text speed by 50% from what I had been using (drawn from an ONScripter-EN example).
  • Finally, I went through the script, made some final edits, and adjusted the “wait” calls to slow the game down at certain points and make everything flow better.
  • Within two hours of the tight Kenney Jam deadline, I made a final edit to the script and edited the Easter Egg file accordingly.
Screenshot of scene from "Under the Alien Sky" with yellow text overlaying an alien sky background: "I hadn't thought of it much in the many years (don't ask how many) between then and now. But here, looking up at this alien-yet-familiar sky, I find myself taken back to that lunch-break as a student...
This is a demonstration of the text history functionality. You can also bring upp text history by using the scroll wheel.

Once I was satisfied with the state of the game (or as satisfied as I could make myself under the time-crunch), I worked on finalizing the installation package. I added a readme, asset-licenses.txt (for all the assets I used), and easter-egg.md (wherein I offer some “context” about specific lines in the visual novel for people who care to look and know what the .md extension means). Next, I downloaded the most recent release version of ONScripter-EN for both Windows and Linux into the game directory. I had been building and testing the novel on Linux. Because I do not have a Windows machine (real or virtual), I tested the Windows build in WINE and found that it worked, so I packaged the Windows build. As I explain in the Readme, people can also run their system ONScripter-EN (provided it is the current version) or build it themselves from source (potentially useful for running outside of Windows and Linux).

Conclusion

I finished most of this article draft in the odd morning hours of July 19, 2026. Perhaps unsurprisingly, this article is longer than the entire script of my visual novel (including the code). Creating a visual novel under these tight constraints was an interesting experience and gave me the opportunity to add “ONScripter-EN visual novel developer” to my ever-growing list of titles. I look forward to working on something in the visual novel space that is a bit more robust in the future.