Axophoria Posted May 12, 2013 Posted May 12, 2013 Afternoon everyone, I am currently an IB Student in Prince George's County, Maryland. As a part of our I.B. Diploma requirement, we are required to complete the Extended Essay. The Extended Essay is a 4,000 word essay that involves us coming up with a research question in any area of focus that we choose. Now, I want to get into Computer Programming once and if I get into college. With that, I decided to do an essay in the area of Computer Science, specifically in Computer Programming/Coding. I came up with the research question: To what extent has efficient computer coding/programming played a role in the development of realistic games? (i.e. physics implementation in the Battlefield Game series) Now, I have written in excess of 2,000 words, but the thing is that I am not absolutely sure if all my information is correct or if I am on the right track. Part of completing the Extended Essay involves having an adviser to help you out. The only thing is that the few computer experts in my school have their credentials in the physical components of computers. My goal here is to paste what I have here and hope that some sort of an expert can read and help me to correct anything that I may have wrong or offer me some guidance as to where to go next. However, I DO NOT want anyone to write any thing for me or do the essay for me, so here goes: Introduction (Incomplete) Whetheryou as the reader know it or not, we have all come into contact with code andhave used it ourselves. When you were in the first day of your primary schoollife, you were expected to read the class rules to follow and be able tounderstand them to the best of your ability. What most people don’t realize isthat they have just coded in a real world sense. It’s more than likely that a person has had that moment when they’ve turned on anold computer and a blue or black screen popped up with jumbled mess. Thatjumbled or muddled mess is, in fact, lines of code. Just as one reads a manualto understand how to build that new stand for their T.V., a computer needs itslines of code in order to understand how to do things like move the mouse onthe screen when the sweat glands on the padding of the user’s fingers comesinto contact with the track-pad. Code(Still iffy on this)[j1] [j2] In order to understand computer coding, the concept of coding in general, must be [j3] defined.Dictionary.com (n.d.) and the Oxford dictionary website (n.d.) provide thisdefinition: “A system of words, letters, figures, or other symbols used to represent others, esp. forthe purposes of secrecy” (par. 1) or from the Merriam-Webster (n.d)which defines code as “a system of symbols (as letters or numbers) used to represent assigned meanings”.The basic concept of code can be defined as an interpretation in order tounderstand something. It’s worth noting that in this context, the portion ofthe definition that states “especially for the purpose of secrecy” in the firstdefinition, should be ignored. Focus should be, instead, pertained to theportion that states a system of words, letters, figures, and/or symbols. Now with the base understanding of code, onecan begin to understand computer code[j4] . Valenti (n.d) defines (computer) code as “written computer instructions, the term code being somewhat colloquial” (par .1) and to develop a deeper understanding, anadded definition from Simonov (n.d) and Princeton University (n.d.) definecomputer code as “the symbolic arrangement of data or instructions in a computer program or the set of suchinstructions” (par. 1). The key focus to pull from these definitions is that computer code has to do with instructions. ‘Written’ and ‘Symbolic arrangement’ can be used interchangeably to simply mean a list of instructions,only that these are instructions for a computer to understand in order toperform a function. Computer code in its simplest form is known as binary code.Binary code is simply a system of 1’s and 0’s that arbitrarily mean on and off.Binary code start out as rows of eight 0’s. Turning anyone of the 0’s “on,” orto a 1, produces a reaction from the computer. The reactions can vary based onhow the creator of the computer created scenarios in which could be stimulatedby variations in the binary code. The set of list of instructions in thecomputer code are those reactants to the changes in the binary code. Thesecould be expanded on further, but in context it wouldn’t be necessary and whilecomputer code could provide more than a strong enough backbone to delve intoproving the thesis, it is in the best of interest to go deeper with the heartand true core focus of the thesis: Source code.[j5] SourceCode (Coup de Gras part 1) The purpose of defining of code and all of the subsequent branches is so that aconnection can ultimately be made in how it is used to create a game. As aprecaution it should be noted that games will be referred to what they are in reality,as programs. “When you create a program, you tell the computer what to do with code. Because thecomputer can't understand speech and because hitting it — no matter whatemotional value that has for you — does little to the PC, your final line ofcommunications is to write the computer a note — a file on disk” (Gookin, 2004,p. 12). It has been determined that computers work on a system of 1’sand 0’s. While a person may be able to understand and learn binary code, theprospect of trying to build a useful program to take advantage of currenttechnology and that requires thousands of lines of code in binary is notfeasible, seeing as the letter “A” on its own is 01000001. Forefathers ofoperating systems and programming languages most likely decided that the futureof computers would only become concrete if the tools used to make them functionwould be simpler to use. From this, programming languages were developed, butgoing back the codes used to start creating programs are known as source code.Source code is defined as “a computer program in its original programming language (as FORTRAN or C) beforetranslation into object code usually by a compiler” (Merriam-Webster). Furtherexpounded on by techterms.com (2007), “Source code, often referred to as simply the"source" of a program, contains variable declarations, instructions,functions, loops, and other statements that tell the program how to function”.Source code is very similar to the earlier mentioned computer code except thatsource code is seldom written in binary. Source code is the foundation of theprogram. Thatfoundation includes the stated proponents of source code: · Variable declarations: (Example: In thefunction [int year = 2006;] the computer is made aware that the integer, ornumber for the year is 2006. The part of the function that is the variabledeclaration is the portion in red. Variable declarations are usually separatedby mathematical symbols and can be likened to the end product of a long mathequation such as x = cos 37); · Instructions: simply what the computershould do in a format that can be understood by a computer novice. (Example:the instruction for [int year = 2006;] is “anythinglabeled year should be numbered as 2006.); · Functions, functions are variousspecialized combinations of things such as variable declarations created inorder to elicit a response. (Example: [int year = 2006;] Everythingin the bracket is collectively known as the function. · Loops are functions that work togetherto repeat actions when conditions are met. (Example: if (2 == 5) { console.log “You are smart!”; } else if (2 + 3 == 5) { console.log “You are actually smart!”; } else { console.log “You are not smart!”; } The “else if”serves as the loop. In instruction form, the function states “if 2 is equal to5, then the computer should alert you that you are smart, but if that isn’ttrue and if 2 + 3 = 5, the computer should let you know that you are actually smart. Then, itgoes on to say that if that isn’t even true the computer should let you knowthat you are not smart.”) Furthering functions[j6] [j7] ,source codes may contain the “if else” conditionals (such as the example providedin the loop) which basically mean that if this condition is met, do this or elsedo this. Another brief example of the function’s use can be derived from thesoftware being used to produce this text, Microsoft Word or Word for shorthand.Word may or may not use the “if else” conditional to determine whether a redline signifying a spelling error should be positioined under the “positioned”that had just been mentioned. Booleans are another example of source code.Booleans simply work by using true or false (in reality, 1’s and 0’s, ons oroffs) to determine whether a reaction should be performed if a condition is metor an event is triggered. The same way the “if or else” may be used, Booleanscan be also used to determine whether the spelling error line would appear. Whilesource code is very important, it is almost useless on its own. In order forthem to be put into proper use in the creation of a program, the must be firstconverted. This task is accomplished by the compiler. Compiler(Coup de Gras part 2) Usinga text editor (such as notepad) one creates what's called a source code file.The one special thing about this file is that it contains instructions thattell the computer what to do, that being the source code we covered in the previoussection. A computer simply can’t understand "Make a funny noise," andthe matter of fact is that instructions in a language the computer understandsmust be created. In this case, the instructions are written in the FORTRAN andC language, which are to be covered in a later section. Source code is almostdefinite. It must be created and converted before it can be edited to producedifferent reactions in functions. Once the source code has been created, it issaved onto the computer as a file. Gookin (2004) explains the use of the sourcecode file: “After the source code is created and saved to disk, it must be translated into a languagethe computer can understand. This is a job for the compiler to do. The compileris a special program that reads the instructions stored in the source codefile. The compiler runs through each instruction and translates it into thesecret code understood only by the computer's microprocessor” (pg. 14). Asmentioned in the introduction, when an old computer is turned on, code appearson the screen and that code is mostly source code. What hasn’t been mentionedis that there is also a point where a pause is seen, as if the computer isthinking. Sometimes it may tell you to press the enter key and that enter keyis sort of a flush type mechanism. That source code is “flushed” into thecompiler. Simply, the compiler is the tool that converts everything in thesource code into 1’s and 0’s. All the Booleans, conditionals, letters, and evennumbers are converted into binary so that the computer can understand it. Adefinition from Simonov (n.d.) states that a compiler is “a program that translatesanother program written in a high-level language into machine language so thatit can be executed” (par. 1). That high-level language is what we mentioned earlier as the C and/or FORTANlanguages. These languages, among others, are the languages used when creatinga program, but since they are especially relevant to the programming stage ofthe program creating process, they will not be expanded on. What one canunderstand from Simonov’s definition is that a compiler takes a computerprogramming language, often and possibly only in English, and converts it intothe now often mentioned 1’s and 0’s. The compiler serves as the translatorbetween the user or program and the microprocessor of the computer. When itstask is completed the compiler produces a new code file, known as an objectcode file. The programmer has written the code and the compiler has done its job,but the program has not been completed. Thus, the program creating process istaken to the next and almost most important process that differentiates YouTubefrom Solitaire: the programming phase.[j8] Creatingthe Game Codingin Video Games (Pretty Good) Today’sgames are complex and have to run multiple lines of object code in order towork properly. One such gaming technology that makes the use of complex objectcode apparent is the Radiant A.I. system: “The Radiant AI technology introduced in The ElderScrolls IV: Oblivion went a long way toward making the NPC (non-playablecharacter) act in realistic ways. If you followed a citizen through his dailyactivities, you would likely witness him or her eating breakfast, setting outto work the land, stopping by the pub for a pint after work, and then returninghome to hit the sack” (Bertz, 2011, par. 9). The goal of the radianceengine was to implement realism into the games that used it and for yearssomething like the radiance engine was impossible to create. Gaming systems,which are themselves computers, have the physical capabilities today to allowthemselves to run these mountainous amounts of code. But before any moreprogress can be made in proving the thesis, one must understand the componentsin making a game realistic, so we will go more in depth with coding, or theimplementation of code. According to dictionary.com the act of writingsomething like source code, or coding, is defined as “translating (a program) into language that can becommunicated to the computer” (Goli, 2013, par.1). Coding is necessaryfor the game creation process because computers need to know what the playersimply wants. With the specific arrangements of source code made. When youtouch a coin in the Mario video game series, the computer doesn’t process thatyou have taken that coin, there is a code written for this and that will be coveredmore in depth when game programming is discussed and that is what we’ll betransitioning into next.
Genecks Posted May 12, 2013 Posted May 12, 2013 (edited) Efficient coding uses less system resources. However, as I understand it, such efficient coding requires more time on behalf of the programmer or programmers. This is what I've seen throughout the 80s, 90s, and 2000s. However, as of late, sometimes such efficient coding is not necessary, as the system resources are capable of handing coding that requires more system resources. I think your discussion needs information about system resources. I feel like you're lacking a historical perspective on things. You may want want to research how flight simulator programs are coded and the importance of system resources. I think a brief paragraph or two on system resources and past coding languages in similar games may be useful. Video game programming and hardware has evolved throughout time: From the commodore 64 to whatever is out right now. http://en.wikipedia.org/wiki/Video_game_console So, you would have to define what efficient coding is, and describe its usage in modern video games. You also need to define realistic video games. Do you mean realistic violence, whereby if someone shot another person, then the person dies (this occurs in old 2D video games)? Do you mean the level of interactivity and fluidity, such as that found on the Nintendo Wii platform? I've been playing Call of Duty: Black Ops, and I really don't care for the physics. I've shot guns before, and the physics are off. My main problem is that I feel like the level of control is "unrealistic," because I believe increased muscle memory would occur with increased gameplay, thus resulting in better shooting. However, I feel like the more I adapt to the physical flaws of the game, the better I do. And then you have fighting video games. You ever notice how a punch occurs, despite physical contact not being made? Yeah, that's a flaw in the game. Edited May 12, 2013 by Genecks
Delbert11 Posted October 15, 2015 Posted October 15, 2015 (edited) Before you are able to write extended essay, you need to have your own topic. If you still do not have any ideas on what topic you must be focused on, this page will present what you are looking for Edited October 15, 2015 by Delbert11
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now