Making a Video Game....

speedx77x

Member
Time is ticking and i know if i truly want to make video games when i get older i need to make something now. I'm still deciding what to make, but once i have an idea i need to know where to start. So where do i start? What programs do i have to use? Will i have to learn Java or C++? When i do make one I'll have a hall of fame and your all names will be in it.
 
First forget about video games.That requires programming knowledge and if you have never did ANY programming then you must learn all the basics first and start thinking on completely different way and THAT takes a lot of time.
You CANNOT...I repeat you CANNOT make a good game if you have never did any programming before lol.

Starting with GAME is a mistake because you won't understand ANYTHING lol.
I always say to beginners to start with simple CONSOLE applications first because even they are too complicated for beginners NOT TO MENTION some complex windows applications or even games.

Most beginners want to start with things like games immediately.
But things don't work that way.Because that is not simple as it looks like.

Let me start with the following sentence:

Programming languages like Java,C++,Dev-C++,C# and VB are ALL great and you can do anything you want in them.There are NO LIMITATIONS.The only limitation is your knowledge.

First of all I do NOT recommed you to start making Windows applications with let's say Visual Basic,Visual C# and Visual C++.All three of them are a great great great languages,but for someone who has NEVER written any code in his/her life it is going to be a shocking hit!You simply won't understand a God damn thing.And yes I am serious.

In fact...do NOT even start learning programming by making Windows applications.
Start by making the MOST SIMPLE console applications.

I know that sounds stupid and discouraging,but CONSOLE applications are a LOT simpler than WINDOWS applications.That is because a LOT LOT LOT of code is required for making a SIMPLE EMPTY window while in CONSOLE applications there are NO windows except that ugly black console window.
So CONSOLE applications are GREAT for beginners since that allows them to lose time to learn basics first WITHOUT losing too much time on how to create a simple empty window and THEN everything else.
Most beginners want to IMMEDIATELY create great windows applications without losing ANY time on at least trying to create a console application and that results in a HUGE mess of confusion and then THAT results in most of them giving up from programming.

Console applications are a MUST and are great way to learn programming basics WITHOUT knowing how to create everything else first.

So here is how the CONSOLE APPLICATION "Hello World" looks like:
image_thumb.png


And here is how the WINDOWS APPLICATION "Hello World" looks like:
IC58180.gif


Now by looking at the WINDOWS APPLICATION picture it might seem like it is simple...an empty window with a title bar which says "Hello World".But behind that window there is a lot of code which is creating that empty window and beginners will SIMPLY NOT UNDERSTAND the code AT ALL and that will result in a huge mess of a LOT LOT LOT of confusion and that will result in them giving up from programming.Why?
Because just a pure EMPTY WINDOWS APPLICATION already contains a lot of code needed to just show that empty window such as:

-forms

-classes

-methods

-many basic keywords such as IF,ELSE,VOID,PRIVATE,PUBLIC,STATIC...and a LOT MORE

-disposable objects

-many many curly braces

-events and event handlers

-too many properties

-forms designer code

-many namespaces

-inheritance

-delegates

-and a LOT more...too much more actually...

So why WINDOWS APPLICATIONS make so much confusion to the beginners?

Because BEGINNERS do NOT know ANYTHING right?
And by ANYTHING I really mean ANYTHING:

Omg what are classes?
Omg what are forms?
Omg what are methods?
Omg what are objects?
Omg what are language keywords?
Omg what are namespaces?
Omg what are events?
Omg what are statements?
...
And a LOT more...TOO MUCH MORE!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...

So this is the reason why you as a beginner MUST learn BASICS first.And the BEST WAY to do that is to learn them in CONSOLE APPLICAIONS.
Why in CONSOLE APPLICATIONS?

Because in console applications you as a beginner do not need to know ALL those things which I mentioned above (plus a lot more which I did not mention).And that will allow you to learn all programming basics first WITHOUT getting shocked every few minutes lol. ;)
Trust me on this.I am in programming for a LONG time and I remember when I first started...I was getting shocked every single freaking day lol.
And you know why?

