小组

【招募】寻找独立游戏开发者~~~!!
小一工作室 21 小时前 18:07

不好意思打扰各位~插播一条广告~

有没有在上海的朋友想要做独立游戏的( 对游戏有爱,非商业游戏 )~

策划程序美术都ok,如果有兴趣的可以直接联系我(qq: 229800469)~目前开发中游戏( steam + 手机 ) 链接:

https://www.taptap.com/app/140453

【招募】寻找独立游戏开发者~~~!!
小一工作室 21 小时前 18:07

不好意思打扰各位~插播一条广告~

有没有在上海的朋友想要做独立游戏的( 对游戏有爱,非商业游戏 )~

策划程序美术都ok,如果有兴趣的可以直接联系我(qq: 229800469)~目前开发中游戏( steam + 手机 ) 链接:

https://www.taptap.com/app/140453

LD#42 City2048 求玩求打分蛤
狄学长shrekshao 昨天 08-20 02:28

Image title

https://ldjam.com/events/ludum-dare/42/city2048

一个小小的City Sim类游戏。

两个相邻同等级同类型建筑--->高级建筑

刷新三维场景中的HUD层
legendcastle 前天 08-19 13:13

在以three.js为引擎的微信小游戏中,无法使用dom元素。在我正在开发的小游戏里是把场景以外的文字和按钮等二维信息放置到HUD层的。three.js中的HUD层的实现方式是把脱屏canvas转换为纹理,再将纹理传递给材质,然后用正交投影相机投影到一个平面上。

对于界面的变化(就是对脱屏canvas的重新绘制,如drawImage, fillText等操作),一般情况下用局部更新纹理方案就可以了,就是先重绘,然后基于之前的canvas生成新的纹理,然后把新的纹理传递给之前的材质,如下所示:

updateTexture(){
if (this.hudMat!=null && this.hudMat.map!=null){
this.hudMat.map.dispose()

let hudTexture = new THREE.Texture(this.canvas)
hudTexture.needsUpdate = true
hudTexture.minFilter = THREE.NearestFilter
this.hudMat.map = hudTexture
this.hudMat.needsUpdate = true
}
}

但是,对于界面已绘制元素的隐藏,上述方法失效了。经过探索,我发现可能是由于Frame Buffer的原因, 所有的重绘等同于在之前形成的画面上的一种叠加,而由于HUD层的特殊性(作为前景层),它需要是背景透明的,这样的话透明的叠加绘制无法消除之前形成的画面,界面内容只能越画越多,却无法减少。最终的解决方案是重新生成一个新的脱屏canvas,获取新的绘制上下文来进行彻底的更新。当然从性能上讲,这种更新要沉重一些,所以在我的项目中保留了两个HUD层的更新方法。


