Learning Some Java

Learning to program takes lots of time. When I first got interested in it I started with basics. I started making small websites with HTML. Then I learned more about CSS and got myself into some basic image manipulation that I had to do to make my websites look nice. Back then I got curious about actual programming. I tried my hand at JavaScript and PHP. As I was trying to learn by myself and not in any school or even in a single course I didn’t get far.

I really got into some, so to say, “real” programming when I started studying in a local school of applied sciences. I completed a course that was named something like “Basics of Programming in Java”. I learned many new and interesting subjects. First thing you have to do when you are just starting is to learn how to set up the environment for the actual programming. You might be using Linux or maybe Windows as your PCs operating system. You might want to install an IDE which stands for Integrated Development Environment. You also have to install, if you are going with Java, Java. I recommend using NetBeans as your IDE. It enables you to do so many other things also.

Learning to make games is based on learning how to program. You have to master the basics first. Then you can slowly progress to some advanced matters. While studying programming you also get to see a lot about how the computer that runs all these games is actually working. This is one of the most interesting thing for me and it also motivates me. I have alwaýs been a bit of a holic learner. That means that I want to analyze what I am learning deeply and know the subject and figure out how it actually works. The opposite of this learning attitude is atomistic attitude. It means that the learner is learning some plain facts that are true about the subject being learned and trying to memorize these.

The picture related to this blog post represents the first Java book that I bought as I started my studies. It got me really far. It took me years to learn almost everything in this book. I haven’t fully stomached all of the contents. It has been about ten years since I bought this book. So that tells you a bit about the quality of the text. This book is now already a bit old. I think today Python has become more popular than Java for the first programming language.

Where you usually start in programming is that you learn what are variables, how you construct the code with control structures,  like if-else-statements, how to use the most common functions that the language provides, how to read in text from user and how to print it and also how basic arrays are used. This small list doesn’t include everything. How I started was that I basically started a short course. Then I started a bit more advanced course. And then another course about object oriented programming. Since we are talking about Java OOP is important. I think with Python this subject isn’t as important.

Programming is only one part of what a graduated software developer has to know to be able to work professionally. While studying I learned a lot about databases, user centered development, testing, communications, foreign languages, physics, electronics, mathematics and so on. I took a course about processors also. I deepened my knowledge in software development as I had to choose my main subject from telecommunications, embedded systems and software. This choice was made after one and a half years of studying.

One thing I would like point out about studying. When it is summer the school is closed. You have to figure how are you going to spend the time. You might be working. You might want to take some remote courses like I did. Just don’t be too lazy andjust  try make use of this time somehow. Otherwise it might be hard to start working on your studies again when the summer is over. So keep that in mind. Resting is required but a pause too long can be harmful.

A huge part of getting employed is how well you understand what it takes to be a professional. You have to find the best frameworks and the most useful programming languages. Teachers know a lot but always someone knows a lot about one thing and someone else knows a lot about other thing. Keep your eye on the companies that are doing the things that you would be interested doing. Make some hobby projects to display your skills. It might be a good idea to share your projects in for example GitHub. And remember to build your resume. You can even add some supplement pages that give the employer an idea about your skills.

If you are going to study programming keep in mind that it takes time. Keep your focus. It’s a long road. Go for it if you really are interested in it.

Dreams of Making a Video Game

I woke up today a bit early. I put on my headphones and started listening music and browsing internet. The sun was rising. I just had to take this picture with my phone and share it with you. But let’s get to today’s subject. Have you always dreamed of making your own game? Well, I have.

It started with playing games as a kid. As I grew older I started to get a sense of what gaming really was. I wanted to make a game. I was also fascinated with designing websites. While I was studying in high school I started to think about my future and what I would want to study after it. I though a lot about trying to study something that required creativity. I was also a decent math student. Finally I decided to go for math and physics instead of studying art.

My life has been a one big trip. I finally got to studying computer science in 2010. Since I started I had a dream of some day developing a game or at least a nice looking dynamic website. Things didn’t actually go that way. After graduating I found out how hard it was to get a job in the field. However I did program a game. It was text based adventure game.

This wasn’t the kind of game I had dreamed of making. The game I imagined was graphical adventure game that had discussions, small puzzles, some kinds of graphics and lots of interactivity. I wanted to create something special. I lacked skills in creating graphics and programming.

The dream didn’t seem to disappear. I still have it. I know some programming but the task seems to be too difficult. I have tried to get into Python (PyGame), Java and JavaScript but it seems to be too hard for me to learn effectively. I don’t know what happens to this dream as the time goes forward all the time. I admit that it’s a bit sad.

So designing games hasn’t been the job that would fit me perfectly. But maybe that’s why you dream. You can imagine what you might some day achieve. Just remember that it’s hard work to learn something so deeply. And before you try your hand in programming just remember that it’s hard to get into. But if you are really talented just go ahead. I know some very talented programmers that have made it. And keep dreaming even if you achieve your goals. There are so many different ways for a person to develop himself or herself.

Can you see inside the game?

There are many different views to video games. In my opinion by playing them you learn different things about the world itself but you also learn how games are played, structured and what are the rules inside it. You can also take a psychological view of what the game is trying tell you. What is the plot and what are the developers main points or what is the games message. You can also analyze the game – what are the rules and how do you proceed in this game. Some games ask for the player to make decisions that effect to what happens and how do other characters react to this. When I think about this one particular game comes to mind. That’s the first Fallout.

Some players are happy to just play and play and keep playing and enjoying these video games without learning things about the world around us. I think that’s okay. Not everyone has to be a scientist or go to university. It’s just my own habit and my personality that drives me to think about things a little bit deeper. At times I find myself reading books, skimming through texts that I find online and just having a conversation with someone at social media for example. I enjoy this a lot. I think your brain is your greatest weapon and it is even greater than a loaded handgun.

There is also a technical view to gaming and games. After I spent years learning programming I found how the logical part of games is constructed. I am happy that I graduated and even though I didn’t finally get a job as a programmer I learned many interesting facts about computers and technology. That was combined to my earlier experiences about playing video games. Now, I am not a hardcore coder. I know the basics. Still this little knowledge opens a door to understanding a lot about video games.

You basically have content that reacts to users actions. You get points by doing something. As Sonic you collect rings. As Mario you jump on enemies. These points are actually variables. When Mario jumps, or we can say that you push the button, this action triggers a function that defines how high the jump is and usually it also records how long did you press the button and did you press any other directional buttons. When Mario lands on an enemy there is another function triggered. Have you ever wondered how on earth can a game save of for example Fallout 4 fit in to so small space? This is because for the game to be saved you only need some statistical information, some variables, that have all the necessary information inside them. So it all makes sense, finally.

There are many ways to analyze games. You can view them as entertainment, learning tool, hobby, profession (maybe), subject of any kind of science and so on. You can also think what goes on in the game and what is the atmosphere like. If you want to learn more about games and maybe willing to learn how to make games I can tell you that you should first start programming some way. You can try to get to some good school to learn things out. That’s the route that I took. After you have learned basics you can advance to a tool, usually a framework, that you can build your game on. Good tools to learn are Unity, Stencyl and Phaser. And remember that programming is only the logic part of games. To make a game you need also to create all the 3D models, story, textures and music with some sound effects. It takes a lot to make a full game. Some just have what it takes and…well, some just don’t. Try to be patient. If your first game, or the prototype of your first game is awful, don’t give up. Just keep thinking, designing and learning. That’s also how you can grow as a person.