2Pac – Life Goes On

2011年度PC遊戲給我印象深刻的

在年度電影總結到了第三個年頭,也終於打算開一個年度遊戲總結的專題了。

由於每年遊戲眾多,各種平台各種遊戲太多了,而我專注於PC平台,因此我進只能局限於PC遊戲進行著一個”印象深刻”的年度文章。但是我也沒法玩完今年所有PC遊戲,因此,我只能從我玩過的進行了。

最煽情大结局(並列):Call of Duty : Modern Warfare 3

一切都結束了,一切都結束了。Price最後點著一支煙,傷感了宣布了Modern Warfare系列的終結,就像他第一次露面時點著一支煙宣布Modern Warfare系列開始一樣。當Yuri回憶以前時,那份激動,那份熟悉只有從最早的Call Of Duty 4的玩家一路玩過來的才能體會到。一個經典的謝幕。

最煽情大结局(並列):Assassin’s Creed: Revelations

儘管Assassin和Desmond的故事還要繼續,但是Ezio的故事卻結束了。從Ezio剛剛出生就一直陪伴著玩家,到年輕時候,再到中年,再到老年,最後到了短片Assassin’s Creed:Embers中Ezio的去世。在三代作品中用一生陪伴了玩家三年,真是讓人無限感慨。Altair的老年的出現也讓人唏噓不已。最後Ezio在呼叫Desmond的時候,一切變得那麼傷感。

最佳技術創新:L.A.Noire

創新的面部捕捉技術,依靠這個絕佳的技術產生出獨特的玩法。極其逼真電影級的人物面部表情讓人極其難忘和陶醉其中。

最佳預告片(當年遊戲發布):Dead Island

Dead Island的遊戲預告很的煽情,絕佳的環境氣氛塑造讓這部預告片倍受讚譽。那種家庭災難,破碎的傷感,一切都那麼讓人觸碰。

最佳預告片2(當年遊戲發布):Assassin’s Creed: Revelations

已經老了的Ezio出現在Masyaf,絕妙的配樂,極佳的動作和畫面,以及對Altair的回憶,都讓這部預告片出類拔萃。

最佳預告片(非當年遊戲發布):BioShock Infinite

BioShock系列以及特別的玩法有眾多愛好者,BioShock Infinite的預告片展現出了BioShock極高的素質,整部預告片顯得淒美,扣人心弦。

Read more »

Sister月記:12/19/2011

2011年、今年も時間は確実に過ぎ、年の瀬を迎えています。

私は年明け、舞台で今年をスタートさせました。シアターコクーン「十二夜」。
シアターコクーンは、私が中学生の頃、初めて串田さんに出会い、オンシアター自由劇場に出会い、芝居への夢を決定づけたような、そんな思い出の場所です。 そのコクーンは12月現在、改装休業中です。私にとっての改装前最後の出演が、串田さん演出の芝居だったことは、とても感慨深いものでした。コクーンがな くなってしまうわけではないにしても、私があの場所で出会った様々な思い出は、改装によってひと区切りつくことになります。もちろん、センチメンタルな気 持ちだけでやっていたわけではありません。初めましての方を含め、皆で、オリジナルな十二夜を目指し、模索しながら過ごした、充実した時間でした。
いつかまた、新しくなったコクーンに出演出来る日が来るのでしょうか?そのときどんな芝居で、どんな自分で出会えるのか、楽しみにしています。

今年は、新たな出会いもありました。西川美和監督の「夢売るふたり」に出演させていただき、とても面白い現場でした。まだ完成していないので、あま り多くはお話し出来ませんが、芝居をしていて楽しい、と思えることは、やはり幸せなことです。それは確実に、自分1人の力ではなく、そこに居合わせる人達 との化学反応のようなものなのです。これから公開にかけて、どんな反響をいただくのか、実に不安で、実にワクワクするような時間を過ごすことになります が、どうぞ公開をお楽しみにしていてください。

そして今私は、久々の連続ドラマ「運命の人」の撮影に入り、充実した時間を過ごしています。とにもかくにも、このドラマで今年を終え、このドラマで来年をスタートさせます。是非御覧下さいませ。 ほかにも、沢山の出会いがあり、そのひとつひとつに感謝しています。

