Giter Club home page Giter Club logo

dragonsouls-unity3d's Introduction

Dragon Souls - Unity3D

Gameplay Video https://youtu.be/3ClnxE3wdPI
Game Highlights Video https://youtu.be/8mtgiGA0qd0
I attempted to create a third-person action game in Unity inspired by God of War, featuring Souls-like mechanics. I paid careful attention to optimizing the game. I used entirely free assets for this project. I found sound effects on the freesound website and royalty-free sounds on YouTube, often manipulating or combining them using digital audio workstations (DAW). I also made minor adjustments to obtain the desired animations. For the terrain, I prepared it using brushes and stamps, and I struggled mainly during the stage of finding suitable textures for the terrain. When using free assets, it can be challenging to maintain control over the artistic appearance of your game and ensure that different assets are cohesive. Nevertheless, I am satisfied with the Fortnite-like appearance that resulted.

I aimed to model the game's combat after God of War (2018). Since I couldn't find a suitable axe asset, I used a sword. Apart from that, I attempted to recreate various Souls mechanics within Unity.
Since I didn't plan the game in the beginning (it was just a project for trying some mechanics), some code patterns and principles have not been implemented perfectly, I'm aware of that. Also because of the same reason, I used both a state machine and a behavior tree structure. Skeleton enemies utilize the state machine, while other enemies use a different the behavior tree structures.

I used two royalty free theme music for this game from Alexander Hoff's youtube channel.

The game mechanics & systems

  • The sword can be thrown and recalled at will, similar to God of War.
  • Alternatively, combat can be continued using fists instead of the sword.
  • Enemies can be targeted (target system).
  • One enemy npc uses statemachine, other five enemy npcs use behaviour tree.
  • Behavior tree and a tool that visualizes the behavior tree using the UI Toolkit. (I learned and implemented this by watching The Kiwi Coder's YouTube videos).
  • Player can roll (dodge), sprint, heal. Any movement consumes stamina.
  • Souls of defeated enemies are collected, and these souls are lost upon the character's death.
  • Collected souls can be used to enhance attack power, armor, health, and stamina at the bonfires. At the beginning of the game, there are three types of armor available, and when armor is upgraded, this change can be observed on the player character model (material change).
  • Fast travel (teleportation) between bonfires is possible.
  • After player death, teleportation or bonfire rest events, enemies spawn back to their inital position.
  • Object pooling for every re-usable object. (dragon and mage projectiles, souls particles)

Enemies and AI

  • There are a total of 6 enemy NPCs: Skeleton, Mage, Minotaur, Bear, Slime, and Dragon (boss).
  • Each enemy has its own unique behavior pattern. I dedicated a significant amount of time to make them distinct from each other.
  • As mentioned earlier, only skeleton enemy doesn't use a behaviour tree, instead it uses a state machine.
  • You can find the different behaviour trees of enemies. (Behaviour tree of the dragon (boss) was too big so i couldn't find a way to screenshot it properly)
Slime

Minotaur

Mage

Bear

Dragon (boss)

In-Game Footage

dragonsouls-unity3d's People

Contributors

btuhany avatar

Stargazers

Sunder Iyer avatar  avatar Akın Haydaroğlu avatar M.Diky Oktavianto avatar  avatar  avatar Umut Kaan Özdemir avatar glimmerOVO avatar  avatar Enrico Speranza avatar  avatar

Watchers

 avatar

Forkers

bmjoy blizmax

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.