Gaming with Raspberry Pi

So I have this old Raspberry Pi 1 that I got back in about 2011. While it has many uses I haven’t utilized it in a while. What makes this interesting for the readers of this blog is that it can be used for retro gaming. While it is not able to run decently games that have 3D graphics it is perfectly good for playing retro video games like SNES games to give an example. Newer Raspberry Pis are capable of running some more advanced games that have 3D graphics. It is also not a bad choice to pick up a NVIDIA Shield if you are interested in emulated retro gaming and you want to be able to run games with 3D graphics. Shield can even run some Sega Dreamcast with Sony PlayStation games. If you want to be able to run PS2 games I think this is not, at least yet, your way to go.

So we have this Raspberry Pi 1. It has many ways that you can connect different equipment to it. It has two slots for USB. The connections are white which tells us that they are of type USB 2.0. This doesn’t affect us so much. The connections could be colored blue that only tells that they would be a bit more advanced and more effective in transmitting data through them. But for a USB controller or even Bluetooth dongle would work with USB 2.0s just fine. You can even expand these USB slots with an USB hub. It can provide you more USB slots.

If you don’t want to sacrifice one USB slot for Wi-Fi dongle you can connect your Raspberry Pi to your network and internet with an Ethernet connection. There’s no Wi-Fi built in the first Raspberry Pi but some newer models also have this feature included. So you might want to consider buying for example Raspberry Pi 4 instead of the first release. The first release also only supports SD memory card up to 32 GB. While this is just enough to support playing retro games, it might be too small for some uses. There is HDMI connection which delivers the sound and the picture from the computer to the display. There’s also a slot for video output and a small slot, actually a mini-plug connection, for audio output. Raspberry Pi also needs a power input that is provided with 5V micro USB connection. You can probably use your old smart phone’s cable for this, that is you have one available.

You get that Raspberry Pi needs a memory card  and a power cable to work. You will also need a keyboard, maybe even a mouse, a cable for Ethernet and an HDMI cable. That’s just for setting up. You have to install yourself a good operating system. For gaming I would go with RetroPie or Lakka OS.

Here’s some links:

https://retropie.org.uk/ and https://www.lakka.tv/

There are many ways that you can get the image file to your memory card. You can probably read some deeper instructions from those links that are above this text. It depends on your host operating system but I know that you are able to make the installation with Windows and Linux PCs.

After getting the software installed you need to fiddle around a bit with the settings. You can usually just connect your game pad and configure the controls. After that you only need to use the Raspberry Pi with your controller. You need to transfer the roms to your device also. This can be done in several ways. You can for example transfer them to USB stick or you can transfer them from your local network. I am not getting to this since this blog post is not actually a tutorial. I am only discussing about the possibilities and I am trying to give you a clear picture for what it is like to get your old, dusted, Raspberry Pi to work for you as a gaming device.

I really think that this is all about this subject. You can run your SNES, NES, Mega Drive/Genesis, Master System, DOS and Atari 2600 games like this (just to mention some of the most popular systems). I would recommend for your game pad Logitech’s or a USB SNES pad although there are plenty of possibilities. Some controllers might not work so don’t try to plug your PS4 controller in as it won’t probably work and would need some fiddling.

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.

Sine Mora EX – A Modern Space Shooter

I wrote a post some time ago about space shooters. I have played many nice shooters mainly on Mega Drive. So the thought about getting into a more recent game in this genre was interesting. Sine Mora EX is modernized side scrolling two dimensional flying and shooting game. Graphics are clearly today’s graphics, there are some modes to choose from, you can save the game and play with two players cooperatively.

I bought this game, again, from some sale a while ago. The price was very low. I think it was about ten euros. The game has been released in 2017. I checked how long would it take for an average player to get through this game and the website tells me that it takes about two and a half hours. I have played it now for five and a half hours. As I’m not a professional game player it takes some time for me to finish especially this type of game. The genre isn’t one that I would have lots of experience with. But things do get interesting as I delve deeper into what this game has to offer.

Basically your mission is to avoid ammunition that is shot at you and at the same time you have shoot your enemies before they kill you. You get, I think, randomly some updates to your weapon and more time and some other important updates. You can even get a shield for you plane. When you get hit you loose all your weapon upgrades that give your weapon more power and you can then collect them back to you if you are fast enough. There are also updates for your planes speed. Time can run out. You get more time when you kill enemies or get an update. When you get hit you lose also time. You have ten lives and when time finally runs out you lose one life and you have to start from the latest checkpoint.

The game is exciting. It may seem to be a bit repetitive as games in this genre might sometimes be. As I played this game today I spent many hours playing it. So it keeps you well captured while it still is a smaller and more of a casual game. It’s nice to play this type of game that doesn’t require so much work in getting into it and actually learning how to play it. It can be a nice introduction to this whole genre. I hope I have the time to learn to play this game a bit more. In overall this game is good and it delivers a nice shooting experience tweaked into a modern gaming experience.