游戏设计

惠斯勒的冒险日记-第1天

放肆的年华 提交于 2020-03-22 08:43:16
一、开发前期心路历程 思考了许多天,终于决定开始制作自己的第一款独立游戏了,虽然初衷是为了完成一个目标,但是自己还是想要把它做好。但是现在我的内心也还没有平静下来,以至于需要用博客来让自己有信心开始。学习Unity已经有很长一段时间了,但是不知为什么,自己总是对自己的东西没有信心。每次需要自己独立完成开发的时候,构思时间总是特别的长,同时也有着许多顾忌。我想游戏设计终究是没有游戏好玩,但是游戏设计是我一直放不下热爱啊,于是满怀忧虑的开始了。好了赘述了这么多心路历程,还是来谈谈想做的这一款游戏吧! 二、游戏介绍 这次要做的独立游戏叫做森之心,故事是来自于我家逗比的初中非主流小说,在故事中,主角不知为何在森林中醒来,自己失去了本来的记忆,需要通过探索森林来寻找自己的身世之谜。游戏打算是以AVG(Adventure Game)的形式制作,简单聊了一下游戏的概念,接下来谈谈对这个游戏的感觉。 学习Unity游戏引擎的这段时间,我对游戏设计有了更深层次的理解,说老实话,游戏的设计其实就是在构建自己的内心世界,我们每个人都是不一样的,我们的内心世界也是各不相同的,所以很多游戏中展现出来的东西,地图的设计风格,剧情的走向,关卡谜题的设计,编程的思路都是具有强烈个人化的东西,这些不只是游戏中不可或缺的设计内容,也更是我们自己的内心想法的展现,这次我选择了这个故事,原因就在于单人探索AVG游戏

游戏中剧情动画CG实现的一种方式概述

霸气de小男生 提交于 2020-03-02 12:36:14
1.关于游戏中剧情动画CG的实现,有多种方式实现,这里我指出在之前的项目中我实现CG的一种方法。 2.多种实现方式的简述: a.使用预先制作好的动画Video文件,通过引擎接口,以流媒体的方式播放,就好比是内置电影一样。 比如:有story1.rmvb格式的动画文件,通过接口engine.playCG("story1", onStop)播放,其中onStop函数为播放结束时回调函数。 这种做法的优势是可以事先离屏渲染出及其精美的CG动画,劣势是玩家看到如此精美的CG但是实际游戏画面有很大落差会觉得游戏不够诚意,还有就是这种方法太过死板,CG过程中无法和玩家交互或者是无法根据游戏中的当前状态而有所变化。 b.在游戏场景编辑器中提供CG工具,编辑CG的镜头曲线,和CG中的游戏中静态物体的生成和消失。这种做法将CG动画保存为引擎中能够理解的一系列事件,比如镜头的移动,场景中的物体的生成等。 其格式比如: [camera curve time]-表示摄像机在time中按照curve曲线移动 [obj1 time1 obj2 time2 ...]-表示场景中obj1的物体(可以是骨骼动画,声音,特效等)的生命期为time1 这种做法属于内置游戏渲染,让玩家看CG时没有一种切出的感觉,表现出场景的一定的变迁。 3.我之前做上家公司游戏中的CG系统时,使用的是类似于b种方法,其做法是: 3-1

12、开源游戏-“胡子”地图绘制和游戏主循环设计

﹥>﹥吖頭↗ 提交于 2020-03-01 14:05:17
在前面中我们初始化了游戏的资源,这次我们来说下地图的绘制和游戏主循环设计。 地图 绘制 以前说过地图是用tiled画好,导出为图片形式的,所以地图的绘制,就是把这个图片绘制到canvas的过程。这样绘制地图就简单了,使用drawImage方法绘制即可。 这里有个2问题,1是地图的大小一般肯定是大于canvas的,所以我们只是把地图的一部分绘制到了canvas上,2是地图的移动。1中的地图的复制位置是根据2中地图的移动距离来确定的。我们的思路如下:记录鼠标移动的xy坐标值,然后根据xy值和 canvas边缘做比较,当靠近边缘时,我们就移动地图一段距离,重复这个过程,直到地图绘制完。 其实我们上面的思路中,就是在改变 drawImage方法的参数过程,那么来看下 drawImage方法: 定义和用法 drawImage() 方法绘制一幅图像。 语法 drawImage( image , x , y ) drawImage( image , x , y , width , height ) drawImage( image , sourceX , sourceY , sourceWidth , sourceHeight , destX , destY , destWidth , destHeight ) image 所要绘制的图像。 这必须是表示 <img> 标记或者屏幕外图像的

06、开源游戏-“胡子”开始界面设计-代码

痞子三分冷 提交于 2020-03-01 13:09:12
项目地址 code.google地址: https://outlaw.googlecode.com/svn/trunk git.oschina地址: https://git.oschina.net/eternal_rider/outlaw 在开始界面中,玩家要选择大当家、游戏类型(单人、多人),还可设置游戏(音乐等)和查看作者信息。 如下图所示: 开始界面设计代码 我们首先引入了jquery库、common.js,styles.css, common.js为处理用户选择的事件; styles.css定义了所有样式。 我们通过样式class来控制div是显示隐藏。 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>胡子-即时战略游戏</title> <script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script> <script src="js/common.js" type="text/javascript" charset="utf-8"></script> <link rel="stylesheet" href="styles.css" type="text/css" media="screen" charset=

09、开源游戏-“胡子”开始游戏前03-总结

