Tank2010_alpha完成,项目完工!

2023-10-24 12:20

本文主要是介绍Tank2010_alpha完成,项目完工!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

篇文章写了好几次,中途都由于各种事情取消了,也没有存草稿。今天休息了将近一天,现在静下来写点东西。

基本算是总结吧。

工程在昨天完工,基本算是第一阶段的完工。这次的游戏,还是没有达到我们之前定的“特别好玩”的目的。技术上想要实现的东西太多了,东西一多,最后调整起来就慢。加上最后时间特别紧,很多结构基本不假思索的就往上写,导致最后逻辑实现上的结构异常繁杂,也导致了修改起来的不便。特别是两个程序员的合作编码,在某些地方也是相互依赖,相互迁就,因此某些结构在设计之后又进行了许多修改。

一来就说了一堆不满意的地方,其实我们对这个作品还是比较满意的。先抑后扬吧,下面来说说这次工程满意的地方。

 

  • 第一就是合作,程序方面,这次我和cc的合作可以算得上相当“密切”了,特别在最后的逻辑编码阶段,我们一天可以进行4-5次的代码整合和讨论。这一切都归功于这次使用的强力工具——SVN。
    代码控制工具是我第一次接触,但是这次接触以后我便离不开它了。每一次修订后的reversion,版本回溯,版本分支,release分支,专业而又有序。我恨当时没有在开工程的时候尝试SVN,否则现在想要回溯到最早的版本去查一查某些东西简直是太方便了。以后的工程,无论什么工程,都最好坚持使用SVN了!
    美术和策划方面,其实也使用的SVN,SVN不像CSS,doc,美术资源,甚至娱乐用的文件,都可以统统共享上去,不只是程序员,美术之间的交流,策划之间的交流,都可以通过SVN来实现。
  • 第二就是自学,这次的渲染系统是我在项目的前一个多月开始制作的,因为老师不讲高级渲染,所以所有东西都是全新的,全部要靠自己去摸索。和上学期不一样,shader高级渲染连书上也讲得很少,上学期用那本《精通directx3D》里面只有一章HLSL语法很有用,其他两章只是HLSL的入门。
    因此只能期待国外的书了,有两本不错,一本是Cg精粹,一直想买本,可惜国内所有地方都断货,买淘宝的影印版还不如看PDF...还有一本是<Shaders.for.Game.Programmers.and.Artists>,可惜是全英文的,不过还好,代码和文字对半分吧,代码是程序员沟通的语言,呵呵所以这本书也就比中文书难懂那么一点。
    第二本书,给我开了窍,shader的入门全靠它了,作者使用的是renderMonkey,我最早用的是max...
    对的你没看错,Max+Notepad,max有编译提示,notepad有行数显示,组成了一个简易的IDE...,当然后来,我使用了fx composer2.5,这个是一个真正的IDE了,nVidia开发的,不过有时不太稳定...
    就这样,一本一本的PDF看过来,shader渐渐入了门。
  • 第三就是代码的阅读和设计修改,这次的kMaterial和kPostProcess系统的设计是受到了微软官方例子的启发,采用了部分相同的设计,并且加入自己的思考,设计底层的结构。代码的阅读相当重要,这次从PostProcess的代码阅读上学到很多东西。当时百思不得其截的问题就是一个“眼误”。
  • 第四,再总结个第四吧。坚持。坚持是这次项目的最大秘诀,从项目开始的一个半月前开始,到今天项目一个月结束。两个半月的时间,我基本保证了每天平均3小时的工作时间。算下来75天一共就是225个小时的编码时间,对于我来说,收益匪浅。前一个月基本是在学习,上课,阅读书籍,因此在编码上花的时间还不是太多,后一个半月,就完全是实践了,每天起床就耗在程序上,除却中途吃饭,休息游戏,出门陪老婆等时间,一天平均将近8个小时的时间编码。全部是靠的坚持。
    因此期间360大作频出,通关的游戏也只有一个分裂细胞5,放在以前的我,简直是不可思议的。

总结基本结束,这篇文章没有对技术细节进行总结。一是那个太细了,不好写,二是因为我自己其实还是不太满意现在的结构,以后有时间肯定会重构代码的。所以这里先不写了。

下面还是附上几张图。

游戏截图#1
标题画面(Editor模式)

游戏截图#2
教学关

游戏截图#3
关卡

游戏截图#4
credit

 

最后,再附上SVN更新的版本历史路线(reversion route),相当有成就感啊,现在是r88了。

THE END

转载于:https://www.cnblogs.com/gameknife/archive/2010/06/18/1832155.html

这篇关于Tank2010_alpha完成,项目完工!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/275117

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca