PICO-8学习日志Week1

1.0 前言

        本人立志于毕业之后从事与游戏制作行业,为了届时方便找工作,提前学习一下游戏制作总归是有帮助的。不过其实我对于游戏开发也不是完全没有接触过,一两年之前接触过莉莉丝基于Unity3D做出的自家用于学习的引擎,在那之后又接触过Unity3D,转眼间到了大三下,寒假期间意识到自己有必要在这一学期内做出一个像样的游戏——这样才会有助于暑假去实习,继而有希望在校招的时候找到一个说得过去的工作。

        确定了制作游戏的目标后,选择一个合适的游戏开发平台就成了眼前需要解决的问题:U3D和UE虽然较为成熟,且国内教程也较多,再者完全免费,但如果想做出一个完整的游戏,需要做的事情较为多一些;RPGMaker之类又较显业余(也是我没有去了解过的原因),在四处寻找之后,发现了一个新的东西:PICO-8。

        如果有玩过《蔚蓝》这款游戏的朋友应该对PICO-8有所耳闻:《蔚蓝》内置了一个PICO-8制作的同名小游戏,在旅馆那一关可以找到一台游戏机,互动之后,就可以游玩。有说法是《蔚蓝》的原型就是用PICO-8制作,我也没有心思去考证是否为真,总之我也是在这款游戏里面第一次见到了PICO-8,个人也比较喜欢《蔚蓝》这款游戏,所以果断地买了一个PICO-8,打算让这个游戏制作平台成为我的新手村。

        然而实际接触之后却发现,PICO-8并没有我想象的那么容易操作:一方面是美术,虽然是2D美术,但是需要在平台内自己用像素画出来,并不能用外部直接导入的图片;其次是音乐,音乐同样也不能外部导入,需要自己编曲。虽然实际过程并不算复杂,但是想要做出来一个美观的成品游戏,意味着我可能还需要去略微接触一下音乐和美术相关的知识。

        最难搞的一个问题:PICO-8是由国外的制作者制作出来的,并且很小众,这意味着可能很难找到相关的教程和文章,就算能找到,很大概率也是英文。

        不过刚开始就打退堂鼓有点说不过去,更何况这钱还花出去了(

        于是抱着解决一切困难的心态,我打算再CSDN上每周写一个日志,用来记录自己的学习经历,同时也希望能帮助同好来一起学习进步。

1.1 资源

        PICO-8有官网,国内可以直接访问:PICO-8官网(英文)

        在官网内,我们可以游玩别人制作的游戏:

         

        花费14.99美元,我们就可以在官网上下载PICO-8开发环境:

        同时,在官网里面还有许多官方、民间的资源,在Resources中就可以看到别的开发者编写的一些教材性质的文档(基本上都是英文),其中有一篇非常值得学习:Dylan Bennett 编写的 Game Development with PICO-8:

        

         

        下载链接:Game Development with PICO-8 - Issue 1

        文章从0开始介绍 PICO-8,不过面向的基本是有编程基础的开发者,但是就算没有编程基础也无妨,PICO-8编程语言是基于lua的语言,lua相比其他编程语言非常容易上手。今后的日志基本上也打算基于这本书来组织。

1.2 认识开发界面

        PICO-8的开发界面大致分为6块:

        打开PICO-8,首先显示的是命令行:

        按下ESC,就可以看到代码界面:

         

        我们可以将代码全写入这里面,或者我们也可以创建多个页,点击左上角的“+”,就可以创建多个代码界面。

        然后是绘图界面:

         

        其实这个界面官方给的名字叫“精灵编辑器”, 精灵(sprit)指的就是开始游戏后我们可以操纵的角色,在代码中调用图形也是利用 spr() 函数来实现的。例如上图中,就是我绘制出来的一个sprite。除了sprite,我们还可以在这个界面绘制地砖,用于地图的绘制,具体的就放到后面再说了。

        第三个就是地图界面:

        在这个界面,我们可以将绘图界面绘制的地砖铺到表示地图的界面中,图中就是我绘制的一个简易的地图。

        再后面是音效编辑以及音乐编辑:

        个人觉得PICO-8的音乐编辑模块是最具有想象力的,当然也有可能是我没有接触过别的音乐编辑器,所以看到这个有眼前一亮的感觉。考虑到这一片篇幅较长,而且一开始我们能写好代码画好精灵就可以做一个不错的游戏了,所以配乐的工作我们可以放到后面再详细描述。

        现在你已经认识了这里面的五个主要页面,借助这些模块,你已经可以开始制作属于自己的游戏了……吗?显然还有点早,至少我们应该去看看别人是怎么做的,借鉴在别处叫抄袭,在咱们程序员这可没有抄袭这一说(bushi)。回到PICO-8,如果是别的引擎,我们或许还需要下载别人的Project,然后打开,才能看到代码、资源之类的东西,但在PICO-8里面,我们只需要一个单词:splore

        在命令行输入这个单词,按下回车,第一次需要稍等片刻,然后一片新大陆就出现在我们眼前:

        没错,现在我们的PICO-8变成了一个游戏机,在里面我们可以玩到很多由别的开发者开发的游戏:

        玩的差不错之后,我们按下ESC,选择EXIT TO SPLORE,再按两下ESC,看看现在我们能看到什么:

        没错——做成这个游戏的所有东西:代码、美术资源、音乐资源,全部摆在我们面前,我们甚至可以在里面按我们的喜好对游戏做一些修改比如把小兔子的头发染成红色:

        此时再按下Ctr + R运行游戏,看看发生了什么:

         

        小兔子的头发确实变成了红色,虽然不是红的很彻底。

        看到这里,我不知道大家的心情是怎么样的——反正我当时确实是被震撼到了,包括我的同学和朋友也被这个神奇的小玩具刷新了眼界,同时这也是能让我下决心学习这个小众引擎的原因。

        写到这里,PICO-8的一些入门基础就介绍的差不多了,虽然东西是一小会儿就能搞定的,不过考虑到篇幅长度,这一篇还是先到此为止了,后续的内容会放在下一个篇幅。

PICO-8中,地图可以使用`tmap()`或`map()`函数来绘制。这两个函数都可以用于在屏幕上显示地图,但它们的用法略有不同。 `tmap()`函数可以使用任何颜色为地图定义一个tileset(瓷砖集合),然后使用这些瓷砖绘制地图。这使得您可以使用多个不同的颜色来创建一系列不同的瓷砖,并将它们组合成地图。 `map()`函数则使用单个颜色定义地图,其中每个像素都表示地图上的一个单元格。这使得创建地图变得非常简单和直观。 下面是一个使用`map()`函数绘制地图的示例代码。假设我们有一个32x32的地图,每个单元格大小为8x8像素: ``` --定义地图数据 local map_data = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, } --绘制地图 function _draw() map(0, 0, 0, 0, 32, 32, map_data) end ``` 在这个例子中,我们首先定义了一个包含地图数据的表`map_data`,其中1表示墙,0表示地面。然后我们在`_draw()`函数中使用`map()`函数绘制地图。 `map()`函数的第一个参数是地图左上角的x坐标,第二个参数是地图左上角的y坐标。第三个参数是地图中每个单元格的宽度,第四个参数是每个单元格的高度。第五个参数是地图的宽度,第六个参数是地图的高度。最后一个参数是包含地图数据的表。 希望这个示例可以帮助您了解如何在PICO-8中绘制地图!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值