Because I immediately wanted to create great and complex windows applications and sell them for nice money.But once I saw how complex and HARD was to create a good Windows application,I was seriously thinking of giving up from programming lol.Thank God I decided not to and then I started with console applications first.After a year I finally moved to Windows applications and I will tell you one thing:

If I did not learn all the basics which I learnt in simple creation of simple console applications first then it would be IMPOSSIBLE to create any kind of good Windows applications.

Look...I'll be honest...

Is programming easy?
No it's not.If you think you will read few pages of text and then be able to immediately create a good program then you can immediately forget about it lol.And I am really serious on this. ;)
Other programmers told me the SAME thing when I started long time ago.I did not believe them back then (many years ago),but now I know that they were 100% right.
So don't start with VB or C# or C++ immediately.For example many people will tell you that C++ is the best,but KEEP IN MIND THAT MOST OF THE PEOPLE WHO SAY THAT ARE NOT PROGRAMMERS AND HAVE NEVER WRITTEN A SINGLE LINE OF PROGRAMMING CODE!!!!!!!!!!!!!

There is NO "the best language"!They are all GOOD.The best one is the ONE WHICH YOU FIND YOURSELF THE MOST COMFORTABLE WITH.In my case that is C# and then C++.

So please take my advice and do the following:

Download Dev-C++.Why Dev-C++?
Because it is FREE first of all.Do not waste money by buying Visual Studio if you are not even sure wether you will like programming or not!
And Dev-C++ is the BEST and EASIEST way to learn the basics in simple pure Console applications.

Basics like:

Displaying simple text...
Simple math functions...
Drawing lines and other types of draws...
Working with strings and numbers...
Working with conditions such as IF...
And a LOT more!!!!!!!!

You MUST know these basics otherwise there is NO POINT in going to create a complex Windows application in languages such as VB,C# or C++.You just won't understand absolutely anything!!!

And don't worry.All the basics you will learn in Dev-C++ in console applications DO apply for Windows applications in VB,C# and C++.
There are few minor differences in the syntax,but that will not be a problem ONCE YOU LEARN ALL THE BASICS.
Now you are probably asking yourself "What the hell is SYNTAX?!"
And this is EXACTLY the reason WHY you MUST start with simple Console applications first to learn all the basics in order to be able to create more complex Windows applications.

Once you have finally learnt ALL the basics in Console applications THEN you can move to Windows applications.BUT take my advice and first try all 3 languages:

-Visual Basic
-Visual C#
-Visual C++

Why?
Because on that way you will see what language you seem to be the most comfortable with.And once you see which one that is then use that one.
And if someone tells you that ONLY C++ is good then tell him that he doesn't know anything about programming.You can create anything you want in any of them if you know how.Knowledge is the only limit.Don't forget that.

By the way...there is also one more language:

Visual J#

That one is also cool and GREAT since the programming code is similar to Java.I used it many times and it is powerful just as Visual Basic,Visual C# and Visual C++.Like I said...the only limit is the knowledge.

So:

1. Learn all the programming basics in Dev-C++ console applications.I am sure there are great books on this.I have one at home.

2. Once you know all the basics,more to Windows applications,BUT be sure to try all the following languages first:

-Visual Basic
-Visual C#
-Visual J#
-Visual C++

Why?

Because all 4 of them are great,but by trying all 4 of them you will be able to know which one you find yourself the most comfortable with.Once you find which one that is then use that one and then buy a book for that language.Do not skip the pages lol.Same applies for Dev-C++ console application book. :P
Otherwise there is no point in studying programming lol.

Look...

Programming takes a LONG time and a LOT LOT LOT of studying and effort.
You will need at least 2 to 3 years to actually start understanding it.But that's normal since PROGRAMMING is a completely DIFFERENT WAY OF THINKING then the way you were thinking until now.Trust me on this. ;)

