Giter Club home page Giter Club logo

fantasy's Introduction

Fantasy高性能服务器框架

Fantasy服务器框架源于ETServer框架,但Fantasy极为简洁,基于Fantasy开发的服务端程序,可用于游戏服务器,物联网服务器,应用程序服务器等。 Fantasy框架易于学习易于使用,只需要在服务端引用Fantasy.Net即可。
目前提供了Unity前端应用参考,前端主要添加Packages中的Fantasy.Unity,也可以按需要添加Fantasy.FairyGUI,Fantasy.HybridCLR。
后续计划增加Fantasy Go版本,和Unreal前端应用参考。

框架网站: https://www.fantsida.com/fantasy

Quick Start

▷ Hello Fantasy项目及视频课程

Hello Fantasy是一个.Net的分布式服务器框架Fantasy中自带的一个简单实践demo项目,旨在帮助开发者应用Fantasy框架构建网络游戏或网络通信项目时,快速导入框架package,实现基本的服务端部署,也能快速通过简单的代码了解基本的消息通信。它提供了一组工具和组件,用于处理游戏世界中的各种实体、逻辑和交互。
课程学习地址: https://www.taikr.com/course/1455
也可以在b站免费学习,待上传更新地址...

Fantasy 功能介绍 后续更新中。

使用指南

1.安装.NET 8.0 SDK
2.指定项目使用的.NET 8.0
已安装有更高版本.NET SDK时,需要在Fantasy根目录下,添加 global.json 指定使用.NET 8.0
3.前后端项目导入框架Package

交流与讨论:

学习交流网站: http://www.taikr.com
__讨论QQ群 : Fantasy服务器开发交流群 656091376 __

fantasy's People

Contributors

alextangxiao avatar fired-caked avatar qq362946 avatar roubincode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

fantasy's Issues

导协议时,复杂的列表不能导出

/// 商店列表请求
message H_C2G_HallShopRequest // IRequest,H_G2C_HallShopResponse
{

}
/// 单个商品
message HallShop {
string Name = 1;
int64 Cost = 2;
}
/// 商品列表返回
message H_G2C_HallShopResponse // IResponse
{
repested HallShop List = 1;
}

image

ExcelTemplate.txt 模板可以扩展一下

GU @C9X8IFJBUEHQLDB}}AH

添加一个获取所有属性名的函数:

public PropertyInfo[] GetProperties()
{
    var t = typeof((ConfigName));
    return t.GetProperties();
}

方便通过属性名去获取值。

案例:
多语言文档遍历数据到字典的子字典。

var localizationList = LocalizationData.Instance.List;
_phrases = new Dictionary<string, Dictionary<string, string>>(0);
// 获得类的所有属性名
var lang = LocalizationData.Instance.GetProperties();
for (var i = 2; i < lang.Length; i++)
{
    var p = new Dictionary<string, string>();
    for (var j = 0; j < localizationList.Count; j++)
    {
        var local = localizationList[j];
        // 通过属性名去获取对于的值
        var localProperty = local.GetType().GetProperty(lang[i].Name);
        if (localProperty == null) return;
        var value = localProperty.GetValue(local, null);
        p.Add(localizationList[j].Key, value.ToString());
    }
    _phrases.Add(lang[i].Name.Insert(2, "-").ToLower(), p);
}

Fantasy.Net包的库应该去掉EPPlus库,换成微软库

去掉
		<PackageReference Include="EPPlus" Version="6.2.10" />
换成
		<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
		<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="7.0.0" />
		<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />

打包Release失败,因为缺少两个提示禁用CS8618,CS8632

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
  <DefineConstants>TRACE;FANTASY_NET</DefineConstants>
  <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
  <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  <NoWarn>1701;1702;IL2121;CS8603;IL2121;CS8625;IL2121;CS8618;CS8622;CS8632;CS8602;CS8603;CS8600;CS8625;CS8600;;CS8604;CS8601;SYSLIB0023</NoWarn>
</PropertyGroup>

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.