My book has finally arrived and I'll start reading it in a few moments. It's a little larger in size than I imagined, almost intimidating but hopefully if I can get through a few pages a day, I'll be well in to it enough to keep me going. Just a note if you've stumbled across this post, I'll be learning C++ programming using a book called Programming Principles and Practice Using C++ written by the original creator Bjarne Stroustrup. Okay, lets crack on.
Wow, the table of contents stretches through 18 pages and the last page numbered is page 1118... brilliant, what have I let myself in for? If I don't post any more sentences from this point on you can assume I'm still reading the contents.
I'm about half way through reading the contents pages and one thing I have to say is this book seems to be very in depth. Do you ever find when you read anything technical you start reading the words without understanding the meaning? This is me right now. I know I can read the words but the way they're formed means nothing to me right now like, growing a vector or composite consignment operators. What are these terms supposed to mean? I find it a little discouraging not understanding these terms but I know if I carry on I'll discover what they mean so back to reading.
I've finished reading the contents pages and it may as well been in a foreign language. Funnily enough, some parts seemed to make sense so I have a good feeling that I will pick it up quite well. I can see why some people may be put off learning C++ as it would appear to be rocket science but as with most skills, they're learnt from the beginning and worked on until they become second nature.
Time for brew before I dive in any further.
Found a jar of Ovaltine in the cupboard thought it would be more fitting as I certainly need the energy as it's not long after I've finished work. Lets hope the extra stated 103 calories per mug gives me a boost in brain power!
Well the beginning of the Preface starts with the Quote "Damn the torpedoes! Full speed ahead" - Admiral Farragut. I'm not aware of this quote and not sure where it's come from but I'm sure it's been put in the book for a reason. At the moment I'm interpreting ithe meaning as don't be a hero by rushing into situations. I guess I'll find out by reading on.
What I've gathered so far is that programming is an art, it's a way of coming up with solutions to problems. I suppose if you think in game design terms you have problems which need to be solved like how to make a character jump or do an action, how does it interact with objects or how to code artificial intelligence etc. I'm sure there's even deeper problems which need to be resolved but it's still a problem and programming is the solution.
To the point, he states the book is not the easiest to learn for beginner programming but it is designed to be the easiest to learn programming with the view of using what you've learn't to use in the real world ( I gather he means commercially). Quite interesting he separates beginner learning to real world learning. I'm certainly up for some real world learning but I'm not quite sure what the difference is at the moment. Does it mean I'll be learning from real world examples rather than theory?
Another nice bit of info, programming is learned by writing programs, basically learn by doing. I know some people learn differently but it would make sense in this situation.
I've noticed that I'm going off tangent sometimes so I'll try and stick to what the book is teaching me about C++ rather than concentrating on trivial parts you do not need to know of as I'm sure it'll get really boring really fast. In fact, this post is getting rather long so I'll end it here. My future programming posts will focus strictly on what I learn and find interesting about C++ and anything else programming related.
Til the next time.
An insight into what it takes to become a game developer from the very beginning.
Tuesday, 25 October 2011
Sunday, 23 October 2011
Posting Frequency
Just an update to say I haven't given up already. In fact I'm working in the background to figure out ways to improve my posting and what I'll be posting on. I'm also in the process of creating a time sheet to assist me on knowing what to do on a particular day rather than leaving it to what I feel like doing. This may sound odd as surely I should be working on what I feel like but I'm doing this so I don't fall into the habit of doing the same thing over and over again because it's comfortable.
I'd like to ask anyone who is reading this to come up with suggestions where possible for things I should try or do. This would be a great help and a motivator as I can try something which I may not have thought of doing. This will also help me by getting into the habit of solving a problem or issue someone else has brought up.
All the best.
I'd like to ask anyone who is reading this to come up with suggestions where possible for things I should try or do. This would be a great help and a motivator as I can try something which I may not have thought of doing. This will also help me by getting into the habit of solving a problem or issue someone else has brought up.
All the best.
Thursday, 20 October 2011
Building blocks to better drawing
Whilst I'm waiting for the C++ book to arrive I may as well make a start on drawing. As mentioned on a previous post I want to start by learning the basics to build up a good foundation. This means drawing plenty of circles/spheres, squares/boxes, triangles/pyramids and cylinder/cones. I wanted to start by drawing on paper but I need to invest in a sketchpad so I'll start by drawing in Corel Painter.
Before I begin, the images I'll be posting may very well be a bit off like a really odd shaped circle. I have a Wacom Intuos 4 large and the nib's seem to wear down really quick so affects my accuracy to some degree, but as you'll see, I'm no expert when it comes to accuracy anyway. You may be wondering why a nib on a 'fake' pen would wear and from what I've read the reason is to give it a natural feel, like drawing on paper. I have to admit it does feel really nice to draw on but if you consider buying one make sure you budget for new nibs.
Okay, so after a few minutes, here's a few circles and balls I've drawn.
As you can see they're not the best of circles and balls but it's a good start. The one thing I have noticed which I feel I need to get out the habit of is going over lines too much. Every time I go over a line I draw it gets darker and thicker. I did not see this as an issue but looking back at some of my drawings, most of them looked like parts were made out of blocks rather than flowing seamlessly. Another issue I have is not drawing in a variety of ways. I'll draw something then end up drawing the same thing all over again so I'm not really expanding my skill level. Below is an example of what I mean.
Before I begin, the images I'll be posting may very well be a bit off like a really odd shaped circle. I have a Wacom Intuos 4 large and the nib's seem to wear down really quick so affects my accuracy to some degree, but as you'll see, I'm no expert when it comes to accuracy anyway. You may be wondering why a nib on a 'fake' pen would wear and from what I've read the reason is to give it a natural feel, like drawing on paper. I have to admit it does feel really nice to draw on but if you consider buying one make sure you budget for new nibs.
Okay, so after a few minutes, here's a few circles and balls I've drawn.
As you can see they're not the best of circles and balls but it's a good start. The one thing I have noticed which I feel I need to get out the habit of is going over lines too much. Every time I go over a line I draw it gets darker and thicker. I did not see this as an issue but looking back at some of my drawings, most of them looked like parts were made out of blocks rather than flowing seamlessly. Another issue I have is not drawing in a variety of ways. I'll draw something then end up drawing the same thing all over again so I'm not really expanding my skill level. Below is an example of what I mean.
I've quickly sketched 3 heads in different angles. The left hand one is the the kind I draw 90% of the time. There is rarely variety because I feel most comfortable with drawing a head looking to the right. With this type of head I almost draw without even thinking and, again, 90% of the heads drawn this way look the same.
The middle head I draw very rarely and I think it shows. The nose is off to me but the rest seems to be roughly where they should be. This is not always the case though as I often find the eyes or mouth hard to draw 3 dimensionally. The final head from the front I draw every so often but again, most of the heads turn out looking the same more or less. I'll draw some heads in these angles with more detail to show you how simply changing the angle will unveil the difference between drawing from habit and being forced to learn something new.
So as you can see here or hopefully see, the left head looks better than the middle and right. The left is also the one I spent the least time drawing. You can see how some of the lines are darker on the left as I habitually went over some of the lines without even thinking about it. The other 2 are quite light as I drew what I thought looked reasonable. You may notice the mouth is drawn pretty much the same in all three. This again comes down to drawing the same mouth out of habit. It consists of the line in the middle representing the opening of the mouth and a line to indicate the bottom lip. I also put two smaller lines at each end of the mouth for the edges of the mouth. No real thought went in to drawing the mouth, it was all down to habit.
This is why I want to get the fundamentals down as a habit instead of drawing individual objects through habit. It may very well be good if you only decide to draw the same things over and over again but I don't believe you'll expand your skill or technique.
Another thing I realised about being able to draw anything is know what you're drawing. I can draw a reasonable looking head from the side but if I wanted to draw it from another angle how would I go about it? I could start drawing the head in another angle and keep drawing it over and over until it becomes habit but I've not really understood the fundamentals of drawing. I know most artists who draw humans in any pose are knowledgeable in anatomy. I often watch video's of artists and you can hear them telling you the names of the bones and which muscle groups control different parts of the body like the arms, chest, legs etc. As they understand the human body they don't have to second guess what the body will look like at a certain angle or pose. I would ask you to watch a Youtube video of an artist drawing the human figure when you have time and not only watch what they're drawing but listen to what they say.
I think using your mind's eye to envision what you're drawing can help as well. For instance, I'm not too good at drawing eyes but recently I've started thinking about why they just don't look right. The most likely reason is that I simply never paid attention to why the eye looks like it does. I started to think about the eye ball itself and how everything wraps around it such as the example below.
The left eye I've just drawn flat without any thought. The middle eye I've been thinking about the actual eye ball and how it affects the eyelids. I've drawn it quickly so it may not convey what I mean so I drew a breakdown on the right to illustrate how I most likely should be thinking about what I draw. The eye is a sphere so naturally the eyelids must wrap around the surface of the eye ball. The eyelids can't be flat whilst the eye is spherical, this would clearly not make sense. With this in mind do you not draw flat eyes sometimes and wonder why it never looked right?
My thought at the end of this post is that I must start thinking about what I draw instead of drawing the same things from habit or comfort. It's clear to me that if I give some thought to what I draw I have a much better chance of drawing what I want rather than using guess work which would reduce the odds of drawing the way I intended to.
Wednesday, 19 October 2011
Learning the basics
Spent some time looking for material to help me learn C++. I found a site a few days ago and, deciding to jump right in and learn some coding, I find the site no longer exists. I enjoyed the way the site was laid out and how it taught you C++ so it came as a surprise that it's been removed. Rather than look for any more sites I've bought a book which seems to have good reviews on Amazon. The book is called Programming: Principles and Practice Using C++ and it's written by the creator of C++ Bjarne Stroustrup. Being that it's written by the original creator I'm expecting a lot from it.
I used to learn partly through reading books but I always gave up part way through. I'm hoping I can get into this book enough to see it through to the end. I also wanted a book so I did not have to initially look for several sources of information, all the information I'll need will be contained in the book barring any recommended sources the book advises of.
As I'll be following the book, most of my posts related to programming will be directly related to this book until I finish studying it.
I'm unsure how I will approach what I post. I've thought about spending a few hours learning then creating a post like a diary entry but I've also thought about posting on the go. What I mean by this is I would be posting my thoughts as I study so you can get an idea of the process I'm going through in order to grasp what I'm learning. I hope this would be of great help to others and give some insight into how I learn. Bare in mind, with this method of posting, you will most likely come across idea's or solutions which are incorrect, however, the point is to show you how I came up with a particular idea or solution.
Whilst I'm working towards becoming a game developer the next several months may not reflect this. I say this because I've thought about what I posted earlier about learning how to draw. I need to learn the fundamentals of programming before I can even consider the game development side. I do believe it's possible to concentrate on game development from the start but I would much prefer to have a solid foundation and understanding of programming in general. Thinking about it, I could be improving my skills in art and music at the same time so by the time I do venture into game development I should have a nice range of skills to really get going.
I used to learn partly through reading books but I always gave up part way through. I'm hoping I can get into this book enough to see it through to the end. I also wanted a book so I did not have to initially look for several sources of information, all the information I'll need will be contained in the book barring any recommended sources the book advises of.
As I'll be following the book, most of my posts related to programming will be directly related to this book until I finish studying it.
I'm unsure how I will approach what I post. I've thought about spending a few hours learning then creating a post like a diary entry but I've also thought about posting on the go. What I mean by this is I would be posting my thoughts as I study so you can get an idea of the process I'm going through in order to grasp what I'm learning. I hope this would be of great help to others and give some insight into how I learn. Bare in mind, with this method of posting, you will most likely come across idea's or solutions which are incorrect, however, the point is to show you how I came up with a particular idea or solution.
Whilst I'm working towards becoming a game developer the next several months may not reflect this. I say this because I've thought about what I posted earlier about learning how to draw. I need to learn the fundamentals of programming before I can even consider the game development side. I do believe it's possible to concentrate on game development from the start but I would much prefer to have a solid foundation and understanding of programming in general. Thinking about it, I could be improving my skills in art and music at the same time so by the time I do venture into game development I should have a nice range of skills to really get going.
Tuesday, 18 October 2011
Decided to be decisive
I'm sure some of you may be as indecisive as me. It does not matter what I'm deciding on, I seem to have the natural ability to make the process more difficult than it really is. I've literally spent an hour on many occasions just deciding on what to eat when I would have enjoyed any of the choices I had. If I'm this bad with decision making can you imagine what it was like deciding what language to learn first? Not a pretty sight :)
I initially was leaning towards Java due to having an Android phone and I knew Android would only get bigger so I bought a book on Java. I read maybe 50 pages before my mind started to wonder about other languages. After a week of thinking and constant mind changing, I decided to learn c# instead. My reasoning at the time was that the Xbox Live Market Place was bigger and had a bigger customer base. These were assumptions which I've not really researched to prove these points but this is what I thought at the time. I also liked the thought of having the power of the Xbox 360 to work with so I could make some really fancy graphics and animation. Of course at this point I did not realise the extra amount of work and studying I would need to do in order to create higher quality material.
I found a really good site which taught me enough to create a really simple rock, paper scissors game in dos and I felt really proud of my accomplishment as I did it within 3 days. The feeling of accomplishment soon faded though as I started to think again about the amount of time it would take me to develop an Indie game.
I've scrapped the idea of learning C# and have settled on learning C++. I decided on C++ as the general feeling I get from research is that it's widely used, especially in the games industry. It's not the be all end all programming language but there is a ton of tutorials and books on the subject. I've also read it's quite a difficult language to learn so I would like to challenge myself by starting from scratch.
My next task is to decide how I'm going to approach improving my art skills. This is quite a tough one to decide as I believe there is a certain amount of natural ability when it comes to art. I don't believe it's not possible to get to a high standard but in my opinion, some people have more ability than others regardless of how long they've been honing their skills.
I was watching a few video's on Youtube from a designer called Feng Zhu who is simply amazing at his craft and one tip he gave stuck in my mind. He advised the fundamentals are the most important to learn as, once you learn them, you can draw anything. He goes on to advise most professionals can draw anything as they understand everything in the world is made up of 4 shapes, a box/square, cone, triangle and cylinder. It was a sort of revelation to me to hear this as I used to concentrate on drawing human figures only. I could draw humans okay but if I wanted to draw anything else like a car or plane, it felt impossible and the result reinforced that feeling. Another point he made is, when you're in the industry and you draw something for a client and they ask for something to be added which you can't draw, you will not be in demand for long. This is not to say there aren't people who specialise in certain area's it just makes sense to me to know the fundamentals which will give you the ability to draw what you see/imagine rather than be restricted to what you simply draw over and over again. If you want to feel inspired to draw I would highly recommend you visit Feng Zhu's site http://www.artbyfeng.com/
I think my initial approach should be to start with 2D and progress to 3D. I invested in a Wacom Tablet but I'm going to start by going back to basics with pen/pencil on paper. After I feel comfortable with my drawing skill, I'll start scanning my drawing and colour them in through software. After that I think it would be best to move to digital completely. I may try some 3D whilst doing 2D work but this is a decision I'll make later on when I've gauged how well I'm progressing with 2D.
The most difficult skill I'm going to learn is probably sound effects and music. other than having a laugh with some voice changing software and the odd mess around with DJ software (this was a long timer ago) I've had no prior experience with creating sound. Although it's most likely going to be the most difficult to learn I somehow see it as being the most fun. This we'll have to see.
I initially was leaning towards Java due to having an Android phone and I knew Android would only get bigger so I bought a book on Java. I read maybe 50 pages before my mind started to wonder about other languages. After a week of thinking and constant mind changing, I decided to learn c# instead. My reasoning at the time was that the Xbox Live Market Place was bigger and had a bigger customer base. These were assumptions which I've not really researched to prove these points but this is what I thought at the time. I also liked the thought of having the power of the Xbox 360 to work with so I could make some really fancy graphics and animation. Of course at this point I did not realise the extra amount of work and studying I would need to do in order to create higher quality material.
I found a really good site which taught me enough to create a really simple rock, paper scissors game in dos and I felt really proud of my accomplishment as I did it within 3 days. The feeling of accomplishment soon faded though as I started to think again about the amount of time it would take me to develop an Indie game.
I've scrapped the idea of learning C# and have settled on learning C++. I decided on C++ as the general feeling I get from research is that it's widely used, especially in the games industry. It's not the be all end all programming language but there is a ton of tutorials and books on the subject. I've also read it's quite a difficult language to learn so I would like to challenge myself by starting from scratch.
My next task is to decide how I'm going to approach improving my art skills. This is quite a tough one to decide as I believe there is a certain amount of natural ability when it comes to art. I don't believe it's not possible to get to a high standard but in my opinion, some people have more ability than others regardless of how long they've been honing their skills.
I was watching a few video's on Youtube from a designer called Feng Zhu who is simply amazing at his craft and one tip he gave stuck in my mind. He advised the fundamentals are the most important to learn as, once you learn them, you can draw anything. He goes on to advise most professionals can draw anything as they understand everything in the world is made up of 4 shapes, a box/square, cone, triangle and cylinder. It was a sort of revelation to me to hear this as I used to concentrate on drawing human figures only. I could draw humans okay but if I wanted to draw anything else like a car or plane, it felt impossible and the result reinforced that feeling. Another point he made is, when you're in the industry and you draw something for a client and they ask for something to be added which you can't draw, you will not be in demand for long. This is not to say there aren't people who specialise in certain area's it just makes sense to me to know the fundamentals which will give you the ability to draw what you see/imagine rather than be restricted to what you simply draw over and over again. If you want to feel inspired to draw I would highly recommend you visit Feng Zhu's site http://www.artbyfeng.com/
I think my initial approach should be to start with 2D and progress to 3D. I invested in a Wacom Tablet but I'm going to start by going back to basics with pen/pencil on paper. After I feel comfortable with my drawing skill, I'll start scanning my drawing and colour them in through software. After that I think it would be best to move to digital completely. I may try some 3D whilst doing 2D work but this is a decision I'll make later on when I've gauged how well I'm progressing with 2D.
The most difficult skill I'm going to learn is probably sound effects and music. other than having a laugh with some voice changing software and the odd mess around with DJ software (this was a long timer ago) I've had no prior experience with creating sound. Although it's most likely going to be the most difficult to learn I somehow see it as being the most fun. This we'll have to see.
An update already?
True to my word I'm posting a thought I just had. If you've just stumbled across this blog it was called Journey into solo game development. Upon thinking some more, I've decided to take the solo out of the title. The reason being is that whilst my initial goal is to become self sufficient I'm not going to be arrogant enough to not realise the advantage of other peoples skills and desire to contribute to something they have an interest in. This is still a journey and I'm open to collaborate with other people who wish to take this journey.
Another thing I'd like to point out which I believe important to mention is that I also have a normal 9 to 5, 5 days a week job. I've been working in IT for the last year but it's a low level IT job and has no transferable skill to what I'm trying to accomplish other than typing. I wanted to make this point as I don't want you to think I have the luxury of time as I'm sometimes in work later than I should be and also in the process of making plans on starting a family. I'm not using this as an excuse for not being productive, rather I want to try and show how much can be accomplished even when time is not plentiful.
If you stumble across this site and see some of my work, whether it be code snippets or artwork, and you're someone with expertise, I would ask if you could provide constructive criticism which will help me greatly.
Another thing I'd like to point out which I believe important to mention is that I also have a normal 9 to 5, 5 days a week job. I've been working in IT for the last year but it's a low level IT job and has no transferable skill to what I'm trying to accomplish other than typing. I wanted to make this point as I don't want you to think I have the luxury of time as I'm sometimes in work later than I should be and also in the process of making plans on starting a family. I'm not using this as an excuse for not being productive, rather I want to try and show how much can be accomplished even when time is not plentiful.
If you stumble across this site and see some of my work, whether it be code snippets or artwork, and you're someone with expertise, I would ask if you could provide constructive criticism which will help me greatly.
The journey starts here
Okay, I'm staring at a text box waiting for input for my very first post and, as enthusiastic as I was to start a blog, I cannot think of a single thing to say. I'm not much and have never been much of a writer and I've never really found it easy to express what I mean in words but everyone has to start somewhere. Perhaps it would be best to start by explaining the purpose of this blog.
There are a few reasons why I've decided to start blogging. I've always felt I had a lot to say and contribute but I've never been able to communicate my ideas or thoughts in a way which is clear. For this reason I hope to improve my communication skills by blogging as much as possible. Another reason for blogging is that I often start something and rarely finish. This goes for all area's of my life whether it be improving my personal life, work prospects or knowledge, I just hit an imaginary wall and stop. Don't get me wrong, I don't stop thinking about improving, I just overthink to the point where I chicken out of completing anything. An example would be what career path I should take. I've wanted to be anything from a Muay Thai champion to the next Richard Branson, all big idea's but nothing comes of these idea's as, the more I think of a particualr idea, the more daunting it seem's to be to accomplish it so I stop.
I've identified one main problem I have and that is my perception of time. I seem to have this inner feeling that everything I want to accomplish has to have been accomplished yesterday. I don't know where this feeling comes from but it's stopping me from even starting. For instance, at one point in time I wanted to be a 3D modeller and general game artist, however, as I started learning 3D I realised it would take me at minimum, a year or 2 to get to a reasonable level. With this in mind I simply gave up because I could not wait that long. A few years on and I'm still in the same boat complaining about how long everything I want to learn will actually take to learn. If I spent less time thinking about how long things took to learn I'd most likely have reasonable skill in a few area's.
This brings me to the main reason why I started this blog. I want to document my journey to becoming a game developer with little knowledge on where to start. I'll be posting my thought's, idea's and the way I go about learning how to become a developer in the hope that it will help someone else find their way. What this will entail is learning how to design a game from concept to coding it in a programming language as well as creating the artwork and sound.
I would like to note that this will not be a how to on how to become a developer in the shortest time possible. I know very little about programming, my art skills are no way near good enough to create decent artwork and the only thing I know about music and sound is playing a simple piece of music on the piano (think Grade 2 or an intermediate piece with plenty of practice). As you can imagine, I have a lot to learn and it's going to take some time. If you understand this fact and are interested in doing it yourself, let me know as this does not have to be a lonely journey :)
There are a few reasons why I've decided to start blogging. I've always felt I had a lot to say and contribute but I've never been able to communicate my ideas or thoughts in a way which is clear. For this reason I hope to improve my communication skills by blogging as much as possible. Another reason for blogging is that I often start something and rarely finish. This goes for all area's of my life whether it be improving my personal life, work prospects or knowledge, I just hit an imaginary wall and stop. Don't get me wrong, I don't stop thinking about improving, I just overthink to the point where I chicken out of completing anything. An example would be what career path I should take. I've wanted to be anything from a Muay Thai champion to the next Richard Branson, all big idea's but nothing comes of these idea's as, the more I think of a particualr idea, the more daunting it seem's to be to accomplish it so I stop.
I've identified one main problem I have and that is my perception of time. I seem to have this inner feeling that everything I want to accomplish has to have been accomplished yesterday. I don't know where this feeling comes from but it's stopping me from even starting. For instance, at one point in time I wanted to be a 3D modeller and general game artist, however, as I started learning 3D I realised it would take me at minimum, a year or 2 to get to a reasonable level. With this in mind I simply gave up because I could not wait that long. A few years on and I'm still in the same boat complaining about how long everything I want to learn will actually take to learn. If I spent less time thinking about how long things took to learn I'd most likely have reasonable skill in a few area's.
This brings me to the main reason why I started this blog. I want to document my journey to becoming a game developer with little knowledge on where to start. I'll be posting my thought's, idea's and the way I go about learning how to become a developer in the hope that it will help someone else find their way. What this will entail is learning how to design a game from concept to coding it in a programming language as well as creating the artwork and sound.
I would like to note that this will not be a how to on how to become a developer in the shortest time possible. I know very little about programming, my art skills are no way near good enough to create decent artwork and the only thing I know about music and sound is playing a simple piece of music on the piano (think Grade 2 or an intermediate piece with plenty of practice). As you can imagine, I have a lot to learn and it's going to take some time. If you understand this fact and are interested in doing it yourself, let me know as this does not have to be a lonely journey :)
Subscribe to:
Posts (Atom)