The Use of Memory in Game Consoles

Today’s topic for this blog is the use of memory. I decided to write about the use of memory in game consoles. We are dealing with things like memory cards, hard disks and random access memory. I also tell you a bit about processors and how computers deal with the actual ways in which the player interacts with the game.

This is not a science writing but more like something that I wanted to briefly write to you since I happen to have some experience in playing these video games and I also have this background in studying and working with computers. I have been playing games a lot. I have read a book or two about the use of memory and also studied a lot about this subject.

What really made a difference in the use of memory for video game consoles was the introduction of the optical drive. You did have a space for couple, maybe four, megabytes for your game. Well, like you might know, a CD-ROM disc has somewhat a space of 650 MB. So the amount of space was more than 100 times larger.

What about saved games? A supported disk drive was introduced with the release of the original Xbox. It might be the first game console to have a hard drive. Before this we had to use memory cards for storing and also organizing our saved games. Hard disks also allowed many other things. It also made installing games to the hard drive a norm.

I am trying to explain the difference between temporary memory (like RAM in the world of computers) and staying memory (HDD and/or SSD drives). So basically RAM, or Random Access Memory is something that the system uses while it is powered. After the power is cut off the memory disappears. In programming you use different variables to store the data temporarily.

Hard drives can save data that is included in these variables so that it can be accessed also later on. Earlier there were typically HDD drives used which offer a lot of space but they are much slower in processing the data than newer and more expensive SSD hard disks. The data in a SSD or HDD can be saved in different forms. Sometimes the programmers can use text files and sometimes forms like JSON. Data can also be serialized in a way. There are many possibilities. Basically you are saving something to some file or files. Sometimes there is also some sort of database used.

The data moves between the components of your gaming device through different kinds of busses. You can probably read more about electronics from your favorite search engine or maybe you can create a prompt for AI. I am not going to try to expain this so thoroughly at the moment. But if you are interested you can find more about this.

How does the gaming console work basically? There is a loop in the program code that keeps refreshing the screen. The frequency is blondly called FPS. It stands for Frames Per Second. This can be for example 60. The system reads all values of variables that are in the code and updates everything regarding to the values that the variables hold.

The game system detects any interactions using the code. The game detecs what controllers buttons are pressed and for how long. Then the screen keeps updating. There’s a lot of things happening. The main source for the things that are happenig is the actual source code of the game. You might think that it is easy to read a source code but it actually is pretty. It is way harder than reading something that a blogger has written to a blog post. And only the person that has written the code might fully understand it. Sometimes even this is not possible. The code can and is actually preferred to have comments in it also.

So to summarize this blog post we can conclude that memory is used in many ways in game consoles. Data is saved and handled. We have come a long way from game consoles like Sega Mega Drive in which you aren’t able to save at all (you do if you have a battery inside the game cartridge) to modern consoles in which you have huge SSD drives of several tera bytes of space for lot more content than just your saved game data. I encourage you to find more information if you are deeply motivated in learning more about this very interesting topic.

Are We Lacking Excitement?

I barely remember the beginning of the 90s. No, I wasn’t partying hard back then. I mean that I was only a young child that didn’t have this ability to understand some things. I got the idea for this blog post as I was once again playing some Golden Axe 2 for Sega Mega Drive. It was first released in 1991.

I remember that this was one of the most popular games we had that time for Mega Drive. I definitely connect this game as a defnite Sega game. There are some games that just make me feel this way. We can mention games like Sonic and Outrun. This can tell you only how skillful these engineers and game designers were. They were not playing with their technical skills.

If we think about technology we can think about 1980s and how Commodore 64 influenced several young people to commit a huge amount of time to programming and getting into this technical field as a hobby. Some might have even made it to the industry as a professional. I can think of people like Linus Torvalds right here. Did you know that he is also from Finland? Well, he is.

While users of Mega Drive gaming system weren’t able to program or design their own games with this device there definitely was some sense of excitement towards technology, computers, games and everything else related to video games.

If you play Golden Axe 2 for a while you can notice how thoroughly the makers of this game have thought about many aspects about this game. First of all we have here some very carefully designed characters. We also have these surroundings that can make your imagination take a dive in to the wolrd this game presents. There is also a light story among with some enemy characters. All this just explains the quality of this work. This is defnitely a good game of this era.

The gameplay is very nice also. Graphics could be better. It’s a shame that we haven’t seen a new Golden Axe game for a while now. There was a game released for PS3 and/or Xbox 360 some time ago. But I think that this game looks good if you think about it being released back in 1991.

