All Projects → delmarle → Rpg Core

delmarle / Rpg Core

Licence: other
UNITY engine RPG framework

Projects that are alternatives of or similar to Rpg Core

Newbark
🌳 A proof-of-concept Pokémon-style Retro RPG engine created with Unity.
Stars: ✭ 129 (-11.64%)
Mutual labels:  game, unity, pokemon, rpg
Diablerie
Diablo 2 reimplementation on unity
Stars: ✭ 363 (+148.63%)
Mutual labels:  game, unity, engine
Nice Lua
基于xlua的MVVM框架,支持Addressables, 统一渲染管线等Unity新特性
Stars: ✭ 207 (+41.78%)
Mutual labels:  game, unity, engine
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (+348.63%)
Mutual labels:  game, unity, rpg
Exengine
A C99 3D game engine
Stars: ✭ 391 (+167.81%)
Mutual labels:  game, engine, fps
Creature ue4
Unreal Engine 4 Runtimes for Creature, the 2D Skeletal + Mesh Animation Tool
Stars: ✭ 174 (+19.18%)
Mutual labels:  game, engine, character
Simplexrpgengine
Modular game engine built with MonoGame, with GMS2-like workflow and advanced level editor
Stars: ✭ 122 (-16.44%)
Mutual labels:  game, engine, rpg
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-18.49%)
Mutual labels:  game, unity, fps
Opentomb
An open-source Tomb Raider 1-5 engine remake
Stars: ✭ 1,035 (+608.9%)
Mutual labels:  open, game, engine
Lamiae
Lamiae - A Most Prestigious RPG Engine/Simulator derived from Cube 2 (Sauerbraten) and friends
Stars: ✭ 57 (-60.96%)
Mutual labels:  game, engine, rpg
3 Modifiers And Abilities
Customise character abilities, weapons, characters and enemies. This includes multiple damage types, modifiers, sounds, animations. By the end you can create your core combat experience. (REF MA_RPG) http://gdev.tv/rpggithub
Stars: ✭ 64 (-56.16%)
Mutual labels:  game, unity, rpg
Pokemonunity
A framework to build Pokémon RPG games.
Stars: ✭ 934 (+539.73%)
Mutual labels:  game, unity, pokemon
09 Zombierunner Original
First person shooter with Unity terrain and AI pathfinding (http://gdev.tv/cudgithub)
Stars: ✭ 64 (-56.16%)
Mutual labels:  game, unity, fps
1 Character Movement
The first section of the course. You will learn everything required to build a simple movement system in your RPG, creating the core experience. http://gdev.tv/rpggithub
Stars: ✭ 81 (-44.52%)
Mutual labels:  game, unity, rpg
Cboe
Classic Blades of Exile
Stars: ✭ 115 (-21.23%)
Mutual labels:  game, rpg
Ipokemon Server
iPokeMon Server.
Stars: ✭ 119 (-18.49%)
Mutual labels:  game, pokemon
Infinity Square Space
Infinity Square/Space. The prototype of the game is open source. Unity Asset.
Stars: ✭ 122 (-16.44%)
Mutual labels:  game, unity
Openmmo
OpenMMO - Groundwork
Stars: ✭ 115 (-21.23%)
Mutual labels:  game, rpg
Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (+1306.85%)
Mutual labels:  game, engine
Sgf
This is a Smart Game Foundation (Not Framework)
Stars: ✭ 122 (-16.44%)
Mutual labels:  game, unity

Documentation Status Discord Unity Version: 2019.3.0f6

What is Core RPG?

A framework that want to simplify creation of RPG games but still provide flexibility, making it easy make any type of game with included functionality. If the game you want to make is not possible out of the box, it will be very easy to extend.

Requirement:

  • Unity 2019+
  • Adressables
  • Dotween is optional

Feature list:

  • Saving system
  • hotswappable Mechanics:
    • Swappable character creation
    • Swappable Ui
    • Swapable character Controller / input / camera
  • Stats: Attributes, Vitals, Statistics, Elements
  • Characters: Races, Player classes, Npcs
  • Party, switch Character
  • Factions
  • Abilities
  • Skills
  • World, Scenes Data, Spawners, Portals
  • Interaction: Button, harvestNode, portal, chest
  • Spawning for characters and any objects, use rules and state can be saved
  • Items with different types and functionalities.
  • Container, for players inventories or chests..

What is in progress:

  • Equipment
  • Character AI

Next features:

  • Status Effects extended
  • Hate system
  • Counters system
  • Quest system
  • Crafting

How flexible it is?

  • none of the stats / skills / names / vitals / Character creation, Ui whatever are hardcoded, they care configured through editor.
  • each character will instantiate a scriptable object "calculator" that will be responsible for calculation, tell other component what to do.
  • hot swappable Mechanics feature, that allow you to change controls, component, inputs of your game in a click of a button. that mean you can use ClassicRpgMechanics to have a team based rpg, then change to FPSRpgMechanics and your game will play like skyrim. this does not need to reconfigure your data or your scenes

How to:

How to create my Own mechanics:

Simply override CharacterBuilder to create you specific builder for players, npcs, pets. Then assign it to you any of your mechanics: alt text

using System;
using System.Collections.Generic;
using UnityEngine;

namespace Station
{
    [CreateAssetMenu]
    public class PlayerCharacterBuilder : CharacterBuilder
    {
        

        public override Type GetMatchingType()
        {
            return typeof(PlayerCharacterType);
        }

        public override void Build(BaseCharacter character, BaseCharacterData baseData, object[] data)
        {
           var dbSystem = RpgStation.GetSystemStatic<DbSystem>();
            var classDb = dbSystem.GetDb<PlayerClassDb>();
            var ActiveAbilityDb = dbSystem.GetDb<ActiveAbilitiesDb>();
            var PassiveAbilityDb = dbSystem.GetDb<PassiveAbilitiesDb>();
            PlayerClassModel classData = (PlayerClassModel)data[0];
            PlayersData save = (PlayersData)data[1];
            var model = classDb.GetEntry(save.ClassId);
         
            if (model.StatsCalculator)
            {
                var calculatorInstance = Instantiate(model.StatsCalculator, character.transform) as PlayerCalculations;
                if (calculatorInstance == null)
                {
                    Debug.LogError("missing calculator");
                    return;
                }

                calculatorInstance.PreSetup(classData);
                
                character.Init(baseData.CharacterId,save.RaceId, save.FactionId, save.GenderId, calculatorInstance, save.Name);
                character.SetupAction(model.Attack);     
                character.AddMeta(StationConst.CLASS_ID, save.ClassId);
                character.AddMeta(StationConst.CHARACTER_ID, data[2]);
                character.AddMeta(StationConst.ICON_ID, model.Icon);
                character.gameObject.name = "[player] "+save.Name;
                
                character.SetupStats(model.HealthVital,null,model.EnergyVitals.ToArray());
                character.Stats.SetVitalsValue(save.VitalStatus);
                character.GetInputHandler.InitializePlayerInput(PlayerInput.Instance);
                
                #region ABILITIES
                //load from save
                List<RuntimeAbility> tempList = new List<RuntimeAbility>();
                foreach (var ab in save.LearnedActiveAbilitiesList)
                {
                    var ability = new RuntimeAbility();
                    ability.Initialize(ActiveAbilityDb.GetEntry(ab.Id),ab.Rank ,ab.CoolDown, character,ab.Id);
                    tempList.Add(ability);
                }
                character.Action.SetAbilities(tempList, character);
                
               //set binds
               var binds = new Dictionary<string,List<BarSlotState>>();
               var mainBarBinds = new List<BarSlotState>();
               foreach (var barState in save.BarStates)
               {
                   if (barState.Id == "main")
                   {
                       mainBarBinds = barState.Slots;
                   }
               }
               binds.Add("main", mainBarBinds);
                character.Action.BuildBinds(binds);
                //passive Abilities
                List<RuntimePassiveAbility> passiveList = new List<RuntimePassiveAbility>();
                foreach (var ab in save.LearnedPassiveAbilitiesList)
                {
                    var ability = new RuntimePassiveAbility();
                    ability.Initialize(PassiveAbilityDb.GetEntry(ab.Id),ab.Rename, character);
                    passiveList.Add(ability);
                }
                
                character.Action.SetPassiveAbilities(passiveList, character);

                //skills
                
                
                #endregion
            }
            else
            {
                Debug.LogError("MISSING CHARACTER CALCULATOR");
            }

        }
    }

}

Documentation: WIP https://delmarle-damien.gitbook.io/core-rpg/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].