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.

Tools for Building Your Game

Do you want to know how to actually make a game? Do you have an idea? Let me tell you what it is about and what skills you must learn. You might already have a friend or two that are talented in for example doing graphics or making music with personal computer. Why wouldn’t you get to understand how to make your game? And wouldn’t it be fun even if you wouldn’t actually end up releasing a game?

We will start with 3D modeling. There is this method to make a 3D featured game. You will have to make all the objects that the player encounters and also all surroundings and so on. If you want to make a game that has only 2D graphics that’s ok. But in this blog post we are dealing with 3D environment. So for making animations and 3D models you have to learn to use Blender. Or one of your friends has to. You probably need also skills in programming OpenGL which is based on C++. SO you need to know programming also to “make things click”. you have to have a way for the player to interact. So you need input from player. This is also made possible through an interface that has to be programmed. Making a game isn’t actually all programming but it isn’t all creative thinking also.

You don’t have to make your game with C++. You have a wide variety of different programming languages to choose from. You can make games with Java. I have been fiddling around with SWING. It is quite easy to make a game with a GUI but no graphics. You can make for example a role playing game with a deep plot. There are also some game engines for you to choose from (in Java). Some of them are engines like LITIENGINE and LWJGL – Lightweight Java Game Library. You can find more information about them … again … from your favorite search engine. (Or I might write about them some day). Android is also build with Java. So you need to learn Java if you wish to make a game for a mobile device that runs Java.

What about Python? You might have learned basics of programming from some course for example with it. Python is very good for many purposes. You can make games with Python. Then you would maybe want to learn about Pygame. There is also a funny library for Python for making games that have ASCII graphics (and only ASCII graphics).

You can choose C and C++ and then you are again going to the direction of using OpenGL for so many things. Have you ever made websites? Then you must be familiar with things like HTML, CSS and JavaScript. This is one way for you to make a game also. You can even use a library like Phaser that is based on JavaScript. You can also make your game with C#. You can also make something out of SQL or databases.

There are also some other ways to make a game that I haven’t yet mentioned here. There is basically tools that are built for making games. So they act like software that you can code and design your game with. Some of these tools are Game Maker Studio, Stencyl and Unity.

We have dealt with programming and 3D modeling. But you need also something else. You need graphics or to say it more precisely you need textures. Textures form the surface to your 3D models so they will look like they were actual objects in actual real world. Or that is their goal since a clever player always recognizes that he or she is playing a game and it’s never a real life situation. But, you need textures, right? Your tools for accomplishing this are free tools like GIMP and/or Paint.net and actual paid software application Photoshop. These tools are powerful and you have to learn to use them if you wish to make a game.

Some graphics can be made from sprites. So animation needs many still pictures that finally form the desired animation. But let’s think that we are building a game with 3D environment so we will stick to using Blender for the purpose.

Okay. What about music? What about sound effects? A good game has a dedicated soundtrack, right? You can make your own music or you can try to contact some independent artists. You can find these artists from SoundCloud or if you can speak in Finnish or at least in English you can try to talk to some artists in Mikseri which is a Finnish platform for releasing songs as mp3s on internet. But those are your options, basically. And music you can also find from YouTube. Try asking from some artist you dig.

You can find lots of sound effects online. You can try Freesound.org for example. Sound effects might be hard to make. It helps if you have a good quality condenser mick. These come nowadays with USB connection and they cost about from forty euros to several thousands. I would myself prefer a good and cheap mic for testing to record something. You can get creative with this. Slice an orange maybe and record that sound. You need to handle the audio clip. So you need skills in using an audio editor like Audacity or any other audio editor.

If you really want to make your own music to be played on the background you need to master some DAW. There are free DAWs, like LMMs, and ones you have to pay to use, like FL Studio or Renoise. There might be free to use demo versions that have some limitations. Some free DAWs I actually haven’t tried to this day are Pro Tools First, Ohm Studio, Cubase LE and Ableton Live Lite. I make my music with FL Studio.

You probably need some instruments. And I mean “virtual instruments”. There are lots of free VST instruments and effects. Some tools come with VST plugins and you can also buy them if you really need. A MIDI keyboard is a good thing to have. So you can make all the melodies with your virtual instruments. It doesn’t hurt if you have samples or if you have a friend that can play some guitar so you have all the diversity that is needed.

You will also need some gear. If you want to record vocals while you are listening to your instrumental at the same time you need headphones. Want to know why? Your voice starts to circulate if you don’t use head phones and you basically don’t want that to happen. You might also want to use monitor speakers. I have spent under 1000 euros for my studio, well if you leave the computer out…But you don’t actually need a super fast computer for making music. You can use your parents desktop really well. Just something that runs your audio software and has some space for your music. And you can buy for example a licence for OneDrive pretty cheaply so you would have 1 terabytes of space.

The last thing, I promise this is last in this long long blog post is about big data. What the f has big data to do with gaming, you might ask. It has every effing to do with today’s gaming. You ever think about how much data is moving in mobile activity all the time. There is also data to move in games. This can be something about how you make your choices in the game or what kind of weather happens to be or what time of the day it is. All this makes games very realsitic. But you know what? It makes them more boring. This is purely my opinion. But keep in your mind that there is a lot going on inside the game when you play it.

 

Object Oriented thinking in game development

Object oriented thinking is a way of modelling real world. Objects have attributes and methods. Attributes are variables. There are different kinds of variables and they always have a type. Different types can be, for example, integer, float, double, string and character. I am talking about Java now which is very good programming language for explaining object oriented thinking. Methods are functions of the object.

So different object can have values, such as Person would have height, weight, age and name. Height, weight and age can be numbers and name is a string or combination of characters. For a role playing game you could a Monster that has values like strength and chance to hit for determining if player is hit and how much damage does the player get.

When there’s types of enemies in our little game they have these basic abilities. So we must create instances of classes to generate more enemies that are of the same type. There are many enemies of a type, for example “ghost” or “zombie”. Player can also have abilities like health, armor class and so on. We can build worlds in thinking like this.

To build a game you need many other things than just object oriented programming. You need textures, 3d-models, sounds, music. and logic for the game to exist. So you can begin programming with Java but you must understand that it is a tool that can be used to create something. Plain Java doesn’t do so much. I have programmed a text adventure game. I still think it’s not a full game. It’s more like piece of code that gives you some output for your input. If you are interested in creating games, rather than playing them, I think you should sharpen your skills inside Blender, Unity and graphics design. And these aren’t only tools there can be.

Social media & sharing icons powered by UltimatelySocial