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.

Setting Up C++ Programming Environment in Windows 10 Is a Pain

Yesterday I was excited and ready to start getting to programming with C++. I thought that it would be nice to learn and to refresh my memory. I have some years ago completed a programming basics course in C++. The idea of having an executable that could be run on a wide range of devices was the idea that was so fascinating to me. I use Windows 10 a lot. So I decided that it would be easiest to just install some IDE and also a compiler.

I was so wrong with my decision. I tried to install Cygwin. During the installation you would have to select all the components that you definitely need for C++ development. There are hundreds of them. If you would like to install all of them that would take days to download and install. So that basically wasn’t an option.

I have been around Java from 2010. I am very familiar with setting up programming environment for it. It is just way easier than with C++. I wanted to code in C++. I just think there are so many options if you learn and use this programming language. What was my solution?

While I was going through the material I found online I figured that it might be easier if I would start with Linux instead of keep hitting my forehead to Windows 10. I know that Microsoft has been trying to make it a bit easier to use Linux’s software on Windows. That however wasn’t the solution for me. So I swithched to my laptop that has a dualboot install of Windows 10 and Ubuntu.

I had already Visual Studio Code installed. All I had to do was to install the extension inside VS Code. That was almost it. I had to look up how to run build inside the IDE but that wasn’t a hard thing to do. So I got to programming quickly.

It was my goal to just write something that would work and refresh my memory on the programming language. As I got my programming environment to work I got to the actual programming. I had to look up some tips on how to present text and read it in online. I am serious as I say that any programming experience in any language makes it way easier to switch to a language that you aren’t already familiar.

C++ is used widely and still in 2022 for programming games and other software. Aside it being a tough to install in Windows it really is a dynamic programming language. There basically aren’t many limitations in what it can be used for. Even websites and desktop applications with a GUI can be build.

What I build yesterday was just a tiny application. Actually it is a personality test with a lot of humourous edges on it. You answer in five questions which give you points for a type of a person you are. There are three types. The personality type that you are is the one that gets most points based on your answers. Yes. And the types are (translated since the application is in Finnish) “a talented model citizen”, “an alcoholic” and “loser”. So you are one of these. I know, there aren’t much of a choice.

Anyways, I had fun all of the about three hours I spend developing this funny or stupid app.  I had fun. It was nice. The program managed to fit into about 150 lines of code. So you can imagine that it wasn’t so complex. It had some basic text that was read in and also printed out. It used different variable types, some loops and decision making with if-else structures and that was basically it.

If you would like to program with C++ yourself I highly recommend using a computer that has Linux installed. I also like Visual Studio Code which is a free text editor or even an IDE (which stands for Integrated Development Environment).

How Has Learning Computer Science Changed?

I was reading this book about JavaScript programming as I thought came to my mind. The book was dealing how you can launch a new web browser window  and how you can do it in JavaScript. I started thinking a bit about this.

I have always programmed something on top of a heavy operating system like Windows 10 or Ubuntu Linux. I am able to create a new window inside a web browser. I am able to produce code that can manipulate the contents of a web page inside the browser. What about the machine level functionality? How computer works inside?

I came to think about this for a second. Earlier, like back in the 80s, computer hobbyists had a computer that they could program a bit simpler and deeper with. It was Commodore 64. This device was partly an electronic device and partly a early personal computer. You could learn programming in BASIC or you could, if you had the talent and will to learn, program in assembler.

Assembler means that you are talking to the machine as close as possible. You get to temper with how the machine uses memory and so on. Commodore 64 was a perfect device for someone to learn skills like programming.

Today we don’t have such hardware. We do have complicated systems running complicated operating systems. You might get yourself a Raspberry Pi but that isn’t the same thing. I recently watched a documentary that was dealing with this issue. Back in 1990s there were people going to study Computer Science in universities. Nearly all of them had some background with C-64. Now there just isn’t a good enough source that you could basically learn and build on to learn some more about this field.

Things in computer technology have been progressing. It has become more and more difficult to learn the basics. It is also required for you to learn more about frameworks and software that runs on these complex systems. But you must remember that there is always the user in this field also. That’s where you can learn a lot.