The development of Agricola started on Summer of 1991, just after the ending of the development of a Map Editor, which began in the late November or during the beginning of December of 1990.
At that time we were concerned about finding a proper name for the game. My brother, who was studying classic languages, proposed the word "Agricola" (Farmer) which would have described very well the main character (we called him Freddy) and the game concept.
Freddy is a common farmer who is awaken in the middle of the night by a bang noise and a white light coming not so far from his house.
Nevertheless he goes back sleeping; as he wakes up the morning he discovers that all the vegetables and the insects were mutated in aggressive monsters. Here begins his journey to the center of the source of the light he saw at night, to discover at the end of the game it was a huge meteor hosting an alien base headed by a mad scientist who planned to rule the entire world, starting with the plants (very original indeed, eh? :-). By the way, I remember there were some draft animations that tell the first part of the story to introduce the game.
Who knows in which floppy they disappeared.
I was 20 and I was attending Mathematical Analysis at University while I was contacted by an high school colleague (Filippo Vela), the musician of the game, who has meet two young artists (Ignazio Stagnitta and Giuseppe Stassi) and he liked to introduce me to them to start a cooperation on writing a video game.
Filippo was quite good at composing keyboard music and transposing them to SoundTracker/ProTracker.
We scheduled a meeting on a Saturday or Sunday of October/November 1990 at Filippo's home. Ignazio and Giuseppe talked us about their idea for a videogame and showed me for the first time their painting in computer graphics and they were quite amazing. I liked the idea of a videogame but their arts were far beyond the Amiga videogame capabilities.
Since 1987 I studied a lot of Amiga hardware writing applications involving ADC (Analog Digital Converter), real time analysis of PQRST complex (EKG), mixing Assembler and C-Language code, so I was pretty aware of the difficulties of the project and the hardware restrictions.
I started talking about hardware limitations forcing them to repaint everything under strict rules such as sprite sizes, number of colors for playfields and so on.
Some days later we met again to see their progress. I was very doubtful about the preliminary game graphics work, and I was quite sure they would give up due to all the limitations I imposed them. Well... I was wrong. They surprised me at the point that I accepted to start writing the code.
I wrote Agricola entirely in Assembler on Amiga 2000 first and Amiga 3000 later using Hisoft DevPac, kicking off the AmigaOS entirely and directly handling all the hardware for speed and accuracy. Although incomplete, Agricola counts about 30,000 lines of asm source code.
The first demo disk we spread had a custom boot block and a custom file system which made it look as a BAD-Disk on Workbench. It was a cool thing at that time.
Implementing a custom FS, while driving the floppy disk hardware (Paula chip) without any OS help, was a matter of starting motors, moving heads back and forward, waiting here and there, reading MFM strings and decoding them on the fly, waiting again, and so on... everything synchronized according accurate time specs. Anyhow, I didn't write all the needed routines from scratch. A friend of mine, Giuliano Peritore, (you may remember him for F.1 Manager, Tilt, SCRAMmer, A4091Patch) gave me most of the low level routines; however the timing cycles where all calculated with loop instructions which were ok for plain 68000 at 7.15MHz but completely unacceptable for faster 680x0 processors. Thus I rewrote and cleaned up almost entirely that code normalizing it to my internal format and to suit my needs, making it more stable on newer machines by using CIA timings for accuracy.
Unfortunately I lost track of those demo disks and the floppy routines were abandoned in a couple of years inside a #IF-#EDNIF clause in favor of a nice OS-oriented way to make the game installable on HD.
Around Agricola several tools were developed, all written by me in C-Language using Lattice C first and SAS C later. A map editor first of all, which gave Ignazio and Giuseppe the ability to construct the levels easily; later other internal tools for converting IFF files in more manageable and compressed format; tools for packaging everything together and raw-writing into floppy disk sectors (abandoned later as I said), and so on. I used some free assembler source codes to decompress Power Packer file formats and playing SoundTraker ones. All the data were kept compressed due to floppy disk size limits.
I released MapEditor as public domain in summer 1991, but not the other tools, since they were useless to the community.
On level one of the game you can see that the enemies appear randomly. I found a couple of random numbers generation functions written in assembler which has been analyzed with a Q-Test by Federico Giannici a friend of mine of that time (you may remember him for View80 and CycleToMenu), who helped me in choosing the best one.
Agricola was a workbench for all of us and many of the code and graphics changed and improved over time.
When we began the development of Agricola we were concerned about NTSC machines which imposed us further restrictions in screen size. In 1993, after talking to other games developers about the NTSC market, we were convinced to abandon it because it wasn't financially interesting and to focus only on PAL machines. So we redesigned almost everything, from the copper lists to the whole graphics.
I don't remember who had this fine idea, but it was not so complex to realize: the player's sprites (4 hardware sprites for the player) were all pre-rendered with Deluxe Paint and from a programming point of view it was just a matter of keeping track of a set of screen coordinates where to address and show the right sprites.
There was a dedicated routine which handled all of the stuff according to the speed the character approach to the loop.
The swamp was my favorite level because it showed many interesting techniques I learned so far: the three levels of parallax of the background forest were obtained by scrolling bitplanes independently.
Bringing playfields dynamically one in front of the other allowed another level of parallax in the foreground. The swamp was intended to be ruled by a witch, the same one you encounter on the house in level one.
We were uncertain about the enemies to introduce there and none was ever drawn. At some point you will see that the ground suddenly ends into marsh. There would have been a puzzle to solve to release a boat so to continue the journey.
This was the part of the forest near the meteor impact so it has to show burned and burning trees.
In a demo version we quickly assembled for SMAU 1993, the forest was entirely burning and avoiding the fire would have required some skills. The code that handled the burning fire was dirty and unreusable because written quickly for the happening, so I planned to rewrite it from scratch merging it to the same code that was intended for handling big enemies. I rewrote that code in 1994 while I was at military service, but in the meantime time passed and our interest in Agricola was slowly fading, so we didn't put any more development efforts and the burning forest disappeared completely.
We'd liked having something completely different for the last level of the game, so we thought that piloting a spacecraft would have been nice. But we were never happy with the results because it was too far from the game concepts, at least graphically speaking.
Coding this level was instead quite easy because there weren't all the copper effects of the previous levels and everything was simplified.
It's hard to answer this question. From a programming point of view I would say 70%-80%, because most of the code was already written and flexible enough to be reusable for further needs. From the graphics point of view many things has to be drawn or redrawn but I can't tell exactly.
We sent a very early demo (only level one with primitive graphics concept) to a few publishers: GREMLIN, OCEAN, CORE and IDEA. None of them was interested in the project but IDEA which was interested only in coding techniques.
It was 1995, we were growing up and the world around us was changing.
Commodore declared bankruptcy, our interest in Agricola was fading away, Sony PlayStation was going to show its amazing potentiality, so we decided to quietly end the development.
Ignazio wrote a very nice western style videogame, and with Giuseppe they also wrote a Street Fighter clone, both of them entirely written in AMOS, but they were never published.
Agricola was my only real attempt to writing a videogame. Some years ago I started writing a 3D engine in the free time, but just for fun. It is no more time for in house productions. Videogames productions now need high budget with large development teams. Anyhow I must admit that a couple of years ago, for a single moment, I've though about completing and porting Agricola to GameBoy Advance.
Short answer: no, we don't.
My all-time favourite Amiga video game is Turrican 2. I played through the game countless times. I think that it has been the most playable and satisfying platform ever conceived. I like collecting vintage arcade boards and I still love playing vertical scrolling shot'em-up games; my favorite one is Ikaruga (the most refined and elegant shot'em-up ever made) which I play on my Naomi2 cabinet. Anyhow, a friend of mine tells me that I've become a "casual video gamer" because even if I start playing last-gen console games, I get bored soon and put them back on a shelf to gather dust for months.