And NEVER EVER listen to people who do not know programming.They all think this is easy,but it's not.It's hard as hell.Especially for beginners.
So if those kind of people tell you that VB sucks and that ONLY C++ is good,tell them to go to hell lol because that is NOT true. :P

Language is powerful according to the amount of knowledge you have.
I am still using old Visual Studio 2002 and I am able to create more powerful applications than some people in Visual Studio 2012 lol.

Why?

Because of the level of knowledge.

By the way since you already asked how to make a game,I will mention that I inserted a placement music at the end of the Black Mesa Source game.But the way HOW I did that is too comolicated to explain to someone who has never did any programming and...for example...does not know what even COMPILE and DECOMPILE is not to mention everything else lol...




Good luck and if you have ANY questions,feel free to ask them!

:good::good::good:



Yea yea yea I know...long post made by S.T.A.R.S. .........again xD!
 
You really take the fun out of people "S.T.A.R.S.".
I did a little programming back in the early 90's, found out it wasn't for me.
I went to the hardware side of computers then.
 
Try Scratch if you want to start programming simply. It's a great tool to learn about the general code found in almost all programming languages. There's also loads of tutorials online that can help you, as well as other people's work that you can look at and see how it's done. Obviously, you won't be making professional computer games using Scratch, but it's a great place to start.

Hope I helped (once you scrolled through STARS's amazing book-worthy explanation of code(I agree, VB is great)),
Jonah :)
 
Time is ticking and i know if i truly want to make video games when i get older i need to make something now. I'm still deciding what to make, but once i have an idea i need to know where to start. So where do i start? What programs do i have to use? Will i have to learn Java or C++? When i do make one I'll have a hall of fame and your all names will be in it.

Games nowadays don't really need programming experience. Start toying around with Cryengine 3 and UDK. I liked Cryengine better but UDK is probably a better place to start at.
 
Games nowadays don't really need programming experience. Start toying around with Cryengine 3 and UDK. I liked Cryengine better but UDK is probably a better place to start at.

No. Just, no.

I would suggest starting work in learning some basic Java and once you have a decent concept behind it you delve in to Unity. Unity is very powerful and takes a lot of the difficult parts and simplifies them without removing the actual coding/scripting.

I've made a game in C++ that was purely text based. It was pretty much a rough demo of an idea I had and had like 4 monsters you could fight, a functioning bank, a healer's house, and a town center from which to visit those places. That took a good month and a half of coding to get to that point working about 30 mins a day 5 days a week. And that was after I'd been taking programming classes for a year and a half.

Games are not where you want to start, most of the stuff you'll start with get you familiar with how to actually think like a programmer and how to tackle problems. It may not be fun at first, but it's essential if you want to create anything more complicated than Hangman.
 
I am not saying games just don't have coding anymore. But they are white simple to script, because most of what you do is use the GUI then use coding to tell the object what to do. Unity relies on coding more heavily than Cryengine and I know that for a fact, because I have tried them both. I even managed to make a rough draft of a game without a single line of code in CE3.
 
If you're going for instant gratification about a game that works you might as well use Multimedia Fusion 2...

To actually understand what is going on and be able to problem solve you need coding experience.

You can know every single car model on the street, what kind of features they have, their 0 to 60 times, whatever else you can possibly read about them. Sure you can show that info off but when it comes to actually working on a car and how to fix it if it breaks or how to optimize it for better performance, all of that means nothing. Same goes for coding. If you want gratification to say I made this, then yeah I guess you can just use something like that but to truly be a good developer of games you need to learn coding.

Eh, maybe I'm a purest.
 
I know, man didn't you see what I said? I only said games don't heavily rely on coding, but if you want to make a game worthy of publishing you need to. AI requires some coding, even though current engines have made AI easier. Scripting, while not important as it used to be, is still a major part of game design.
 
