GDE技术方向新想法

游戏引擎技术选型思考
本文探讨了在游戏引擎开发中遇到的技术瓶颈,并基于此提出了从Silverlight转向WPF+C#与Lua的技术路线调整方案。文章分析了新技术路线的优势,包括更好的本机能力访问、更高的开发灵活性以及更强大的脚本支持。

我真不想做一个朝三暮四的人

但我涌泉般的思维以及强烈的想走上正规的思维,令我不得不重新审视和决定我们开发的技术路线。

然后这种强烈的欲望促使我写下这篇文章。

 

之前实验了一段时间 silverlight,对它的一些基本功能算稍微了解了。它在对我们的引擎开发局限了很大一部分:

 

1. 由于其是客户端插件技术,对本机能力访问严重不足。

2. 基于WEB,强烈的把我们的游戏定位在“小游戏”级别。而且对没有太多开发经验的我们这点很不好。

3. 慢。虽然微软为它的速度做了很大的调整,但是还是慢。

4. 与其他语言和第三方库交互的乏力。同样是为了安全问题。。大多第三方库、DLL、嵌入脚本语言都无法用……很不爽。

 

所以我在考虑整个技术方向需要再次调整。而且对于自己的定位也需要调整。

 

这两天看了铁血丹心论坛的几个出品游戏,感觉还是很牛逼的,特别是那个开源的基于SDL的lua版金庸,首先要感谢作者的无私,居然“版权所无,任意使用”。代码不见得很漂亮,架构也不是那么精卓,游戏速度也有点慢,但是还是让我学到了很多东西。然后是金庸水浒传,稍微看了一下,它认真的剧情设计、系统设定,虽然作为玩家我不是那么认同,但是从规模级别和创意来说还是很值得敬佩的。

 

那么按照我们之前的设计,在技术上、剧情上,可玩度上都完全无法超越。。。而且还未必能实现我们 引擎与逻辑完全抽离的 构思。

 

要实现抽离,我觉得必须嵌入 解释型 语言,使用一个方便、强大的平台作为引擎载体,在此基础上开发一套基于脚本的引擎级函数。然后再考虑在此基础上做各种开发工具。那么我们现在的金庸群侠传剧本、之前写的 天龙后传的剧本,应该是用同一个引擎开发。

 

那么,我的想法是WPF(C#)+LUA,用 WPF做核心(基于其方便强大的2D性能和C#支持类库),抽出LUA做脚本接口。

嗯……感觉这样才有点走上正轨了。

 

另外,游戏性的话,如果不做RPG地图。。还是表现力不够,还是应该做。。

然后整个游戏模式仿照 武林群侠传。(养成 + RPG地图 + 战斗)

 

战斗的话,既然我们要基于WPF做。。完全可以做即时的。。我靠~ 估计做出来就类似于 剑侠情缘单机版了,不过要比它的系统做的牛逼,特别是武功设定和AI方面。

 

想法有了,这两天需要继续调研和学习LUA等技术。。

### Google Developer Expert (GDE) 和 Graph Database Engine (GDE) 的概述 Google Developer Expert (GDE) 是一个由 Google 推出的计划,旨在表彰在特定技术领域中具有深厚知识和影响力的开发者和技术专家[^1]。这些专家通过分享他们的知识、经验和最佳实践来帮助社区成长。GDE 通常专注于某一特定的技术领域,例如 Android、Cloud、Web Technologies 等,并通过博客、演讲、开源项目等方式贡献给开发者社区。 Graph Database Engine (GDE) 并不是一个正式的技术名称,但可以理解为与图数据库引擎相关的技术概念。图数据库是一种专门用于存储和查询复杂关系数据的 NoSQL 数据库系统。JanusGraph 是一个典型的图数据库引擎示例,它可以在分布式环境中运行,并支持大规模的数据存储和查询操作[^2]。此外,JanusGraph 还可以通过 Google Kubernetes Engine (GKE) 部署,并结合 Google Cloud Bigtable 提供高性能的存储能力。 以下是一些与 GDE 相关的技术和工具: - **JanusGraph**:一个可扩展的图数据库,支持复杂的图结构和属性[^2]。 - **Apache TinkerPop**:JanusGraph 使用的图形遍历框架,提供统一的 API 来访问不同的图数据库[^2]。 - **GraphHopper**:虽然主要用于道路路由,但它也可以作为一个通用的图处理库[^2]。 - **Spatial4j**:尽管主要用于地理空间数据处理,但它也提供了与图数据相关的功能[^2]。 ### 示例代码:使用 JanusGraph 创建一个简单的图数据库 ```java import org.janusgraph.core.JanusGraph; import org.janusgraph.core.JanusGraphFactory; import org.janusgraph.core.attribute.Geoshape; public class JanusGraphExample { public static void main(String[] args) { // 打开 JanusGraph 实例 JanusGraph graph = JanusGraphFactory.open("conf/janusgraph-cassandra.properties"); try { // 添加节点和边 var node1 = graph.addVertex("location"); node1.property("name", "San Francisco"); node1.property("geo", Geoshape.point(37.7749, -122.4194)); var node2 = graph.addVertex("location"); node2.property("name", "Los Angeles"); node2.property("geo", Geoshape.point(34.0522, -118.2437)); node1.addEdge("connected_to", node2); graph.tx().commit(); } finally { graph.close(); } } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值