即将要走出校园,感觉实习公司好多,看的眼花……
一直觉得ubisoft公司做的游戏很好玩,正好有个学长引荐,于是就投了个简历。
除了同济几个软媒同学,软件工程竟然只有我和大diao童俩个代表,剩下好像都是别的学校的。其中一个姐姐问我俩带笔了吗,我俩非常默契的都没有带。感觉那个姐姐用一种非常无奈的眼神看着我,好像在说“笔试你不带笔你来干嘛”。Development大概有10人,QA有3、4个。
卷子是16开的,8页,反正面都有题目,2小时。
基本都是英文,只有部分怕理解错误的地方有中文。
凭印象说说题目吧,感觉对以后想报ubi的能有点帮助吧。
整体上感觉考察的是C++,面向对象思想比较重点,图形学的知识,游戏的知识,还有就是数学知识。
第一题还是相对容易的,考察的是二分查找,题目挺新颖的,至少这个类型没见过,不过思想就是二分查找,学过算法和数据结构的应该没问题,好几处是否加1还是减1搞清楚,数值别跟丢了,就ok了。
然后还有代码填充的题目,整个程序的大致意思是用户输入一串四则运算,包括+-*/(),传给一个char*,最后程序会返回最终运算的值。难点在于,这个左括号和右括号,括号里可能还有括号,这些括号有点小纠结,仔细看了一会,没明白,想到应该用的编译原理的思想,再看,明白点,一个函数里面一共6次用到自身递归调用,个人认为前三个递归还好理解,最后几个确实有点难,左右括号让人不得不蒙啊,不知道答得对不对,感觉程序应该读懂了。
还有关于类的题目,是future类,好像还涉及到Cpu中断,判断是否存在,获取存在值得一道题,不是很清晰题目意思,也不知道是否要用到哪个设计模式,试后问童童,童童也不清楚,索性罢了……
依旧是考察面向对象,这回是图形学里面渲染的知识了,在3d渲染类已经给出了,但是现在想往Xbox上面移植,写出具体的Xbox的类,大家一定要对图形渲染有了解才行,贾老师的课虽然大二就上完了,还是记住点东西。不过具体的类设计用的是面向对象,侯捷老师给我们讲过的,对的!就是设计模式,这道题是让我们用mediator设计模式。感谢侯捷老师。
有道题根本不会,问的是游戏AI框架,Role System的,乱七八糟的,就是不会呀~
还考了一道编译的题目,关于有限状态自动机的,学过编译原理的同学,应该感觉很容易的。
图形扫描,图形学的题目,参数是给定的不规则图形,实心图形(内部也是黑色填充的),图形内部又包含一个不规则图形,内部是白色填充,写出一个函数,函数返回一个新的图形,这个图形是给定图形的一个描边图形(就是内部不是实心的,只需图形边界是黑的即可)。算是和第一题一样简单的题目了。
游戏中武器的描述,武器有各自的用法,武器可分远近战,再细分可以包括刀剑弓弩等,武器可升级,同一个大类的类武器相同等级时属性相同,所有武器都可装配一定数量的宝石,各宝石增加不同属性的值,大概是这么一个意思,还给了一些细节的条件,然后让写类,符合上面要求即可,写了大半篇,继承呀还是继承呀,virtual呀还是virtual呀,……最后写完了,不知对不对。
关于游戏场景的题目,估计是最难得了,场景中有障碍,要求一个球以不可改变的速度按照程序的要求方向最终可以达到目标点,还给了好多参数,还给了一些向量,向量的内积和外积。需要注意的是如果小球方向不是朝着目标点,它是不会瞬间改变方向马上朝着目标点,因为速度不变不可控制,所以方向是一点点沿着切线方向改变,最终才会朝向目标点;同时还需要注意,当小球不是朝着目标点运动时,小球也不一定会改变方向使自己朝着目标点,因为小球和目标点之间可能有障碍,要没有障碍时才可考虑改变方向朝目标点,这些需要注意的都是考试时候自己想的。感觉还有一些细节没想明白,碰到障碍物为何方向改变为左上方向,另一处快碰壁时却是沿着两点向量切线方向,而切线方向又有两个方向,为什么选择向上的切线方向。唉,简直一道数学物理题,都两年不学这玩意了,在草纸上研究半天,还是不会……
还有什么题就不太清楚了,总之EffectiveC++一点没用上,一些新颖的算法到是不少,会玩游戏的不代表就会做游戏的题目,面向对象思想、设计模式都很重要,编译原理有些时候还是很有用的,不要把编译和数字逻辑同等对待。
童童也说题目是不是有点太难了,感觉ubisoft不是在招Intern,明显再招employee。估计我俩打酱油了,老外不少,英语不太好,看着压力好大。
通过这次折腾至少知道些东西,原来手机上经常玩的游戏(gameloft出的),是育碧的兄弟公司,维塔士是育碧以前的员工自己开的公司。雷曼系列玩过一个,细胞分裂三打同学总玩,手机里还有他们的波斯王子,不过早就通关了……
打dota去了……
Leave a Reply