Saturday, October 31, 2009
I am almost done with reading the fourth part of the tutorial - it came out to be probably the longest of them and it took me longer than I expected. Once I finish I will run through the practice problems and start designing my own checkers. If we get lucky enough to miss out on some school days due to flu, it will give me a good time when I wont be bothered by other subjects and I'll be able to concentrate on this.
Monday, October 26, 2009
Learin to program + a bunch of other stuff
One of the things that I really like about learning programing is the amount of the extra information that comes with it. I am a really curious person and such side-notes make the reading much more pleasant for me. I guess not every book/tutorial has as much side info as the one I'm reading and I'm glad I've found one so rich in it. It also pops in a joke once in a while and in general is written in a very accessible way.
Back to the side note theme - one of them was an explanation on how color works - color of things as well as light, the difference and similarities between them which I was not aware of before. To know this is of course quite important when dealing with graphics, but it is also a piece of knowledge that is also useful outside of programing. Another side note like that was an explanation on what Bezier's curve, a mathematical way of describing free curves which is used throughout vector graphics and also helps me to better understand some functions in Gimp, an image editing program I use. It fact, I might even do my math presentation on these.
Back to the side note theme - one of them was an explanation on how color works - color of things as well as light, the difference and similarities between them which I was not aware of before. To know this is of course quite important when dealing with graphics, but it is also a piece of knowledge that is also useful outside of programing. Another side note like that was an explanation on what Bezier's curve, a mathematical way of describing free curves which is used throughout vector graphics and also helps me to better understand some functions in Gimp, an image editing program I use. It fact, I might even do my math presentation on these.
The game
I've decided what I game I will make - checkers. It is one of the games that fulfills the requirements I needed it to: there are no items that can be visible to only one of the players (like one's 'hand' in cards), it is fairly simple and is 2D. But there is also another reason, which comes from the fact that I really do not know how much time it will all take me. If I find out that I have created the game really quick and I have more time for development, I can easily turn the game into chess (easily, in the fact that I will have most of the graphical content ready - I will have to recreate the game mechanics. It is just a door for development that I am leaving open to myself.
Tuesday, October 20, 2009
Supervisor Meeting
I've met with Mr. Depooter today. It was a simple update and clarification meeting - there were no actual problems to discuss. As I've said I am planning to finish going through the tutorial during the break - which would be until the end of Oct. It's not a deadline which I need to keep or the whole project will collapse, however I do want to make it.
Then I will have to do the design. It will be mostly involving the diagrams of the different structures that I will use within the program, of how the different objects of the real game will be represented in the abstraction of a program. I am not sure how much this step will take me, especially that the amount of work I do here will reflect on how easy it will be to actually write the program. An initial deadline I'm setting myself is three weeks since I finish the tutorial - around the 22nd of November. That will give me the end of November, December, January and half of February to write the program - including the tackling of any problems that I will encounter etc. Also, just like with any other product making work, the design may change throughout the making.
With this amount of time I should be able to finish writing the game (also depends on the game, but about that - in a moment). However if somehow I do not manage to finish the game, or I will only be able to create something lesser, not the complete product, I believe it would in fact be a small damage to the whole project. This is because the ultimate goal of the project is not to make a game, but to learn about creating Windows API based games using C++. The game itself is, one could say, a by-product of this process. Of course I could consider going through the tutorial all I need to know about it, but one only really learns programing by doing it. Also, what is the point of learning it if I wouldn't use it after all?
______________________________________________
A few days ago I wrote a practice program from the end of chapter 3. It was really quite simple in what it did, yet it did require the use of some new techniques and features. It put the typed text into its title bar. I have also implemented the backspace as the erasing button - by no means was it automatic. Then later when I showed the program to my dad, he used backspace completely without thinking about it - it was natural and he took it for granted. It really felt good to see someone use the program (even so simple) in such an intuitive way. I think this is one of the big things when one is making things that are supposed to be used by others - it brings great satisfaction to see others enjoy and use your product.
Then I will have to do the design. It will be mostly involving the diagrams of the different structures that I will use within the program, of how the different objects of the real game will be represented in the abstraction of a program. I am not sure how much this step will take me, especially that the amount of work I do here will reflect on how easy it will be to actually write the program. An initial deadline I'm setting myself is three weeks since I finish the tutorial - around the 22nd of November. That will give me the end of November, December, January and half of February to write the program - including the tackling of any problems that I will encounter etc. Also, just like with any other product making work, the design may change throughout the making.
With this amount of time I should be able to finish writing the game (also depends on the game, but about that - in a moment). However if somehow I do not manage to finish the game, or I will only be able to create something lesser, not the complete product, I believe it would in fact be a small damage to the whole project. This is because the ultimate goal of the project is not to make a game, but to learn about creating Windows API based games using C++. The game itself is, one could say, a by-product of this process. Of course I could consider going through the tutorial all I need to know about it, but one only really learns programing by doing it. Also, what is the point of learning it if I wouldn't use it after all?
______________________________________________
A few days ago I wrote a practice program from the end of chapter 3. It was really quite simple in what it did, yet it did require the use of some new techniques and features. It put the typed text into its title bar. I have also implemented the backspace as the erasing button - by no means was it automatic. Then later when I showed the program to my dad, he used backspace completely without thinking about it - it was natural and he took it for granted. It really felt good to see someone use the program (even so simple) in such an intuitive way. I think this is one of the big things when one is making things that are supposed to be used by others - it brings great satisfaction to see others enjoy and use your product.
Sunday, October 11, 2009
I have been programing for a long time today - i found the Code::Blocks IDE almost as useful as Visual C++. There are some flaws and things that are not as good as I am used to, but it does the job. This will allow me to work on the project easier - I do not need to use my mom's computer for it anymore.
I have been having a lot of problems today which required a LOT of additional research. Some of the problems I still have not found the answers to. It would make it a lot easier if I had someone that knows C++ and Windows Programing from whom I could ask advice.
Fortunately, most of the problems I cant find solutions to, I either may still find them in the upcoming chapter of the tutorial, or they are related to things that I probably will not be using in the final game.
One very useful thing that I have found today was a conversion between a number and a string (a set of characters creating a word/words). This is certainly useful for a lot of things, mostly notifying the user of some in-game parameter. Surprisingly I found it outside of MSDN where I spent a lot of time trying to find a good answer to it and failed. I should remember for the future not to limit myself to it.
I have been having a lot of problems today which required a LOT of additional research. Some of the problems I still have not found the answers to. It would make it a lot easier if I had someone that knows C++ and Windows Programing from whom I could ask advice.
Fortunately, most of the problems I cant find solutions to, I either may still find them in the upcoming chapter of the tutorial, or they are related to things that I probably will not be using in the final game.
One very useful thing that I have found today was a conversion between a number and a string (a set of characters creating a word/words). This is certainly useful for a lot of things, mostly notifying the user of some in-game parameter. Surprisingly I found it outside of MSDN where I spent a lot of time trying to find a good answer to it and failed. I should remember for the future not to limit myself to it.
Saturday, October 10, 2009
Goal Clarification and Process Update
Programming (in C++) is something I have been interested in for over two years now. However, I always found it difficult to continue developing it as my hobby in the times of the heaviest school work - it is something that demands a lot of time and commitment. Even when I had more free time, I found it more difficult than other hobbies due to the fact that it requires hard mental work, which is as tiresome as work. Therefore in 8th grade I decided to use the opportunity to make it part of my school - to have it as my personal project.Then I made a simple word game using the Win32 console. This time I wanted to move my skills further and use the Windows GDI - the usual windows structure found in Windows.
I am planning on becoming a game programmer in future, so this project does not only allow me to explore my hobby but also allows me to learn bases of my future career.
Therefore, the most important part of my goal is not the finished product - the game itself, but everything that I will have to learn and use in order to create it. The game will simply be a kind of presentation of what I have learned. Shortly, my goal is to learn about using Windows GDI with C++ through the creation of a computer game.
The process will be all about Approaches to Learning due to the heavy concentration on the skills that I want to gain through it, as well as Human Ingenuity - I will be designing and creating a program and will have to face the challenges that will come with it.
The general outline of the whole process looks like the following:
At the moment I am still going through the exercises of the 3rd chapter in the tutorial. Soon I will be starting the 4th and last one.
I am planning on becoming a game programmer in future, so this project does not only allow me to explore my hobby but also allows me to learn bases of my future career.
Therefore, the most important part of my goal is not the finished product - the game itself, but everything that I will have to learn and use in order to create it. The game will simply be a kind of presentation of what I have learned. Shortly, my goal is to learn about using Windows GDI with C++ through the creation of a computer game.
The process will be all about Approaches to Learning due to the heavy concentration on the skills that I want to gain through it, as well as Human Ingenuity - I will be designing and creating a program and will have to face the challenges that will come with it.
The general outline of the whole process looks like the following:
- Go through the "Od zera do gier kodera" tutorial - a tutorial that covers the bases of game programing.
- Design the game (in programing terms. I will design not the game mechanics, but the implementation of the game I will choose into a C++ program. The project is not about inventing a game, but about creating a computer game - the program.
- Write the program.
The first step is essential before I can go on any further - I need to know what it is I am able to do before I start even thinking of the design. After that I could theoretically start writing the program without doing the design, but that would be suicide :) It is important to think through it and create a plan before I start working on it - just like when creating a physical product. However the design may change as I am already writing the game, when I reach problems I have not thought of.
Throughout the 3rd step I will heavily be using tutorial and MSDN - the C++ and Windows programing documentation site in order to solve upcoming difficulties and to find ways around problems.
Lastly a bit on the game choice - looking at the project focus it really is not that important what game I will bring into the digital grounds. It could be tic-tac-toe as well as chess. Of course it would take more work and be harder to implement the mechanics of chess. The only strict thing I will have to keep to is that I can't have computer players- I am simply not able to create AI yet. Therefore I can either create a single-player game such as solitaire or a "hot-seat" multi-player. I was thinking of creating a digital version of Monopoly, however I think that might be a little too much to implement into the game. Right now I am thinking of checkers, however it is not the final decision yet and I will not have to make one until I finish going through the tutorial.
_______________________________________________________
At the moment I am still going through the exercises of the 3rd chapter in the tutorial. Soon I will be starting the 4th and last one.
As of the problem with Visual C++ on my computer - seems like can not really do anything about it. No one answered the forums posts where I asked for help - obviously no one had an idea of how to solve the problem. I will therefore try a different IDE (The entire programing environment, including the compiler). Most likely I will try a Borland compiler.
New IDE
I have downloaded and installed the Code::Blocks IDE and using the fact that I need to complete a few practise programs for the third chapter of the tutorial I will see if I can use it well, or if it will be to hard / take too much time to get used to it within the time I have. Hopefully it will not be much different from MS Visual to which I already got used.
Subscribe to:
Posts (Atom)