I always wanted to share how I keep going on to the end but nobody would have believed me anyway until now
I used some life hacks and tricks to pull trough. Don't take them as the holy words but they can help you in getting something really really big done. I hope this simple guide will help the community in getting more huge releases and less WIP's, cancelled stuff and eternally pauzed projects.
1. Its okay to take a break but do it at the right time: When its summer outside you don't sit inside your house in hopes to get your project finished. Its no use. Sooner or later you start realising you should have gone to the beach and given your girlfriend more time to do fun stuff. Besides having a good bbq and walking outside is much better then sitting behind the computer all day. Work on very big projects only when its dirty, nasty and cold outside
2. Don't do it for the money: If you are in for the financial gain forget it. Its better to invest in stocks or just get a good job. If you count the amount of time you put in your project it wil NEVER pay of. Even if you manage to sell a 1000 carts just look at the amount of hours you have going in it. If money is your drive you will soon realise that its a bullshit project and stop developing.
3. Talk to people about what you do: Yes find a buddy to talk to. Rubberduck the person to death. He/she will help you find solutions even if the person knows nothing about assembly. If you don't talk to people and make project friends you will soon feel lonely and give up on it.
4. Make some teammates even if they are just for shits and giggles: Yes you need some buddies to hang out with and sometimes do funstuff together. Most of the time you will just have a good time and sometimes you will develop together. You can learn people how to do certain tasks. Yes I am serious, my girlfriend has no clue what assembly is but she added alot of gamedata for me.
5. It's okay to receive unhealthy critisicm: Get used to the fact that there are jealous and mean people out there. You are in for your project and some are in for the money. Be directly honest to each other. Tell them there is noting to gain from the start. It helps getting together with the right people and prevents conflict.
6. Be independent: If you need something done DO never EVER use proprietary code or tools. Invest time (years if required) to develop everything that you will not receive on your own. Problem with closed source stuff is that within time your computer one day will break down and your tool no longer works on your new OS. Or you need to drastically change something and you cannot because you don't know how that one module works. Do never use source that has all kinds of wierd rules attached to it. Sooner or later you will run against a wall.
7. It's okay to have bugs: More complexity is more chaos. It will never be perfect because most of the time you are on your own. Sometimes you will find help and most of the time you won't. Slowly in time motivation around you will drop to a zero level and you will be the last one left. You will not have the time to fix everything.
8. It's okay to have a deadline: Yes a deadline helps. Not only you but also your buddies. They know what they need to do and when it needs to be finished. You will work more focused and get it finished before summer starts.
9. Work at 1 thing at the time: ONE THING!! do not focus on a thousand things at the same time. It will only demotivate. Never look into the future but focus on that one task at hand. If your character has to move left you program that movement. When its finished and perfected only then you focus on the movement to the right.
10. It's okay to have no fame at all: People will not believe you until you show them something. But the problem with big projects is that they progress very slow. So nobody knows what you are doing until you release something that looks finished. In the meanwhile you start thinking for who and why you are doing it. All those thoughts are unimportant.
11. Work only on that project: biggest mistake in life is to start coding on three different games and finish neither of them. Focus on that one project and task at hand. If you start something new its going to be another unfinished project.
12. Thoughts are unimportant: It doesn't matter what your mind is telling you. You are doing it for that one single purpose. That dream you had in mind. Don't let bullshit thoughts stop you from finishing what you started. "why am I doing this", " I will never earn anything with this", " whats the matter it will all be dust one day", "MSX will be gone by the time I finish this", " I am propably wasting my time". Remember, the greatest waste of time will be if you stop halfway.
13. Accept the challenge: If someone tells you that you won't be able to do it you only become stronger because you will prove everyone who said that once wrong. If you have to: post pictures of your haters on the wall and let THEM remind you that if you finish this you did it and they did not.
14. It's okay to only read the positive comments: You will receive thumbs up and criticism. Problem is that our mind is programmed to remember the negatives and ditch the positives. So simply ignore the thumbs down and feed on the positive feedback and comments.
15. Accept that most of the time won't turn out you had in mind: Yes that one boss will change. Call it creativity or improvisation. Sometimes just don't stick to the plan.
16. Do not make enemies: Hypocrisy at its finest here but we are humans. At one moment you try to prove some people wrong but on the other hand respect everyone. Even if you come in conflict for some reason its NOT their fault. We are all not equal. Respect them and treat them right. Make bonds and treat everyone right. It creates positive energy instead of negative distance.
17. It's okay to share your knowledge: Do not be affraid. Share your source with others. They can help and even if they use it for their projects and make lost of money who cares, you didn't do it for the money, remember.
18. Plan ahead: Do not just start coding. Think well ahead. Adding something to very complex code is not fun to do. Make sure your engine will have all functions build in before you start mass producing the data and control code.
19. Invest in tooling: Code your tools first. It will speed up alot of your problems. Putting objects painstakingly by hand is the most demotivating task in the universe. Create mass converters and tools to output your map and objectlists on the fly.
20. Use a PC: If your try to pull of a big project on the MSX you will very soon realise you will run out of RAM and time. 16 megabytes of temp code and 4 hours of compile time will not really help.
21. Think beyond: If you want something done, you get it done. Simple. How do you move the large blocks in screen? Well take your time and think. If you have to make 1200 lines of code for that one single thing you had in mind so be it. Reward will come when you see the end result.
22. Find a mentor: It is very important to have someone around you that can guide you with the things you do not understand. If possible they will set up parts of code for you so that you have a template to start in and continue from there. In time you will start to understand what all that interrupt magic is and eventually in time you can do it all yourself. Do not forget to make a template for someone else in the future.
23. Its okay to have fun: how? be fascinated by what you do. Look at your results and tell yourself how awesome you are when something works. Believe in yourself and be convinced that your mission MUST succeed.
Thats all I could come up with right now. If more pops up I will add more. And again these are only some advice. Do not take them for granted. It would be awesome if some inspired folks could add some more advices to it.