You'll probably want to ignore at least half of STARS' advice. Firstly, although Dev-C++ is free, it's old and unmaintained. There are plenty of free IDEs around that do C++ - Code::Blocks, NetBeans, Eclipse and of course Visual C++ express. Although, for starting out, a decent text editor like Notepad++ will do just as well. C++ as a first language is a questionable choice, though - it's really big and is fairly low-level, and it's easy to mangle your limbs with it, but if you're looking to do games programming it might be worth learning (eventually.)

For starting out, I would definitely recommend Python - it's easy, high-level, and also very popular in the games industry. I know for a fact that EVE online uses a lot of python with performance-critical parts done in C++, it's easy to use those two languages in tandem. It's a fairly common practice to use a scripting language (Python and Lua are the two most popular AFAIK, I don't know Lua though so I can't comment on it beyond that) to handle non-performance-critical parts and code performance hotspots in C++. If not Python, you could try Java - although games written in Java aren't too common, there are a few examples around, and you can also program mobile games (Java is the standard programming language for Anrdoid). Once you have a hang of Java, moving on to more exotic JVM-targeting languages like Clojure/Scala will be easier, too.

Of course, being good at programming games means you'll have to be good at programming... programming in itself is a skill, but merely learning a programming language won't make you a good programmer any more than knowing how to press pedal and turn a wheel makes you a good driver (knowing methods, keywords, syntax and the likes is knowing how to operate air conditioning.) There is a free book available online (SICP) that's widely considered one of the must-read books for any computer scientists and competent programmer - it's a bit heavy introductory text, though. SICP isn't a a programming book in the sense that it teaches you to program a specific language - it teaches basic concepts of computer science and architecting software, but does so at a fairly high level. Indeed, to be a really good programmer, some consider it almost necessary to have at least basic competence in a language like Haskell or some dialect of Lisp (such as Clojure that I mentioned before, or Scheme which is the language used in SICP.) You might want to look into these things a bit later, however. Real world Haskell is also a fairly popula, teaching Haskell (a functional programming language), another book popular not because the language is widely used, but because it makes you a better programmer (apparently, this book sells like hotcakes in Python conventions - just goes to show you.) You might find it hard to follow, but IMO persisting through is definitely worth it. Haskell (and Lisp dialects) are also the kind of languages you want to learn if you're looking to "culture" yourself as a programmer or to broaden your horizons/gain a different view of things - don't follow STARS' "you must learn these 3 languages" unless you actually need to use all of them (unlikely) - C++/Java/C#/VB are, in the grand scheme of things, closely related.

Also, some languages ARE more powerful than others. The "only limit is your skill/knowledge" mantra is dead wrong, otherwise we'd all be programming in assembly or C. What some languages let you do is express high-level concepts in less code, and this has a tremendous impact to what you can do. This is one of the reasons for Python's popularity - it simply lets you get more done in less time because there are less low-level nitty-gritty details for you to take care of.

You can do games in .NET languages (C#, CB and the lot) but don't learn those with gaming in mind. Indeed, I'd say that you can forget about VB altogether - VB and C# are more or less the same capability wise since they both run on .NET, but the community around C# is vastly bigger. J# is a dead language and probably even less useful than COBOL (with COBOL you could at least get a well-paying job at a bank maintaining an ancient behemoth of a mainframe system that won't be overhauled until the western civilzation collapses.) Don't touch it. Also, note that "Visual C++" is not a language - C++ is a language.

tl;dr: Python is good introductory programming language, and Notepad++ is a fine editor for starting out.
 
S.T.A.R.S.... I don't even..... hackapelite is more on the right track. I would say, though, if you go on a venture to simply learn core programming concepts and techniques and whatnot, you'll quickly get bored and probably drop it altogether. For someone interested in creating a certain type of software (in this case, games) I think it's very important to orient your learning towards that specific goal. That's not to say that you shouldn't be learning the basics, but you can definitely learn them in tandem with learning how to design and make a game.

I found a youtube series once that was a tutorial on how to make a game from scratch. This was geared towards people that had never programmed before, so it taught you basic programming and how to make games at the same time. I can't find it at the moment, though.
 
I would say, though, if you go on a venture to simply learn core programming concepts and techniques and whatnot, you'll quickly get bored and probably drop it altogether. For someone interested in creating a certain type of software (in this case, games) I think it's very important to orient your learning towards that specific goal.
This is actually pretty important - it's easy to get discouraged with learning just the programming stuff, not being sure when you actually get to build stuff that does something. Even with the smallest programming knowledge, you should be able to build something like a text-based hunt the snark or wumpus world. These aren't terribly exciting sorts of games, but actually creating something that works is a huge part of the learning experience, and trust me, playing some lame game is orders of magnitude more interesting when it's a living, breathing thing created by yourself (I didn't get why people are so into Tetris until I made my own as a learning project), and is a huge morale booster too. Creating something that works, even if it sounds terribly boring, is actually great fun.

