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

"
Wraeclastian wrote:
"
Upandatem wrote:
"
Wraeclastian wrote:
Go to school and learn how to make games. Derp.


He just left school and you want to throw him back in again? Go home!

Perhaps he should have thought about what career he wanted a bit earlier.


Too cool for school.

YEEEEAAAHHHH!!
"
YEEEEAAAHHHH!!


Man stop with all the school references dirk. You go to university, we get it.
Don't forget to drink your milk 👌
"
Wraeclastian wrote:
"
Upandatem wrote:
"
Wraeclastian wrote:
Go to school and learn how to make games. Derp.


He just left school and you want to throw him back in again? Go home!

Perhaps he should have thought about what career he wanted a bit earlier.


Spoiler
You won't get no glory on that side of the hole.
have a look at http://libgdx.badlogicgames.com/ and start with some small casual games for mobile devices and/or browser to learn the basics :)
"
maybe start out small and build up to something as big as PoE.
Starting small is indeed the thing to do. I was linked to this on twitter today, and it's a good summary of why you should start with small, manageable projects.
"
Where do I begin? What programming language should I start with?
You'll likely get a lot of different answers to this depending on who you ask, but here's mine, based on my own combination of experiences - learning myself, both initally self taught and later in university, teaching as a lab demonstrator at my university for several years for first-year and second-year papers, and working as a research assistant with one of the lecturers researching how people first learn to program in the first-year papers.

First off, and this isn't meant as a slight against Juicebox360 specifically, but rather because you'll hear this a lot:
"
Juicebox360 wrote:
probly java
FUCK JAVA. Right in whichever orifice is least comfortable for it. Maybe the nostril.
In all seriousness, Java is a fine language, and you can certainly learn from it. It is not, however, a good first language. It can be an adequate one, but the point of initially learning to program should be to learn to program - you need to get familiar with the basic things like function calls, branching, repetition and recursion - and once you understand these things, you can fairly quickly apply them in any language, it's just a matter of learning the specific ways that language applies them.
Java, however has enough boilerplate code for even the simplest programs that learning the basics of programming either gets bogged down and confused in also learning what all that extra Java code means, or you just have to accept "you'll understand this later, try to pretend it's not there" about 70%+ of the code in your simple programs, which isn't, in my opinion, a good attitude to be reinforcing early on in someone's programming education.

In my university courses, Java was the language of the first-year papers, and it was the one being run when I helped with the research project on programming education, and I saw this happening first and second hand as I taught people in the labs and reviewed the feedback we were getting from students. I myself would probably have had a much harder time with it had I not been previously self-taught in BASIC.
After that research project (not necessarily because of it), the university introduced a new paper for first year teaching Python, intended to be taken before the first Java paper. I volunteered to help in the labs for that one (mostly because I was interested in learning python myself), and did the lab demonstrating for the Java paper in the following semester as well, and the students who'd done the python paper definitely seemed to grasp things better.

So as a first language, I'd recommend Python. It's not what I used (QBASIC for the win!), but it's a lot less out-of-date, and it lets you get straight to the actual programming without having to deal with the extra boilerplate that Java has:
"
Java wrote:
public class HelloWorld {

public static void main(String[] args) {
System.out.println("Hello, World");
}

}
"
Python wrote:
print "Hello World"

Object Oriented programming is great (and python does that too), but Hello World shouldn't need to be a class, and neither trying to explain to a starting programmer what "public static void main(String[] args)" means, nor telling them to ignore it, seem adequate to me.