What would I add to this game if I had a change to modernize it? It lacks some character development in my opinion. I could see this game being a very nice action RPG if it would be brought to this day. If there would be experience points and some way just to develop your character. The story and surroundings are just so detailed. This game has taken some influences about some phantasy literacy and maybe even movies. So it would be a good fit for a role playing game.

Mega Drive had a deep impact to game development. Did you know that Diablo was inspired by NHL 94? Well, it was. Turn based role playing games were dominating the markets before Diablo was released. The developers at Blizzard thought that they should bring these action features to the world of role playing games. At the same time real time strategy games were beginning to become more popular.

But we should return to the main question that I set in the beginning of this blog post. Were things different back in 1991? And if so how? The biggest change there has happened is that video games are a way bigger business today. Do we have enough room here to create something unforgetable? Are we still excited about new technology and with the same time about building new phantasy stories, worlds and characters?

I think we haven’t lost all of our excitement. But if we wish to progress in this world of gaming we have to keep this matter in our minds. Money is important, I know that. But it shouldn’t take away these opportunities and all this excitement. So let me say, once again, don’t loose your dreams! Don’t loose the excitement…

The Role of a Single Variable in an Application Source Code

What is the role of a variable? In case you don’t know about software design, or basics of programming, let me show to you what kind of a term it actually is. Variable has a type which defines what values it can have. It can be a number, a single character or combination of multiple characters. A variable can also be part of an array that has several variables that are of the same type. Objects have properties and every implementation of an object has a variable as a value to its properties. But we are not going to object oriented programming or modeling…at least not yet.

Together with other variables in a program variables form a state of the program. If you think about thing in any retro game console emulator there are so called “saved states”. This means actually what it exactly is. In Super Mario you have variable, which says in which world you are, which stage you are, were you are positioned in the actual level and, for example, how many lives you have left. So all these variables form the state. You with me?

One thing I wondered for several years especially when I wasn’t too deeply involved in actual programming and I was still trying to get my thoughts gathered was “how can you save the entire game when you are saving your game in any modern game?”. Of course you aren’t saving a full copy of the whole game. You are only saving these values of all these variables. You are saving the state in which the application currently is. And basically, this means text. How much would a text file consisting of, maybe, some hundreds of lines of variables and their values take space? Yeah, you figured it out…it wouldn’t take a lot of space. Not at all.

What does take space if any commercial modern game would be considered? Graphics, 3D models, the recorded sound effects and all of the dialogue of the game. They all take a lot of space. Especially when you think about today’s high quality screens with 4K pixels and high quality sound coming out of the selected audio device. Of course what takes also power is all this processing. The processing of code is done by processor of your computer. Graphics are processed with GPU (Grpahics Processing Unit). Today there is a need to maximize the use of a powerful GPU to process the data as efficiently as possible. The processor then works with the GPU and also the hard disk. We have already witnessed fast data processing of SSDs. SSD is short from Solid State Drive. Earlier we had hard disks called HDD (“Hard Disk Drive”). If you are really into computers and building setups you probably know that HDDs are a lot cheaper than SSDs. I mean, of course, the monetary expense of a unit of space. It is a lot more expensive to get a 256 GB of SSD space than it is to get this same space in a HDD.

Right now we are deep in the workings of a personal computer. All these facts I have already covered took me years to get into. It took me involvement. And mostly, it took a lot of time. I started getting in this, very deeply and by studying, back in 2008. That was the year I started studying first electronics and after two years I moved on to study computer science in an University of Applied Sciences. After I graduated back in 2016 I was having a hard time finding a job. After two years of looking for a job I found one as a customer servant. I have worked my way from there and now I work as an IT support person. And all this started from trying to figure out how the saved game system works in my favorite computer or video game. I think the game I was thinking about was Fallout Vegas.

The question made think deeply. How was the game able to save all this information to a small saved game file? I got the answer but it sure wasn’t an easy peace of a cake. I didn’t succeed very well in courses that dealt with a computer’s memory usage or how is magnetism, a physical phenomenon, handling all this data on a hard disk. But little by little…I got the whole picture. I finally got to combine all this information together. All this started by playing games.

Today, I find that there are several areas that are really interesting to me. If you want to learn some knowledge very deeply, like how computers actually work, you will have to use your past knowledge and experiences to guide your thoughts through it all as a process. Writing something “open” to yourself so that you understand what your mind is dealing and handling is one big key for understanding complex and theoretical matters. And teaching someone or having a conversation about the fact is very useful many times.

I don’t know a lot about actual electronics or how the architecture of a full computer work. Well, I actually know something about it. That isn’t however enough for me to solve every problem. This is also where search engines or even a tool like ChatGPT would come in handy. Of course you can look up information from books or your notes and study some more. Just try to remember to take it piece by piece. There is an old saying. It goes something like this: “nobody is a master as you are born”.