Subscribe to andrewsw's Blog        RSS Feed
-----

What is Fundamental?

Icon 3 Comments
Keen to write the next great game? A super application? You must first understand the fundamentals of your chosen language. These fundamentals are largely the same, regardless of the language.




This blog is intended for people who are series about becoming a programmer, or games programmer. If this isn't you, and you just want to create a simple game for yourself or your mates, then there are game-frameworks that you can use. Some of these allow you to just drag-and-drop stuff around, and get a simple game running, initially requiring limited programming knowledge.

Are game-frameworks (game-engines) suitable for someone who is serious about becoming a games programmer? There are a lot of discussions, and disputes, about this on the internet. This is not something that I am qualified to comment on. Still, this is my, opinionated, blog, and I will stick to my guns: You must understand the fundamentals of programming first, even if you later decide to work with a game engine.




By understand the fundamentals I don't just mean "read a page about each topic". I mean study each topic, work through examples; repeat until you have a good understanding of the topic. Then move on to the next topic, adding to what you've just learnt. Without this essential knowledge you will make limited progress, you will become frustrated and your chances of throwing in the towel are high.

Programmers' opinions about what is considered essential knowledge differ. My following list is a rough guide, an attempt at the bare minimum* that must be understood.

  • Using variables and arrays
  • Data-types - what kind of values can we store?
  • Operators - arithmetic, logical, all of them!
  • If-statement (branching)
  • Switch-statement (or equivalent, branching)
  • Looping statements (for, while, foreach)
  • Using built-in functions
  • Manipulating strings - concatenating, examining (parsing)
  • Simple input and output, typically using a Console
  • Creating functions with parameters
  • Simple File I/O - reading and writing to a text-file
  • Debugging your code

* Does 'Exception Handling' belong on this bare-minimum list? Probably. It is certainly next in line for consideration.

This list could easily be doubled so I will repeat that it is a rough guide. In fact, I much prefer to say this: pick up a good beginner's book and work through it from cover-to-cover, working through ALL of its examples.

But most languages are OOP (object-oriented programming) languages. The big three are: Java, C++, C#. Want to build an Android app? That's Java. That's OOP.

So we must add to the above list:

  • Understand what a class is, and what an object is
  • Define a class
  • Create constructors
  • Use fields
  • Define properties and methods
  • Create instances of this class

Is the above-listed enough to start building your killer game or application? No. It is enough so that you could start to build small projects/applications, but only as a means to continue your education and put your current knowledge to the test.

The second list above is the beginning of your OOP education. You need to add to this: abstraction, encapsulation, polymorphism, inheritance. The great game (or application) that you will eventually build needs a class hierarchy: Game, Player, Missiles, Walls, etc..

Have I put you off? Have you read this far? It's up to you of course, but you cannot short-circuit, and must not ignore, the fundamentals. More positively though, with the fundamentals in your toolkit, you are in a good position should you decide to switch languages, or work with different frameworks.

3 Comments On This Entry

Page 1 of 1

jon.kiparsky 

13 September 2014 - 08:46 AM
Great stuff. Agree entirely.

If you're in school, doing a course in compilers will give you a great boost in this sort of thinking, and I absolutely recommend that you take such a course if at all possible. Seeing how one language implements OOP, for example, will give you some basis for curiosity about other languages. (Compare Java's implementation of OOP to Javascript's, for example!)
0

Invoker 

16 September 2014 - 02:32 AM
Fairly new to coding myself, but how will mastery of all of these in java work with other languages? Do they all - at their core - work the same?
0

andrewsw 

16 September 2014 - 04:47 AM

Quote

Do they all - at their core - work the same?

Yes :)

Programming fundamentals are the same regardless of the language. They all boil down to machine-code: storing values, checking values, jumping to locations.

Once you have mastered one language, a second language is easier to pick up, especially if they are similar languages, such as Java and C#. Even if the language is quite different, such as Python, or even a functional, rather than OOP, language, you will not be starting from scratch.
0
Page 1 of 1

Trackbacks for this entry [ Trackback URL ]

строительство ангаров цена рифей строительство производственных зданий from строительство ангаров цена рифей строительство производственных зданий

Tracked on Oct 17 2014 02:16 PM

альтернатива пенопласту тентовые ткани быстровозводимые серийные здания from альтернатива пенопласту тентовые ткани быстровозводимые серийные здания

Tracked on Oct 17 2014 02:16 PM

солнечная электростанция комплект специальные строительные работы новостройки в химках от застройщика from солнечная электростанция комплект специальные строительные работы новостройки в химках от застройщика

Tracked on Oct 17 2014 02:17 PM

панели типа сэндвич установка солнечных коллекторов герметизация сэндвич панелей from панели типа сэндвич установка солнечных коллекторов герметизация сэндвич панелей

Tracked on Oct 17 2014 02:17 PM

December 2019

S M T W T F S
1234567
891011 12 1314
15161718192021
22232425262728
293031    

Tags

    Recent Entries

    Recent Comments

    Search My Blog

    0 user(s) viewing

    0 Guests
    0 member(s)
    0 anonymous member(s)

    Categories