Here's an interesting bit of reading (I quite like this guy's works.) Start small, and don't get overly ambitious. You won't be close to building the next big super shooter with 2 weeks into programming. Adding to my previous SICP and Real world haskell book comments: while reading these is definitely worth it, they're books that you should expect to read through several times before you really "get" them. So don't focus on these alone, and don't be discouraged if very little of the stuff in them makes sense to you now.
 
If you are trying to make a game using an existing game engines dev kit then yes, making games is actually pretty easy considering you are just using stuff other people have already made.

But if you are actually trying to make your own game with your own game engine, then yes it would take years of learning programming and yes games do rely on coding as everything in a game is some form of a code or instruction set given to the CPU.

I would take the advice that if you want to get into game design then you do need to learn simple programming first and C++ is a great place to start. C++ is not really that hard to get the basics of and understanding to make simple programs. I took 4 years in high school with it and its really not that hard. Granted since I have not used C++ since then, I dont remember a whole lot haha.

I dont know why some people think games do not rely heavily on coding, that just makes no sense at all.

But aside from the programming aspect, there is the other aspect of actually creating the textures and objects to be placed into the game. For that, you will need to learn how to use CAD software like Autodesk 3DSMax which is a great program that I have used and alot of professional game developers also use.

There is so much work that goes into the making of a game and most of it is actually making the game engine itself, which is where the coding comes into play. Because thats all a game engine is, lines of code like any other program. Which is why game developers usually stick with the same game engine for all their games and just make slight modifications and updates to it rather than building a whole new engine. Rockstar has been using the same basic engine for 15 years or more they have just been modifying it here and there much like other developers.

Basically, if you are serious about making a REAL game like the ones on the shelves today, you will NEED schooling. Trying to learn it all on your own will just take longer. And even if you know everything about how to make a game, you would still need a team to do it in a timely manner. Making a game like counter-strike by yourself from scratch would probably take years if not longer. Even games that have thousands of people working on it at the same time can take up to a decade to be completed.
 
Last edited:
I used to write games on my Commodore 64. It all started with Basic and made simple games using printed graphics and simple sounds. Quite fun to say the least. One thing Basic lacked in is speed so I learned some machine coding to take care of needed speed in my Basic programs. Next came the Compiler, a program that rerwrites Basic programs to machine coded programs. That helped me to write video games with actions and sound effects. I sold one game to Compute! magazine.

Now that I'm using PCs I stopped programming as there were tons of proggies to get so writing doesn't make sense anymore. Kinda tired of it anyway but I did some with Qbasic and that was interesting. Machine coding for PCs is a whole new ball game so I lost interest.
 
Just to clarify...

I noticed that many people say that you do not have to know ANY programming to make a game in already existing engine.
That's not true at all.
Where on Earth they get those informations beats me...

Black Mesa source (game made in already existing engine) and Mark Abent (programmer) is a perfect example that you MUST know some programming even if you make a game in already existing engine...

So please ignore those who say that programming is not needed.Because it is...
 
Back
Top