穿精又带淫゛_ 提交于 2020-03-01 10:05:51
这几天我们干了很多事,我们总结一下。 首先,设计了游戏的选择界面、操作主界面,虽然很粗糙,但是只要你看了就知道他代表的意思,以后在具体实现时我们会在雕琢一下。 接着,我们做了主页index.html,罗列了很多的div,来实现界面的效果。 最后,我们写了很多的js,来实现不同的功能。 在前面我们细说了每个js的功能,但是如果你注意的话,我们唯独没说其中的game.js,是这个js不重要吗?我们看下他的代码 var game = { init:function(){ }, start:function(){ } } 几乎什么也没有,但它确实最重要的一个js,如果要比的话,我想他应该是大当家(在没有nodejs时),呵呵。其他的js都被它使用,它控制着游戏的逻辑。 开发游戏虽然复杂,但它的原理却出奇的简单,就是循环或者绘制擦除重复这2步,为什么说这个呢?因为胡子的game.js也是这样绘制擦除循环这步,来完成建筑物、车辆、人员、子弹的绘制,这个会在以后具体说明,胡子是一个即时战略游戏,我可以保证胡子不是那种简单的 即时战略,起码也有红色警戒最核心的功能(呵呵,我的目标),就是说他绘制的单位会很多,我们粗略分几类起码有建筑物类、车辆类、兵(人)、资源类、其他类(树木、石头等)等,所以如果用game.js来绘制所有这些,肯定不是一个好的做法。 我本身是是搞java的,java的面向对象

07、开源游戏-“胡子”开始游戏前01

雨燕双飞 提交于 2020-03-01 10:05:33
游戏开始前的各种资源初始化,玩家事件的绑定,信息的本地存储 (这是用了库store虽然自己写也很简单,但这个做了合成,更小)。 开始界面修改 增加了loading场景和游戏主场景(目前为空) <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>胡子-即时战略游戏</title> <link rel="stylesheet" href="styles.css" type="text/css" media="screen" charset="utf-8"> <script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script> <script src="js/store.js" type="text/javascript" charset="utf-8"></script> <script src="js/resourceloader.js" type="text/javascript" charset="utf-8"></script> <script src="js/singlegame.js" type="text/javascript" charset="utf-8"></script> <script src="js

01、开源游戏-“胡子”项目启动

不羁的心 提交于 2020-03-01 10:05:00
如果你看过之前的文章,你就会明白我们什么这么写,如果你没看,也没必要解释了。 开源游戏“胡子”,今天正式开始设计。 “胡子”是一款以html5开发的一款即时战略游戏,即大家说的RTS,可以单人游戏和多人对战。 单人游戏时,故事情节为东北土匪的事。具体故事还在构思中。为什么叫“胡子”那,很简单,东北人把土匪叫“胡子”。我就是东北人 。 下一次我们写写怎么设计这个游戏。 来源: oschina 链接: https://my.oschina.net/u/933274/blog/208569

08、开源游戏-“胡子”开始游戏前02

早过忘川 提交于 2020-03-01 09:43:39
资源加载器 resourceloader.js 初始化 资源加载器用于读取图片和音乐, 在前面的代码( main.js )中,我们初始化了它,下面我们详细说下,因为它在以后中会经常用到,游戏中所有的资源都由它来读取。 $(window).load(function() { resourceloader.init(); sounds.init(); if (resourceloader.loaded){ sounds.bgMusic(); } else { resourceloader.onload = sounds.bgMusic; } if(store.get('data')){ $("#checkbullet").css({"top":store.get('data').checkbullety}); }else{ store.set('data',{hero:"hero1",checkbullety:"160px",task:0}); } }); 资源加载器都干什么事情呢?读取资源,这个是最终我们想要干的事,我们还得考虑下,读取完了之后怎么办?图片也分很多类型,音乐同样如此,常用的.mp3也不是所有的浏览器都能直接播放的,下面是几种流行的音频格式被浏览器支持的情况(来源于网络,未全部测试,也许最新版本中已经有所变化,也说不定)。 虽然可以在<audio

Python高级应用程序设计任务

元气小坏坏 提交于 2020-02-29 11:14:49
一、主题式网络爬虫设计方案(15分) 1.主题式网络爬虫名称   交易猫英雄联盟(LOL)所有商品的爬取 2.主题式网络爬虫爬取的内容与数据特征分析   2.1爬取的内容     操作系统,游戏名称,游戏客户端,游戏区服,价格,游戏商品类型,游戏等级,英雄个数,段位,     皮肤,精粹数量,角色昵称,账号认证,是否绑定成长守护平台,完成时间,商家在线,描述   2.2数据特征分析     分析不同英雄,皮肤下价格的差异     比较不同区服卖号的人数 3.主题式网络爬虫设计方案概述(包括实现思路与技术难点)   实现思路:     1、通过requests的get方法请求网站地址,并进行头部信息验证     2、利用etree进行网页解析,并通过xpath获取所要的相关数据     3、判断所要的数据是否存在,并进行切片处理     4、并通过循环进行翻页处理     5、通过os、DataFrame进行数据的保存,以便后期进行数据分析和数据清洗   技术难点:     1、在前期的时候获取不到数据,需要设置头部信息     2、获取商品的链接,并进入到商品详细页面中获取消息     3、获取的每一个商品的信息个数都不一样 二、主题页面的结构特征分析(15分) 1.主题页面的结构特征   通过浏览器的F12键,并且查找到Elements栏,可以发现当前页面的商品处于当前页面的ul