======Dungeons of Naleenis====== {{:projects:g9:banner.png?500x213}} Dungeon of Naleenis (DoN) is a 3D Action Role-Playing Game (ARPG) that combines elements from several similar game genres, which aims to create a unique and fun experience. The majority of the game is in a dungeon crawler scenario, where the player must navigate through procedurally generated levels. Cooperative play will be encouraged as players will be able to play in groups of up to 6 players, where their teamwork will be an important factor to their success. **Prof. Ebrahim Ghafar-Zadeh & Prof. Mark-David Hosale**, Course Directors https://www.youtube.com/watch?v=ez3eJVIssMY =====Developer===== ====Steele Xia==== Steele Xia is a 4th year Digital Media student at York University. He enjoys playing and making games. =====Design and Mechanics===== ====Controls==== Unlike “point and click” RPGs that use mostly the mouse, DoN will use keyboard for movement, and mouse for aiming and attacking. This decision was made because keyboard offers more complexity in movement, as it allows the character to move in four directions, while mouse allows only one. This makes combat much more interesting, as it will involve players having to actively dodge or block enemy attacks, where their actual skills are just as, if not more important than their virtual character's level. ====Combat==== DoN will not use a class-system typically found in RPGs. Instead, the player is free to build the exact type of character he or she wishes to. In the array of weapons available in the game, the player can choose to focus on adding skill points to a specific type of weapon, such as the one-handed-sword, or the bow. But since there is no class restriction, the player can also choose to spread the points evenly on both weapons to become more flexible in the battlefield, at the cost of being less proficient in either weapon. This makes characters much more diverse, and allows both well-rounded characters that are strong in singe player, as well as highly specialized characters that excel in multiplayer. {{:projects:g9:player dueling.png?500|}} This freedom allows players to create hybrid characters that are not commonly found in most fantasy games. For example, a typical staff-wielding wizard can instead use a sword for self-defence in melee, or even use a magically enchanted firearm with abilities that cannot be created by a conventional smith. ===Weapons=== There are three main categories of attack types: Melee, Ranged, and Magic. **Melee** Melee weapons are split into one-handed and two-handed weapons. One handed weapons generally have slightly faster attack speed, and allow an off-hand shield that can greatly improve defensive abilities. {{:projects:g9:player sword.png?200|}} Two handed weapons generally offer greater damage and range, which may allow more offensive characters. {{:projects:g9:player 2h sword.png?200|}} **Ranged** Ranged weapons are split into bows, crossbows, and firearms. Bows are the lightest ranged weapon, and can be loaded while moving. This allows very agile characters that use mobility to stay out of harm. {{:projects:g9:player bow.png?200|}} Crossbows are medium power ranged weapons, and require relatively low skills to wield. They are generally slow to reload, but are more powerful than bows with very good accuracy, and cheaper to craft. Crossbows may not be implemented in the first versions of the game. Firearms are the heaviest ranged weapons that are expensive to craft and take a very long time to reload, but deal the most damage. {{:projects:g9:player arquebus.png?200|}} **Magic** Magic attacks are split into three element types: Fire, Lightning, and Ice. Their exact effectiveness and uniqueness are dependent on the exact spell used. All magic attack cause elemental damage which cannot be mitigated by standard armour. {{:projects:g9:player firebal.png?200|}} ===Armour=== Mirroring the attack types, there are also three armour types: Heavy, Light, and Magic. **Heavy** Heavy armour are made out of metal. These provide a huge amount of armour value that can mitigate physical attacks such as those made by swords and bows. However, their weight will greatly limit the stamina of the user, meaning they will have to rely on their armour to protect them against attacks, as it will be difficult for them to dodge any. {{:projects:g9:player armour.png?200|}} **Light** Light armour are made out of wool. These provide some armour value, but are very light in weight, giving the user both a good chance of dodging attacks, as well as some protection against blows that do land on them. **Magic** Magic armour are made out of cotton. These are neither very light nor have much armour value. They are instead used by magic users that can provide them bonuses to magic damage and defense. ===Mechanics=== **Armour value** Armour value allow characters to mitigate incoming physical damage. A character with high armour value will take much fewer points of damage than one without. **Piercing** Spiky and blunt weapons have Piercing value which can mitigate defender's armour value. When a character attacks, the defender's armour value is subtracted by the attacker's piercing value. For example, when attacking a target with 30 armour, a weapon with 10 physical damage and 30 piercing will deal more damage than a weapon with 15 physical damage and 0 piercing. **Blocking** Shields can be used to block physical attacks when they are raised. As long as the armour value of the shield is greater or equal to the physical damage dealt, the physical damage will be completely avoided. In the case where the physical damage is greater than the shield's armour value, the defender will fail to block, but the shield will provide 5x (exact multiplier not finalized) armour value during the hit. {{:projects:g9:player blocking.png?200|}} **Parrying** Most weapons can be used to parry other melee attacks when no shield is equipped. Parrying an attack must be performed exactly when the attack is about to land, and if successfully parried, the damage will be completely mitigated. {{:projects:g9:player parry.png?200|}} **Stamina** Stamina is used to perform most physical actions such as sprinting or melee skills. A character with a large weight from their armour will very quickly deplete their stamina, making it less likely for them to continuously dodge attacks. **Weight** Other than stamina, the off-hand slot's (usually a shield) weight affects the attack speed of the main hand weapon. This makes heavy shields much more defensive, as the user's attack speed will be greatly reduced by wearing one. On the contrary, a light shield with little defence will allow the character to attack faster compared to a heavy shield. ====Skills==== {{:projects:g9:player mining.png?300|}} {{:projects:g9:player cutting.png?300|}} {{:projects:g9:player fishing.png?300|}} {{:projects:g9:furnace.png?300|}} ====Dungeons==== Most of the gameplay will take place in dungeons deep underground, where players will defeat enemies and do whatever they must to reach the end. To add replayability, these dungeons will be procedurally generated from predetermined pieces, so no two dungeons will ever be exactly the same. The generated dungeons also easily allow configurations, such as generating a larger dungeon for larger parties, or generating a more difficult dungeon for higher leveled players. {{:projects:g9:generation 1.png?300|}} {{:projects:g9:generation 2.png?300|}} =====Technical===== ====Level Generation==== The level generation is done by attaching many pieces of interchangeable 3D models together into a single dungeon. The algorithm used is extremely simple, as using more advanced algorithms would require solving geometry optimization problems, which is expensive both to implement and run. The algorithm first generates the dungeon's main path, which is a straight path that leads to the level's end, where a boss monster is located. During this generation, the path will always generate away from the starting point, preventing the possibility of colliding with itself. Once the main path is generated, secondary and other smaller paths are added recursively from random points along the way, creating the final level. There are a two main disadvantages of this simplistic algorithm: there will never be loops in the paths, and the main path will always generate away from the starting point. I believe these two shortcomings are not critical, and is worth avoiding the amount of work that would be required to implement a more advanced algorithm. {{:projects:g9:skeleton sergeant.png?200|}} {{:projects:g9:skeleton knight of naleenis.png?200|}} {{:projects:g9:golem boss.png?200|}} =====Timeline===== ====Fall Term==== ===Week 3:=== * player wsad movement * basic combat * basic NPC * placeholder player model ===Week 4:=== * dungeon models & transparent walls ===Week 5:=== * items, inventory with UI * interactive objects and loot ===Week 6:=== * player skills and stats * leveling ===Week 7:=== * resource objects * item crafting ===Week 8:=== * additional monsters, ?boss * improved combat ===Week 9:=== * skill tree UI * ranged and magic attacks ===Week 10:=== * basic town * shop and UI ===Week 11:=== * catch up * presentation ===Week 12:=== * catch up * finish presentation ====Winter Term==== ===Week 1:=== * Shop * Improved combat: blocking, parrying, stamina ===Week 2:=== * Other resource types * Additional chunks (level generation) ===Week 3:=== * Additional monsters * Additional equipment * Tiered equipment and items ===Week 4:=== * Skills (catch up) ===Week 5:=== * Catch up ===Week 6:=== * Multiplayer and basic menu =====Screenshots===== ====Pre-Alpha Screenshots==== {{:projects:g9:screen 1.png?500}} {{:projects:g9:screen 2.png?500}} {{:projects:g9:screen 3.png?500}} {{:projects:g9:screen 4.png?500}} {{:projects:g9:screen 5.png?500}}