I'll go a step further - the lab book used for the Python paper at Otago University is available online as a PDF here - It might not be the best, but it's not horrible (or at least, the versions of it I saw a few years ago weren't, and I can't imagine they've ruined it too hard since then. I'd highly recommend getting that pdf andPython (the text uses Python 2.7, for reasons explained in the introduction), and working through the book at your own pace. Should you choose to do so, you can feel free to contact me if you find anything you get really stuck on and can't work out yourself - I helped teach the paper for two years, so should be able to sort you out.

Once you've done that, you should have a good basic introduction to most programming principles, and be able to write your own programs. From there, there's a few ways you could go.

If you're really keen to get straight into games, you could make some fairly simple games in Python with what you know, or go ahead and install the Pygame library for your OS and version of python, which would be everything you need to do some decent 2D games - some (not many, to my knowledge) commercial games have even been done in python. I'm not familiar with what stuff exists for 3D in the language.

You could instead (or after, or as well) look into learning Java, which is better to learn once you have the basics under your belt, and will beat you over the head with Object Oriented Programming until you've really learned it (the Python book, or at least the old versions, did cover the very basics of OOP, but not in much detail, because that paper was to be followed by a Java one in the next semester. You could always try to learn more on your own in python as well).

And if you're really looking at doing games, c++ is where you want to be. You could try going straight here from python, although I suspect at least a basic learning of Java is a good intermediary step. My university courses covered straight c before c++, but that may not be necessary. I don't have specific resources to recommend currently for c++ off the top of my head, I'll go digging in my archives and come back if I find something useful - I have vague memories of some decent tutorials for OpenGL using GLUT.

I could upload somewhere the code for the small game I made and sent to Chris with my CV to get this job, but you should probably learn from looking at actually good code, and that doesn't really qualify.
Last edited by Mark_GGG on Apr 1, 2014, 7:58:58 PM
C++ and Python are my favorite languages to code it, but I usually use C++ to code organization applications among other things. Python is one of the best for beginners in my opinion as it has such simple syntax and it's a lot faster to code in than most other languages.

I agree with Mark on the "FUCK JAVA" bit. I've never much liked that language as I've felt that it does everything ass backwards.

Over the summer, I taught a course on C++ and a Java course was also available. Every damn week my students would finish around 4-5 projects of their own design, about one a day, while the Java students were struggling to finish 1-2 projects of similar sizes. I wasn't even that knowledgeable of a teacher either, but C++'s syntax is so much easier to figure out in comparison to Java's.

But yeh, if there was a Python course where I taught, I'd totally teach that as my first priority because it's a great language.
Last edited by Stormquake on Apr 1, 2014, 8:09:34 PM
I learned Java as my first (and only) language. I'm terribad at it.
GGG banning all political discussion shortly after getting acquired by China is a weird coincidence.
There are a few things that the programming world needs less of: 1) goto statements, 2) Perl scripts keeping Fortune 500 companies afloat, and 3) Junior Java Programmers.

So I'll echo what Mark and others have said - fuck java. For some reason universities have been pumping out new java programmers for years. The kinds that have just enough experience to hang themselves. Core java programming isn't really the problem here though, the language has it's uses - but it has way too many deathtraps for a starter language and it's graphical libraries are some of the worst in the industry.

I would also like to suggest Python. It's an easy language to learn, and has a lot of raw computational power. The science/research community has taken Python in under their wing and have created some pretty amazing tools for it. Additionally, as far as games are concerned, pretty much all of the heavy hitting 3D Modeling/Animation/Sculpting software(AutoDesk Suite, Blender) Python out there for artists is built on top of Python - so knowing it, and being able to create tools/addons for your artists would score huge points with your design team.

Please refrain from using any portion of .NET to be included in your introductory learning of a programming language. The .NET Framework is extremely powerful, in my opinion is the single greatest thing since sliced bread, but it's also very complex and is an anxiety inducer when matching it up with learning your first programming language.

Someone has already linked the thread in which I replied with a large post regarding my views on game development. I'll also link a post I wrote on the Unreal Forums here recently that add to those views - Game Design Cheat Sheet

Others have linked tutorials on learning programming, however, if you don't mind spending a few bucks I highly recommend Plural Sight It has a ton of software related video tutorials with exercise questions and quizes and is my defacto when it comes to learning.

If you ever decide to get into the computer graphics side of the house(like I have just recently...what a rabbit hole.) when it comes to game development - I've found no better training resource than Digital Tutors It's a rather amazing resource.
Last edited by Elynole on Apr 1, 2014, 10:00:07 PM
Agreed about java. Java is not a good first language due to all the abstraction. Java took commonly misused and miscoded events from C++ and hid all of the goings on behind several layers of API abstraction, trying to reduce the misuse and miscoding, it should be looked at after you understand what pointers are, and why you dont directly control them in java (they are still there of course, just abstracted).

A solid starting language as well would be ADA 95. It is slightly higher level language than c++, and really shines in the areas of data structures and passing by reference. As you gain the basic concepts of procedural use, ADA is flexible enough and has the API support to transition directly into object oriented design, relying heavily on generic packages. The whole package structure is a great way to learn exactly what is meant by 'use the api'. Also, Ada is a strongly typed language, so you have to explicitly declare a lot of things or break, as opposed to c++ which might compile the code with implicit defaults and needs a thorough understanding of the compiler as well.

ADA was also developed under government contracts, meaning all ADA libraries and compilers work exactly the same, as opposed to something like C++ with every company putting their flavor on their compilers etc.
Hey...is this thing on?
I was talking about learning to program myself and friend, who just graduauted with a degree in java programming, sent me this link on learning C++ http://www.learncpp.com/ I haven't looked at it yet because I have the attention span of a mentally-challenged ant (trying to be PC here). it's supposed to be noob friendly according to him.
Arguing on the Internet: What's the point when you can't punch them in the face when they really piss you off?

Report Forum Post

Report Account:

Report Type

Additional Info