Jump to content

IB Extended Essay help


Axophoria

Recommended Posts

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)



Whether
you as the reader know it or not, we have all come into contact with code and
have used it ourselves. When you were in the first day of your primary school
life, you were expected to read the class rules to follow and be able to
understand them to the best of your ability. What most people don’t realize is
that 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 an
old computer and a blue or black screen popped up with jumbled mess. That
jumbled or muddled mess is, in fact, lines of code. Just as one reads a manual
to understand how to build that new stand for their T.V., a computer needs its
lines of code in order to understand how to do things like move the mouse on
the screen when the sweat glands on the padding of the user’s fingers comes
into 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 this
definition: “A system of words, letters, figures, or other symbols used to represent others, esp. for
the 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 to
understand something. It’s worth noting that in this context, the portion of
the definition that states “especially for the purpose of secrecy” in the first
definition, should be ignored. Focus should be, instead, pertained to the
portion that states a system of words, letters, figures, and/or symbols. Now with the base understanding of code, one
can 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, an
added definition from Simonov (n.d) and Princeton University (n.d.) define
computer code as “the symbolic arrangement of data or instructions in a computer program or the set of such
instructions” (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 to
perform 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,” or
to a 1, produces a reaction from the computer. The reactions can vary based on
how the creator of the computer created scenarios in which could be stimulated
by variations in the binary code. The set of list of instructions in the
computer code are those reactants to the changes in the binary code. These
could be expanded on further, but in context it wouldn’t be necessary and while
computer code could provide more than a strong enough backbone to delve into
proving the thesis, it is in the best of interest to go deeper with the heart
and true core focus of the thesis: Source code.[j5]



 



 



 



Source
Code (Coup de Gras part 1)



The purpose of defining of code and all of the subsequent branches is so that a
connection can ultimately be made in how it is used to create a game. As a
precaution 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 the
computer can't understand speech and because hitting it — no matter what
emotional value that has for you — does little to the PC, your final line of
communications 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’s
and 0’s. While a person may be able to understand and learn binary code, the
prospect of trying to build a useful program to take advantage of current
technology and that requires thousands of lines of code in binary is not
feasible, seeing as the letter “A” on its own is 01000001. Forefathers of
operating systems and programming languages most likely decided that the future
of computers would only become concrete if the tools used to make them function
would be simpler to use. From this, programming languages were developed, but
going 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) before
translation into object code usually by a compiler” (Merriam-Webster). Further
expounded 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 that
source code is seldom written in binary. Source code is the foundation of the
program.



That
foundation includes the stated proponents of source code:



·
Variable declarations: (Example: In the
function [int year = 2006;] the computer is made aware that the integer, or
number for the year is 2006. The part of the function that is the variable
declaration is the portion in red. Variable declarations are usually separated
by mathematical symbols and can be likened to the end product of a long math
equation such as x = cos 37);



·
Instructions: simply what the computer
should do in a format that can be understood by a computer novice. (Example:
the instruction for [int year = 2006;] is “anything
labeled year should be numbered as 2006.);



·
Functions, functions are various
specialized combinations of things such as variable declarations created in
order to elicit a response. (Example: [int year = 2006;] Everything
in the bracket is collectively known as the function.



·
Loops are functions that work together
to 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 to
5, then the computer should alert you that you are smart, but if that isn’t
true and if 2 + 3 = 5, the computer should let you know that you are actually smart. Then, it
goes on to say that if that isn’t even true the computer should let you know
that you are not smart.”)



Furthering functions[j6] [j7] ,
source codes may contain the “if else” conditionals (such as the example provided
in the loop) which basically mean that if this condition is met, do this or else
do this. Another brief example of the function’s use can be derived from the
software 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 red
line 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 or
offs) to determine whether a reaction should be performed if a condition is met
or an event is triggered. The same way the “if or else” may be used, Booleans
can be also used to determine whether the spelling error line would appear. While
source code is very important, it is almost useless on its own. In order for
them to be put into proper use in the creation of a program, the must be first
converted. This task is accomplished by the compiler.



 



Compiler
(Coup de Gras part 2)



Using
a 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 that
tell the computer what to do, that being the source code we covered in the previous
section. A computer simply can’t understand "Make a funny noise," and
the matter of fact is that instructions in a language the computer understands
must be created. In this case, the instructions are written in the FORTRAN and
C language, which are to be covered in a later section. Source code is almost
definite. It must be created and converted before it can be edited to produce
different reactions in functions. Once the source code has been created, it is
saved onto the computer as a file. Gookin (2004) explains the use of the source
code file: “After the source code is created and saved to disk, it must be translated into a language
the computer can understand. This is a job for the compiler to do. The compiler
is a special program that reads the instructions stored in the source code
file. The compiler runs through each instruction and translates it into the
secret code understood only by the computer's microprocessor” (pg. 14). As
mentioned in the introduction, when an old computer is turned on, code appears
on the screen and that code is mostly source code. What hasn’t been mentioned
is that there is also a point where a pause is seen, as if the computer is
thinking. Sometimes it may tell you to press the enter key and that enter key
is sort of a flush type mechanism. That source code is “flushed” into the
compiler. Simply, the compiler is the tool that converts everything in the
source code into 1’s and 0’s. All the Booleans, conditionals, letters, and even
numbers are converted into binary so that the computer can understand it. A
definition from Simonov (n.d.) states that a compiler is “a program that translates
another program written in a high-level language into machine language so that
it can be executed” (par. 1). That high-level language is what we mentioned earlier as the C and/or FORTAN
languages. These languages, among others, are the languages used when creating
a program, but since they are especially relevant to the programming stage of
the program creating process, they will not be expanded on. What one can
understand from Simonov’s definition is that a compiler takes a computer
programming language, often and possibly only in English, and converts it into
the now often mentioned 1’s and 0’s. The compiler serves as the translator
between the user or program and the microprocessor of the computer. When its
task is completed the compiler produces a new code file, known as an object
code 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 is
taken to the next and almost most important process that differentiates YouTube
from Solitaire: the programming phase.[j8]



Creating
the Game



Coding
in Video Games (Pretty Good)



Today’s
games are complex and have to run multiple lines of object code in order to
work properly. One such gaming technology that makes the use of complex object
code apparent is the Radiant A.I. system: “The Radiant AI technology introduced in The Elder
Scrolls IV: Oblivion went a long way toward making the NPC (non-playable
character) act in realistic ways. If you followed a citizen through his daily
activities, you would likely witness him or her eating breakfast, setting out
to work the land, stopping by the pub for a pint after work, and then returning
home to hit the sack” (Bertz, 2011, par. 9). The goal of the radiance
engine was to implement realism into the games that used it and for years
something like the radiance engine was impossible to create. Gaming systems,
which are themselves computers, have the physical capabilities today to allow
themselves to run these mountainous amounts of code. But before any more
progress can be made in proving the thesis, one must understand the components
in making a game realistic, so we will go more in depth with coding, or the
implementation of code. According to dictionary.com the act of writing
something like source code, or coding, is defined as “translating (a program) into language that can be
communicated to the computer” (Goli, 2013, par.1). Coding is necessary
for the game creation process because computers need to know what the player
simply wants. With the specific arrangements of source code made. When you
touch a coin in the Mario video game series, the computer doesn’t process that
you have taken that coin, there is a code written for this and that will be covered
more in depth when game programming is discussed and that is what we’ll be
transitioning into next.

 

Link to comment
Share on other sites

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 by Genecks
Link to comment
Share on other sites

  • 2 years later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.