Learning programming/development

Started by
5 comments, last by duke_meister 5 years, 2 months ago

Hello! I decided to start learning programming and game development on my own and came across this forum! Everything is very benevolent here, and it makes me happy .. that you will not laugh if I don’t know anything! Please tell me where to start learning game development! I went to YouTube and looked at a couple of lessons, but nothing is clear. Live communication is preferable.

Advertisement

@Devi... If you mean becoming a programmer or artist there are many schools for that.  If you mean becoming a game designer there really aren't useful schools for that.  Start at the beginning with Cribbage, Poker, Bridge, and Chess.  Move on from there to learning, and becoming good at, military games like Avalon Hill and Star Fleet Battles (these take you through the evolution of artificial time, which is the core of simulation design).  If you want to know serious game and simulation design like a professional that is found in the history of table top games, not computer games.  Learning table top games will leave you FAR ahead of any "designer" in the computer game business.  THEN go to their silly "game design school" for the piece of paper they want to see, but ignore what they teach you there.  You just want the piece of paper so they will pay attention too you, everything they teach that is in contradiction to what you learned from table top games is wrong.  Ignore it.

 

"I wish that I could live it all again."

On 2/11/2019 at 3:51 AM, Devi said:

I decided to start learning programming and game development on my own

Many options. You could start with simpler engines like GameMaker, and then (or right at the start) move on to Unity / UE4 / Godot...

It's easier to start with 2D games and move to 3D later. You can focus on learning programming better in 2D. In 3D it is the math that is already harder than programming itself. (assuming you have interest in 2D at all.)

Those engines all offer different programming languages. At first it does not make much of a difference if you learn a scripting language or a 'proper' programming language. There is C, C++, Java, C#, and some scripting languages specific to a given engine. (web games have their own scripting languages like HTML5, javascript, php...)

All of those languages are based on C, at most. C itself is rarely used today, C++ is its successor but more complex. C++ is the language you likely use for performance critical code like the engine itself, while scripting languages are sometimes used in addition to implement the 'game' the engine is running.

I think it still makes sense to learn C first, because knowing it allows to learn other languages more quickly.

To program without using any engine, you can use free Microsoft Visual Studio Community Edition. For Java the Eclipse IDE is most common i guess.

This supports multiple languages and also project  templates, e.g. a small application that opens a window and prints 'Hello World' on screen. This is a good start to add you own code and start learning. For example a number guessing game where the user enters a number between 1 and 10, and the computer outputs 'my number is larger', or 'my number is smaller', or 'You are right!'.

If you are through this basics, you could start adding some libraries like SFML to make life easier for some graphics or sound. You can do this also the hard way and use DirectX / OpenGL for graphics directly.

Programming itself is not hard. But there is the entry hurdle of getting everything to work so you can start, or to understand the basics of a Engine. Unfortunately i can not give a link to a beginner tutorial that helps here, but there is surely (too) many of this around ;)

After some time, when you know how to program and solve problems, you want to start learning how to make programs reusable, easier to maintain and fast. Questions like what is good / bad OOP, what are often used programming patterns, what is ECS / DOD... will arise, but at the very beginning it likely does more harm than good spend to spend time on this. Focus on ability to solve problems by logic and math first.

Also start with simple games like Pacman, Space Invaders. Card games is another option. Depends on your interests.

I thought I'd go over what I would suggest to someone new to game and simulation design who wants to learn that art and science.  The beginning is to learn 7 key games that teach specific things.  Cribbage, Poker, Bridge, Chess, Acquire, Avalon Hill/ASL, and Star Fleet Battles.  The most important three are Poker, Chess, and Star Fleet Battles.  Here's why...

Cribbage - Many general concepts from the early classic games are incorporated into this game.

Poker - Lying & Bluffing. Diplomacy & Intelligence.

Bridge - A more advanced from of Cribbage from a learning perspective. Structure & Framework of basic games.

Chess - Strategy and simplicity/minimalism in design. 1+1=Chess.  You can spend your lifetime learning Chess, and yet look at it.  As an aspiring designer you want to merely understand the true nature of Chess.  Know the meaning of Opening Game,Middle Game, and End Game.  At least partially take in most or all of the named tactics and opening moves such as Sicilian Defense, Queen's Gambit, and Four Kings Game.

Acquire - The classic modern example of minimalist game design.

Avalon Hill - The military Ruler & String games commercialized.  Charles S Roberts is the second generation of 'Artificial Time" after the "I go, then you go" turns of the thousands of years that came before him.  Highly relevant to simulations and real-time games, these are also the first "RTS" games.  Advanced Squad Leader could be the only game you bothered to learn of the entire ASL lineup.

Star Fleet Battles - The third generation of "Artificial Time", the first "real-time game".  Tactical body of knowledge equivalent too strategic body of knowledge of Chess.  Just like with Chess, read the Tactics Manual and Term Papers from Captain's Log.  Become an SFB tactical expert who understands terms like Gorn Anchor, Plasma Ballet, and Kaufman Retrograde.

The three most important games to learn if you want to design games are Poker (Diplomacy & Intelligence), Chess (Strategy), & Star Fleet Battles (Tactics).  If you know these 3 games, or these 7, only a true professional game and simulation designer will be able to make you look bad.

"I wish that I could live it all again."

Just a reminder that the original poster has specifically asked about programming.  While an analysis of successful games will certainly be of interest to almost any developer, it probably isn't what's being looked for right now.

- Jason Astle-Adams

Hi and welcome :) Do you know programming at all?

The first thing I always like to ask is, are you just as interested in the programming as the game itself?

Developer since 1994. Programming since '80. Still like it.

This topic is closed to new replies.

Advertisement