I originally wrote up some of this for a more general ghost site I was going to make before I decided to make a single dual site/ghost template together for the walkthrough. However, the information still may be useful to some, so here it is!
Ukagaka/Ghosts can be pretty confusing if you've never encountered them before. The fact there's like a billion different factors involved in their creation probably doesn't help. But I'll try and break it down.
A Ghost is known by a few different names in Japanese, like Ukagaka 伺か or Nanika 何か, but I'm mostly going to be sticking with Ghost for this. A Ghost is a combination of three things - a ghost (the coding), a shell (the images), and a balloon (a speech balloon).
A Ghost ISN'T a program in and of itself. You'll need a program to actually run the ghost, and there are a few to choose from. The three major programs that I know of are called Materia, Crow, and SSP.
Materia - The first Ghost program, I believe.
SSP - If you've played with FLELEs, you probably already have this. Simple to set up and you can set the whole thing to English very painlessly.
CROW - No idea with this one.
These programs interpret the Ghost code and run them. You can sort of think of these programs as Hardware and the ghosts as Software. Each of them has different features and different restrictions on what Ghosts can and can't do with them. I haven't used Materia or Crow, so this tutorial will be primarily focused on SSP. If you've ever downloaded or played with FLELEs, then you should be familiar with it. SSP is the program included with most FLELEs.
Certain ghosts that run on one program might not run well on another. Also certain functions in one program might not work in another. This is why most Ghosts will mention somewhere in their write-up what program they were written for. This isn't to say that there isn't any Ghost crossover between programs, but don't be surprised if you download a Ghost made for Materia and it doesn't run quite right in SSP.
Each of these programs can allow you to collect multiple ghosts, so you only need to download and set up the program once. Once you have it set up, you can download and add new ghosts all you want and it will keep them organized for you. There are also offshoots for Macs and Linux that will run Ghosts, but I can't verify how well these work. You'll have to try them yourself. I linked to them in the intro.
Let's go a step down into the actual coding of the Ghost. The AI scripting that gives a ghost life is called SHIORI. However, there are a bunch of different coding languages that are used to make SHIORI. Each of these languages has their own syntax and rules, although I believe most of them share certain elements of SakuraScript, and are probably conceptually the same. I have only the barest familiarity with any of these outside AYA5/YAYA, so I can't tell you too much about them. But the different languages are...
里々 or "Village People" according to Google translate.
Kawari or "Hana Japanese Pear" according to Google Translate. This one seems to be fairly common from my brief poking around.
AYA or "Sentence" according to Google Translate. Loosely based on C, and this is the one this walkthrough will focus on since it's the one I worked with. Development on AYA has stalled I believe, but it has been succeeded by a group making a fork called...
YAYA, an update on AYA scripting. Expands some of the functions, but a lot of is higher-end programming stuff I don't really understand. :B But fundamentally AYA and YAYA are very similar.
Misaka. I know nothing about this one.
"Zhu Ri" or "Jewel Ri" according to Google Translate. Based in Perl, apparently sort of complicated. Know nothing about this one either.
Basically, Girl and Triangle are written in AYA 5 (or were written in AYA 5 and transferred up to YAYA depending on which version you're using). So therefore your ghost will use the same language. Although if you DO use another language to make one, let me know! I'm curious about this kind of thing.
SAORI is sort of an extension to SHIORI above. SAORI refers to specialized plug-ins you can download to expand the functionality of your ghost. These usually take the form of .dll files in your ghost/master directory. For example, gomi.dll is a SAORI that allows your ghost to empty the recycle bin. mciaudior.dll is a SAORI that allows your ghost to play sounds. saori_cpuid.dll tells you information about your computer. There are a LOT of SAORI out there programmed by various people to do all sorts of things. Using them and incorporating them into your ghost requires reading their readmes and following the instructions, so I won't get too much into it here. But Disc 2 has a list of various SAORI that people have made for an idea.
As mentioned up there, a shell is the set of images that make up the ghost. You can create new shells for your ghost without changing any of the core coding. Changing a shell only changes the appearance of your ghost. If you've used a FLELE, it is basically a ghost with no partner that's been programmed to sing. If you've downloaded "FLELEs", what you've downloaded are shells that change the ghost's appearance.
You can make as many shells as you want for any individual ghost, but making a new shell can be very time consuming. It is within your power though.
Balloons are unique. They are sort of disconnected from the ghost itself. You can download a ghost/shell without downloading its associated balloon, for instance, or you can use a balloon from another ghost with your current ghost if you want. Balloons are a bit freer than ghosts and you can use them as you like, which is probably why there are communities set up around just making balloons for general use.
A balloon is a set of speech balloons, usually intended for a ghost. They can be separate though, if you like. If you don't specify or make a balloon for your ghost, they'll use the default balloon provided by your program (SSP/whatever).