Mar/080
Mac Port!
Finally, a week after I got my first Mac, I have a Mac port ready for my 2D graphics engine. It is soo cool to be able to make same code run on two different platforms!
Only thing I had to do was to replace one file in order to get it running on Mac. The engine and test application code compiled very well, without any warnings or errors and ran correctly, which means I succeeded on making it portable.
Soo, now I just have to get Mac demo out for somebody who has a Mac, so that I can verify it works on other Macs also. If you happen to have a Mac, please e-mail me and I’ll send you the demo. Won’t do public release before it is tested.
Screenshot on Windows :

Screenshot on Mac :

Mar/081
Balanced Life
Lately I’v been trying to balance my life as I found out that some of my problems were caused by doing too much work. Working 12-18 hours a day doesn’t really pay off, I tested this for a month by reducing my work time (yea, I worked 12-18 hours each day). By working only up to 10 hours a day I was able to be a lot better in many things :
- I didn’t make so many mistakes.
- I got more great ideas.
- I was very motivated.
- I didn’t feel sleepy or bored.
- Had more time to spent with my family.
- And so on..
So, as you can see it really doesn’t make any sense to do loads of work. Of course there are times when you’ll work more but if you balance your time usage most of the time you are able to feel better, perform better, etc.
To start balancing your life you’ll need to think about what kind of problems do you have. As I have mentioned before, you cannot improve / fix anything if you don’t know what is causing it. Example questions for youself :
- Do I feel sleepy most of the time?
- Am I motivated?
- Do I have enough time to spent with my family?
What about your co-workers? Try to get them to balance their life and get excited about their life again. Tell them how it affected your life.
If you think about this it really makes sense : have you ever fought with some problem many days until you fell a sleep and then woke up middle of the night and realized the solution for the problem? Well this is exactly doing that.
At least give it a try, balance your life. I’m not saying this should work for everybody (I don’t know that), but I’m sure that it will work for most of the people.
Mar/080
Site News
I have been really busy at work and at home. My daughter was really sick a couple weeks ago, it took all of my energy and it has taken some time to recover.
But to sum up what has been going on :
- Last month’s unique visitor goal was not reached.
- I got only 1500.
- Made a first release of my 2D graphics engine.
- Sold more Software Tips & TricksĀ – books.
- Bought a MacBook.
- Will be porting my 2D graphics engine on to it.
- Will be at holidays during 12.3-30.3.
- Meaning that I probably won’t be writing much here.
- Closing Tips & Tricks Service.
- It just did not work out as I didn’t have enough energy to keep marketing it.
Well that’s it.
Mar/080
Importance Of Change Control
When you are working on a software project you have agreed to deliver certain features to your customer. But what happens if these features change during the project?
Well first of all the changes will most likely change your project budget / deadline. Example changes :
- Adding New Features
- Dropping Features
- Someone was able to be honest?
Add Features
When adding new feature you’ll have to change both deadline and budget. If you change only the budget the project will delay. If you change only the deadline the project will not be profitable.
Drop Features
What comes to dropping features, that is probably a good thing, but why were those features dropped? Learn why and improve for the next project.
Conclusion
To control these changes you will need a change control process. What I would do is to pick up a few key persons from the project team and create a change control group. For each (major) change they will have a meeting to decide what is to be done for the change. Also they need to be documenting and tracking these changes somehow, e.g. use excel to track changes and document all the meetings so that people can see why the decision was made.
Change control is just one way to have more organized way to react to changes. Why it exists is because any change (problem) from customer side must never be taken lightly as those can kill your project. And that can happen very fast, I’v seen it.
Feb/080
Do It Now, Carefully!
“Do It Now!” – saying is a very good tip for everybody, but it also has its problems. You can really perform well if you use it right. It is like using Scrum, if you don’t use it right, it will do more harm than good. The problem is that this doesn’t have rules like Scrum does. I’m going to go through some common problems related to this great tip.It is a good tip and easy to follow when you work by yourself, but inside a team you need to be really careful when you follow this tip. Some problems that it can cause :
- Lack Of Design
- Don’t spent time on designing.
- Communication Problems
- Easy to cut down all communications just by saying “Just do it!”.
- Missing Customer Needs
- Because of no proper design, rushing “to do it”…
To avoid these problems you’ll need to start applying the “do it now” in right places, like after you have designed and agreed on tasks you should use it to boost your performance. Start watching how people act in your team, if they are doing this then they should be notified that they might be really creating some problems instead of just boosting their performance.
Small things like this matter.
Feb/080
Team And Personal Values
I’m a fan of values as they help me a lot at my work. Some people don’t use values at all, I see this as a problem because then people “are not aligned to anything” -> how should they act as a company, as a team, as an individual?
Here are some values that I know have worked :
- Individual honesty
- There is nothing worse than lying to yourself.
- Team instead of individual
- What is better for the team.
- Company instead of team
- What is better for the company
- Everything should be aligned to company vision / target / values.
- Individuals instead of processes and tools
- Be dynamic, modify the process for the team, not other way around!
- Ownership
- Let the team and individuals take the ownership of the product they are doing. Let them be proud of what they are doing!
- Learning
- There is always something to learn!
- Learn from mistakes -> don’t make the same mistake twice.
- Encourage to learn : take courses, read books, keep training sessions.
I assume that every company has list of values they act by, but if there is a company that doesn’t have a list of values they really should start thinking about their values and lay them down.
Start driving these values : act by the values by yourself, which is one of the most powerful ways to get your team to use these values as they see the power of values. Also tell your team members why these values exist and what do they mean. Point is that somebody should know why the value is listed and why you should be using it.
What if the values you are driving doesn’t seem to work? Well then it is time to raise the question : do these work at all? has somebody else used these successfully? and so on.
So what is the real power of using values? Well in the best case everybody continuously try to learn new things, try to be honest, and so on. Few examples :
- If people keep learning, it is adding value to your company.
- If people are honest they tell the truth. If a problem occurs people can react to it very quickly as the problem is raised right away instead of hiding it until everything explodes.
Each company, team and individual should have values. I loved working at Nvidia because they took their values very seriously and it worked. You should do the same thing.
Feb/080
Technology Demo Released!
I released the very first technology demo from my 2D graphics engine. It currently runs only on Windows.
This version doens’t have much interaction with user, but you can play around with the object scripts if you want to.
Main Features :
- Sprite system
- Image
- Scaling
- Alpha Blending
- Color scaling
- Font
- Speak System
Most of the art from : http://reinerstileset.4players.de/
Screenshot :

