I started programming many years ago. Now I'm trying to make games. I have read many recommendations to start cloning some well known games like galaga, tetris, arkanoid, etc. I have also read that I should go for the whole game (including menus, sound, score, etc.).
Yesterday I finished the first complete version of my arkanoid clone. But it is far from over. I can still work on it for months (I program as a hobby in my free time) implementing a screen resolution switcher, remap of the control keys, power-ups falling from broken bricks, and a huge etc.
But I do not want to be forever learning how to clone ONE game. I have the urge to get to the next clone in order to apply some design ideas I have come upon while developing this arkanoid clone (at the same time I am reading the GoF book and much source code from Ludum Dare 21 game contest).
So the question is: Should I keep improving the arkanoid clone until it has all the features the original game had? or should I move to the next clone (there are almost infinite games to clone) and start mending the things I did wrong with the previous clone?
This can be a very subjective question, so please restrain the answers to the most effective way to learn how to make my own games (not cloning someone ideas). Thank you!
CLARIFICATION
In order to clarify what I have implemented I make this list:
Features implemented:
- Bouncing capabilities (the ball bounces on walls, on bricks, and on the bar).
- Sounds when bouncing on bricks and the bar, and when the player wins or loses.
- Basic title menu (new game and exit only). Also in-game menu and win/lose menus.
- Only three levels, but the map system is so easy I do not think it will teach me much (am I wrong?).
Features not-implemented:
- Power-ups when breaking the bricks.
- Complex bricks (with more than one "hit point" and invincible).
- Better graphics (I am not really good at it).
- Programming polishing (use more intensively the design patterns).
Here's a link to its (minimal) webpage: http://blog.acamara.es/piperine/ I kind of feel ashamed to show it, so please do not hit me too hard :-)
My question was related to the not-implemented features. I wondered what was the fastest (optimal) path to learn. 1) implement the not-implemented features in this project which is getting big, or 2) make a new game which probably will teach me those lessons and new ones.
ANSWER
I choose @ashes999 answer because, in my case, I think I should polish more and try to "ship" the game. I think all the other answers are also important to bear in mind, so if you came here having the same question, before taking a rush decision read all the discussion.
Thank you all!
Answer
I disagree with Patrick's answer completely. If you want to succeed as a game developer, the number one skill you need to learn is how to take an idea and ship a complete, polished game.
What you will realize over time (which is what I realized after several years) is that programming is only a small part of your game. It's easy, because it's fun. But to stick to only programming will leave you with a trail of incomplete proof-of-concepts and demos.
Instead, I would suggest very strongly you put up a website and blog (Wordpress is great for this kind of stuff), finish your games (starting with Arkanoid), and release them into the wild.
Also, it's key to realize that if you do this, you control when the game is done. If you want 1000 levels with 10 major features, fine. If you want 10 levels with 3 major features, fine. (In fact, I recommend smaller projects more frequently, because you learn more and focus a lot on polishing that way).
Edit: In response to the people who disagree, I feel I need to clarify. If you created a game just for one purpose/experiment (which I do all the time), by all means, cut scope and ship it. Nobody said Arkanoid needs 1000 levels to be a polished game; just make enough levels for it to be, in your opinion, fun, and move on.
It IS possible to spend years on a game and never ship. But I feel it's far easier to fall into the other hole of only making technical demos and prototypes forever. It took me 10+ years to stop doing this myself.
No comments:
Post a Comment