(转发自:原日志地址
[Godot] 如何实现简易的状态机
Niilii 2018-08-18

Godot简易状态机


Godot做角色移动的时候,为了不让代码在一个脚本里扎堆强奸我们的眼睛和大脑,就需要做一些小优化,比如,用状态机。


本文将介绍如何在godot里控制角色移动动画根据移动方向而切换,并进行移动。


  • 项目构成:

  1. 以kinematicBody2d为根节点的玩家节点

Image title

        2.角色运动图集(玩家节点中的Sprite)

 Image title

        3. 控制角色运动动画的animationPlayer(玩家节点中的AnimationPlayer)

   我根据图集创建了3个动画,分别是“待机(idle)”、“向左跑(runLeft)”和“向右跑(runright)”

Image title

        4. 绑定在角色节点kinematicBody2d上的脚本dog_mov.gd(详情在下面)

        5. 简易的状态机脚本Bh_dog_test.gd(详情在下面)


  • 脚本介绍

        1.dog_mov.gd:

   这个脚本并不控制动画切换,只是提供了动画切换的函数,方便调用:

Image title

其中aniPlayer是玩家节点中的AnimationPlayer

Image title

在脚本里我定义了角色移动方向和速度

Image title

定义了移动函数:

Image title

并在_physics_process(delta):里控制移动:

Image title

这个函数里的bhv就是状态机实例,下面会继续介绍,而上面这个脚本就介绍结束了,并没有什么太复杂的内容。


        2. Bh_dog_test.gd

首先是定义变量和设置构造函数_init()

Image title

如果对funcref(obj,funcName)不熟悉的可以看这里:

[GodotAPI][FuncRef]

[GodotAPI][@GDScript.funcref]

当然你也可以用 signal 来做,目的是只调用一个函数,而函数内容根据条件变化

obj就是dog_mov.gd实例,现在在dog_move.gd中就可以新建一个Bh_dog_test.dg实例了:

Image title

回到Bh_dog_test.gd,编码状态机:


状态机的状态转换示意图:Image title

待机状态(idle):

 Image title

奔跑状态(running)

 Image title

再细分左右奔跑(runleft,runright)

 Image title

以上就是角色动画切换的状态机,其实角色移动控制也可以写在这里面的,看个人喜好吧。


至于为什么只截图,不发代码,由于过于简单,大家还是自己动手打打吧(手动笑哭)。


最终效果


Image title



(转发自:原日志地址
Godot中如何用数字表示collision_mask
logoss 2018-08-17

先用二进制写出来,1代表激活,0代表没激活,最右边代表第一层。然后转换成十进制。

举例说明:

Image title

二进制是1,转成十进制是1,collision_mask=1。


Image title

二进制是1101,转成十进制是13,collision_mask=13。


Image title

二进制1000001100001转成十进制是4193,collision_mask=4193。

其他类似的比如light_mask,collision_layer都是这种写法。

(转发自:原日志地址
Godot中的分贝和音量换算
logoss 2018-08-16

Godot中不管是音频播放器还是音频总线都是用分贝来表示音量大小的,如图

Image title

Image title

我们希望能用0-1来表示音量大小,如何转换呢?

我们用v表示音量大小(0-1),以下是转换公式

V转换成volume_db的公式:

volume_db=10*log(v)/log(10)

但是log的参数必须是大于0的,我们要做一下特殊判断,最终公式为:

If v<=0:

volume_db=-60

else:

volume_db=10*log(v)/log(10)

Volume_db只要不大于-60,系统就不会发出声音了。这个在设置里可以设定不发出声音的临界值,默认是-60,所以这里就让volume_db=-60。

Image title

一般我们会用全局变量来保存v的值,不需要用volume_db转v的公式,不过还是说一下

volume_db转换成v,公式是:

v=pow(10,(float(volume_db)/10))

注意里面的float(),这里我额外说一下Godot里计算的坑。

举例:

var a=1

print(a/10)

输出结果为0,因为a是整数,计算结果默认取整了。

如果加上float先把a变成浮点数:

Var a=1

print(float(a)/10)

输出结果就是0.1。

(转发自:原日志地址
LD#42 MEMORIES.INC 記憶の管理事務所

Image title

WELCOME TO MEMORIES.INC. 欢迎来到记忆管理事务所。

本公司提供云端储存和记忆售卖服务 -- save your memory, save your life. 

*公历2088年,人类世界已经是克隆人和各种生化仿生人统治的世界,一个没有任何多余情感记忆的世界。

能被称之为人类的记忆已经只能被最原始的人类所拥有。社会最顶层的人类只有舍弃所有的记忆才能获得永生成为能统治他人的存在,因此他需要和那些仿生人一样没有多余的情感记忆。然而售卖记忆是要付出代价的,需要舍弃等值于记忆容量的金钱。拥有了别人的记忆就会同时承受他人记忆带来的痛苦,但同时能获得大量的金钱。你将如何储存你的记忆?

你将如何决定你的人生?

*注意:记忆储存的脑容量是有限的,你需要及时上传记忆到云端储存,否则会脑用量爆炸导致脑死亡。

https://ldjam.com/events/ludum-dare/42/memories-inc


LD#42 Passengers Tetris(3D乘客消除)

Image title

一款真实而严肃的游戏,紧跟“功能游戏”的时代浪潮,解决上班族挤地铁的烦恼。

https://ldjam.com/events/ludum-dare/42/$106337

Image title

Indienova游戏页面

LD42 Rocket Girls!火箭少女!
tcmxx 2018-08-15

Image title

Image title


本人火箭少女101小粉丝一个。由于最近她们事情多,外加我自己寂寞事情少,好久也没做game jam了,所以参加ld。由于连个美术都找不到了,所以做的compo。。

游戏机制就是左右躲闪石头,获取资源,目标是飞到底。。同时资源够了,按顺序打字母可以可以发动每个少女的特殊技能。。


音乐自己做的8bit 创造101的3首歌的改版。。美术自己瞎画的。。


https://ldjam.com/events/ludum-dare/42/rocket-girls

或者国内有教程的版本:http://www.tcmxx.com/zh/archives/510




[LD42] Shooting out of space
ginger 2018-08-14

Image title


https://ldjam.com/events/ludum-dare/42/shooting-out-of-space

二十四小时开发水出新高度XD

空间枪使用说明

1. 你的枪消耗的不是子弹,而是你附近的空间

2. 落入空间边缘的东西会消失,请保持距离

3. 坏消息,你的敌人们用的也是同款空间枪

LD42#No disk space 硬盘空间不足
rayriver 2018-08-14

Image title

Image title

Image title

Image title

Image title


LD页面:https://ldjam.com/events/ludum-dare/42/no-disk-space


首先感谢@ical绘制的像素ui元素,如果是我自己画,结果一定会非常难看。


这次的游戏是一个模拟电脑操作的游戏,游戏目的是想方设法避免自己的硬盘空间被撑爆系统崩溃,玩家需要根据现有的线索,找到解决问题的方法。根据玩家不同的行为,游戏一共有4个结局。


因为这类游戏的原因,要模拟一个完整的操作系统,需要构建一套操作系统的机制,构建机制的完成度决定了游戏能设计到什么程度。构建的太符合操作系统本身的机制,则工作量巨大,构建的不够完整,则必须要有适合的自定义事件来驱动。在时间有限的条件下,无法把机制构建的很完整,但是反而在各种事件上花了大量的精力,现在的游戏流程基本就是在一个简单的操作系统机制上的一个多结局演出,解谜元素做的很浅。另外有2个结局的达成条件还是有一些牵强,暂时没有找到好的主意,具体的达成条件已经写在LD页的评论回复里。


这次活动看着好像目标很明确,也没有什么特别的技术难度,但是实际做起来还是感觉时间不够用,可能是我做的太慢的原因,不过前期代码构建的比较合理还是方便我加一些扩展,帮助我后期加快了不少的速度,当然中后期开始,感觉时间紧迫,基本就放飞自我了。。


最后值得一提的是,本次jam活动结束是在北京时间6点,我从5点半开始登LD,结果半小时都登不上,当时我急得都快放弃了,后来才发现,原来6点以后还有1个小时的submission时间,然后又过了段时间发现submission时间延长到24小时了。不知道是不是以往活动都是这样,总之以后还是要注意早一点打版本提交吧,宁可之后完善了再提post jam版,也不要等到最后的deadline才开始提交,毕竟国外的网站,说登不上就登不上,有时候魔法都不管用。。。

[LD42] 去上班! Rush Hour!
Wxzuir 2018-08-14

先上链接:https://ldjam.com/events/ludum-dare/42/rush-hour

这,是一款模拟挤地铁的沙雕游戏『去上班!』

玩家需要在一轮轮拥挤的人潮中,调整自己柔软而沙雕的身躯,在臃肿的其他乘客中寻找空间生存!

不仅要防止被其他人挤死,还要防止自己被挤下车!

(不然就上班迟到啦,扣工资啦啊哈哈哈)

操作方式:键盘 Q W E R。

游戏的操作方式非常鬼畜,但也蛮有趣的,各位可以试试!


Image title


Image title

Image title



这次也算是我第一次和其他大佬进行线上合作的Gamejam!!

@4399 @软泥怪大裤衩 @枕头  

也感谢 @炉子 关键时刻的一波援助!!

这次的主题是,Running out of space

在一开始的讨论中,确定了『挤地铁』的方向,于是就绕着挤地铁,开始乱搞!

第一步开始尝试一些奇怪的物理效果,希望能用物理效果来带来挤地铁的感觉

于是就尝试了软体、布娃娃、感觉找到了那种挤来挤去的感觉!!!

于是决定用软体做主角,后来发现这是最错误的决定之一……

因为软体无论怎么做,都很难能带来本质不同的操作……

于是在这里花了很长时间也没什么进展——

最后把主角换成了火柴人,其他乘客都是软体怪,整个世界都对路了!

整体上讲,这次线上合作的感觉,感觉最不同的是『策划』迭代的方式。

以前在线下的时候,可以随时根据美术效果、程序效果大家一起讨论决定策划的方向~

所以以前的时候,我往往找到我心里的『核心』就开始胡搞!

然后胡搞出一些东西之后就和大家一起讨论一下,再确定一个方向接着做~

这样的话,即使美术和策划没进引擎,可以清楚地知道我们在哪里,我们要干啥!

而且策划策划也可以极其方便进引擎,利用程序写好的模块来搭建关卡、调试数值、制作内容~

依靠这种迭代,游戏可以不断修正方向,向着一开始定下来的那个方向努力!


但是这次!!因为是线上合作——

每每大家做出来一部分效果,想要讨论来寻找新的灵感的时候……

就,因为不能在线下立刻沟通讨论……所以很不方便很不方便……

于是程序们,往往做完一个什么东西,然后就没有思路一脸懵逼……

于是策划们,往往大部分时间没有好的形式参与到开发当中……

甚至于很多时候不进引擎的话,完全不知道进展到哪一步了

更别说在中间的时候讨论修正方向了……

希望下次能找到更好的线上合作方式!


最后说几个当时想到的其他的方向,因为种种原因没能实施的

1、俄罗斯打人企划!

屏幕分为两个部分,左半部分是一个俄罗斯方块游戏。

右半部分是个回合制RPG的战斗系统。

你在回合制RPG中每次受到伤害或者释放技能

都会在俄罗斯方块这边产生一个新的方块。

如果俄罗斯方块这边满了,游戏失败。

所以玩家必须根据俄罗斯方块这边的局势,有选择的释放技能!

深思熟虑,谨慎考虑。

(每个技能会产生的俄罗斯方块的形状和位置可能都不一样)

本质是希望玩家在战斗的过程中,需要综合俄罗斯方块那边的策略来考虑

(有点像Mark Brown 上次Gamejam的主题)

2、步行模拟式挤地铁

就是单纯用一段艾迪芬奇式的交互来让玩家感受挤地铁的那种痛苦……

LD42#Foggy Raft 迷雾之筏

太阳升起。

从深眠中苏醒时,你发现自己在一个寂寥无人的荒岛上。

四周的海洋被云雾笼罩,尽管风平浪静,但你感受到了某种不可言明的存在似乎潜伏于这层层迷雾之中。

游戏目标:集齐三个宝箱并击败浓雾中的怪兽,在集齐宝箱前请尽量躲避怪物前进。

Image title

这是我们小组第一次参加Ludum Dare,请多指教!

策划:dimlight

美工:dimlight,Ruimex

程序:o2o

翻译:Dimoon_LY

LD链接:https://ldjam.com/events/ludum-dare/42/first-lidim-dare

下载页面:https://dimlight07.itch.io/foggy-raft?secret=Gt9GfcaiTIbTXpAEvxUd3rwRaM

#1.1更新:修复了在指南针周围点击会出现帮助菜单与CREDITS无法正常显示的问题

#已增加Mac移植版

[LD42] 人力火箭 Human Powered Rocket
GoldRanger 2018-08-13

Image title

在人口增长迅速的未来,总统为了解决人口问题,决定重启太空计划 - 人动力飞行火箭!
这是一个不管实验成功还是失败都能解决问题的完美计划!


LD链接:https://ldjam.com/events/ludum-dare/42/morelivingplace

直接去下载页面:https://goldranger.itch.io/morelivingplace


加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册