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