十周年纪念,VVVVVV宣布公开源代码,两天捕获4K星

十周年纪念,VVVVVV宣布公开源代码,两天捕获4K星

周六,Terry Cavanagh在博客上宣布其弹跳冒险小游戏VVVVVV六个V,宣布值10周年生日之计公开其源代码。该游戏于2010年1月11日格林尼治标准时间凌晨3点首次发布。

六个V是一款经典和奇异风格结合的高难度动作过关游戏,利用复古的8位平台冒险游戏,在游戏中玩家扮演一个太空船船长,全船被困在怪异的空间之内,所有船员都被孤立无援的分开在不同的地方,作为船长,你要大胆的通过冒险来探索这个神奇的世界并且逃离这个地方,借助心灵传输的力量和对地心引力的控制来完成冒险。六个V不仅游戏名字很奇葩,大家可能熟悉其中文名弹弹跳跳闪避人,玩法也颇新颖奇葩,玩家够反重力跳跃、疾行颇具难度。当然我们主要感兴趣的是其公开的源码,今天虫虫就带大家一起学习一下。

源代码概览

VVVVVV源码托管在github上,具体地址为github:/TerryCavanagh/vvvvvv,公开两天后,积累的了约4K的星。

十周年纪念,VVVVVV宣布公开源代码,两天捕获4K星

源码仓库包含两个版本:

桌面版(由Simon Roth于2011年移植到C++,后来由Ethan Lee进行了更新和维护。

移动版(基于Adobe AIR的Actionscript编写),基于原始v1.0 Flash版本游戏。

C++版本中有很多奇怪的东西,由于该游戏起初是用Flash ActionScript开发的,然后通过移植到C++的,由于早期编程比较随意,所以有一些将i,j和k之类的临时变量声明为每个类的成员。可能回会致难以跟踪错误。特别是在实体冲突中,几个函数将共享相同的i变量。

主要的游戏文本,则主要在Scripts.cpp和TerminalScripts.cpp类中。这些功能基本上将数据加载到一个非常简单的脚本解析器中,该脚本解析器控制过场逻辑。

十周年纪念,VVVVVV宣布公开源代码,两天捕获4K星

大多数关键游戏代码都位于三个文件中:input.ccp,logic.cpp和错误命名的titlerender.cpp。游戏中的每个状态都包装在这三个文件中,分别位于"teleporterrender"和"towerlogic"之类的功能下。

十周年纪念,VVVVVV宣布公开源代码,两天捕获4K星

所有实际关卡通过使地图编辑器生成的大量数组中硬编码。位于源代码的Spacestation2.cpp,Finalclass.cpp等中。

十周年纪念,VVVVVV宣布公开源代码,两天捕获4K星

VVVVVV基本上没有临时对象,并且在首次初始化游戏时会用数百个空白条目填充其所有实体数组(及其大多数其他数据数组)。

除了过场分析器,游戏使用另一种控制游戏逻辑的方法:整体式状态机这样可以控制触发更复杂的过场动画的开始,传送器发送消息。可以在Game::updatestate中找到它。

所有状态都被编号,可以一直计数到4099(有间隔)。在开发游戏时,其中1000触发了闪亮的小饰品的收集,3,040触发了一个特定级别的完成,3,500触发了结局。

由于很多代码使用复制并粘贴策略,并改变值,所以代码可以读性不是很好,需要大家参与完善。

惊喜生日派对

最后我们祝贺VVVVVV十周年庆祝,并感谢Terry Cavanagh给开源世界的惊喜,希望每一个开源项目都是一粒种子,星星之火可以燎原,在此源码基础上能涌现一批更好玩的游戏。通过这些源码能培养出更多游戏开发者。

十周年纪念,VVVVVV宣布公开源代码,两天捕获4K星

展开阅读全文

页面更新:2024-03-30

标签:格林尼治   新和   源代码   过场   奇葩   数组   船长   变量   脚本   实体   源码   逻辑   版本   代码   科技   游戏

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top