| Home | Forums | Vision | Development Log | Features | Concepts | Screenshots | Artwork | Downloads | FAQ | Team | Resources | Contact |
The graphics engine is completely homebrewed. It is built upon the .NET framework with C# language utilizing the DirectX graphics library. The engine is optimized for the display of the game, and makes use of a frustum culling method so as to only render the part of the world that is visible to the user at any given time. It is also optimized in a variety of other ways to reduce the need for any advanced graphics cards. The engine supports multi-texturing in a more traditional sense. In order to not negatively impact the processing of the game and tax the system, all textures are pre-rendered and not mixed using multiple passes within the rendering engine.
I am using a heavily modified user interface system that was packaged in one of the example projects with the release of DirectX 9.0 for the .NET framework. So in part, I must give credit to Microsoft for the foundation of the UI system. I've extended it to support a number of types of dialogs and new controls for the purposes of the game. These include the ability to right-click on any UI element and receive context sensitive help (like the original game). The UI supports most standard controls such as list boxes, check boxes, radio buttons, text boxes, buttons, slider bars etc. I've also incorporated modal and modeless dialogs, image controls, icon arrays, etc. The UI screens support transparency as well as image overlays (skins). Essentially everything that is needed to create rich control interfaces is available, all with the power of 3D acceleration (there is absolutely no use of standard Windows Form elements, everything is run through the 3D interface, keeping things fast, rich and smooth).
Part of the goal of the project is to create a set of rich editing tools to create custom worlds and scenarios as this was sorely missing from the original game and has become a staple of successful modding endeavors after a games release. Although the editing system is not complete (since the game isn't yet), I've been incorporating these tools as I move along in development. Currently it supports terrain editing and world generation through designation of between 1-10 land masses (islands). Far more capabilities will be added in the future, such as city and unit population, full terrain editing tools for designing segment interests, nodes, rivers, etc. The editor is not a separate program but fully integrated into the game in a very similar interface as the player uses to play and control the game. A series of HUD (heads-up-displays, loosely) have been designed, one is used for the main game interface, another for combat, and yet another for editing purposes.
The game supports random world generation as dictated by rules of the original game. This is planned to be extended to include a variety of user customizable parameters that will affect world generation. Currently, it supports just one such parameter, that of between 1-10 islands or land masses, to create a variety of maps from islands to large continents. Future parameters such as the size of certain land types, configurable terrain interests, resources, nodes, etc will be available as well. Also, aside from generating of Island terrain configurations, other types will also be available, such as one large continent, or worlds that are very cold, to worlds that mimic the the makup of our physical earth.
All terrain geometry and texturing is generated procedurally at the time of world creation, in somewhat randomized ways. This is beneficial in that there is virtually no chance of coming up with an exactly identical world formation with any two terrain maps, though it is possible through the use of seed values if one wanted. The other way this is beneficial is that visually, the world will not look like cookie-cutter reuse of the same terrain geometry objects or textures. Although various terrain types share common qualities and texturing methods, their looks will vary enough so that everything looks natural and flows nicely together. Through pre-generated multi-texturing, the terrain types blend nicely together and have varying levels of detail that pertain to the particular terrain type. Furthermore, the coastlines are also randomely generated using some advanced techniques so the coasts look more natural and less blocky as in the old game, or previous iterations of this one.
Combat maps are seeded battlefields, what this means is that each segment on the overland map has a specific value associated with it that dictates the makeup of that combat battlefield. The advantage to this is that if you were to enter combat on the same segment more than once, you would notice the battlefield doesn't change and is roughly the same as when you fought on it last time. Although conditions may change, the physical layout will be the same. This is of particular importance when defending or attacking points of interest such as cities and nodes as many battles are likely to be fought over them and it is to the players advantage to design tactics specific to the individual battles, dependant on the terrain makeup. This also creates a stronger feeling of coherence between the overland map and the individual segments, the detailed combat terrain will reflect the visual appearance of the same terrain segment in the overland map.
A new feature that wasn't included in the original Master of Magic are weather systems. These weather systems will be able to be seen on the overland map in the segments in which a weather system of interest is occuring. The changes in weather will dictate loose laws of weather as an added strategical focus concept for the game. The goal is for weather to play a part in the larger dynamic of handling combat in that weather will have varying affects on the battlefield that may require changes to an intended strategy. Current weather systems include both rain and snow, though others are planned.