GitHub 上的优质开源游戏项目,每个都很厉害

GitHub 上的优质开源游戏项目,每个都很厉害,第1张

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是几个优质的开源 游戏 项目。

Ancient Beast是一款基于回合制的策略独立 游戏 项目,可在线与其他人对战,获取各种各样的生物,并使用它们来击败你的对手。

项目地址:https://github.com/FreezingMoon/AncientBeast

Dark Days Ahead 是一款回合制生存 游戏 ,背景设置在后世界末日的世界中。 游戏 目标是努力在一个严酷、持久、程序生成的世界中生存,战斗以击败或逃离各种强大的怪物,从僵尸到巨型昆虫,再到杀手机器人以及更奇怪和更致命的东西。

项目地址:https://github.com/CleverRaven/Cataclysm-DDA

游戏 全部使用c++开发,相较于原版的优势有更大分辨率,更好的画质,更高的刷新率。 游戏 中的属性与原版有较大差别,难度比原版稍难,有新的 游戏 模式等。

项目地址:https://gitee.com/GITLZ/PlantsVsZombies

金庸群侠传3D重制版是一个回合制战棋战斗开放世界RPG 游戏 。它是一个非盈利 游戏 项目,项目目标为重制经典 游戏 《金庸群侠传》(在线玩DOS原版)并支持后续一系列MOD和二次开发。你可以在PC、MAC或移动手机平台(或其他支持平台)游玩。

项目地址:https://github.com/jynew/jynew

HexGL是一款未来主义的快节奏赛车 游戏 ,由Thibaut Despoulain使用 HTML5、Javascript 和 WebGL构建,是对原始 Wipeout 和 F-Zero 系列的致敬。

项目地址:https://github.com/BKcore/HexGL

Freeciv-web 是一款开源回合制策略 游戏 。它可以在任何支持 HTML5 的网络浏览器中播放,并具有深入的 游戏 玩法和多种 游戏 模式和选项。你的目标是建设城市,收集资源,组织政府,组建军队,最终目标是创造最好的文明。您可以在线与其他玩家(多人)对战,也可以自己与电脑对战。有带有等距图形的 HTML5 2D 版本和 Freeciv-web 的 3D WebGL 版本。

项目地址:https://github.com/freeciv/freeciv-web

韦诺之战是一款开源的回合制战术策略 游戏 ,具有高度幻想主题,具有单人 游戏 和在线/热门多人战斗,为夺回韦诺的王位而进行一场绝望的战斗,或参与任何其他冒险。

项目地址:https://github.com/wesnoth/wesnoth

OpenTomb 是经典古墓丽影引擎的开源重新实现,旨在播放所有经典时代古墓丽影 游戏 (1-5) 的关卡以及自定义 TRLE 关卡。该项目不使用任何原始古墓丽影代码,一切都是从头开始完全重新开发的。

项目地址:https://github.com/opentomb/OpenTomb

由 Daemon 引擎驱动的 FPS/RTS 混合 游戏 (ioq3 和 XreaL 的组合)

项目地址:https://github.com/Unvanquished/Unvanquished

对原版马里奥兄弟的重新混合本地多人 游戏 。

项目地址:https://github.com/amiruqdah/mario-party

一款基于 VDrift 和 OGRE 的 3D 赛车 游戏 ,带有赛道编辑器。

项目地址:https://github.com/stuntrally/stuntrally

在一个地图上创建你自己的城市。

项目地址:https://github.com/lo-th/3d.city

使用Javascript 和 HTML5 编写的Three.js库构建的塔防 游戏 。

项目地址:https://github.com/Casmo/tower-defense

基于 Canvas 的 HTML5 游戏 ,玩家必须使用他的魔法水箱扑灭树木上的火,以拯救燃烧的森林。

项目地址:https://github.com/softvar/save-the-forest

对于一个大一的学生来说,目测你的基础已经不错了,坚持努力下去应该会有不错的成就。独立游戏是个很大的话题,首先先明确想要自己一个人做还是找小团队一起合作。自己一个人做的话,设计、程序、美术、音乐等等就都得会。如果组团队做,可以重点攻坚其中1到2个方向。我主要说说技术方面。你在编程方面已经有所积累,至少算法方面应该是吧,这对于编程来说是个不错的开始。开发游戏的话,对基本的数据结构和算法要求还是很高的,再有就是软件结构的设计,这个需要较长时间的积累,最好多看看其他的游戏类工程是怎么做的,游戏和那种业务流软件的一个不同在于,游戏程序对实时性要求很高,会有一些为了性能而出现的不同的代码模式。最基本的一个东西,编程语言,看你希望的开发平台,不同平台会使用不同的开发语言,这个要熟练掌握(不是能写算法、玩具例子那么简单就行,需要知道如何用这种语言开发大型工程)。关于开发平台,多说两句。如果想要自己的程序便于大家在任何平台使用,推荐Web相关的技术,如HTML5/JavaScript(用canvas元素,如果需要GPU加速的底层3D API,canvas有WebGL绘制环境(OpenGL ES 2.0的浏览器版))。如果希望更方便开发,Unity3D是个很好的选择,是个集游戏引擎与运行平台于一体的东西,而且这个东西牛逼的地方在于所有平台都支持(PC、Mobile、Web)。如果开发手机上的原生app,推荐学习cpp以及那个平台上官方语言,这样可以用cpp开发,然后用官方语言做一个壳。如果是PC上的游戏,还是推荐cpp。另一个就是数学/物理,当然这个要看你要做什么游戏。基本的东西是几何相关的东西,基本上是个游戏都用得到。如果有不确定性(绝大部分游戏应该都需要)在里面,基本的概率分布要深刻的理解。如果要自己做物理效果(碰撞,d性,形变等),除了需要搞定相关的物理(刚体物理,柔体物理(这个通常很麻烦),流体物理(这个也很麻烦)等),还需要搞定数值计算方法,自己做物理这个水很深,不建议自己做,用现有的物理引擎最好。如果想要做到很好的3D画面,还需要学习计算机图形学,这里会有很多的光学,很多的立体几何,一坨线性代数的东西还有各种形式的积分。而且实时图形系统的开发对编程能力要求也非常高,除了普通程序的要求以外,还要能掌握高性能的数值密集型的代码开发(这个对于物理相关的开发也一样)。另外还需要掌握至少一个GPU加速的图形接口的使用(OpenGL,Direct3D等)以及对应的shader代码的编写。同样,如果想做到很好的画面效果,建议用现有的渲染引擎,自己做水也太深。总体上来说,2D游戏和3D游戏所需的技能还有很大差别,2D游戏在技术上的要求相对简单很多。还有就是,独立游戏可能有服务器端得比较少。如果真的需要,这方面的开发相对来说和通常的业务流软件的服务端比较相似,所以不是太复杂。不过会有很多游戏逻辑需要在服务端处理,多客户端的信息实时同步可能会成为一个比较有难度的问题。还有就是各种客户端请求的验证,反作弊用,这个一开始应该不会涉及到,不扯了。总的来说,游戏开发作为程序开发最难的一种形式之一,技术方面需要非常多的积累,这个需要时间去积累。可以先从那种非常小的小游戏(先是扫雷、贪食蛇这类休闲游戏,然后做塔防类游戏不错……)做起,练手用。基本功扎实了以后可以考虑进入3D。游戏美术方面呢,2D和3D也是很不一样的。3D游戏的美术很复杂,各种模型网格的创建,各种贴图纹理的绘制。如果有人物,还需要人物动画,这又是一大块。美术我不专业,不多说了,希望哪位专业的来补充一下。2D的相对好很多,只要能画好画,基本上就能做了。游戏音乐方面,主要是作曲,用mid的话也不错,但现在好像这么做的很少了。演奏要看作的曲子的复杂度了。除了音乐还有音效,这个我不懂,不说了。设计嘛,这个是制作游戏的核心。从你的表述来看,应该是玩过不少游戏了,那应该多少能体会到各种游戏的设计模式。把自己的想法,参考现有的一些模式,规划好,做出来原型。设计这里有一个很重要的细节:开发工具要能尽可能提供高效的迭代方式,游戏的完成度是一点一点打磨出来的,而这个打磨过程的长短很大程度上取决于工具是否好用。

满意请采纳


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6241438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存