黄巾之乱-历次版本

2024-01-01 02:50
文章标签 版本 历次 黄巾之乱

本文主要是介绍黄巾之乱-历次版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

(这首页美工花了一周)

2006年网页游戏开始出现在玩家的眼前,我开始琢磨做一个类似于腾讯战神的WebGame网页游戏。因为战神太糟糕,只能在固定几块地上修房子。我想要的游戏世界是全开放的:全部游戏单位都可以在几乎无限大的地图中野蛮生长、移动,由玩家指挥去攻城略地。

最初是找伍先明看看怎么样,结果要我拿策划案,并承诺只要想得出,交给他就搞得出来.但是从零起步不可能有完整的策划案,所以那个时点,无论如何是拿不出策划案的。借助外力来实现就此做罢。 (伍先明大学同学,他姓伍,我姓刘,我们小组就叫了56EG)

开始设想的系统非常简单,构建一个web服务,提供完全基于文字的访问界面,只要内容好玩,应该会有用户的.然后开始做web相关的程序.原来有些asp的基础.但是不知道怎么选择了jsp,可能同工作中了解到sap和oracle都在推JAVA。 找了一本jsp和servlet的书,开始学起来. 然后找到孙卫琴JAVA基本教程看,这样查java函数比较方便。jsp用熟了后,还是使用JDBC连接数据库。

时间到了2007年6月,当时已经发现基于文字的界面太是糟糕,重点放在了如果改变界面上,并有一个很困惑的问题,地图是怎么设计的?

开始感觉应该有地图数据,于是找来三国世纪游戏里的地图,该地图是1600*1200大小.给100多个城市点上一个点,做了一个程序(老vc终于有点用了)按象素取点法,得到了城市的坐标.然后就一直想不通这些个地图数据要怎么设计到游戏中.服务器要怎么设计这么大一个阵列数组。

 

王懿(儿时一起玩QUAKE1的枪手,长大后的挚友)告诉了我hibernate,说这个得了什么什么奖,是java对象用的。于是找来一本hibernate的书看起来,又是孙卫琴的.后来发现孙卫琴的书也是翻译过来,不过开始学习概念是最好不过的了。三个月后,可以使用hibernate这个数据库的ORM了。

 

关于地图的设计,在设计游戏单位时有了新的想法:就象食神说的"其实根本就没有食神,或者人人都是食神"。其实根本就没有地图,或者人人都是地图。 位置坐标数据被放到游戏对象里,就是在对象表中多了放坐标point (X,Y)的数据字段。这样就不用专门搞个地图数据,场景就可以跑起来了。为了把web的动态界面做好,AJAX是一定要学习的,还好AJAX比较好学,核心就是新开一个连接向服务器要数据,然后整个页面局部刷新要修改的数据。

 

2008年3月,黄巾之乱第一版有了一个雏形。

第一版:2007-2009 JSP+AJAX+JS+SQLsrver2000。

每个对象,玩家都是可以操作的。

用ajax实现了一个沙盘地图,有21*21=421这么多块,使用的图片图标是20*20像素.

21*21=421个地点是一个area地区。

单位在同一地点上的数量没有限制,这是为了方便数据库以地点为条件取数据。

游戏对象数据在服务器端用了list对象组来实现对应。到放弃ajax的时候,我在黄巾之乱第一版中写了150个页面文件,

感觉也不算浪费吧,因为路总是一步一步走出来的.游戏业务逻辑内容也获得了一定的测试,游戏中涉及的对象如下:

 

人物建筑资源物资装备书籍技能
村民农田树林谷物头饰研究
枪兵伐木场石堆木材衣物招募
刀兵采石场铁矿石材长裤
弓兵铁矿场煤矿铁矿石鞋子
骑兵煤矿场兵器
粮草车猪圈猪肉首饰
英雄马圈马匹坐骑
酒窖酒水
炼铁房铁锭
民宅长枪
仓库长刀
市场长矛
城墙盾牌
弓箭

主体功能完成了一些后,我迫不及待的开放到了互联网上让用户注册和测试,游戏的设计比较独特,颇受玩家称赞,

同一时期所有的WEB游戏可操作对象的坐标都是固定的,就像在玩一个单机版,而我的黄巾之乱在尝试给玩家真正网络版的体验。建筑、人物和物品不少功能都或多或少的被玩家使用。

其中有个头号玩家,年纪同我相仿,三十多岁,他玩得很上隐,我想他基本和我一样是老玩家了。

在ajax这么糟糕的用户体验下,居然修了半个城,大概100多个建筑,花了不少时间,这让我大吃一惊。可惜当时的截图丢了。

 

