Blite: Direct3D

Blite 3D

When I began to program in C++, I’ve found I can do so much more than I could with Visual Basic. With C++ being faster, I’ve been slowly converting over all my code from Visual Basic into a DLL for Visual Basic to use, to the point where my DirectDraw code is within the DLL.

So the natural order of it was to start writing programs in Visual C++, removing the need for Visual Basic. And instead of DirectX7, I’ve moved onto DirectX8 where DirectDraw doesn’t exist anymore, instead 2D must be done using 3D, so I have began making my Blite game in 3D.

I made a model in Milkshape3D, which I then exported to the DirectX mesh format known as “.x” files. However since I didn’t understand about textures at the time, the same texture got applied to everything as shown in the image due to my combining meshes in Milkshape3D.

Using my first scripting language I created, the camera would rotate around the center of the pedestal. At the time I found that it strangely worked faster than actual machine code, only to then realise that I was running in debug (I didn’t know release mode existed).

RPG Architech: Visual Basic

RPG Architect - Map DesignerKnowing more about Visual Basic than C++ at the time, I decided to make my own RPG Maker to give back to the community since the one translated by Don Miguel was illegal.

Since a lot of functionality within Visual Basic was slow, I complimented the code in Visual Basic with a dynamic link library I made in Visual C++. The rendering was done using DirectDraw, and using Windows APIs, I made the corners of the window curved.

RPG Architect - Expanded Map DesignerI updated the colour scheme, and added more options for the map editor, which was slowly becoming more of a game editor I intended it to be. I think at the time I had just switched over from Windows 98SE to Windows XP.

I was also using a time based action system, so at first times on the map, NPC objects could do different things.

RPG Architect - Item DatabaseI eventually changed the colour scheme back, and like RPG Maker 2000, I decided to add a database for items, players, etc.

Unlike RPG Maker though, I added the ability to script the formula functions for determining level, exp, hp, mp, etc values.

Blite: Others Custom Screens

cms_14As mentioned previously in the Custom Menu System entry, you can select the menu colour on the configuration menu. I tied it further into the game by added the ability to change the text speed, after hearing about Final Fantasy 10, I decided to add the option of ABS (Active Battle System), but in the end removed it since it would require massive changes to the game as it was.

css_1

Within the configuration menu, the world map and where you were could turn toggled on or off as well. I can’t quite remember what the “Show Information” was intended for, but it was never completed.

When playing other games made in RPG Maker 2000, I found one that used quite an ingenious method of showing where the game was being saved by swapping the first player with a character named with the save location.

So I decided to adopt that into my game as well, and eventually I planned to making a faceset for the locations as well so an image would be displayed as well as the text.

Blite: Custom Equip Screen

Blite - Custom Equip Screen 1Since Blite was using a Custom Battle System, the old equipment system no longer worked to increase the attributes of playable characters, so I had to add a custom equip screen.

I decided since it was custom, I might as well add additional features.

So I added additional attributes to the player status, as well as weapons, shields and trinkets to improve these features, as well as to teach magic spells like in Final Fantasy 6 and 9.

Blite - Custom Equip Screen 2Eventually I decided to remove the evade attribute, which would now be calculated based on defense and speed, this gave more spacing between them (before they seemed to tightly squished together).

However now that the attributes could be shown and were working (rather than being forced set), equipment needed to be swappable.

Blite - Custom Equip Screen 3Using the same basic idea that I used for the custom item menu, whenever a weapon, armor or trinket was selected, a list of similar items were listed as well.

So if you selected an armor socket, a list of all armor items that player is holding will be listed in a scrollable list.

Now there was only one thing needed to finish off the equipment screen, when selecting an item to equip, show how it affects the individual attributes.

Blite - Custom Equip Screen 4To do thing, I stored the original values, and then hot swapped the item being selected and got the new value before swapping it back to the original.

If the values were not different, they would remain white. However if the new value was less than the old value, then it would be grey, otherwise if it was greater, then the value was be yellow.

Now my custom equipment screen was finished, all that would be needed now is the graphics cleaned up.

Blite: Custom Status Screen

cms_8Since I’m using a custom menu system for Blite, that also means that I need to make my own custom status screen to replace the default one.

One reason for this is there is no way just to show the default status screen, and also it would be out of place from the style I’ve used for the custom ones.

The playable character names were created using a custom name system, rather than using fixed names that RPG Maker 2000 forces you to, I instead created a popup keyboard where players could enter their own name, this is then stored into variables.

cms_9To display the name of a character during a message, all the variables that contain characters for the name just need to be displayed in a message box using the escape characters for showing variables. I think for RPG Maker 2000, it was something like “\v[1]\v[2]” or something like that.

The faith attribute which was a new feature to my game, was a percentage chance to be resurrected or healed in a region if your are in trouble, which could be increased by doing quests for the resident Gods.