Category Archives: Uncategorized

2023个人最佳

硬件

Dell 键盘 KB216t

今年买了IQUNIX的机械键OG80尝试,觉得机械键盘键程太长。 发现这款便宜Dell的键盘用得更习惯。键程短,键帽不晃动。

软件

Trello

image from Atlassian

很好的事务管理软件,原本是项目管理用,发现做个人事务管理也很不错

电影

灌篮高手


今年电影院看的电影个人觉得有几部不错的,年会不能停,奥本海默,疯狂元素城,满江红。疯狂元素城故事较薄弱但是渲染技术我认为又有了进步。综合还是选灌篮高手,也许是情怀 ;p。

UE4迭代器删除元素

在一个Unreal Engine的项目中,发现TArray<AActor>迭代器循环,actor::destroy会在数组中移除该元素,和element.remove()一样, 引起迭代器失效,很奇怪。经调查原来是因为在Actor::endplay里代码把自身从数组中移除了。我因为之前没有在迭代器里删除过元素,在查这个Bug过程中,我看了下数组Remove的代码。

TArray Remove Implementation

C++ vector::erase操作删除一个元素会导致后面所有的元素都会向前移动一个位置,这些元素的地址发生了变化,所以当前位置到容器末尾元素的所有迭代器全部失效。

这里,由于移除元素,移除元素后面的元素都向前移动,所以导致第二个元素3无法被移除掉。


最近的事

  1. Goal Oriented Action Planning(GOAP)是一种新的AI制作系统,让AI通过计算达到目标的代价,获得更多的自主性。我目前没有太了解GOAP,GDC这篇游戏应用的文章可以了解更多。题外话,GDC分享者Crystal Dynamics的Chris Conway提到他2006就开始写GOAP的核心代码基于06年他们公司lead designer的GDC分享,并于几周写完90%的核心代码。但直到7年后的古墓丽影才第一次才应用到发售的游戏上(First shipped title using it)。

十一月十四号的事

周六参加了一个小的行业分享会,好像说起来是我回成都后在成都参加的第一个外部的分享会。以下是我自己听后的理解,不全代表作者的观点。

第一个由邓春燕带来的《技术转型管理的思考》,分享了从做事、做人和思维上的转变。做事上,转型管理会有从管理自己到管理他人的转变。管理他人的前提是要先管理好自己。所以一个好的管理者,应有一个好的自我管理。春燕她自己一个时间管理,早上开会前和晚上6后是他的一个自我学习和工作总结的时间。如果做纯管理,思维上从技术性思维向一个商业性思维的转变,比如项目需要一个“天气系统”的考量。因为管理通常意味着更多的责任,自己做事的目的性会更强,遇到挫折更加坚韧。由于工作内容的转变,当然会有新的挑战,比如招聘。也会做一些以前不情愿做的事,比如辞退员工。

第二个是由Raynald Bouchard带来的《Focussing on Productivity》,分享了pipeline tool的重要性及育碧在优化pipeline上做的工作。主要集中在以下几点。

  1. 通过增加工具收集数据,特别是错误数据。分析pipeline瓶颈。降低相互等待的情况。
  2. 增加自动化工具,节约人力时间。
  3. 不断优化生产工具,更好用,更少的bug,让使用者专注于内容。
  4. 当下开放大世界越来越流行,做开放大世界,Split data对提升效率上是一个很重要的点,可以减少互相等待,及缩小反馈周期。
  5. 内容验证,越早越好。育碧尽可能的做内容验证,尽早发现错误。通常在生产者提交前就会做尽可能多的内容检查,比如美术内容有错误,不会被渲染出来。

邓春燕在分享开头提到了他们公司的类似“照扫建模”的技术,可以生成高质量高精度的模型,包括人物脸部模型用于游戏中。无独有偶最近我们公司美术师也在公司分享了照扫技术的应用。得益于当前计算机强大的计算能力,三维建模的工作量可以进一步降低。对照扫技术感兴趣可以看下开源的软件Meshroom