All feedback is more than welcome!
Feb/080
Book News
Original book annoucement post. Without too much talk here is a list :
- Sold 3 copies – not much, but it is better than zero.
- Got reviewed at GameProducer.Net
- Both negative and positive feedback.
- Negative : it is not very pro (well it is my first book) and not much content.
- Positive : everybody learned something.
- I learned loads of new things.
- Motivated me to start a new book which will be a lot better (I hope).
That’s it.
Feb/082
Game Institute Training
I have been watching Game Institute for years now andĀ lately I have been receiving some very positive feedback about it.
From what I can tell it is a very great place to get game programming training. They have some really talented teachers there, like Andre LaMothe! So check it out :
Feb/080
Eternal Management Problem : Communication
Communication problem between the team core and team management is something that almost every team faces at some point. There are loads of reasons why this could happen, to name a few :
- Core team doesn’t trust the management.
- Management is somehow ‘freezed’ or doesn’t care.
- Core team doesn’t have anyone to raise the problems -> remember that management doesn’t have some kind of magical crystall ball to see what is really going on.
How to solve it isn’t easy and it requires time and patience. To solve it you’ll have to start looking up the problems, what kind of communication problems do you have, where do those come from?
During the process it is very important to not blame individuals, it is very easy to do that. Yes, I need to admit that I have done it and will probably do, but I always try to remember that this is a team problem. In rare cases individual person is really causing all the problems.
I remember one indie team where I was working and we had similar problems. We spent loads and loads of time to think about how to solve it. We found out that by taking an outsider to look at our problems helped us to understand the real problems -> it is hard to solve anything if you don’t even know what the problem is.
Anyway, that is my experience and it probably doesn’t apply to other cases as each of them are unique.
If your team is facing these kind of problems, start raising the problems before it is too late. That is the only way to solve things : face the facts. In most of the cases it will reveal other problems too and the thruth will hurt, but it can save your team so it is worth of it.
Some helpful things that I have learned :
- Individual honesty
- There is nothing worse than lying to yourself!
- Talking the thruth
- Don’t say “Everything is OK” if manager asks how are you doing and you know that things aren’t OK.
- Taking ownership
- Start raising the problems and solve them.
- Team instead of individuals
- Try to remember to not blame individuals!
