Showing posts with label Computers. Show all posts
Showing posts with label Computers. Show all posts

Friday, April 16, 2010

Ready... Go.

How hard is it to learn something on your own? The few things I've taught myself on my own don't even deserve mention. To be fair, I haven't had any real reason to learn something on my own before; I figured that time would come after I had got into my main career. However, one of my classes this semester made me feel just a little bit like I was teaching myself something new. Now obviously, it wasn't entirely on my own, but our excellent professor was very good at forcing us into situations where we had to work very hard to figure things out, and it paid off in buckets. I now have a decent grasp of the Verilog language, and a better feel for how to learn on my own.

So today will mark the beginning of a mild experiment. I don't have much time right now due to term papers, projects, and finals coming up, but we'll still consider today to be the start. I have no idea how far I'll get, or even how well I'll maintain interest, but I think I've found a pretty good source to get started from. Let's see what happens.

Monday, March 1, 2010

Whatever happened to Demos?

I remember about... 10+ years ago, almost every game that came out had a demo you could play as well. What happened to that little policy? Nowadays it seems the only way to find out what a game is like is either to look at the ridiculously funded ads or to ask someone who's already played the game. And that doesn't solve the problem I just ran into.

Last fall my computer died. I lost a lot of files, and some money replacing it, but the important thing is that my new computer is substantially more powerful. However, it's not bleeding edge powerful, and has an integrated graphics card. So I'm finding myself able to play some games that I previously was unable to. But at the same time, I'm finding that it's very hard to determine what games I can play when I have a great processor and plenty of memory, but crap for a video card.

This is where the lack of game demos comes in. If I could obtain a demo of some of the games I'm interested in playing, I could be very sure that my computer can run them or not. Instead, right now I'm stuck trying to decide whether I want to risk $60 on a game that may end up being useless to me. So what options to I have available to me? Risk buying the game, which with my limited income right now is a bad idea. Or pirate the game and test it that way, which has obvious legal and moral issues, and frankly takes a long time these days due to the gigabyte size of recent games. Or just save my money for the day when I can afford a computer that can definitely play the games I want, which is the best decision both financially and academically. Plus, there are lots of games out there I've found that don't have tough system requirements, and are way cheaper to boot.

Listening in, game industry? You just lost a customer because you can't prove your games will work for him. =P

Saturday, September 26, 2009

Procedure, Representation and Extendability

I realized something a couple days ago: the computer industry is built on "extendability". This is an oversimplification, but I find those are useful for talking about stuff. =)

First off, a commenter on Nils' blog posted a very interesting link to The Escapist about the future of gaming being procedural. The article also had a link to an interesting youtube video of a "pixel city" the author created using procedural algorithms. This got me started thinking, on a couple of fronts. Today, I figured I'd just stick to the philosophical part of it.

Computers are based on transistors; basically digital switches, though they can also be used for amplification purposes. Engineers started out linking those transistors together with other components to create various electrical devices, most of them analog. Then they used them to come up with logic gates, the basic unit used for building digital devices. They then linked those logic gates together to create various simple logic units; an example might be a simple circuit for adding two binary digits together. Then they linked those units together to create larger units, like a circuit that adds two large binary numbers together. Then they linked those together with other units to create basic processing units. Then they worked on making those processing units bigger (figuratively speaking), by putting more of those subunits together, and allowing them to make more calculations and more quickly, resulting in today's CPUs.

Putting CPUs into computers lead to it being the programmers' turn. Starting out with simple instructions, they created a machine language that was standardized for working with the computer devices and CPU at the lowest level. Then using that language, they created more complex languages, such as Basic. Then using some of the simple units of those languages, and machine language, they created more complex languages, eventually reaching today's level of compexity, which C++ is a good representative of. Then programmers used the basic units of C++, things like ints, floats, chars, and arrays, to create classes, such as strings, lists, stacks, queues, and trees. Using these various data types, they created more complex data types and functions. Now, using all those subroutines and data structures, programmers create complex programs that fulfill all sorts of functions. And they set up ways for different programs to communicate with each other, with their operating system, and with other computers across networks.

Every step along this entire description is a case of people taking smaller pieces and making something of them. Not only that, but then making it so that their creation can then be used as a piece in still larger creations. This is called extendability.

Ultimately, everything in computers is a representation of reality. And everything is extendable. No single person understands all the details of every step listed above. That's like knowing the job and duties of every single individual in the US. However, that segues nicely into a common function of computers: representing the real world. Everything from simple arithmetic, on up to simulations, info search (read: Google), and virtual worlds; they're all representations of the world in various forms.

However, the world itself is "extendable". Collections of atoms form molecules, which then form proteins, which then form organic cells. Those cells group together to form organs, which then work together to make our bodies. Individuals form friendships and families. They also form companies, and teams and organizations, and institutions. Institutions form the basis of state and provincial governments which combined make up countries and nations. Finally, those nations (try to) work together as the United Nations, while also trading across boundaries and forming extra-national institutions, and dealing with multi-national corporations.

No one understands all of this, and there's no way to represent it all. That's why any discipline that focuses on understanding the world around us works at focusing on only parts of the whole in order to simplify and make things understandable for an individual. However, we should always keep in mind that no matter what our understanding is, it is always partial, incomplete, and imperfect. In other words, the world is BIG, and there's no way to get it all - but we'll keep trying.