A remake of the classic Wizardry video games
Copyright Eric Pietrocupo
Wizardry Legacy
WL Adventures
Filed in: News.News202101210949PM · Modified on : January 22, 2021, at 01:23 AM - Visits 777
I am trying to focus more on life time project, I was thinking that I should use my new acquired experience to finish this project once and for all. By refactoring the code, I realized that there was many exceptions and the project development has grown into various directions many which were unnecessary. So the objective would be to make it a playable game by sacrificing some features which are mostly aesthetics.
The main portion of the refactoring to convert this c++ game as a plain C game. That implies 2 major changes which could simplify further development once completed.
I decided to simplify and stream line the user interface by making everything composed of characters. It's also the linux philosophy and it greatly simplifies the creation of new dialogs which is pretty heavy right now and requires almost manually programming of each dialog. With the new system, I could simply pass a string of text and everything will be formatted correctly without additional programming.
That means that the font is very important as it composes not only the text but also the window frame. I originally tried to use a 16x16 square pixel font to get something similar in look to the original NES game. That gave me only 40 characters wide which could be pretty limited. So I decided to use a smaller 12x12 font that looks much better and allow 53 characters wide. I had to manually draw those fonts since square fonts are very hard to find.
Here is a sample of what the interface will look like. The first screen shot is an early development example using larger fonts:
Then I decided to create a smaller font as illustrated below. Text will be able to have various colors. Many custom made special characters had to be made to print what you see below since everything, even the border, is made of characters. For example, the selector is now a real arrow instead of the "->" characters.
Not only the WUI engine needs to be made, but also all the game screens have to be reprogrammed with the new WUI. Fortunately, it will be must faster to code, and I don't have to code everything at once.
Another major impact of conversion to plain C is the separation of behavior and data. That means that all data classes will virtually disappear and the game will interact directly with the database. Game business logic in those data classes will be moved a series of simple methods that will interact with the DB making all the game rules at the same place for more convenience.
That will also yield the advantage of making those routines easier to test which could allow automated testing on game mechanics to make sure the game stay intact when new features are released.
Right now this is not a priority, I could do this refactoring in a second phase.
Finally, I intend to massively reduce the amount of images and other assets to make the game easier to manage and smaller. Also the text based interface does not work well with pictures. So many superfluous features that were not in the original Wizardry NES games like character portrait, character class pictures, various fonts, will simply be removed. It's not a priority, but could easily reduce the size of the program during the distribution.
That also implies that adventure will not have assets. So only 2 file will be necessary, the database and the maze. Which removes the need to pack together multiple files and I could simplify the datafile management with something more clean and flexible.
Not sure if it will be possible due to copyright issue due to the theme, but I would like to replace all non-public domain assets with free assets. That could potentially allow me to release the game on Steam or other gaming platforms for free. But I doubt I will be able to keep the name, bestiary and many other iconic game elements.
I have many new ideas that could make the game more interesting, but for now lets focus on making something well designed and playable.
Powered by PmWiki and the Green skin