# Ukagaka

Ukagaka (伺か), Nanika (何か), Sakura (さくら), Nin'i-tan (任意たん) or Nise-Haruna (偽春菜) is a catch-all term for Japanese software which shares a single format and function. The purpose of the software is to display a character on a computer's desktop. Traditionally, a pair of mascot characters is provided. However, some ghosts have only one character or have more than two. These mascot characters can perform some useful functions such as checking e-mail or adjusting the clock of the computer, but are most popular as a conversational desktop companion. They were popular in otaku internet culture of the early 2000s.
The characters of ghosts in the Japanese community are traditionally cute anime girls of original design as a main character, with a side character of a small monster or pet. However, in the English community, characters are extremely varied and don't follow a certain archetype.

## Function

The main functionality of Ukagaka are the characters' personalities. Characters can "talk" (typically in Japanese) according to their programming, and what they talk about is shown in a speech bubble. Most Ukagaka have different illustrated expressions to emote more clearly. Usually, two characters chat to each other, and the user can observe their conversations and reactions. These characters are referred to as a "ghost".
The conversations of traditional style ghosts are usually hilarious, ironic, and silly, and sometimes they are flirtatious or erotic. Modern ghosts tend to be less formulaic, and may expand past random conversation. The pseudo-AI talk of all ghosts is provided by the programming and script, and the personality of the character depends on conversation-generating programming called "SHIORI".
The character's appearance is called a shell, which is implemented as several surfaces, illustrations depicting the character. Different surfaces are used to express different emotions or actions. Shells can be unique to a ghost, and many English ghosts have shells designed only for one ghost. "Freeshells", free to use illustration packs, are also available, and are popular in Japanese ghosts. Freeshells are distributed for the express purpose of being used as the shell for a ghost.
Ghosts can access the internet and download data from it. Some ghosts can be updated by accessing files on the internet, using a feature called Network Update. Ghosts can also send data to a network. Historically it was possible for two or more users to use the ghost baseware SSP as an IRC chat program. Users could write messages and have the ghost emote appropriately by using "SakuraScript".
The protocol ghosts use to communicate with other local or remote programs is called SSTP (Sakura Script Transfer Protocol). Ports 7743 and 9801 are officially assigned by IANA for SSTP. However, the port 7743 is not actually used for this protocol. The ghost baseware MATERIA listens to port 9801, while SSP uses port 9821 by default.
Most ghosts are highly otaku-oriented. Due to this, even if the user is a native Japanese speaker, they probably do not fully understand what the ghost is talking about. They may make layered references or use regional dialects. The traditional side character Unyū does not speak standard Japanese, but speaks in Osaka dialect (or an approximation of it).
Ukagaka need a baseware program to properly run. There are a few Ukagaka-compatible programs, such as MATERIA, SSP (Sakura Script Player), CROW, and NINIX/NINIX-AYA. Many users prefer SSP to the original program, MATERIA, whose development has been stalled.
Each program normally comes with a default ghost. MATERIA, the first ghost baseware, had "Nise-Haruna" as its default ghost. Most baseware programs can run more than one ghost in the same program, and can switch between installed ghosts or run multiple ghosts at once. Ghosts, including its shell, are usually distributed as a single .nar (Nanika Archive) or .zip file, which the user can easily install by dragging and dropping onto a currently running ghost.

## SHIORI

Each ghost has its own personality, written by its author. Ghosts will talk differently and about different topics. This is achieved by each ghost having its own SHIORI, a conversation-generating module. Many languages for SHIORI exist. However Satori, Kawari, and YAYA are the most used.
Satori is considered easy to use, but only supports Japanese character sets. It is the most popular language for SHIORI in Japanese ghosts, due to the program Satolist utilizing it for ghost creation. Kawari was, historically, one of the easiest to use SHIORI languages. However it became more scripting heavy as it developed, causing middleware for it to become popular. YAYA is the most popular SHIORI in the English community. It is the most coding heavy language for ghosts. It has no middleware, but has many templates available.
Due to the difficulty in writing SHIORI from scratch, middleware is used often used to create new ghosts. Satolist is a GUI program used to create ghosts in the language Satori. It is one of the most commonly used programs to create a ghost. Middleware written for Kawari, such as OpenKEEPS, KLAFT, or FUDS, was also popular to use.

## Internationalization

Ghosts can be written in many languages, as long as the SHIORI supports its character set.
Many accommodations have been made in the baseware SSP for users who do not speak Japanese, including translations of its menu and the ability to switch character sets per ghost. However, ghosts themselves must be translated by the author to support other languages than the original.