游戏引擎开发难不难,十大最牛游戏引擎
在这段时间里 , 我逐渐认识到了一个JVM上的原生游戏 。
引擎 , 写一些心得体会 。欢迎参观源代码:https://github.com/icela/FriceEngine
一个
原因和理由
想弄个游戏 , 勉强上手Unity , 却找不到合适的教程(估计商业化太严重了) 。现在Unity已经到了Hello World的水平 , 但是因为这个 , 我装了Project Rider EAP和Visual Studio 2015 , 这两个都不是很好用 。但是我见过宇宙最强的IDE , 也没有之前听说的那么差 。这是一个很好的主意 。但我心里最强的还是IntelliJ IDEA或者Android Studio , 哈哈 。
呃 , 因为我最熟悉的语言都是JVM的 , 加上之前用https://github.com/lfkdsk/JustWeEngine开发https://github.com/icela/StudioVSEclipse,的经验 , 我有了自己开发游戏引擎的想法 。首先 , JVM平台资源丰富 , 有一次编写 , ~ ~调试~ ~随处运行的优势 。再加上Java程序员众多 , 我决定用我心爱的Kotlin来做这样一个游戏引擎 。
2
提前说 。
想说“没代码 , 说JB”的 , 可以直接看我引擎的源代码 。如果你能理解科特林 。我不想在这个系列中放太多代码 , 因为这样会使我的文章具有平台依赖性 , 不适合非JVM工作者阅读 。我希望 。Net工作者 , C++工作者 , 前端等各行各业的人都可以看我的自制引擎的博客 。
三
第一件事 。
当然是很帅的名字 。。。
当我想到引擎时 , 我做的第一件事就是把https://github.com/lizhaohan001,这个JVM内部人员拉过来 , 然后我成立了一个专门从事游戏开发的组织 , https://github.com/icela, , 把城堡游戏扔了过去 。
然后我把我的名字和https://github.com/lizhaohan001's的名字拼在一起 , 组成了这台发动机的名字 , 叫做冷冰 。英文名本来是打算直译的——freezed Engine , 但是我搜索的时候发现已经有一个HTML5游戏引擎有这个名字了 , 于是我把元音和后面的辅音改成了一个 , FriceEngine 。
四
第二件事 。
当然是构思整个框架 。。。
我选择采用与JustWeEngine和Android原生App相同的生命周期模型 , 但我个人认为JustWeEngine的设计有问题 , 文档非常简单 。按照作者的口述 , 他自己用的时候还得看源代码 。这说明他的格局有问题 。所以我要重新设计 , 尤其是动画和碰撞 。
不过 , 这么早想也没用 。先架起来 。你需要一个游戏基类 , 里面有一堆抽象的生命周期方法 , 然后在运行时分别调用它们 。我设计了以下生命周期方法(内容摘自引擎帮助文档):
OnInit|初始化时调用
【游戏引擎开发难不难,十大最牛游戏引擎】OnExit|当用户按下退出键时调用 。
OnRefresh|尽快调用并刷新方法 。
OnClick(OnClickEvent)|当鼠标点击时调用
OnMouse(OnMouseEvent)|当鼠标状态改变时调用 。
OnLoseFocus(OnWindowEvent)|当您失去焦点时调用
OnFocus(OnWindowEvent)|获得焦点时调用 。
不是很简单吗?至于键盘事件 , 就让开发者自己注册吧 。反正也不复杂 。我帮你省了很多代码 。
然后我的游戏类继承了Frame作为主窗口 。你可能会问 , 你在做什么?不需要用awt的框架搭配Swing JFrame 。这不是落伍了吗?我只能说幼稚 , 因为awt不具备可扩展性 , 但是据说(只说是我的GUI书说的 , 如果我看错书的话)awt比Swing快 。对于这个几乎充满轮子的项目 , 我怎么能需要使用GUI控件的可扩展性呢?我只需要一个空可以放图片的房间 。
但是 , 我选择了Swing control来显示图片 , 并向其中扔了一个JPanel 。因为Panel未能实现双缓冲刷新 。
现在框架定了 , 下一步怎么办?
五
第三件事 。
每个人都可以写图像处理 , 读图刷到一个窗口 。先不要急着做双缓冲 , 先直接显示 。所谓的双缓冲多占一点空空间 , 对于现在的电脑来说没问题 。不要管那么多 。但在此之前 , 让我们启动引擎 。
六
第四件事
游戏必须刷新 , 所以我学习了JustWeEngine让游戏基类实现runnable , 然后重载了Run方法 。在构造方法的最后一句 , Thread(this) 。开始 , 林挖她的头!
推荐阅读
- 打开网络和共享中心没有本地连接怎么办,需要的朋友速速收藏
- 王书麒|不是剧本!《大湾仔的夜2》陈小春吐心声,一开始就不喜欢吴卓羲
- 百姓网创始人王建硕个人简介,他教你如何高效地开会
- 直通车开通条件是什么,其开通流程介绍
- 小程序插件开发流程介绍,小程序可以用外部插件吗
- 苹果的备份文件在哪里打开,带你了解苹果手机的使用技巧
- 最火的社交游戏排行榜,究竟哪个游戏位入榜首呢
- 做seo需要多少钱,搜索引擎优化技巧
- 虚拟货币开发需要什么条件,十大虚拟货币交易平台
- 最新游戏笔记本有哪些,2019品牌游戏笔记本排行榜