工作累了,用java写个游戏吧!开源一款游戏引擎

6,439 阅读3分钟

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

吃喝玩乐是人类的基本需求,只有繁重的工作,生活完全没有乐趣,与上世纪的奴隶没什么区别。游戏作为一种生活的调剂品,占据了大部分人的生活。凡事过犹不及,all work || all play都会对个体造成不可磨灭的损伤。工作累了,不如使用熟悉的开发语言,自己做一款游戏。虽然粗糙,但那是自己的作品---一些想对这个世界说的话。

本次开源的游戏引擎叫做c2d-engine,基于Java界最流行的游戏框架Libgdx,偏底层。虽然没有一些专业的游戏引擎功能齐全,但使用它,可以做一些跨平台的复杂游戏。

比如下面这个游戏,可以实现一些非常酷的效果和逻辑。

口说无凭,你可以下载到电脑上试试。

https://gitee.com/xjjdog/download/raw/master/digger-desktop.jar

下面这张图,是游戏引擎内置的Box2d物理引擎场景编辑器。可以模拟2纬世界的所有物理动作。

体验链接在这里:

https://gitee.com/xjjdog/download/raw/master/c2d-box2d-tools.jar

下面是游戏引擎的一些信息。

git地址为:

https://github.com/xjjdog/c2d-engine

目前是2.0.0版本,使用maven即可引入:

<dependency>
      <groupId>com.github.xjjdog</groupId>
      <artifactId>c2d-core</artifactId>
      <version>2.0.0</version>
</dependency>

主要的功能模块有:

  • 跨平台
  • 资源管理:图片、音效、音乐
  • 自定义资源加载,资源加密
  • 事件管理,随时接受和发送事件
  • 多游戏场景管理,游戏场景切换效果(内置16种)
  • 多层视差,无限循环图层支持
  • 启动界面自定义(内置5种)
  • 摄像机跟随,3D效果
  • 多种背景效果:动图、Mesh、Surface
  • Analog控制模块
  • UI设计体系
  • 简单粒子系统
  • 物理引擎Box2d编辑器
  • 多个效果示例(水波、闪电、渐变等)
  • GLSL支持

可以说一下自己的一些感受。游戏客户端开发虽然没有什么高并发之类的挑战,但是对代码的组织能力要求也是有的,很容易就造成了代码的膨胀,复用在这里显得格外重要。

当然,游戏最重要的是策划、图片和音效,程序员只管码字,它是一个团队合作的结果。

我一个常年搞服务端的人,也非常的迷恋游戏开发。这款游戏引擎是很多年前的作品,当时idea还不流行。正好最近有朋友想要开发一款2D游戏,于是xjjdog借着这个机会,抽周末时间重构了一下代码,现在能够流畅的跑在maven环境里了,Idea无压力。

考虑到有不少同学也有自己搞一款游戏的梦想,也可以修炼自己的编码水平,于是就把它放出来了。

同时,欣赏了一下自己多年前写的代码,真的是不忍直视!

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,​进一步交流。​