Saturday, February 13, 2010
The infinite game
The journey to find out who we are is the infinite game. The recursive nature of finding out who we are is the environment of daily life. This environment is wholly unique to the individual and also unavoidably common with all life. To embrace this common landscape and focus on universal full filament and understanding. The idea of for example games I make, being able to positively impact the knowledge and understanding of another life; is worthy of great efforts.
The process of development
The process of development is a constant in every complex task. Even when you have done a complex task numerous times. The process of completing this a complex task should be learning and developing. Team tasks add a complexity of their own that scales in a exponential way. Their are 2 basics that I find are good foundations to build any scale project on. Metrics and Goals using these two foundational practices, a clear path of development for any scale task is achievable.
Friday, August 7, 2009
Redmond
Ive been in Redmond, WA About a week now. The Software capital well part of it. I'm about to start classes at Digipen Institute of Technology. I will be working towards a BS in RTIS (Real Time Interactive Simulation.) This is a 4 year 20 credit hour a semester program. The school is in the same building as some of the Nintendo offices.
I'm excited to be learning more about RTIS. I hope to be able to blog more. The open source version of the Grakus Tower Defense game should be available soon.
I'm excited to be learning more about RTIS. I hope to be able to blog more. The open source version of the Grakus Tower Defense game should be available soon.
Wednesday, May 13, 2009
Please play the final version!
Lots of updates to the last version please play and Rate 5 stars.
http://www.kongregate.com/games/grakusteam/grakus-tower-defense-v2?referrer=grakusteam&sfa=permalink
http://www.kongregate.com/games/grakusteam/grakus-tower-defense-v2?referrer=grakusteam&sfa=permalink
Thursday, April 23, 2009
Grakus Tower Defense v1.1
Lots of updates to the first version please play and Rate 5 stars.
http://www.kongregate.com/games/grakusteam/grakus-tower-defense-v1-1?referrer=grakusteam&sfa=permalink
http://www.kongregate.com/games/grakusteam/grakus-tower-defense-v1-1?referrer=grakusteam&sfa=permalink
Tuesday, April 14, 2009
Grakus Tower Defense V1 Released!
Available @ Konregate.com
The first public version!
http://www.kongregate.com/games/grakusteam/grakus-tower-defense-v1?referrer=grakusteam
The first public version!
http://www.kongregate.com/games/grakusteam/grakus-tower-defense-v1?referrer=grakusteam
Thursday, April 9, 2009
Branding
Branding a product is almost an art form. It's a subtle balance of form function and profit. Easy to balance 2 of the 3. All 3 is hard so we follow rules. I find the solution to my big problems is the balance of these simple elements. Branding is the way products stand out from the crowd. Making it and selling it are two very different problems. Not to say that these are not just good common since solutions to grand problems.
www.IanMott.com
- Simple is best(think Nike swoosh)
- Up front sales pitch(Ease of use, amazons one click shopping)
- Brand Uniformity(same colors, logos, etc)
www.IanMott.com
Saturday, April 4, 2009
Using Array's to Exclude Tower Placement in AS3
This is a problem I've spent way to much time on. As most things that take a long time to solve the solution is rather simple. This example is using a code base that draws a grid of some fixed size and has a path following the grid row and columns. There is a fixed path for each level in the game stored in a case statement that fills an array with the path for a given level. Path points are stored as there grid positions.
The simple version of this code is that we make an array and store all the "Occupied" positions. Once we have that this function checks each value of our Array. During this check the function compares the mouse x,y position to the Array's x,y positions. The only time this function sets our Boolean value to true is when both the mouse x,y are equal to one of the Array's x,y positions.
/*
*Declared in side (main.as)
*public var OccupiedValue :Boolean = false;
*public var Occupied:Array = new Array;
*Occupied = (Path:Array);
*Declared in side (tower.as)
*var game:(Main.as);
*Occupied.push((new tower x,y));
*Original author: Ian Mott @ www.IanMott.com -Please leave comment if you use this code. *Thank you
*/
public function checkOccupied():void
{
//Result of this check Boolean value
game.OccupiedValue = false;
//Position of the mouse
var x1 :int = this.parent.mouseX;
var y1 :int = this.parent.mouseY;
//Format Position to grid size
x1 = Math.ceil(x1/this.game.grid_size);
y1 = Math.ceil(y1/this.game.grid_size);
//Check Occupied for same x, y
for (var i :int = 1; i < game.Occupied.length; i++)
{
var p_point :Array = game.Occupied[i];
var pX :int, pY :int;
pX = p_point[0];
pY = p_point[1];
if (pX == x1 && pY == y1)
{
game.OccupiedValue = true;
}
}
The simple version of this code is that we make an array and store all the "Occupied" positions. Once we have that this function checks each value of our Array. During this check the function compares the mouse x,y position to the Array's x,y positions. The only time this function sets our Boolean value to true is when both the mouse x,y are equal to one of the Array's x,y positions.
/*
*Declared in side (main.as)
*public var OccupiedValue :Boolean = false;
*public var Occupied:Array = new Array;
*Occupied = (Path:Array);
*Declared in side (tower.as)
*var game:(Main.as);
*Occupied.push((new tower x,y));
*Original author: Ian Mott @ www.IanMott.com -Please leave comment if you use this code. *Thank you
*/
public function checkOccupied():void
{
//Result of this check Boolean value
game.OccupiedValue = false;
//Position of the mouse
var x1 :int = this.parent.mouseX;
var y1 :int = this.parent.mouseY;
//Format Position to grid size
x1 = Math.ceil(x1/this.game.grid_size);
y1 = Math.ceil(y1/this.game.grid_size);
//Check Occupied for same x, y
for (var i :int = 1; i < game.Occupied.length; i++)
{
var p_point :Array = game.Occupied[i];
var pX :int, pY :int;
pX = p_point[0];
pY = p_point[1];
if (pX == x1 && pY == y1)
{
game.OccupiedValue = true;
}
}
Saturday, February 21, 2009
Content from the programmers POV
As a programmer the content of any program is very important. More often than not content is not provided in a simple format at the beginning of the project. Test data is often the only solution. To help with that messy process a few on lessons I learned.
To help i try to always simplify my components to allow quicker rewriting latter. Object oriented languages make this a much easier task than it forebears. still that's only with good practice.
One of the most often over looked part of coding is formatting. This can be lots of little things like how commented or non-commented a program is. To wildly different naming conventions. Now I don't suggest going and rewriting the whole program when you start. Just follow good practices when ever you work.
A good tool for working on a variable project is to define parameters. Try to rule out as many things that you know you don't want to do. Its not as good as knowing exactly what the content will be. It will allow you to estimate the time it will take and do some of the foundation work.
If you have an amazing team and start every project will the finalized content WOW! The market is fluid like the water in our bodies. I like to think that good code can save just like water.
To help i try to always simplify my components to allow quicker rewriting latter. Object oriented languages make this a much easier task than it forebears. still that's only with good practice.
One of the most often over looked part of coding is formatting. This can be lots of little things like how commented or non-commented a program is. To wildly different naming conventions. Now I don't suggest going and rewriting the whole program when you start. Just follow good practices when ever you work.
A good tool for working on a variable project is to define parameters. Try to rule out as many things that you know you don't want to do. Its not as good as knowing exactly what the content will be. It will allow you to estimate the time it will take and do some of the foundation work.
If you have an amazing team and start every project will the finalized content WOW! The market is fluid like the water in our bodies. I like to think that good code can save just like water.
Saturday, February 7, 2009
Tower Defense Game Development
I'm developing a tower defense game with a group called "Grakus Defense Development Team".
We're using Adobe AS3 (Action Script 3.0) and Flash.
To start were using a great series of tutorials by Garth Henson . The tutorials are a part of his on going blog.
Part 4 of his tutorial series is here: http://www.guahanweb.com/2009/01/31/tower-defense-in-as3-part-iv/
Developing is always a challenge. This is why we use naming conventions and programming standards. Specific values or parameters should defined as soon as possible. The more of the details you have nailed down the simpler the code.
Its my contention that the simplest code is the best. Running on less memory thus being more efficient. I generalizing of course but it a good rule to follow.
Proper comments helps you and those who will follow you understand the code. By writing comments you save your self time latter.
There are always bugs and reworks of finished pieces. So just prepare for them by writing robust and simple. Object orientated code helps a lot with the process of writing code simply.
We're using Adobe AS3 (Action Script 3.0) and Flash.
To start were using a great series of tutorials by Garth Henson . The tutorials are a part of his on going blog.
Part 4 of his tutorial series is here: http://www.guahanweb.com/2009/01/31/tower-defense-in-as3-part-iv/
Developing is always a challenge. This is why we use naming conventions and programming standards. Specific values or parameters should defined as soon as possible. The more of the details you have nailed down the simpler the code.
Its my contention that the simplest code is the best. Running on less memory thus being more efficient. I generalizing of course but it a good rule to follow.
Proper comments helps you and those who will follow you understand the code. By writing comments you save your self time latter.
There are always bugs and reworks of finished pieces. So just prepare for them by writing robust and simple. Object orientated code helps a lot with the process of writing code simply.
New Blog!
Welcome to Ian Mott's blog.
I'm Ian and you can find lots out about my business and past work at: www.IanMott.com
I hope to help my readers by providing simple steps to solve ever day problems. As well as reflect on the state of technology today. Please comment and tell me what you think.
Ill have a few tutorials and stories up on the blog soon.
Peace to all,
Ian Mott
I'm Ian and you can find lots out about my business and past work at: www.IanMott.com
I hope to help my readers by providing simple steps to solve ever day problems. As well as reflect on the state of technology today. Please comment and tell me what you think.
Ill have a few tutorials and stories up on the blog soon.
Peace to all,
Ian Mott
Subscribe to:
Posts (Atom)