来る2012年、私はありったけの大きな希望を持っていきたいと思います。
決して忘れることなく、でも、前に進めるように。ほんのささやかでも、皆さんに幸せな瞬間が訪れるような、そんな年になりますように。
心から、心からそう願っています。

今年1年の、変わらぬご声援に感謝して。
どうぞ、よいお年を。そして来年も、よろしくお願い致します。

iSpinel.com 2011年度電影給我印象深刻的 預熱

在經歷了2010年眾多電影齊刷IMDB TOP 250榜單之後,2011年的電影回到冷靜狀態。

不知不覺,2011年馬上就要過去了,iSpinel.com 年度電影給我印象深刻的 系列活動也進行到了第三個年頭。

2009年第一屆,2010年第二屆,而現在,第三屆也即將到來。

之前的兩次年度評選在這裡:

2010: http://www.ispinel.com/2011/02/06/1716

2009: http://www.ispinel.com/2010/01/22/151

儘管2011年的電影的最高峰電影未能達到2010年頂級電影的平均水平,但是仍然出現了一些比較優秀的作品。

這段時間我也在進行一個叫做 #2011电影补全计划 的東西,打盡量的看較多2011年比較出彩的電影,無論是任意一方面任意一種風格。又由於平時得上班一部藍光碟BDRIP 1080P電影的體積現在大多都12-15GB,因此這個計劃目前進行的並不是很快捷。

但是這個計劃不能快捷,一部好的電影需要很多天來細細的品味,比如法國電影 住在六樓的女人 就讓我思考了很多天。今年的奧斯卡熱門The Help也是,兩者的題材或多或少有點類似。

這個段時間我也會在TWITTER(@ispinel)對2011年度的電影做一些評論,好準備年度的評選。

敬請期待。

Sister月記:11/05/2011

ご無沙汰している間に、11月になってしまいました。

私は、映画「夢売るふたり」の撮影をひとまず終えて、
TBSドラマ「運命の人」の撮影に入っています。
久々の連続ドラマですが、撮影は順調に進んでおります。
来年1月からの放送をお楽しみに!

寒くなってきましたね。私も風邪などひいていられないので(!)、
あたたかいお茶を飲んだり、アロマを活用したりしながら過ごしていますよ。
先日マッサージに行ったら、結局のところ、「冷やさないこと」と言われました。
寒くなって身体も固まりがちですもんね。
代謝をあげることを目標に、この年末を乗り切りたいと思います!

皆さんもお身体に気をつけてお過ごしください。

Game Engine Architecture 中文翻译:5.2.1.1 基本的Stack内存分配器

5.2.1.1 基本的Stack内存分配器

现在很多游戏中流行使用Stack内存分配。无论何时一个新的游戏关卡载入,内存都为她分配好了。当这个关卡载入完成的时候,要么很少甚至没有动态内存分配发生。当这个关卡结束的时候,她会卸载了全部她使用的内存。使用它具有很大的意义,使用这些类型的内存分配一个类似栈的数据结构。

一个Stack内存分配器是很容易实现的。我们简单地通过malloc(),new或者全局的数组(在这种情况下内存将会在BSS段分配in which case the memory is effectively allocated out of the executable’s BSS segment)的分配一大片连续的内存块。通过一个指向栈顶的指针来维护她。所有的内存低于这个指针的地址被认为是在使用中,而在它上面的所有地址被认为是未分配的自由的空间。这个位于栈顶部的指针被初始化到最低地址,栈顶指针一开始应指向栈的底部。每个内存分配请求只需要简单的移动这个指针到需要的大小的位置即可。最接近的被申请的内存块要释放只要简单的把这个指针移到对应大小个位置即可。

这里有一个很重要的地方对于Stack分配器来说,内存是不能被任意的释放的。所有的内存释放必须做她们申请时的相反操作。我们可以强制的限制这些内存不允许被私自的释放。反而,我们可以规定一个函式用来将栈顶指针反方向滚动到之前标记的地址,这样处于当前栈顶和滚动的指针之间的内存块就会被释放。

