在项目对应的Eclipse桌面工程中导出两个jar包:
jar包A.jar: -> Export ->Runable jar file ->NEXT -> 勾选"Copy required libraries into a sub-folder next to the generated JAR." ->Finish
27
2019
09
Libgdx 桌面项目(Desktop jar)混淆
06
2018
05
开发PSVita自制软件最简单的方法
两年前就想写了,一直记在备忘录里,为了填坑一下写了三篇博客,哈哈哈……
切入正题,之前我开发过PSV的小游戏,PSV的开发环境配置非常非常麻烦,而且还得用晦涩的C语言。
Git上有个叫Lpp-vita的项目,实现了lua开发psv应用,地址:https://github.com/Rinnegatamante/lpp-vita
别急着去下载,lpp-vita仍然需要你配置环境,再开发,编译打包。
其实lpp-vita工程编译的都是lua解析器的代码,lua代码和资源是直接打包的。
所以你可以去找一个lpp-vita实现的应用,比如flappybird:http://wololo.net/talk/viewtopic.php?f=116&t=46593
解压vpk,直接把你的lua代码和资源放进去(index.lua是入口类),再打包成zip改名vpk,你的app就完成了。
不用开发环境,不用编译,哈哈哈。
06
2018
05
Box2d中的同步问题
无论纯Java版还是Libgdx版的BOX2D,很多朋友都遇到过卡死、报错。
其实BOX2D内部是不同步的,特别是创建和销毁刚体方法,在调用的时候一定要注意同步,比如:
synchronized (box2dLock)
{
return world.createBody(def);
}
synchronized (box2dLock)
{
world.destroyBody(rigid.getBody());
rigid.doClear();
}
另外,body从world销毁以后,可能你的代码中还有逻辑访问这个body,会触发非常难排查的错误。
所以尽量在body销毁后,手动将body引用设为null,只要引用到不存在的body,就会触发空指针错误,这样要容易排查得多。
06
2018
05
3D复刻的红警2
最近腾讯要推出红警手游,又让大家缅怀了一把WESTWOOD。
红警2也是我最喜爱的游戏之一,其实有3D复刻版的红警2,是红警3的一个MOD,特来分享给大家。
(但是,目前AI比较傻。MOD作者进度非常慢,上一次有消息还是16年)
http://www.moddb.com/mods/cnc-condition-red
04
2018
03
Mulite第一个Demo反馈
年前少量玩家参与了第一个demo的测试,暴露出的问题不少,但总体反馈来说大家基本满意,一些业内人士、合作方也给了不错的评价。
总结一下比较有争议的问题:
1)砍杀动作较慢,没有刀光剑影的爽快感
答:【次要原因】目前的主角动作为临时设计,部分动画节奏有点拖沓,导致影响手感。【主要原因】这个游戏的定位并非无双那种切水果的战斗,也不是鬼泣那样追求快速连击视觉效果的战士。我更想展现一些类似格斗游戏的硬核元素,来体现战斗的节奏感和操作性。不过我在第二次更新时也做了攻击速度方面的调整,让“拖沓”感降低了一些。
2)不能接受关卡中死亡不保留等级
答:部分玩家无法接受这种roguelite设定。其实这样设计是为了增加游戏的挑战性,让有限的场景、怪物、武器最大化的重复利用。试想如果保留等级,就要大量不同的关卡、敌人、装备作为支撑,作为预算有限的独立游戏是不现实的。另一方面,现有的装备、天赋都没有强弱之分,只有合理搭配,他们都是围绕重复挑战来设计的。
3)一些法系天赋体验较差
答:确实拿剑战斗的魔剑士变成脆皮,且只使用火球、陨石之类的远程技能非常不合理。在最近的一次更新中,我已经做了很大的技能调整,增加了法系天赋的操作性。
4)内容较少,只有一个关卡和一个生存模式。
答:umm...这个我更着急,但确实精力、金钱都很有限,希望大家理解,争取上半年能登录steam发布先行版。
5)手机版操作不方便
答:本来是不打算放出apk的,很多朋友不方便使用电脑,apk只是方便大家熟悉demo,实际操作和游戏设计都是以PC 键盘或手柄操作为核心的。因为精力真的很有限,希望大家谅解。以后项目成熟,我会专门针对移动平台优化游戏设计和操作。
另外APK版其实是支持手柄的,这样操作体验就与PC无异了。
目前遇到的困难就是人物动作设计了第四个版本,依然无法达到预期。
在找到合适的人手或者解决方案之前,先做第二个关卡——地下城以及对应的怪物。
31
2017
12
凭热情组建的团队靠谱吗?
经常在网上看到朋友要组件团队开发游戏,就随便聊几句。
第一种。很多人觉得自己很特别,一定能想到别人想不到的点子,设计出新颖的游戏。然后在网上募集人员,组建团队(“就差一个程序员”系列)。
我要泼个冷水,其实我们大部分人都很普通,你的点子大部分情况下都是专业人员想到过的东西。游戏设计是门对综合能力要求很高的技术,特别对于独立游戏制作人而言,不是说要做一个多么天马行空、奇思妙想、美轮美奂的游戏,而是如何利用极其有限的能力、资源、金钱、精力,并保证能在玩法、数值、画面、操作、声音等诸多方面没有明显短板的前提下,完成游戏并实现一些想表达的东西。如果你没有相关从业经验,只是喜欢游戏玩过很多游戏,认为自己很有想法,那我建议你别急着开始,好好学习专业知识先,别连个告诉美术想要什么效果的需求文档都不会写。
另外一些就是专业人员组建团队,针对网上招募的,比如“我是策划,已有美术朋友,再来两个程序”。主要特点就是大家不算熟,一起无偿完成一个项目,靠热情驱动。
1)首先,说我自己。无论自己经济多困难,哪怕再好的朋友合作,我也会主动要求支付报酬,最多他看情况给个友情折。我不算一个顶尖的制作人,无法保证项目100%成功,如果无偿合作,组员将会为我的个人能力背负白干活的风险。别说白干活没什么,美术一年外包赚十万很正常,替你白干一年就等于亏了10w,只怕最后朋友都没得做,所以对组员最负责任的方式就是支付他们报酬。支付报酬还有个好处,项目失败我不用背锅,项目成功分红我说了算。
2)另外,我不认为大多数人可以凭激情或画饼诱惑(游戏做出来以后怎么样怎么样)尽心尽力地跟你合作。在无偿团队中,会形成人人平等没有主导者的潜规则,那么任何个人原因都会变成推进的阻力,每个人都会懒惰、拖延,每个人都有零碎琐事,每个人对游戏设计的看法都会不一致。没有约束力,没有主导者,那就是一盘散沙。那么给钱办事,就是最好的约束力。否则:
50%的情况是中途有人:家里有事了、我妈让我回去结婚了,分手多年的女友抱着孩子来找我了……
30%的情况是大家意见不合一拍两散。(所有人都觉得自己很特别,很有想法,凭什么按你的游戏品味来做?)
20%的情况是项目做出来不叫好也不叫座,白白浪费时间和精力,最后大家朋友都做不成。
排除其它情况,估计5%的几率会成功。
但是当然,如果无薪团队彼此很熟悉,职业技能在同一水平线,分工明确,性格相投,都会增加成功的几率。
16
2017
12
28
2017
11
进度总结&12月将邀请体验demo
加入了简单的营地,有商人可以买东西(不定期刷新,需要消耗关卡收集的金币)。另外营地有两个出口,可以去关卡以及竞技场。
把恶魔广场高清化了。(恶魔广场即一波一波刷怪的生存模式)
其它也零零散散做了很多调整,比如取消的技能加点,改成技能根据天赋随机出现。
目前完成的有:
--> 20多个主动技能,被动若干
--> 装备40件(武器、头盔、铠甲、戒指、项链、鞋子、护手),但纸娃娃只完成两套
--> 天赋10个(还未完成平衡性测试)
--> 怪物总计7种,1个简易的BOSS
--> 一个洞穴关卡(由若干随机的自场景构成)
--> 恶魔广场,大概配置了15波敌人(作者身边的朋友目前还没有能打破15波的)
近期打算就已有的内容,做一些相对的完善,然后出个demo,建个群邀请感兴趣的朋友一起试玩、讨论。
demo版之后需要完成的有:
--> 随机效果的药剂
--> 机关
--> 一些随机性事件(待定)
--> 更多的技能(召唤流、分身系等)
--> 重新制作人物动作(目前人物动作拖沓、不协调)
--> 完善纸娃娃系统
--> 更多的关卡
--> 更多的敌人
如果一切顺利,未来还将完成:
--> 第二个职业,弓箭手
--> 联机
--> 更多的技能、更多的装备、更多的地图
--> moba模式
06
2017
08
离第一个试玩demo越来越近了
很久没消息了,更新一把。第一大关的随机地图已经设计完成,原来的马赛克怪物也都替换掉,还新增了一两种,画面上基本已经脱离最初的马赛克了!
不过接下来要做的仍然很多:地图宝箱、陷阱、BOSS战等。另外技能系统我也打算大改,目前的设计是几十个技能预先加点,这样缺少rogulike游戏的随机性,打算拿出一半技能放到天赋系统里,由战斗时随机选择。
前些天去了趟Chinajoy B2B,打算看看有没有朋友有投资意向或者独立游戏扶持,然而发现所谓的独立游戏合作,大部分都是手机网游优先,看你产品有没有快速变现的能力……看来真正的困难,还是得自己抗。
08
2017
06
Libgdx游戏如何接入banner广告的view
大部分Libgdx的安卓入口里,都是直接一个DirectedGame来初始化:initialize(new GameDirectedGame(), cfg);
而一些广告需要用自定义布局潜入一个View。Libgdx安卓入口中,MainActivity(继承AndroidApplication),oncreate方法里用以下方法可实现。
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
// 创建布局
RelativeLayout layout = new RelativeLayout(instance);
// 创建 libgdx View (DirectedGame)
View gameView = initializeForView(new GameMain(app), cfg);
// 添加view
layout.addView(gameView);
//初始化广告视图
BaiduBanner banner = new BaiduBanner(instance);
//广告布局设置,根据自己的位置来设置参数
RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(
(int) (getWindowManager().getDefaultDisplay().getWidth() * 0.55f),
RelativeLayout.LayoutParams.WRAP_CONTENT);
adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
adParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
adParams.rightMargin = getWindowManager().getDefaultDisplay().getWidth() / 4;
layout.addView(banner, adParams);
//设置嵌套后的布局
setContentView(layout);