Things new

  • 最近在学UE4蓝图,学习UE4 蓝图最开始是抗拒的(笑),学会了,感觉用着还是蛮顺手的。不熟悉蓝图时感觉实现一个功能不如自己写代码快,很多简单的功能,自己写代码知道怎么做,用蓝图找模块网上查半天,而且觉得用蓝图的思维模式和写代码的思维模式还是有差别。当学会了蓝图,发现其实很多gameplay的功能比写代码快,因为功能模块的代码引擎帮你“复制”好了,不要自己再去复制自己的代码了(笑)。
  • 用D3D DX12实现了一个3D BOX,成功显示出来效果很炫啊。都快忘了大学用OpenGL画一个图形的惊艳感了(那也算是自己的图形引擎第一步[笑])

五月三十一号的事

周末和莎莎在家看综艺-奇遇人生第8期《李诞和阿雅日本行禅悟人生,谈“吐槽大会”痛并快乐着》,李诞是本期嘉宾(2018年的综艺)。李诞讲到:“我如果再说生活难受就太不是人了,我生活其实挺好过的,没有什么大岔子,也没有很累,没什么错误,没什么问题”。

BLOG RETURN

两年多前域名到期没有续费,域名被回收了,很长时间被处于不能重新免费取回状态。这几年个人以文字为主的创作发布平台在变化,微博,微信公众号逐渐的崛起,个人博客在逐渐走向历史。我订阅的个人博客基本是一片灰,基本也是几年都没更新了。

今天工作看到一个个人博客让我想起我还有博客这回事 :p,顺手搜了下域名,一看我的域名都已经可以正常注册了.. 然后费了点周折的弄好。我忘记了博客密码,还不能邮箱找回.. 我还得到数据库里改。总之,博客又弄回来了。看着以前的文章,还有那些未发表的文字,看到了我曾经的想法,肯定有些感慨,哈哈。

很巧今天是2019的最后一天,第一次在新环境写博客。今年工作依然很忙,今年也去了不少地方,也要感谢聪聪 ;p。

期待新的一年。2019年过去了,我很…

MonoDevelop使用中文注释解决方案

到目前Unity3D 4.0为止,Unity3D集成的MonoDevelop需要对其进行一些设置才能较好的支持中文注释。我分享一下我Google和实践的结果。

1. 乱码问题

乱码问题主要体现在Visual Studio的脚本在MonoDevelop下打开出现乱码和Mac下显示乱码两种。

首先保证MonoDevelop以UTF-8编码来保存脚本。

1.1 Visual Studio的脚本在MonoDevelop下打开出现乱码

VS保存的脚本应该没有以UTF-8来保存,所以以VS2008为例,在工具-选项-环境-文档里将“不能以代码页的编码格式保存数据时将文档保存为Unicode(U)”勾上即可(VS2010要勾上选项页面左下角的“显示更多”)。

1.2 Mac下中文显示乱码

Mac下多半是因为没有使用正确的字体导致的,根据网友的分享,使用Arial Unicode Ms该字体可解决。

 

2. 使用中文注释后,Debug打断点不能正确定位

这 是换行符导致。 MonoDevelop默认应该使用的是Unix换行,注释使用了中文后,比较奇怪是使用Unix换行打断点就不能正确定位了,但是我发现换成 Windows或Native换行即可解决。因为考虑到跨平台性,所以选Native即可。

Project-Solution Options-Code Formatting-Text file下选择Native对当前项目生效。Tools-Option下设置对新项目生效。

(Advance: 如果新建脚本出来编辑器提示需要转换换行风格,可以通过修改MonoDevelop的脚本模板来避免提示。修改地址:Unity目录-Editor-Data-Resources-ScriptTemplates下)

解决上述问题,解决了我目前使用MonoDevelop使用中文注释遇到的障碍。

 

参考:http://game.ceeger.com/forum/read.php?tid=4143