http://www.csdn.net/article/2013-03-29/2814706-3D-BEE-1KB-JavaScript
摘要:忙碌的一周总算过去,闲暇时不妨来细细品味我们精心为你呈现的这份技术大餐。本期热点:神奇!1KB JavaScript代码编写的3D蜜蜂;魔兽之父专访:今年游戏产业会出现一场革命;回顾:那些被平台方封杀的第三方应用。
我们挑选了本周研发频道的精华文章,推荐给您的绝对“有料”,闲暇时不妨来细细品味我们精心为你呈现的这份技术大餐,或许有您意想不到的收获。本期热点:神奇!1KB JavaScript代码编写的3D蜜蜂;魔兽之父专访:今年游戏产业会出现一场革命;回顾:那些被平台方封杀的第三方应用。
本期热点回放:
相信很多网友都还记得去年CSDN报道过同样是1KB JavaScript代码所编写的 3D玫瑰,或者2010年的 3D圣诞树。细心的网友可能注意到了,这两个神奇的作品都是以为西班牙开发者 Román Cortés在JS1K大赛上的投稿作品,今年他又带来了同样神奇的3D蜜蜂——长着触角、系着领带。
左、右分别是做过动作模糊化处理前、后的样子
由于 JS1K规则限制,该作品仅支持Firefox 18、Chrome 24以及Opera 12、13。如果你已安装以上浏览器,可以选择观看 线上演示。
该作品的实现使用到了很多算法和渲染技术,作者在自己的 博客上详细地 解释了其技术原理。源代码如下(经过压缩):
1
|
_= "G=[V,j=WV,-j]];jX=83,(+3+KD37Uji&32?70:,-80Y2]b=a[j]=c.cloneNode(LEb.getContext('2d'bAb;x=8# 8-x,6+x(j<17X7;<xeH@x*@x*y,.07$OsetIntervalcLE5;a e#73D-=7$7<ZaH0#-i$Q,-8Oj++;ZE8Q/((i+)%3095W0-e*5,6-e#*5#OG.sortreturn -eV]}OG.map=L^)/-[,=+]V];y=^X^)(X/6)+;x=0Y8Q;~~F2]W-@x-~F4]/1*^5+/F3]-@yL;!F2]&&Z_beginPath(_moJa(_bezierCurJ))})},j=4OjLj?cA1Q:9Q;z=x=*yZj|(z+1)%.5<.1&&(z*(191+(E527368,xB9+Ui3*e,(59525-y*(5188+(+(280*,yB8-(j&2]j||abs(E8-i%)<54-D&&YD2e4#+e*/|[1$4$,,$,8$][~~(D48+e/3)W90+D8,i])cos(>>j*4&15)sin(i(function(b#){F0])*--;)F1] StylE'hsla('+[for(`,j+y,Math.iG.push([),_drawImage(a[270+'%',.fill(j&15K(y=))/8`/2,y501660j/.height=1]+')',i(.5+.5#,e$,1@30+A.width=B*(10*Di/Ee=Fb[HRect(JveTo(Yi*Li=O);Qe3UPI*V[0W],X+Y-KZi^_a.`+x+" ; for (Y=0;$= "`_^ZYXWVUQOLKJHFEDBA@$# " [Y++];) with (_.split($))_=join(pop());eval(_) |
相关作品:
更新:
- 之前的版本在最新版Chrome和Firefox Nightly中存在无法显示翅膀的bug,已修复,线上演示地址并没有改变。
- 有网友提到另一个JS1K作品——Strange crystals(无尽的隧道)也非常神奇,3D蜜蜂的作者Román Cortés已将两者合而为一,并且仍然小于1KB。
- 应网友要求,笔者已将“3D蜜蜂”源代码以及“隧道里的3D蜜蜂”源代码打包上传,可以点击这里下载。
通过一次偶然的机会,krisviceral.com博主对魔兽之父Patrick Wyatt(Pat)进行了专访。在采访中Pat表示,相比与Warcraft和StarCraft,他更为Guild War感到骄傲,因为这款游戏的开发并没有像前两者那样拼命加班,而且也成功地锻炼了很多新人开发者。
Patrick Wyatt(Pat)曾任Blizzard开发&搜索副总裁,参与过Warcraft、StarCraft、Diablo、battle.net、Guild Wars等产品的开发,CSDN之前也对他所写的Warcraft、StarCraft开发历程相关博文进行了 编译、报道。本文译自krisviceral.com博主Kviceral对Pat的专访,Pat对游戏、AI、软件开发等方面都发表了自己的观点。
魔兽之父Patrick Wyatt
你曾参与过很多广受好评的游戏开发工作,其中最令你骄傲的是哪款?
Pat:这是一个很难回答的问题,因为每个游戏都倾注了我的心血。真的要算起来应该是Guild War,这是我们以小团队努力的成功。
我们从Blizzard离职后创立了一个新公司(ArenaNet),从零开始打造出了这款极具创新的游戏,甚至没有拼命地去加班工作,但是最终我们成功了。
在ArenaNet,我们招聘了很多刚毕业的学生,所以他们中很多人并不知道Guild War的开发流程与“传统”游戏开发有多少不同,但我很高兴他们没有和行业中大多数人一样常年crunching。
Guild War刚开发出来时,我们是唯一一个放弃订阅模式(通过支付每月的订阅费无限玩游戏)的商业MMORPG(大型多人在线角色扮演游戏),你在购买了这款游戏之后就可以无限制地玩。
在过去2-3年里,你最喜欢的游戏是什么?
Pat:我很享受DayZ这款僵尸题材的生存游戏,我也很惊讶自己竟会喜欢这款游戏,在地面上匍匐前进10分钟听起来可没什么意思,但是这款游戏的背景会让你为此着迷!我偶尔也玩League of Legends,同样很喜欢Kindom Rush(iPhone/iPad)这款深受Warcraft和StarCraft影响的塔防游戏,我和我的孩子都很爱玩。最近我还发现了AirMech,都是不错的游戏。
你认为过去5年里游戏界最大的创新是什么?
毫无疑问是“免费游戏”这种商业模式在西方市场的巨大成功——它改变了游戏的开发方式。设计师需要更致力于创造迷人的体验,以保持对用户的长期粘性;但负面的影响在于,有的设计师把他们的创造力用在了让用户沉迷于游戏或者是其它“黑暗技巧”,而非增加游戏的趣味性。 我希望使用“心理操纵”等“黑暗技巧”的游戏会越来越少。
另外一处在于移动游戏。创造有趣但是低成本的游戏非常值得赞赏!最近,我发现自己玩移动游戏的时间要远高于PC/主机游戏。相信随着游戏设计师更精于利用移动设备小屏幕的优势,能为我们带来更多优秀的作品。 >>查看原文
一款应用从萌芽状态到最后真正的上线,期间要经历种种磨难,好不容易推出了,然而还要遭到平台方的百般刁难。倘若你的应用不符合平台方的开发者协议,那么将会遭到封杀。那么之前所做的努力岂不功亏一篑?本文例举了部分被平台方封杀应用的典型案例,仅供参考。
NO.1 Adblock浏览器插件遭谷歌封杀
事件回放:2013年3月,谷歌把一款非常流行的应用Adblock Plus从它的应用商店Google Play里删除了,遭此毒手的还有其它几个跟屏蔽广告相关的应用。
官方理由:Adblock应用违反了“开发者部署协议”里 4.4 节的内容:“使用未经批准的方式妨碍用户对其它服务或产品的访问”。
开发者申诉:Adblock Plus的创始人Till Faida称:“我们知道广告收入对谷歌来说十分重要,但Adblock Plus并不是自动屏蔽所有的广告;而是让用户自由选择屏蔽还是不屏蔽”。
评论:谷歌是通告广告挣钱的,而Adblock Plus插件可屏蔽广告。坦率地说,谷歌拖到现在才对这样的应用下手才是让人意外的地方。
- NO.2 Vintage Camera遭到Facebook扼杀
- NO.3 第三方图片托管服务Twitpic、yfrog遭Twitter删除
- NO.4 第三方支付遭Google Play封杀
- NO.5 Dropbox SDK应用被苹果下架
- NO.6 Fawave、微博通等新浪微博第三方应用遭封杀
- NO.7 Emoti for Facebook被Facebook莫名删除
如同一位网友所说:没有真正的开放,也没有真正的公平竞争。平台方永远拥有一票否决权。那么,开发者如何才能在举步维艰中继续前行,绝处逢生呢?怎样才能避免遭到平台方的“不待见”呢?
笔者认为,平台方与开发者发生“摩擦”无非是侵权或是分红不均导致的。究竟该如何画这条“红线”,淘宝VP王文彬的回答很有代表性,此前他在接受 CSDN记者专访谈到如何看待平台方跟开发者逐利的问题表示:定义哪些是官方基础工具,哪些是第三方工具,很难画出一条明显的界限,会有一些模糊地带。有一点需要强调,淘宝不会为了跟开发者争夺利润去铲除第三方应用。淘宝更关心的是平台上用户数据的安全性和隐私能否得到保障,用户体验能否提高,淘宝希望看到平台上的第三方厂商做大做强。
一份意外泄露的中移动内部PPT不仅搅皱了通信和互联网行业的一池春水,也搅乱了相关公司的心。中国移动欲重构飞信正面迎接微信,发改委称要对微信进行收费,那么用户能买账吗?
飞信是中国移动于2007年5月推出的一款综合通信服务,即融合语音(IVR)、GPRS、短信等多种通信方式,覆盖三种不同形态(完全实时的语音服务、准实时的文字和小数据量通信服务、非实时的通信服务)的客户通信需求,实现互联网和移动网间的无缝通信服务。
微信是腾讯公司于2011年1月21日推出的一款通过网络快速发送语音短信、视频、图片和文字,支持多人群聊的手机聊天软件。用户可以通过微信与好友进行形式上更加丰富的类似于短信、彩信等方式的联系。微信软件本身完全免费,使用任何功能都不会收取费用,微信时产生的上网流量费由网络运营商收取。微信是一种更快速的即时通讯工具,与传统的短信沟通方式相比,更灵活、智能,且节省资费。
2007年中国移动推出的聊天工具,至今已有6年光景的飞信软件,因与短信业务连通而广受关注,但目前处境并不乐观。据统计,如今飞信的用户量还不到腾讯QQ的五分之一,月均使用时间不足后者的四十五分之一。更让飞信感到恐惧的是,在2012中国互联网大会上,腾讯CEO马化腾在微博中宣布,微信用户人数已高达2亿,截至2013年01月注册用户量已经突破3亿。这个诞生仅2年多的手机聊天软件,发展如此迅猛,使业内人士颇为震惊。
微信因其操作简便,能广交好友,成为年轻人的交友工具。最初微信以文字通讯、手机图片分享为卖点,在后期开发过程中以发现“查看附近的人”和“摇一摇”功能更受用户欢迎。微信日新增用户以数十万数量级增长,确立了它在移动APP市场的绝对优势地位。
5.Web框架排行榜 Netty、Servlet和Vert.x位列前三一个框架对网站性能会产生多大影响呢?答案或许会让你大吃一惊。本文数据由自称CTO外包公司的TechEmpower测试所得:
框架排行榜:
令人惊讶地是,排在前三的是Netty、Vert.x和Java Servelet。那么它们比Ruby、Django到底快多少呢?一开始我们猜测可能会4倍差异,但在Vert.x和Ruby on Rails之间竟相差40倍,真让人瞠目结舌。
在此次测试中,我们根据精确的文档和社区意见进行配置和部署,尽可能按照真实的生产运行环境来配置和部署。关于每个框架的测试环境是如何搭建和测试的,我们都进行了详细的描述,大家可以 点击查看每个框架的测试详情。
开源系列:
6.腾讯开源基于HTML5技术的专业级图像处理引擎 AlloyImage
腾讯Web前端 AlloyTeam又推出了最新的开源项目,一个基于HTML5技术的专业级图像处理引擎——AlloyImage(简称AI)以及一个在线Web图像处理平台—— AlloyPhoto(简称AP)。这预示着腾讯的Web前端团队将在底层基础技术层面做深入研究,并将更多的为业界提供基础技术服务,同时也将与HTML5梦工场一起推动HTML5技术在业界的广泛深入的应用。
AlloyImage是一个使用Javascript语言开发的,基于Web的在线图像处理引擎,除了核心底层图像处理引擎,还同时集成了一些方便快捷的图像处理API,您可以将它简单快捷的引用到您的Web网页中,做出与PhotoShop一样的优美效果。甚至,你可以用AlloyImage来开发一个Web在线图像处理软件,如:Web版的PhotoShop—— AlloyPhoto。
AlloyPhoto简约版主界面
AlloyImage主要使用HTML5的canvas技术,并在多图层(layer)处理方面做了创新性的尝试,不仅如此,在技术实现层面,其架构方便扩展,使用者可以很容易写出现一个AlloyImage的滤镜插件,很多API支持重载,参数传递灵活。
目前,AlloyPhoto有 简约版和 专业版两个版本,其 源码托管在GitHub上。后续AlloyImage将会持续更新,将更多的处理效果与工具加入到其中,并且会在性能方面做出一些优化与尝试,AlloyImage将力求做一个开放、开源的强大的JS图像库。
7.Polycode:免费、开源的跨平台(游戏和APP)开发工具
Polycode是一款免费、开源的跨平台游戏和APP开发工具,遵循MIT协议,其核心采用C++编写,支持Mac OS、Windows、Linux,即将支持iOS和Android。
开发者可以把Ploycode当做C++库,也可以在其IDE里编写Lua脚本。Ploycode API的设计理念是“用更少的代码做更多的工作”。它使用scenegraph管理系统执行渲染和更新操作,也可以自定义渲染和更新。
在IDE里编写的代码可以直接发布到所支持的平台上,如果只是编写Lua脚本,那么IDE会自动创建“ployapp”应用程序格式,其中包含了所有的代码和资源,并且把它们封装到一个特定平台层上。
在GitHub上托管地址: https://github.com/ivansafrin/Polycode
此外,类似的C++跨平台开源游戏引擎和开发工具有: Moai:其主要面向PC、手机、及基于云端的游戏开发; Cocos2d-x:跨平台的开源移动2D游戏框架,易学易用; Cinder、 Unity3D以及GarageGames开源的Torque 3D游戏引擎。
8.Linux容器运行时Docker开源
Docker是一个云计算平台,它利用Linux的LXC、AUFU、Go语言、cgroup实现了资源的独立,可以很轻松的实现文件、资源、网络等隔离,其最终的目标是实现类似PaaS平台的应用隔离。
值得关注的特性:
- 文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
- 资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。
- 网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
- 日志:收集和记录标准流(stdout/stderr/stdin)里的每个进程容器,用于实时和批量检索。
- 变更管理:被修改的容器文件系统会被提交到一个新的image,留着重用来创造更多的容器,无需模板或手动配置。
- 交互式shell
前往官网查看更多详细介绍:http://docker.io/
源码托管地址:https://github.com/dotcloud/docker/
往期回顾: