What the hell is DPI?
The reason I wrote this blog was due to a certain experience in the past.
The Team Leader didn't know what the hell DPI was.
And after realizing that he's just a noob trying to do something big, everyone quit.
Of course, the Project got cancelled and we worked for free for 2 weeks.
Anyhow, It stands for [Dots per Inch]
-----------------------------------------
In Computer Graphic, 2D image size is measured in Pixel, AKA Dots.
How large is a Pixel? It has no actual size in real life space.
Vice Versa,
km,m,cm,mm, etc have no actual meaning to computer space.
Thus came DPI.
DPI is a measurement conversion of real measurement to computer space.
1DPI means there is a Pixel per real life numerical Inch.
For example,
Standard A4 paper's size is [210mm*297mm] or [8.27in*11.69in]
A common DPI for detailed illustration is 300DPI
8.27*300 = 2481
11.69*300 = 3507
Which means that A4 in 300DPI is equivalent to [2481px*3507px]
As long as this proportion is kept, it has pretty much the same meaning as
A3, A2... A0 ... A_NegInf
-----------------------------------------
Thus, if the Project Leader told you to
[We need it big, so make it an A1 size], but didn't tell you the DPI.
or
[Make it 1024*1024, 600DPI to make it more detailed]
there's a good chance that your project will fail due lack of technical knowledge of the Project Leader.
I`ve made a separate blog which I specifically use for ranting. http://themasterranter.blogspot.com/
Sunday, July 28, 2013
Thursday, July 25, 2013
Unity Texture Setting Performance Test
In Conclusion, it's better to make a large file then compressed it down rather than making small file and make it TrueColor.
Tuesday, July 23, 2013
Programming Thought - Order and Execution
Let say that there's a Button and a GameObject Ball.
The GameDesigner wanted to Ball to move when the button was click.
The shortest method to do this would be
-------------------------
Button.cs//
void OnClick()
{
GameObject ball = GameObject.Find("ball");
ball.Translate(new Vector3(1,0,0));
}
-------------------------
End of story, simple right?
However, this would pose problems in extended coding.
-- The Ball isn't doing thing by itself --
When the Project became larger, there might be input from other sources that caused the ball to move.
If someone, other than the coder, have to search through the things that caused the movement, the most obvious action for the searcher would be to look at the ball itself.
However, if the ball itself doesn't contain the code, it will be a real hassle to figure out where it originated.
To solve this, Codes need to be separated into [Order] and [Execution]
[Order]
- The code that tell something else to do something, but does not do it itself.
-------------------------
Button.cs//
Ball ball;
void Start()
{
/*If the referenced object will never be change during runtime, it would be
wiser to cached them at the start. Otherwise, the program will have to find it
every loop, thus slow down the program*/
ball = GameObject.Find("ball").GetComponent< Ball>();
}
void OnClick()
{
//the button ordered the ball to move, but did not execute the movement.
ball.Move();
}
-------------------------
[Execution]
- The code that actually do something
-------------------------
Ball.cs//
Transform thisTransform;
Vector3 moveVector;
void Start()
{
//Cached transform so that it will not have to be searched every Loop
thisTransform = this.transform;
moveVector = new Vector3(1,0,0);
}
//Called from Button.cs
public void Move()
{
thisTransform.Translate(moveVector);
}
-------------------------
In this case, the Ball itself is the one doing the execution.
It would also be a good idea to comment on where it was called from.
The GameDesigner wanted to Ball to move when the button was click.
The shortest method to do this would be
-------------------------
Button.cs//
void OnClick()
{
GameObject ball = GameObject.Find("ball");
ball.Translate(new Vector3(1,0,0));
}
-------------------------
End of story, simple right?
However, this would pose problems in extended coding.
-- The Ball isn't doing thing by itself --
When the Project became larger, there might be input from other sources that caused the ball to move.
If someone, other than the coder, have to search through the things that caused the movement, the most obvious action for the searcher would be to look at the ball itself.
However, if the ball itself doesn't contain the code, it will be a real hassle to figure out where it originated.
To solve this, Codes need to be separated into [Order] and [Execution]
[Order]
- The code that tell something else to do something, but does not do it itself.
-------------------------
Button.cs//
Ball ball;
void Start()
{
/*If the referenced object will never be change during runtime, it would be
wiser to cached them at the start. Otherwise, the program will have to find it
every loop, thus slow down the program*/
ball = GameObject.Find("ball").GetComponent
}
void OnClick()
{
//the button ordered the ball to move, but did not execute the movement.
ball.Move();
}
-------------------------
[Execution]
- The code that actually do something
-------------------------
Ball.cs//
Transform thisTransform;
Vector3 moveVector;
void Start()
{
//Cached transform so that it will not have to be searched every Loop
thisTransform = this.transform;
moveVector = new Vector3(1,0,0);
}
//Called from Button.cs
public void Move()
{
thisTransform.Translate(moveVector);
}
-------------------------
In this case, the Ball itself is the one doing the execution.
It would also be a good idea to comment on where it was called from.
Friday, June 28, 2013
Character Note: Maevia
Maevia
ประวัติตัวละคร
สถานที่เกิด
โลกเวทย์มนต์ - จักรวรรดิ - แคว้นแมงมุม
เกิดมาในฐานะลูกสาวของขุนนางระดับสูงของแคว้นกับนางบำเรอ
ต่อมา พ่อตายในสนามรบ และพี่ชายถูกจับเป็นเชลย
เลยทำให้ตำแหน่งเจ้าบ้านต้องตกมาอยู่กับตัว
แต่ถูกเมียหลวงพ่อที่ต้องรักษาอำนาจตัวเองจับขายเป็นทาสพร้อมแม่
ต่อมา พระเอก(มนุษย์จากโลกวิทยาศาสตร์) ต้องสร้างกองกำลังของตัวเอง
จึงได้ต่อสู้กับกลุ่มค้าทาสแล้วชวนทาสที่ปลดปล่อยมาเป็นพวก
เมเวียซึ่งอยู่ในทาสกลุ่มแรกที่ถูกปลดปล่อยจึงได้เข้าร่วมกับพระเอก
หน้าที่หลัก
ในยามสงบ - (ไม่ได้สั่ง แต่ยัดเยียดทำให้เอง) ทำงานบ้าน ขับมอเตอร์ไซค์ให้พระเอกนั่งไซด์คาร์
รุกเตียงพระเอก อื่นๆ
ในปฏิบัติการ - ทหารสอดแนม จารกรรม
ความสามารถพิเศษ
กระโดดสูง สายตาดีมองไกล สามารถเลียนแบบการเคลื่อนไหวของเป้าหมายได้เพียงแค่มอง
ข้อเสีย
ใช้เงินสุรุ่ยสุร่าย แพ้สินบน(ขนม)
ประวัติตัวละคร
สถานที่เกิด
โลกเวทย์มนต์ - จักรวรรดิ - แคว้นแมงมุม
เกิดมาในฐานะลูกสาวของขุนนางระดับสูงของแคว้นกับนางบำเรอ
ต่อมา พ่อตายในสนามรบ และพี่ชายถูกจับเป็นเชลย
เลยทำให้ตำแหน่งเจ้าบ้านต้องตกมาอยู่กับตัว
แต่ถูกเมียหลวงพ่อที่ต้องรักษาอำนาจตัวเองจับขายเป็นทาสพร้อมแม่
ต่อมา พระเอก(มนุษย์จากโลกวิทยาศาสตร์) ต้องสร้างกองกำลังของตัวเอง
จึงได้ต่อสู้กับกลุ่มค้าทาสแล้วชวนทาสที่ปลดปล่อยมาเป็นพวก
เมเวียซึ่งอยู่ในทาสกลุ่มแรกที่ถูกปลดปล่อยจึงได้เข้าร่วมกับพระเอก
หน้าที่หลัก
ในยามสงบ - (ไม่ได้สั่ง แต่ยัดเยียดทำให้เอง) ทำงานบ้าน ขับมอเตอร์ไซค์ให้พระเอกนั่งไซด์คาร์
รุกเตียงพระเอก อื่นๆ
ในปฏิบัติการ - ทหารสอดแนม จารกรรม
ความสามารถพิเศษ
กระโดดสูง สายตาดีมองไกล สามารถเลียนแบบการเคลื่อนไหวของเป้าหมายได้เพียงแค่มอง
ข้อเสีย
ใช้เงินสุรุ่ยสุร่าย แพ้สินบน(ขนม)
Wednesday, March 14, 2012
さよなら絶望先生が後10回だと!!!NNOOO!!!!
魔法先生も含めて、マガジンに読みたい作品が2作減った!!!
10more Chapters left till the final chapter of Sayonara Zetsubou Sensei!!!
Including Mahou Sensei Negima, Stories that I wanted to read in Shonen Magajin got depleted by 2!!!!!
Sayonara Zetsubou Sensei เหลืออีก10ตอนจบ!!!
พอรวม Mahou Sensei Negima ด้วยแล้ว เรื่องที่อยากอ่านในโชเน็นมากะจินหายไป2เรื่องแล้ว!!!
魔法先生も含めて、マガジンに読みたい作品が2作減った!!!
10more Chapters left till the final chapter of Sayonara Zetsubou Sensei!!!
Including Mahou Sensei Negima, Stories that I wanted to read in Shonen Magajin got depleted by 2!!!!!
Sayonara Zetsubou Sensei เหลืออีก10ตอนจบ!!!
พอรวม Mahou Sensei Negima ด้วยแล้ว เรื่องที่อยากอ่านในโชเน็นมากะจินหายไป2เรื่องแล้ว!!!
Saturday, March 10, 2012
あまり尊敬しない会社
人生最大のミス、
イメ●●●●●●●社で最終面接をした時に、緊張し過ぎて頭がおかしくなり、落ちた時。
しかし、顧みるとなんだか今のほうが良かったかもしれない。
最近の発表を見ると、営業者としてはご立派だが、
クリエイターとしてはあまり尊敬しない。
最新作の発表はなんだが、「キャラデザイナーは●●●●さんです」「シナリオライターは●●●●さんです」と言って、そのプロジェクトのために参加した人を優先的に発表した。
まぁ、参加した人にとって仕事になるから、これはともかく、
ゲーム自体についての情報は少なくて、よく分からない。
あまり尊敬しない理由は、会社の実力で開発した作品のこと自体より、
参加した人の知名度を使って売らせようとするところです。
イメ●●●●●●●社で最終面接をした時に、緊張し過ぎて頭がおかしくなり、落ちた時。
しかし、顧みるとなんだか今のほうが良かったかもしれない。
最近の発表を見ると、営業者としてはご立派だが、
クリエイターとしてはあまり尊敬しない。
最新作の発表はなんだが、「キャラデザイナーは●●●●さんです」「シナリオライターは●●●●さんです」と言って、そのプロジェクトのために参加した人を優先的に発表した。
まぁ、参加した人にとって仕事になるから、これはともかく、
ゲーム自体についての情報は少なくて、よく分からない。
あまり尊敬しない理由は、会社の実力で開発した作品のこと自体より、
参加した人の知名度を使って売らせようとするところです。
Monday, February 27, 2012
タイの伝統文学や伝説上、一番嫌いなキャラ その1
「アパイマニー伝説」より主人公、アパイマニー王子
夜逃げをしたため、鬼である一人目の妻が暴れて追って失恋で死亡した。
人魚である二人目の妻を孕ませておいて棄ててもう二度と会わなかった。
隣国の王女である三人目の妻は、元々命の恩人の婚約者であったが、寝取ってから恩人を殺したあげく、その恩人の妹君まで四人目の妻にした。
エロゲの主人公であればSCHOOLDAYS主人公並のクソ野郎ですが、
世間的にはいい人として評価されています。
....だから、無暗に「伝統が素晴らしい」とかいう人に対して
「失せろ!客観的に観やがれ!」と叫びたかったです。
夜逃げをしたため、鬼である一人目の妻が暴れて追って失恋で死亡した。
人魚である二人目の妻を孕ませておいて棄ててもう二度と会わなかった。
隣国の王女である三人目の妻は、元々命の恩人の婚約者であったが、寝取ってから恩人を殺したあげく、その恩人の妹君まで四人目の妻にした。
エロゲの主人公であればSCHOOLDAYS主人公並のクソ野郎ですが、
世間的にはいい人として評価されています。
....だから、無暗に「伝統が素晴らしい」とかいう人に対して
「失せろ!客観的に観やがれ!」と叫びたかったです。
Subscribe to:
Posts (Atom)

