Session end : 12h00m00s | Hide picture Sexe : OFF | Donations 2024 : 920.48 € |
In 1992 my sister was playing the various installments of the role playing game "The Bard's Tale" a lot. Since there wasn't a CPC conversion available at that time and none was annouced I thought I could take up the job of creating my own interpretation of this topic.
I didn't really have much experience with role playing games, but I was mainly concerned about the visual aspect rather than the role playing elements like score boards, hit points, magic spells and so on. I thought I can get into that after I've created the display window where all the action would be going on.
For the display of the 3D world I had created a routine that was able to shrink objects to almost any size from its original size to a mere dot on the screen.
I used this routine and a pre-calculated 3D environment surface that specified the shrink factor and positions of the objects on the screen, so that these values wouldn't have to be calculated every frame anew.
At first I started to paint some trees and create a mixed forest with these. Then I added a stone wall with a big wooden gate that encircled a garden with a tower inside. I added collision detection, so that you couldn't walk through the walls. You were only able to pass through the gate to the other side and walk around in the garden.
Then I added a mound of stones with the entrance to a cave, that was going to lead to an underground level where the heroes of this game would have to fight monsters and discover secrets and treasures. I already had started to test different designs for the walls of the underground caves. When I used these designs with my shrinking routine it turned out that they were being perspectively distorted which looked a little weird. I couldn't figure out if I had painted them incorrectly so that they got distorted or if my shrinking routine had some conceptual error, so that the walls were being distorted.
I added sand dunes to my game and objects that were supposed to be the waves of the sea, but somehow these waves didn't really look good enough. They had some sort of a twodimensional look, like they were paperboard walls or so.
Then I tried to include different weather conditions. I added fog to the environment by painting white colored dots on the screen. Just a few in the front and gradually more in the planes that were further away, so that the objects in the background would be covered more and more by the white dots. Unfortunately this also didn't look too well. The fog didn't look like fog, rather like a weird mathematical pattern that was forced over the trees and other objects in the environment.
Lacking a better idea to create a more believable fog effect I kept this effect in the program hoping to devise a better routine later. Instead I started working on the parser for the interaction of the human player with the characters in the game. I also painted a few characters that were supposed to appear in the game.
Since real 3D games like Doom, Quake, etc. weren't yet invented at that time I thought that it would suffice if the other characters wouldn't really walk around freely in the environment, but just move from one location on the map to another and appear to the player at different distances on the screen.
This approach had two obvious advances: First of all I could save some valuable calculation time since I didn't have to create routines that would let the characters move around the screen, do collision detection and z-buffer calculations.
The second advantage was that I wouldn't have to create the walking animation for the characters. Since I'm not very good at painting graphics and especially at the animation of life forms I was quite happy to be able to get around that problem.
As usual I also created a map editor. In this editor I used a new approach for the first time. Besides a mode in which you were able to paint the map with big icons I've added an overview mode in which you could see a larger part of the map and actually edit the objects on any location in the map. This overview mode was like looking on a topographic map. Later I used this idea more often, for example in the level editor for "The caves of Horwar".
I had to discontinue the work on this game due to a lack of main memory. Even though I already had the program load the graphics of some of the objects only when they were needed and replace them with other temporary objects when the player moved to a different location I still didn't have enough main memory left. I was using my CPC 464 at that time and therefore was limited to a mere 64 kilobytes of memory.
Most of that 64 kilobytes was already being taken up by the graphics and the double buffered display window. So when I thought about adding all the other features, like the other characters, the parser, the scoring system, etc. I figured out that I've already had wasted too much memory with the graphics alone and that it would mean a lot of restructuring and repainting to remedy this problem.
I wasn't really willing to re-paint all the graphics. I knew that I would run into the memory problem again sooner or later, because besides the graphics there were a number of other elements in this game that would take up a lot of memory (e.g. the parser, the scoring system, the map data, ...). So I thought of keeping the shrinking routine for some demo or other games, but to abandon this game, because I didn't really see a future for that.
Besides a CPC conversion of the role playing game "The Bard's Tale" had finally been done in the meantime and even though it's graphics was rather crappy the gameplay was cool and the game provided a lot of staying power. While playing it I realized how difficult it would be to create a good scoring system that made sense and was understandable to the player...