有很重要的一点是,要始终把指针回滚到两个内存块的分界上,因为在另外的一些方面,新的内存分配需求需要跟随在这个指针之后进行分配。为了确保这能成功,一个Stack分配器经常会使用一个函式用来返回一个marker来标记当前的栈顶。回滚函式会将她的marker一起操作。这看起来就像图5.1.一个Stack分配器的接口一般看起来像这样:

Read more »

Game Engine Architecture 中文翻译:5.2 内存管理 5.2.1 动态内存分配

5.2 内存管理

作为一个游戏开发人员,我们总是在尝试使我们的代码可以运行的更快。性能优化对于任何软体来说都没有什么特定不变的算法,也没有什么一定的算法已经被弄成代码可以运行在所有地方。但是关于程式如何使用内存,内存对性能的影响一般会体现到两个方面

  1. 动态内存分配 通过malloc()或者通过C++全局操作符new来进行这个操作上非常慢的。我们在动态内存分配的问题上可以通过使用我们自己的内存分配器来使得这方面的性能得到优化。
  2. 在现代CPU中,对于程式的某部分性能来说,通常是其内存访问模式占据主导位置。众所周知的,数据处在小的,连续的内存块上的性能要比一些数据分散在各个内存空间上要好得多。对于理想状况的最佳算法来说,代码会极限的将内存分配放到一个紧凑连续的空间。

在这一章节,我们将会在这两个方面上学习如何优化我们的内存使用。

5.2.1 动态内存分配

动态内存分配和释放如果是通过malloc()和free()或者C++全局的new和delete操作符进行的,众所周知的这是堆heap内存分配,很慢。导致这种分配很高的消耗有两个因素:第一,一个Heap内存分配器是一个通用的设计,所以她必须可以写入任意大小的数据,从一个Byte到千兆Byte。这需要很大量的日常管理开支,这使得malloc()和free()变得缓慢。第二,对于大部分作业系统来说,每当调用malloc()和free()函式时,都要将first context-switch从user mode切换到kernel mode,处理这个请求,然后切换到这个程式。这些上下文切换会造成极大的开销。对于游戏开发者来说有一个重要的规则:

Read more »

Game Engine Architecture 中文翻译:5.1.2 一个简单的可以工作的方法 & 5.1.3 一些在真正引擎里面的例子

5.1.2 一个简单的可以工作的方法

让我们为Singleton的子系统尝试一下这个方法。在这个方法里面,一个简单的叫做”brute-force”方案,她在每一个Singleton Manager类里面定义了启动和退出函式。这些函式就像把构造和析构移动了位置一样,以及我们可以让真的构造和析构函式不做任何事情。在这个方法中,启动和退出函式必须要在main()(或者一些用来管理引擎的Singleton Object)里面调用。比如:

class RenderManager
{
public:
	RenderManager()
	{
		// 啥也不做
	}
	~RenderManager()
	{
		// 啥也不做
	}

	void startUp()
	{
		// 启动这个管理器
	}

	void shutDown()
	{
		// 退出这个管理器
	}

	// ...
};

class PhysicsManager  { /* 类似的 */};
class AnimationManager  { /* 类似的 */};
class MemoryManager  { /* 类似的 */};
class FileSystemManager  { /* 类似的 */};

//...

RenderManager gRenderManager;
PhysicsManager gPhysicsManager;
MemoryManager gMemoryManager;
FileSystemManager gFileSystemManager;

//...

int main(int argc, const char* argv)
{
	// 根据正确的方式启动引擎系统
	gMemoryManager.startUp();
	gFileSystemManager.startUp();
	gVideoManager.startUp();
	gTextureManager.startUp();
	gRenderManager.startUp();
	gAnimationManager.startUp();
	gPhysicsManager.startUp();

	//...

	// 运行这个游戏
	gSimulationManager.run();

	//根据正确的方式退出每个系统
	//...

	gPhysicsManager.shutDown();
	gAnimationManager.shutDown();
	gRenderManager.shutDown();
	gFileSystemManager.shutDown();
	gMemoryManager.shutDown();

	return 0;
}

Read more »

Page 1 of 5212345678910...20304050...Last »
Get Adobe Flash playerPlugin by wpburn.com wordpress themes