Mmmm…. Up to now I have taking a generic aproach in my project; it has worked fine, but now I wonder if it is worth it…
My project is an “Engine“, but it is supposed to be different from all others engines. It isn’t a table filler, it is most of an API that the developer could use to get all the basic functionality he looks for and be able to use already existing UserInterfaces and System Interfaces.
It is more a collection of abstract interfaces that are left to the developer to implement, and a basic set of functionality that fits everything together.
That made think something today; would someone bother restricting his game to the use of an API and a collection of User Interfaces, even when there’s almost no functionality in there??? The developer still has to program all the “Actions” which are mostly all the functionality of the game, he must also design all structures for the Beings, World and MapCells.
That’s what I wanted for the project, if I want to make a game, I just design the different actions to handle the different structures, this was in order to allow the developer to do things in any way he wants, but off course, he may do so without using the engine.
Now for the bad things…. if in your game you have an unique feature, it is hard to show it in an existing UI; you would have to extend it to allow more functionality. For example, if you implement Ultima like Spells that are made up of syllabes, it will be hard if not impossible for an UI that was designed for Book Spells to prompt the player for a spell choice; if you want that everytime the player writes a letter the magic word is completed, you have to get into the internal work of the UI, thus breaking encapsulation.
Off course, this may be achieved and keep the genericity, but it is (has been) the heck of a work, as there are infinite possibilities on what the developer will want.
So… I’m thinking on a hard decition… I will carry on the development just for my game; from now on the project will still be an engine, and will allow different games to be spawned, but I’m heading it toward MY game and not ANY game (CRPG), as it had been done to the date…
I made a lot of efforts toward it and got very far, but I guess my stamina is not enough and the project is not very pleasing nor rewarding to work on, as was my first attempt to a RL six months ago…
And so, the User Interfaces I’m designing will only work for my RL, but who cares? that’s all that is needed; if someone wants to use my ideas he can just ask me or ask at rgrd, I would be glad to help. All the time I’m wasting on making things generic could be invested in the making of an article or something; I may even be doing a cool new version of my shooter, Archer Fire.
Anyhow, I’m storing the source of the engine as it is today, and going for changes in the architecture. I think this way my project will have more chances to get somewhere, and I am sure the development will speed up a lot this way.
Let’s hope I’m not wrong again and I won’t change my mind in the future.