|Posted by Jason on March 29, 2016 at 2:45 PM|
The Epic History of Game Development & Programming Languages
The evolution of programming languages and computer game development is epic in every sense of the word. The world of programming language history is peopled with epic characters and legendary heroic conflict. The goals of the earliest programmers were deemed impossible, anti-social and even irreverent by those who opposed them. With the promotion and progression of machine-making throughout the tumultuous years known as the Industrial Revolution, great thinkers- poets, philosophers, scientists and engineers- turned their attention to ways to 'communicate' more effectively with machines. And there have always been gamers, long before there were electric machines, there were avid gamers. Give a gamer an interesting machine and a language to program it with, and as you know, that gamer is going to turn their machine into a game. During a time when others were making machines that did work, and turning machines into weapons, gamers were engineering machines that taught skills and encouraged fun. To understand how we ended up with Holographic communication and 3-D game magic tricks like like the newly released Oculus Rift, we should appreciate programming language history and the roles that game developers have played in enhancing our understanding and appreciation with our environment.
What Is Game Programming?
Game programming is the software development of video games. Game programming requires substantial skill in software engineering and specialization in one or more of the following game related subjects: simulation, computer graphics, artificial intelligence, physics and audio programming. For massive multi-player on-line game programming, additional knowledge including network programming and database mining are also required. Game programming means to write the script of code that determines how the game will function. The game programmer works closely with a team that includes a game designer, and often a graphics designer and a game dialog script writer. The skills of the video game programmer are highly transferable to many other types of computer programming and code writing.
The Game Development Process & Programming Language Choices
Once the game's initial design has been agreed upon, the programming language must be decided upon. The choice depends upon many factors, such as language familiarity of the programming staff,target platforms, the execution speed requirements and the language of each of the game engines, APIs or libraries being used.
For designing games for personal computers, the programming language chosen by game developers is often a matter of preference. Language bindings for popular libraries such as SDL and Allegro are widespread, and the performance gap between idiomatic code written in modern compiled languages is negligible. C++ is a popular choice, as it offers high performance, compiles directly to machine code, and allows for object-oriented practices. C and Java are also popular coding choices for personal computer programming. Many games are not written in one language exclusively, and may combine two or more languages; for example, Unity, a popular game engine, has different pieces written in C, C++, and C#.
For console game developers, the support of the target platform is usually the most important factor when choosing the programming language. In the past, video games for consoles were written in almost exclusively assembly due to limited resources in terms of both storage and processing speed. However, as technology has advanced, so have the options for game development on consoles. Nintendo currently advocates using the Unity framework when writing video games for the Wii U. .NET languages, such as C#, have good support on Xbox and on Microsoft Windows. The PlayStation 4's SDK is based on LLVM and Clang, and ergo, has C and C++ front-ends.
For massively multi-player online games, other factors including resilience of the programming language to reverse engineering, and support for multiple platforms simultaneously must be taken into account when choosing the game programming language or languages.
APIs and Libraries in Game Development
Game developers rely on APIs and open source libraries for many components of game design. The choices about programming languages often depend on the choice of API and the type of library being used. API stands for application program interface and refers to a set of tools, routines and protocols that give instructions about how components within the game should interact. Open Souce libraries, like Allegro, are cross-platform software bundle of gaming features that might include creating windows, graphics packages, sound packages, etc. The library does not include a game engine, so the game developer creates the initial game design and then installs, creates and modifies game features using API's and libraries.
An important decision for game developers is which API or libraries to use. Today, there are so many libraries available that control key tasks of game programming. Some libraries can handle sound processing, input, and graphics rendering, others can even complete some AI tasks such as pathfinding. There are also entire game engines available that achieve most of the tasks of game programming and only require coding game logic.
The APIs and libraries that the game developer chooses depends largely on the target platform. Libraries for PlayStation 2 development may not be available for Microsoft Windows and vice versa. However, there are game frameworks available that do allow cross-platform development, so programmers can program a game in a single language and have the game run on several platforms, such as the Wii, PlayStation 3, Xbox 360, PSP and Microsoft Windows.
Games Programming and Graphics APIs
Awesome graphics are a key defining feature of every successful game. While 2D graphics used to be the standard for video games released through the mid-1990s, the most popular games today have full 3D graphics, even games which are largely 2D in appearance like Civilization III.
Microsoft Windows is the most popular personal computer target platforms right now. . It comes pre-installed on almost ninety percent of PCs sold, so it reaches a much broader user audience than any other platform. Game developers want to design games that are windows compatible. The two most popular 3D graphics APIs for Microsoft Windows are Direct3D and OpenGL.
Earliest Programming Languages: Ada Lovelace and The Babbage Machines
Before computers and throughout the sixteenth and seventeenth centuries, complex computations for business and government activities were calculated using logarithmic tables. These tables were constructed by hand and held lists of values that were intended to minimize the amount of time a person had to spend doing calculations such as multiplication and division and even addition by hand. They contained errors, and this was a major concern for a man named Charles Babbage. He studied mathematics at Cambridge University and his main project was examining these tables and eliminating calculation errors. Babbage decided to make a machine that would create these tables with no errors at all. He called his machine a Difference Engine. It consisted of two parts: a part that made calculations and a part that printed the results.
Ada Lovelace (1815-1852) was born Augusta Ada Byron, the only child of Annabella Milbanke and the poet Lord Byron. Her mother, Lady Byron, had mathematical training and insisted that Ada study mathematics too - an unusual education for a woman at that time. Ada met Charles Babbage at a party in 1833 when she was seventeen and was entranced when Babbage demonstrated the small working section of the Engine to her. In 1843 she published a translation from the French of an article on the Analytical Engine by an Italian engineer, Luigi Menabrea, to which Ada added extensive notes of her own. The Notes included the first published description of a step by step sequence of operations for solving certain mathematical problems For those instructions contained in her famous "Notes," Ada is often referred to as 'the first programmer'. The collaboration with Babbage was close and biographers debate the extent and originality of Ada's contribution.
Perhaps more importantly, the article contained statements by Ada that from a modern perspective are visionary. She speculated that the Engine 'might act upon other things besides number... the Engine might compose elaborate and scientific pieces of music of any degree of complexity or extent'. The idea of a machine that could manipulate symbols in accordance with rules and that number could represent entities other than quantity mark the fundamental transition from calculation to computation. She has been referred to as 'prophet of the computer age'. Ada is also famous for her concept of 'Poetic Science,' which she spoke of often. The phrase 'Poetic Science' demonstrates a different type of creative thinking, and a concern for ethics and aesthetics in science and math, that makes Ada Lovelace a truly remarkable cybernetics and education hero.
Neither Ada Byron, nor Charles Babbage received celebration or much recognition within their own lifetimes for their contributions or their efforts. Ada Byron was persecuted for being the daughter of Lord Byron, the infamous Romantic whom she had never met. She died young, and her last wish to buried in France next to her father, Lord Byron, was granted. Charles Babbage died destitute.
World War 2 and The Radio Wars: The Era of Cryptology
ENIAC was the first fully electronic computer and it was created due to the wartime need of the military for computers that performed as fast as possible and did not need human intervention at any stage of the process. Project Whirlwind was a project by MIT that was supposed to produce an aircraft flight simulator and resulted in the development of the first computer to ever work in real time.
The first electronic digital computers, Colossus and ENIAC, were constructed during World War II. Shortly after the war, those first stored program architectures at the University of Pennsylvania (EDVAC), Cambridge University (EDSAC), the University of Manchester (Manchester Mark 1), and Princeton University (IAS machine) became shared with students, government employees, and corporations to be used for other, non-war related, purposes. This change, this decentralization of computers and the knowledge of programming them, allowed computers to be easily reprogrammed to undertake a variety of tasks. The commercialization of the computer in the early 1950s by companies like Remington Rand, Ferranti, and IBM was inevitable as post war companies turned their attention to profits, and turned their attention to personal computing and games. Computers became available an became understood by universities, government organizations, and large corporations. Game development and game programming became a reality.
Our Earliest Game Developers
The earliest known written computer game was a chess simulation developed by Alan Turing and David Champernowne called Turochamp, which was completed in 1948 but never actually implemented on a computer. The earliest known computer games actually implemented were two custom built machines called Bertie the Brain and Nimrod, which played tic-tac-toe and the game of Nim, respectively. Bertie the Brain, designed and built by Josef Kates at Rogers Majestic, was displayed at the Canadian National Exhibition in 1950, while Nimrod, conceived by John Bennett at Ferranti and built by Raymond Stuart-Williams, was displayed at the Festival of Britain and the Berlin Industrial Show in 1951. Neither game incorporated a CRT display. The first games known to incorporate a monitor were two research projects completed in 1952, a checkers program by Christopher Strachey on the Ferranti Mark 1 and a tic-tac-toe program called OXO by Alexander Douglas on the EDSAC. Both of these programs used a relatively static display to track the current state of the game board. The first known game incorporating graphics that updated in real time was a pool game programmed by William Brown and Ted Lewis specifically for a demonstration of the MIDSAC computer at the University of Michigan in 1954.
Earliest Games For Personal Computers
While the largest increase in of retail sales of early video games appeared mainly in video arcades and home consoles, home computers began appearing in the late 1970s and were quickly selling in the 1980s to schools, workplaces, students and families. These first personal computers allowed their owners to program simple games. Computers were sold with large books of coding instructions and they included instructions for developing games. Hobby groups for the new computers soon formed and PC game software followed.
Many of these games were clones of mainframe classics such as Star Trek, and then later ports or clones of popular arcade games such as Space Invaders, Frogger,Pac-Man and Donkey Kong. The games were popularized and distributed through a variety of channels, such as printing the game's source code in books , magazines , and newsletters that allowed users to type in the code for themselves.
Important Programming Languages
C++ is well-suited for large projects because it has an object-oriented structure. People can collaborate on one program by breaking it up into parts and having a small group or even one individual work on each part. The object-oriented structure also allows code to be reused a lot, which can cut down development time. C++ is also a fairly efficient language - although many C programmers will disagree. C is a popular language, especially in game programming, because it doesn't have the extra packaging of the object-oriented C++. Programmers use C because it makes programs slightly faster and smaller than programs written in C++. You might wonder, however, whether it's worth giving up the reusability of C++ to get the small increase in performance with C, especially when C++ can, where necessary, be written in a C programming style.
Pascal is primarily a teaching language. Few industrial programs are written in Pascal. Pascal tends to use keywords instead of C-style braces and symbols, so it is a bit easier for beginners to understand than languages like C++. Still, not everyone thinks Pascal is just for the schools. Borland, the huge compiler software company, has been pushing Delphi as an industrial strength programming language. Delphi is an object-oriented version of Pascal, and currently, only Borland compilers use it.
Fortran is a number-crunching program, and it is still used by scientists because the language allows variables of any size up to the memory limit of the machine. Fortran is especially convenient for engineers, who have to mathematically model and compute values to high precision. Fortran, however, isn't nearly as flexible as C or C++. Programming in Fortran is rigid, with strict rules on whitespace and formatting, which sometimes makes reading Fortran programs difficult.
Java is a multi-platform language that is especially useful in networking. Of course, the most famous usage of Java is on the web, with Java applets, but Java is also used to build cross-platform programs that stand alone. Since it resembles C++ in syntax and structure, learning Java is usually quite easy for most C++ programmers. Java offers the advantages provided by object-oriented programming, such as reusability; on the other hand, it can be difficult to write highly efficient code in Java, and Swing, its primary user interface, is notoriously slow. Nevertheless, Java has increased in speed in recent years, and version 1.5 offers some new features for making programming easier.
Perl was originally a file management language for Unix, but it has become well known for its use in CGI programming. CGI (Common Gateway Interface) is a term for programs that web servers can execute to allow web pages additional capabilities. Perl is great with regular expression pattern matching, which is a method for searching text. Perl can be used for databases and other useful server functions, and it is simple to pick up the basics if you have experience in any imperative language. Web hosting services prefer Perl over C++ as a CGI language because the web hosts can inspect Perl script files, since they're just text files, while C++ is compiled, so it can't be inspected for potentially dangerous code. Perl is, however, notorious for its "write once" style of code -- it's very easy to write Perl scripts taking advantage of lots of shortcuts that you later cannot understand.
PHP is a common language for webpage design that is sometimes used as a scripting language in *nix. PHP is designed for rapid website development, and as a result contains features that make it easy to link to databases, generate HTTP headers, and so forth. As a scripting language, it contains a relatively simple set of basic components that allow the programmer to quickly get up to speed, though it does have more sophisticated object-oriented features. LISP is functional language used mostly in computer science research.
LISP is unusual in that it stores (nearly) all data in lists, which are like arrays, but without index numbers. The syntax for lists is very simple, making it easy for programmers to implement complex structures.
Ruby is a dynamic open-source, object-oriented programming language developed by computer scientist, Yukihiro Matsumoto. It is designed to have syntax that is easy to read and easy to write, with less technical vocabulary. It supports procedural, functional and imperative programming. There is a free 20 minute quick-start guide available online.
Python is known as one of the first programming languages that is easiest for people to learn quickly. It is open source and free to use, even for commercial purposes. It is a scripting language, but also supports object-oriented, procedural, and functional programming. Python is one of the most widely used high-level programming languages in use today.
Child's Play: Games and Toys That Teach Programming to Children and Infants
The past few years has seen a new focus on teaching programming to very young children. Not only is there renewed focus on all of the learning benefits and over-all health and quality of life benefits of creating games that children will enjoy and benefit from playing, but there is a strong movement towards teaching symbol based programming to children before they have aquired language skills. Learning programming has in fact become the basis and goal of many new children's toys and games that are on the market right now.
What Does Artificial Intelligence Mean?
Artificial intelligence (AI) is the intelligence exhibited by machines or software. It is also the name of the academic field of study which studies how to create computers and computer software that are capable of intelligent behavior. Major AI researchers and textbooks define this field as "the study and design of intelligent agents", in which an intelligent agent is a system that perceives its environment and takes actions that maximizes its chances of success. An epic task of artificial intelligence as an academic field of study is the important working of defining the terms 'arificial' and 'intelligence.' Robotics is a major industry today that relies heavily on AI knowledge and understanding for all types of robotics programming and development. John McCarthy coined the term 'Artificial Intelligence in 1955. He defined AI as 'the science and engineering of making intelligent machines.'
Basic Questions and Answers From the Man Who Coined the Phrase Artificial Intelligence
The following text is an excerpt of a famous question and answer dialogue written by John McCarthy, the philosopher- scientist that first coined the phrase "Artificial Intelligence." For the complete text of this dialogue, see the List of Sources at the end of this post.
Q. What is artificial intelligence?
A. It is the science and engineering of making intelligent machines, especially intelligent computer programs. It is related to the similar task of using computers to understand human intelligence, but AI does not have to confine itself to methods that are biologically observable.
Q. Yes, but what is intelligence?
A. Intelligence is the computational part of the ability to achieve goals in the world. Varying kinds and degrees of intelligence occur in people, many animals and some machines.
Q. Isn't there a solid definition of intelligence that doesn't depend on relating it to human intelligence?
A. Not yet. The problem is that we cannot yet characterize in general what kinds of computational procedures we want to call intelligent. We understand some of the mechanisms of intelligence and not others.
Q. Is intelligence a single thing so that one can ask a yes or no question ``Is this machine intelligent or not?''?
A. No. Intelligence involves mechanisms, and AI research has discovered how to make computers carry out some of them and not others. If doing a task requires only mechanisms that are well understood today, computer programs can give very impressive performances on these tasks. Such programs should be considered ``somewhat intelligent''.
Q. Isn't AI about simulating human intelligence?
A. Sometimes but not always or even usually. On the one hand, we can learn something about how to make machines solve problems by observing other people or just by observing our own methods. On the other hand, most work in AI involves studying the problems the world presents to intelligence rather than studying people or animals. AI researchers are free to use methods that are not observed in people or that involve much more computing than people can do.
Q. What about IQ? Do computer programs have IQs?
A. No. IQ is based on the rates at which intelligence develops in children. It is the ratio of the age at which a child normally makes a certain score to the child's age. The scale is extended to adults in a suitable way. IQ correlates well with various measures of success or failure in life, but making computers that can score high on IQ tests would be weakly correlated with their usefulness. For example, the ability of a child to repeat back a long sequence of digits correlates well with other intellectual abilities, perhaps because it measures how much information the child can compute with at once. However, ``digit span'' is trivial for even extremely limited computers.
However, some of the problems on IQ tests are useful challenges for AI.
The Turing Test and Captchas
In 1950, Alan Turing proposed a general procedure to test the intelligence of an agent now known as the Turing test. This procedure allows almost all the major problems of artificial intelligence to be tested. However, it is a very difficult challenge and at present all agents fail.
Artificial intelligence can also be evaluated on specific problems such as small problems in chemistry, hand-writing recognition and game-playing. Such tests have been termed subject matter expert Turing tests. Smaller problems provide more achievable goals and there are an ever-increasing number of positive results.
One classification for outcomes of an AI test is:
Optimal: it is not possible to perform better.
Strong super-human: performs better than all humans.
Super-human: performs better than most humans.
Sub-human: performs worse than most humans.
A quite different approach measures machine intelligence through tests which are developed from mathematical definitions of intelligence. Examples of these kinds of tests start in the late nineties devising intelligence tests using notions from Kolmogorov complexity and data compression. Two major advantages of mathematical definitions are their applicability to nonhuman intelligences and their absence of a requirement for human testers.
A modern programming derivative of the Turing test is the Completely Automated Public Turing test to tell Computers and Humans Apart (CAPTCHA). As the name implies, this helps to determine that a user is an actual person and not a computer posing as a human. In contrast to the standard Turing test, CAPTCHA administered by a machine and targeted to a human as opposed to being administered by a human and targeted to a machine. A computer asks a user to complete a simple test then generates a grade for that test. Computers are unable to solve the problem, so correct solutions are deemed to be the result of a person taking the test. A common type of CAPTCHA is the test that requires the typing of distorted letters, numbers or symbols that appear in an image undecipherable by a computer. CAPTCHAS are now a common cybersecurity feature on many websites.
Cybernetics, Cybersecurity and Cybercrime
Cybernetics is a field of study and activity that is concerned with how communication systems are organized and , therefore, they are concerned with communications between and within both living and non-living systems. Game developers work in the wider field of cybernetics. The words 'cybersecurity' and 'cybercrime' have become popularized in the past decade as reports and theories of 'hackers' and what they have been trying to achieve have filled mainstream media feeds in many countries. The word 'hacker' seems to have become synonymous with 'criminal' and even 'terrorist.' The word 'hacker' has not always had this connotation of meaning. At one time the word 'hacker' actually referred to the ambiitious legal activities of electronics hobbyists working with radio kits, and later with computer kits that they purchased for home use.
Cybersecurity is a tremendous field of study that offers a wealth of employment opportunities for experienced game developers. Cybersecurity is the protection from theft, damage or interference of computer hardware, software, information and computer related services. The US Department of Homeland Security has identified several key areas of concern on their Cybersecurity webiste:
-Securing Federal Networks
-Cyber Incident Response
-Protecting Critical Infrastructure
-Cyber Research & Development
They also provide information on Cyber Insurance, jobs, educataion and career development in cybersecurity.
In February 2003, the White House released the National Strategy to Secure Cyberspace, outlining a sustained, multifaceted approach to securing the country's communications technologies with the following five priorities:
National cyberspace security response system.
National cyberspace security threat and vulnerability reduction program.
National cyberspace security awareness and training program.
Securing governments cyberspace.
National secuirty and international cyberspace security cooperation.
On December 18, 2015, Congress passed and President Obama signed into law the Cybersecurity Information Sharing Act of 2015, which is designed to increase cybersecurity information sharing between the private sector and the Federal Government. The Act provides various protections to non-federal entities that share cyber threat indicators or defensive measures with the Federal Government.
Educational Pathways For Game Developers
Programmers are math and science people, and more specifically, algebra, calculus, and computer science people. Typically, programmers hold a degree in (or have advanced knowledge of) computer science.
Before programmers find work in the game industry, they need to have a firm and working grasp of a programming language, usually C++, though many also need to know Assembly, C, or Java.
C++ is the most common language used in the game industry today. More and more programmers are also becoming versed in scripting languages (sometimes used to script gameplay, but not usually the backbone code of the game at large), such as Perl, Lua, Ruby, or Python. A person who is interested in becoming a programmer should be able to define the terms SDK, API, object-oriented language
Berkeley University of California now offers its upper level computer science course CS188: Artificial Intelligence available to anyone and for free. Archived versions of the course are also available.
Careers For Game Developers
According to The United States Department of Labor, Bureau of Labor Statistics, career opportunities in Computer and Information Technology Occupations continue to e the fastest growing career sector in America:
Employment of computer and information technology occupations is projected to grow 12 percent from 2014 to 2024, faster than the average for all occupations. These occupations are expected to add about 488,500 new jobs, from about 3.9 million jobs to about 4.4 million jobs from 2014 to 2024, in part due to a greater emphasis on cloud computing, the collection and storage of big data, more everyday items becoming connected to the Internet in what is commonly referred to as the "Internet of things," and the continued demand for mobile computing. The median annual wage for computer and information technology occupations was $79,390 in May 2014, which was higher than the median annual wage for all occupations of $35,540.
Computer and information research scientists invent and design new approaches to computing technology and find innovative uses for existing technology. They study and solve complex problems in computing for business, medicine, science, and other fields.
Computer network architects design and build data communication networks, including local area networks (LANs), wide area networks (WANs), and intranets. These networks range from small connections between two offices to next-generation networking capabilities such as a cloud infrastructure that serves multiple customers.
Computer programmers write and test code that allows computer applications and software programs to function properly. They turn the program designs created by software developers and engineers into instructions that a computer can follow.
Computer support specialists provide help and advice to people and organizations using computer software or equipment. Some, called computer network support specialists, support information technology (IT) employees within their organization. Others, called computer user support specialists, assist non-IT users who are having computer problems.
Computer systems analysts study an organization's current computer systems and procedures and design information systems solutions to help the organization operate more efficiently and effectively. They bring business and information technology (IT) together by understanding the needs and limitations of both.
Information security analysts plan and carry out security measures to protect an organization's computer networks and systems. Their responsibilities are continually expanding as the number of cyberattacks increases.
Network and computer systems administrators are responsible for the day-to-day operation of these networks. Computer networks are critical parts of almost every organization.
Software developers are the creative minds behind computer programs. Some develop the applications that allow people to do specific tasks on a computer or another device. Others develop the underlying systems that run the devices or that control networks.
Web developers design and create websites. They are responsible for the look of the site. They are also responsible for the site's technical aspects, such as its performance and capacity, which are measures of a website's speed and how much traffic the site can handle. In addition, web developers may create content for the site.
The Future of Programming Language and Game Development
In oh so many ways, the future possibilities for programming language and game development to change and for applications that seem absurd and magical today to become part of our everyday reality very quickly, appear endless and immediate. Almost everyday, applications that form the foundational concepts of games theories and language and maths theories, are announced that were story book fantasies in my own early lifetime. I grew up in the 70's and that decade was a time of phenomenal changes in the way communities communicated and how quickly messages could be sent. And there was a sense of calm about conflict that allowed for more of a focus on games than there had been in several decades before that. Play became very important, and the way people understood the word 'game' changed in a very fundamental and important way. Ethics is the branch of Academic Philosophy that examines what people mean by the words 'good' and 'evil.' It also concerns itself with ethical and logical definitions of abstract concepts like 'justice' and 'truth.' Programming language history for game developers is a field that relies on a solid understanding of key concepts of Ethics, Logic, and Epistemology as academic topics with profound historical significance to quality of life today.
Game developers are philosophers. The mass production and mass distribution of games and games related applications means a powerful mass exposure to similar media in a short amount of time, as compared to a specific course of study at a place of learning. The mass exposure to a video game allows for a trans- spoken, different-lingual, intertextual communications sytem. People from all over the world, all speaking different languages work as game developers together on the same game. People from all over the world, all speaking different language can use a game as a means of communication, and as a means of entertainment together in real time.
We are already developing so many games that encourage healing, and so many games that encourage learning that ethics in game programming has taken on even more importance than it has had before in the entire history of gaming. From the game developers came some of the key pieces of knowledge that led to new discoveries and applications in the so many areas of medical support. Prosthetic limbs that can be controlled via linguistic- based thought are already available. We have used our knowledge of programming, so much developed throughout games programming language history, to create artificial organs that are originated from cells taken from the organ recipient's own personal body. We are using that same type of programming language right now to determine anti-rejection strategies for this new type of organ transplant- anti-rejection strategies that are different, strategies that take our programming knowledge and apply that to our understanding of cellular healing and genetic coding.
Virtual Reality, Remote Viewing, Particle Entanglement and Einstein
Recently publicized was the news of a brand new type of computer programmed display- a 3D holographic representation of an image or a person right there in front of us. Like how R2D2 displayed urgent messages from Princess Leiah and Obi-Wan Kenobi, but life sized. How magical is that?! Applications of this are in development right now, and to be certain game developers that have studied programming language history are about to create some phenomenal situations with this newly available programming language information. One possible application as noted by developers and investors is the concept of a 'telephone call' that goes just that far beyond the Skype or Facebook or Google videophone experience. Your person on the other end of the line actually physically appears to be in the room with you. Is this what Einstein meant by 'action at a distance'? How far can we project a holographic image? How far away can we project a sound? These are the types of questions that game developers consider.
For game developers, the game is on to apply this impressive holographic programming to all different types of gaming activities and instructions. Is the holo-deck on its way? Are we about to order Earl Grey Hot from an empty cupboard? No doubt the entire planet of humanity, the global tribe, is waiting to hear about applications of the holograph and how we can advance and apply that programming technology. The implications for restoring damaged eco-systems and optimizing quality of life are astonishing. From space invaders to satellites- game developers are involved in programming language development that has applications thought to be impossible just a few years ago. They really are achieving what many people still believe to be impossible. With the popularization of information gathered through The Genome Project, published and distributed in the best selling book called The Genome Project, the study of programming languages, game theories, and cybernetics have become epic and astonishing in their goals. With 3D printed organs built of living cells, the urgent need to produce opportunities for those new cells to communicate effectively with the entire person has opened up brand new employment and research and development opportunities for programmers that understand games. The study of ethics and creating global agreements through honest communication about these new applications has never been more important. Ways to secure information that allow for ethical information sharing, especially about health and quality of life, are being saught by corporate executives all of the world. Game developers with their understanding of the history of programming languages have become very valued as employees in more companies every day. The future is bright and filled with awesome opportunities for fun for anyone choosing a course of study or a career as a programmer involved with game development.
So, If I Become a Game Developer And Focus On Windows, Will I Live Forever?
That's a big question! Turing would have an answer. Schrodinger would have an answer. Einstein probably wrote an answer to that question somewhere in his notes. Lord Byron and his daughter, Ada, would certainly have answers about how language programming and game theory explain all we need to know about entropy, aging, healing and longevity to live a very, very long time. And forever is certainly a very, very long time. Cybernetics experts are like wizards in so many ways, that it would not surprise me at all if great gamers knew more about that type of immortalist wizardry than they tell the rest of us! Perhaps we each must seek and then find our own magic cup before we can teach our machines and our people what living forever means.
List of Sources & Links To Epic Information
Asprey, William and Martin Campbell-Kelly. Computer: A History of the Information Machine. Harper- Collins: New York, 1996.
Dyson, George. Turing's Cathedral: The Origins of the Digital Universe. Pantheon Books: New York, 2012.
Freed, Les. The History of Computers: A Family Album of Computer Genealogy. Ziff- Davis Press: Emeryville, 1995.
Grebler, Eric and Maneesh Sethi. 3D Programming For Teens. 2nd ed. Cengage Learning: Boston, 2009.
Isaacson, Walter. The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution. Simon & Schuster: New York, 2014.
Kizza, Joseph Migga. Computer Network Security and Cyber Ethics. 3rd ed. McFarland & Company: Jefferson, 2011.
Kurzwell, Ray. The Spiritual Machines: When Computers Exceed Human Intelligence. Penguin: New York, 1999.