随作游戏功能越来越多,数据库里的操作也多了,最初用的是mysql数据库,后来发现ms的sql2000好用,还有作业功能。然后就开始使用sql2000.写存储过程,邮标。邹建的sql2000管理拿来翻翻,网上文章下来看看,时间又过了好几个月。

 

时间很快到了2009年9月,我准备推出全新一版的黄巾之乱,首先使用ActionScript3,用flash换掉了糟糕的ajax。数据库的sql2005也换掉了2000,大量使用存储过程、游标、触发器同步。

当然游戏内容仍然还是原来构想的<龙之崛起>和<七个王国>的无限世界的策略类型。

 

 

 

第二版使用的技术:2009-2010   ActionScript3+SQLserver2005 。 

玩了QQ的七雄争霸,借鉴了一些东西,去掉原来实现不了的很多设计,并且地图功能也比较好的实现,策划如下: 

人口(全局数据)      劳动人口, 空闲人口

影响:

增加一个建筑, 会占用空闲人口->劳动人口

减少一个建筑,会减少劳动人口->空闲人口

空闲人口不足,无法新建建筑。

时间增加,空闲人口增加.  

物资(全局数据)  铜钱, 谷物, 菜, 盐, 木材, 铁矿石, 煤, 猪肉, 马匹, 酒水, 铁锭

影响:

时间增加,各种建筑增加对应的资源。

高级资源增加,低级资源减少。

军队(全局数据)  枪兵,刀兵,弓兵,骑兵

影响:

武将分配军队,军队减少。

军营建筑内,随时间的增加,物资减少,军队数量增加。

武将(单一对象) 坐标,生命,等级,技能,能力等属性。

影响:

茶馆建筑物中产生。用户点击新增在地图中。

对敌人建筑,武将,NPC产生影响。

武将需要指定仓库或车队做补给,否则影响能力。

武将包含军队种类和数量。

武将包含车队数量。

水源(单一对象)坐标。

影响:

农田必须建在水源旁边。

民宅(单一对象)坐标,生命。

影响:

民居必须建在农田旁边。

------------------------------------------

建筑地理位置限制关系:

水源->农田->民宅->炼铁房,粮仓,市场,武器铺,军营.

资源->采集场.

 按目前这种设计,地图上移动的单位就只有武将和NPC......

 

 

 

虽然架构上,采用最简化的方式去掉了第三层,但黄巾之乱第二版的开发还是失败了。

二版开发失败总结: 

1. 重复工作量太恐怖,压跨了项目。

改动源于数据库表,对象的属性调整对应数据库的表字段调整,工作量一。

PO文件被MyEclipse产生自动释放到web的po目录,需要编译成class类文件,工作量二。

用editplus写JSP文件做相应的调整,工作量三。

用as3写SWF内部调整,工作量四。

数据库表改动后,需要对sql2005中的触发器或存储过程调整,工作量五。

全部要协调一致,工作量六。

上述改动一直频繁地伴随做前期开发,每走一小步,所有工作都会重做

 

2.策划不完整,导致程序写一点,看一点,改一点:

一直拿不出一个完整的策划案,导致不停的增加内容而一遍又一遍重复修改,但要一次拿出完整程序设计确是比较困难的,而且中途为游戏性增加不少内容让工作量雪上加霜。策划案应该可以整体拿出,并简化功能。程序设计根据策划模拟后再编写,减少工作量。

3. 按现有开发工具和模式,实现比较困难,选择放弃开发。

 

 

第三版

2015 C# C/S版本的尝试

2015年开始学习使用C#,最初只是感觉函数功能比MFC强太多,语法很优雅(一行代码可以干很多事情),后来发现整套环境可以使用的三方组件也非常丰富和强大,比如网络部分可以使用HP-SOCKET轻松搞定,UI可以使用去FineUI,ORM用MS的EF更是爽到爆,移动端也可以用Unity 2D跨平台。

 

今天已经是2019年了,回顾过去这个历经10年的小项目终究是没有实现 。原因很多,我想最主要的是因为自己一个人的力量很有限,不过正是因为这些技术铺垫,才让我一直追逐作技术,最终用C#在近几年的企业软件开发中如此的高产。

 

再见,我的黄巾之乱!

 

 

 

 

黄巾之乱最简设计

 



 

这篇关于黄巾之乱-历次版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

springboot3.4和mybatis plus的版本问题的解决

《springboot3.4和mybatisplus的版本问题的解决》本文主要介绍了springboot3.4和mybatisplus的版本问题的解决,主要由于SpringBoot3.4与MyBat... 报错1:spring-boot-starter/3.4.0/spring-boot-starter-

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N