The Last Crusade
Background
In a world overrun by demons, a single man with God's hand on his side decided that it was time to take back the holy land.
This game is not made with conventional game development software like Unity or Unreal. Instead, it is made with the source engine. The game uses the XBLAH development tool to speed up the process of packaging and repository creation. This game is technically a mod for the game Half-Life 2.
This project was entirely self-taught. From simple programming to the rigging of the models. This game is a simple demo instead of a full game. This was done to gain more experience with different software compared to the usual development tools like Unity or Unreal. Hence why it looks different than the other projects for this game. I taught myself how to use the software as well as the process to make a small demo using the source engine.
Game Details
As previously stated, this game uses Half-Life 2 as its base, then modified into the game that is made on this portfolio. The game used the XBLAH modding tool. XBLAH is a source development tool that allows people to make games for source engine-based games. XBLAH allows the user to make a source-based mod/game without the hassle of setting up a repository. As well as reduce the error of wrong builds with the C++ setup.
The tool has other software built into it. The main one used is Hammer++. Hammer++ is the level editor and map creator. It makes the .bsp files that hold the code for the game to run off of. It is like the level files in Unreal. But it is a source-formatted file.
Currently, the game in this portfolio is made with the intention of it being a demo. Which means that the game is small compared to a full-on source game.
Enemy Types
In this demo, the player will have to face off against three different enemy types. Each type will be a little different from the others. Each enemy type is described bellow.
Section I
Enemy Type I: Melee
This is the first enemy type that the player will face off against in the demo. This enemy is found in all three sections of the demo. However, the first section will have the most enemies.
This enemy type only can fight with melee attacks. It has no long-range attacks. It will have the same style as the fast zombies from Half-Life 2. The enemy will have a hoard mentality and attack the player all at once.
The second section of the demo is where the player will have to face off against long range attacked demons. This space has large raised platforms. The player will be able to access those areas to fight the demons of this section. These platforms will have few props that the player will be able to hide behind for cover when they are fighting against the demons. The cover will be on top of the platforms as well as on the ground.
The cover on the ground will be spread around the medium sized area of the map section. They will be spread around to provide a hard; yet a challenge that the player is still able to complete.
Section III
Section III
As previously stated, each map section has a size. The first is the largest. The second being a medium. This section the third and final section. This one will be the smallest. The reason for this section being small is to provide the hardest challenge of the demo. The demo will have a final boss, and it will be in this section.
This section will have three platforms that the player is not able to access these platforms. Since the platforms will only be accessible to be accessed by the boss who teleports on them. There will be small holes on the sides of the map section where more enemies will spawn.
This section of the demo is meant to be the hardest of the whole demo. This is to make the demo last a little longer. After killing the boss, the demo will end.
Programming
In terms of programming for this demo. There was not a whole lot of it done. Yes, there was some, but not a lot. Since, I was new to the creation of a source engine game. I had to learn everything from scratch. The main that programmed was the teleportation loop.
So, the creation of a source game is different than its great grandchild of Unreal Engine. For the source, you will use both c++ as well as Hammer Editor. I am using Hammer Editor++. For the programming that I did for this project. I was using logic boxes. Hammer++ has these simple-to-do trigger/logic boxes that allow for different functions to be triggered based on an event. This box above is the teleportation loop. There are four of them in total. This one is the first. It will not trigger the next one for ten seconds, but the other three are the same, and they trigger the next faster.
All of the hammer programming is done using these logic boxes. There are multiple little things, but each event is triggered by these boxes. The other programming thing that is of note is the spawner for the first demon.
In short the logic box to the right will set the names for the first demon and tell it where they are to spawn. As seen in the video, they will just begin to wander around in the first section of the map.
Problems/Solutions
In every single game every made, there will be problems, and this project had some. The first of which is my lack of knowledge of the software and the process to make a source game.
The first problem was prevalent throughout the whole development time. The first issue was how to start developing. All around the internet, it says to use Visual Studio 2013 to make the game. However, this proved to be false. Since the way that most people did it was to make the on-device repository. After a few weeks of struggling to figure out what went wrong. I found a very helpful tool known as XBLAH.
The above image is a screenshot of the main modding tool for the Source engine known as XBLAH. This tool proved to be very helpful in the creation of the game. The reason for this is that the tool automatically sets up the repository for the game. This helped things progress more easily, and with the original speed of getting the demo done within a few short months.
And with this tool, the software provides another tool known as Hammer ++.
This is a screen shot of the Hammer ++. Which is the closet tool to Unreal that is used for the game. This tool is the compiler as well as the map creator. This tool is the man tool that was used other than the XBLAH modding tool. This tool allowed for the creation of the main map that was used for the demo. In this tool, I managed to make the demo with the problem of lack of knowledge, and the fix for this was to make more source engine projects/games.
The other issue that I ran across was the rigging.
dogheart
Enemy Type II: Long Range
The second enemy type that the player will face is the long-range enemy. This enemy type will be featured in the second and third sections. This enemy will be able to have only long-range attacks to fight the player.
This enemy type will have the base of either combine or elite combine from half-life 2. The enemy will be placed on the platforms that the player will be able to access. They will also be on the ground. They will act closer to the combines from half-life 2. This means that they will not have a hoard mentality. They will instead operate like a typical army.
Enemy Type III: Boss
The final enemy type is the boss. This enemy is the hardest to defeat. Hence why it is the boss, the boss will mainly be on the ground to fight the player. The boss will be able to teleport up to the platforms to dish out long-range attacks against the player. The boss will have both melee and long-range attacks.
The boss will be the main enemy type with exclusive programming to give it the ability of teleportation as well as its special attacks. The other ability that it has is to summon the other two enemy types.
Map
As previously stated, this game uses Half-Life 2 as its base, and then is modified into the game that is made for this portfolio. The game involves the player taking control of a Templar knight who is on the last crusade to take back the city of Jerusalem from the demons that came out of a portal from hell during the First Crusade. The story involves the player navigating a demon-controlled Jerusalem.
The map is broken up into three sections. Each one will contain a different enemy type. Enemy types are found in the enemy section of this page. The first area is a pit that the player starts in. This area is where the player finds the first enemy type. The second area is a larger space where the player will find the second enemy type. This space has perches and high points for enemies to shoot the player from. The third type is a smaller space. This space is designed to have close-quarters combat with the final boss in this area. The space will also have perches similar to the second space where the boss can teleport onto for the player to use long-range attacks.
Below are the sketches of the maps as well as pictures of the models.
Sketches
Section II
Sketches Break Down
This section is the break down for each of the above sketches. Each sketch is a section of the map for the demo game, the last crusade. Each of the sketches are low in detail to allow for the freedom to add whatever is needed into them in the Hammer++ editor.
Section I
The first section is where the player will start off. In this section, the player will face the first enemy type. Enemy types are found in the enemy section of this page. The will have to face off the hoard of enemies that come out of the hole. The red arrow points at the hole. This hole is the exit of the first area and leads into the second.
This first section is the biggest in terms of space to move around. The space is flat with no props or scenic pieces on the ground where the player is able to move. The player will be able to move onto the next section after they take out the demons that come from the hole.
Section II
Andrii Chykrii
First Demon
Second Demon
cellularshy
The first thing that I would like make clear is that I did not model the enemies or the sword for the game. The other assets were already in the source engine. Each model was found on cgt trader. However, the rig is all mine.
Boss
The models first had to be decompiled from the source engine game. This was done using a crowbar. Crow bar then gets the .qc file from the .mdl file. The .qc file is then loaded in Blender. The way I did things may not be the most correct or even the fastest way to get things done. However, it proved to be the way that worked best for this project due to my lack of knowledge with the source engine format.
Once the .qc file is loaded in Blender. I combined the original mesh with the old mesh of the Half-Life model to create the model for the enemy that was used in the demo. The reasoning for this is the .qc file. Because I exported the model to an SMD file. (A source model type) The .qc file will then need to be compiled to the mdl once again to have it appear in the engine. I then had to weight paint the new models so that the little dots, the bones, would move the model.
The boss is the only one whom I took the risk of using the actual model. I did not erase the original one. Instead, I shrank it so small that it would not appear. This was the last issue that I had to do for the game.
Each of the models had to use the default Half-Life textures. Since everything is controlled by the .qc file. The .qc is the blood of making a model for the source engine. This is what I learned from this project. Below is the rigging of the sword.
Huseyin Ezirmik
Lessons Learned
I was taught many things when making this game. The first of which is how to make a source engine mod/game. This lesson was the main focus of this project as to further my knowledge of game development as a whole.
The other lesson is that making a source game takes a lot of time. When making this project. I underestimated the process for the creation of The Last Crusade. This time that it took was greater than was expected. This was due to me having little knowledge of the game creation process for source. This is from the programming to the rigging. All of which i had to teach myself, since the lack of tutorials is somewhat lacking or confusing. The greatest resource that I used for the game was the valve documentation.
This was also the same process for the rigging of the models. I had to go off virtually nothing. I had to figure out everything to get the models to appear as intended for the game. I figured it out, but it took some time to figure out that the creation/rigging of the models even if they are premade assets are still a lengthy process.
However, after it all, I was able to create the demo, The Last Crusade.