Where can I learn how to program/create games such as Path of Exile?

"
Mark_GGG wrote:
]FUCK JAVA. Right in whichever orifice is least comfortable for it.

Hey, I use Java. :(

My first language was Python. Moved on to Javascript shortly after, and then Java. Oh, and since I'm a Valve fanboy, try the Source engine. ;) Java or C++ seem to be the best languages for games; Java has GC, but C++ is, in general, faster.
"
lumisphere902 wrote:
"
Mark_GGG wrote:
]FUCK JAVA. Right in whichever orifice is least comfortable for it.

Hey, I use Java. :(
I have no problem with Java in general, only as a first language to learn, which far to many people recommend it as.
I'd like to chime in with a plug for game maker as well. After you have some basics of coding under your belt, game maker is a nice next step to making your own game that works. If has some drag and drop interface with code_behind to easily add scripted events and listeners. It also is a good way to wrap your head around states of entities in the game and provides some almost real time testing of your state changes. You can also play with particle effects which is fun. It is also fun to spend a few minutes making a terrible sprite in paint and then adding it into your game for lulz.

There are also some nice repositories of other peoples games made in game maker that you can investigate pretty easily.
Hey...is this thing on?
Last edited by LostForm on Apr 30, 2014, 10:54:10 AM
"
Recently graduated (yay! in a field that has nothing to do with computers though) and I now have a lot of spare time on my hands. I would like to learn some programming and have been googling around a bit. I really want to start creating my own indie games - maybe start out small and build up to something as big as PoE. Where do I begin? What programming language should I start with?


I've shipped numerous professional games on Consoles and PC. Feel free to PM me if you have specific questions. In the meantime here are some tips to get you started:

Writing a game is a lot like writing an Operating System. It is complex but if you break the various sub-systems down it is manageable ...

0. If you are new to programming ...

The you may want to learn visually ...


Or interactively ...



1. It doesn't really matter _what_ language you use!

Once you learn one language it is relatively easy to pick up another language -- since you will already be familiar with the concepts. In the new language you will know "what" to do, but not "how" to do it.

About programming languages: Only amateur programmers get sucked into flame wars over editors / languages / etc. Guess what? They ALL suck! Some just suck less in certain contexts:

* C++ is used almost exclusively in the games industry because of its huge performance. NOTE: Even though I prefer the middle ground between C and C++, C++ is a horrible first-language to learn (I've worked on a professional C++ compiler. It has too many confusing concepts to beginners.)
* Javascript is decent.
* C# is OK.
* Python is OK.
* Java is OK.

I recommend starting with C# or Javascript, and then moving to C++.

2. Just do it!

Anyone can start a game, but it takes extreme determination to finish/ship it.

3. Recommended reading:

* Programming

** Game Engine Architecture

* Game Design

** Theory of Fun for Game Design

* Computer Science

** Godel, Escher, Bach
** Thinking in Java

4. Prototype! Prototype! Prototype!

Here is a thread that has very early screenshots of Path of Exile:

Spoiler
https://www.pathofexile.com/forum/view-thread/445682


Yes, they looked like crap. Who cares! The importance of prototyping is to focus on FUN gameplay. Yes, pretty graphics is like sex appeal -- it helps sell your game. But if people are bored after 5 mins of playing your game all that time/money you spent on beautiful art was a complete waste! Focus on FUN game play THEN pretty graphics.

Sid Meier was successful because he prototyped like crazy. There are lots of ideas that sound good in theory, but in practice are boring.

Sometimes simple ideas, like Candy Swipe, have the best shot of being financially successful.

5. "Unity" game engine is a very good way to start.



A typical game engine has a game loop consisting of:

* Input - Mouse, Keyboard
* Loading/Streaming -- loading chunks of the world
* Networking
* Physics -- Collision Detection, Collision Response
* AI -- so your world isn't static and boring
* Rendering
* Audio

Unity lets you focus on the "higher" level concepts such as what your game looks like, how it interacts instead of getting bogged down with the million low level details.

6. Good artists copy, great artists steal.

Highly recommend you build a clone of an existing game until you learn enough about programming and design. Why do you think there are so many Tetris clones? It teaches you the basics.

You can use existing art from other games as "placeholder" art as long as you don't distribute it.

Feel free to borrow game ideas and concepts from other games. Every game designer was inspired by other games and game designers.

7. Make it 2D, single player, & single threaded to start.

3D is 2x amount of work. Multiplayer is 2x amount of work. Multi-threading is 4x amount or work.

If you don't understand these terms, that is OK. It is a precursor to the next point:

8. Keep your game small, and focused.

As Steve Jobs used to the say "The secret to staying focused to is to say 'No'"

9. Consider: Beginning Game Programming with C#

MOOCs (Massively Open Online Courses) are usually terrible, but this is OK.


10. Get a decent text/code editor:

Pick your poison ...

* Windows: Visual Studio Express
* Windows: Notepad++
* All: Vim
* Mac OSX: BBEdit
* Linux: nVidia's "Nsight Eclipse Edition" is good.

11. Ideas are a dime a dozen, their execution worth their weight in gold
Arm chair game designers think their game idea is the "next best" thing. Chances are somebody h

Feel free to ask questions! We all were beginners at one point!

Edit.1: Added notes about programming languages.
Edit.2: Added note about 2D and 3D.
Edit.3: Added "Thinking in Java"
Last edited by Michaelangel007 on May 5, 2014, 2:29:37 AM
If you want to go and just create games, go with Unity for 3d or Game Maker for 2d. You can build them easily, and port them in almost any platform.

Then, you can learn C++.

I need more purple titles

Report Forum Post

Report Account:

Report Type

Additional Info