Simulation vs. Reality

I was playing Dirt 4 as this idea entered my deeply focused mind. As you might know, as a gamer and reader of this blog, Dirt 4 is a rally game that has said to be somewhere in between a simulation and a totally arcade type of driving game. Of course I am once again playing with a game pad instead of a driving wheel. So, that makes it more of an arcade style of play. But what I actually wanted to represent and deal with this blog post is that how can playing something, be it simulation or not, to actually give you a perspective on how to approach a skill or some activity in real life and in reality?

Games can give you an idea of something, for example driving a car. This activity is not real driving. It is something a bit similar. Of course there are no risks. If you would really actually drive a car over 160 kilometers an hour on a road somewhere in the shore of lake Saimaa, Finland, you would have to really have some skills and know-how to even operate the car. There is this thought of driving and kind of a fantasy that are combined when you play a rally game.

Can playing games give you some skills that you can actually use in real life? Yes. Definitely. Sometimes these matters are technical details of the computer and what it does when you play one of your favorite games. I am many times thinking about technical and programming related matters when I am playing a game. I might think about how this particular game works, how it collects your input and keeps, sort of, count of the total progression of the player.

Sometimes, like when I play a basketball game, I start to think some matters that are related to real life basketball. There are lots of facts that you can connect to a video game. A game is always some sort of a representation of what it is trying to model. These models come from real life. Of course games can represent an idea of a game, also. There are types of games that you like to play and there are these genres that tell us about what kind of a game it is.

Playing games is an activity for mind but also for the body. This is why we have eSport events and it is completely understandable, today, that you can compete in playing games. Some games, like chess, are purely for mind and some games even test our nerves and reaction times. That is why some games you can compete in as a professional only if you are a young person.

There might be a way to think through your physical performance in some activity with playing a game about it first. If you think about basketball or driving you have to be able to explain to others what you are doing and how. For example, if you are a coach, you have this vision that no one in the team doesn’t have. You know how players in your team are feeling, what are their skills and you have also an approximation of how they will perform in the game that you are about to participate in soon.

It might be easier to make a game out of some sport than it would be to create a sport out of a game that doesn’t have anything to do with reality. Are we actually always modelling real life when we create a game? We definitely talk about games a lot. There is lots of going on in a game and in a real life. These all things kind of keep mixing up in our minds. Definitely games brings us a way to express things. Sometimes we mix reality with fantasy.

I am really into Java programming. This programming language has a lot to do with models that are made out of real life objects. It is called object oriented programming. If you are interested in this type of thinking I encourage you to seek more information. I don’t have a degree or a deep knowledge in psychology or philosophy. I still wanted to write about this matter. Maybe you got something out of this blog post. I will write a post again, soon.

What It Takes to Create Own Video Game?

What it actually takes to create your own video game? Does it take hard work or maybe talent? Well, that depends also on how high you set yor goal. It isn’t so hard to create a text adventure game. For me, the hardest parts are concerning programming and graphics. I have created some minor prototypes and an actual working text-based adventure game.

How did I make my game? I programmed it with Java. If you program some other type of game, like a simple platformer with some basic graphics, you are basically creating a never ending while-loop, inside your code, that will refresh the screen like maybe sixty times in a second. The code updates the screen all the time. It also records every rerlevant key presses and updates the objects that seem for the player to be moving on the actual screen.

This is the basis of a simple game. You can also create event or command based games. This is what I did with my small text adventure game. The game reads your command, like “look around”, and then gives you some new output in a form of text. And the whole text adventure game happens on a command prompt inside your own program or game or what ever you are running your code with.

So, what do you need to do when you actually create a new game. There’s lots of things to work on. You need a simple plot and some kind of a scenery. You need to know how the player of your game can interact with the software, or computer, when the player plays the game.

There are also more areas of knowledge that are needed. You have to come up with whole world of music and sound, graphics, controls and storyline. Making your own game is technically demanding. You have to know your computer and how it works. You know, a good painter doesn’t necessarily know how to make good-looking video game graphics. You might need a voice actor or maybe even three or four of them.

Making a video game is demanding. But it is very rewarding if you can actually make a game that people like to play. Some people might be more interested in finding out how did you come up with your game. That can concern programming, creating the music, writing the plot or dialogue of the game or some other area.

If you still want to make a game on your own, remember to not to set the aim too high. And this is propably a good advice especially when you are just starting out. Remember to try to collaborate with other people that have some of these skills I have mentioned in this blog post. If you feel like it, you can share your source code with other developers. There are also lots of information available online. There are materials and tips for you to use before you try to make everything by yourself.

There’s a saying in Finnish that goes “kukaan ei ole seppä syntyessään”. I am not going to try to translate that. But this means that you have to take your time to learn the craft. I hope you got some new ideas from this blog post. We were moving on some game desing principles here in this blog post. Maybe I will write something about actually playing some video games the next time. We will see that.

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.