Been wanting to develop games for fun for a while now. What programming language (if any) should I learn beforehand? What engine should I use to develop them on? I don't want to make a 2D platformer or RPG maker game.
Ruby, Python, C, or Java. C++ is bloated to hell and you'd end up like an anon on the programming threads over at /g/ thinking he's stupid because in his 2 months of studying he barely scratched the surface.
Thanks. I was leaning towards C. As someone who never programmed before should I take a community college class for it or is it possible to learn in my spare time? Any idea how much I will use that language when using an already created engine like Unreal, source, unity, ect will be?
I'm friends with an artist and someone who can make music. If I know how to program I might be able to make some horrible indie game on greenlight and make money off of losers for 90% off.
If you want to make 2D games, you should probably learn RPG Maker, Game Maker,or Multimedia Fusion. C++ will take years to learn before you can make games with it. You can learn free engines in a matter of weeks/months.
>What programming language (if any) should I learn beforehand?
Python is a great bigger language because it gets you thinking about how to program things without bogging you down with complicated syntax. After that C is a good choice since most engines accept C as a language or have a language based off it.
>What engine should I use to develop them on?
Really depends. Unity has a free version but there are others. Any one is fine really. If you're making something basic, the fine details between engines isn't important.
>As someone who never programmed before should I take a community college class for it or is it possible to learn in my spare time?
Programming is easily learned by reading tutorials and books and playing around with the language. Some of the best programmers in the world learned from books.
A guy on agdg comissioned a dude to do is art.
If you can't deal with mediocre artist failing simple
deadline think about spending money on that stuff.
>always wanted someone to make a 3D 3rdperson shooter platformer as well so I might try that.
There are also a lot of free engines 3D out there. You can use the Half Life or Quake engines, Unity, Unreal, or something else.
If your only aim is to make video games, just use something like Game Maker (with GML), or Construct Classic, or Unity.
You have to have a legitimate interest in technology if you actually want to make a game from scratch using something like Monkey X or C++
See all these conflicting opinions OP?
I put those suggestions there just to bait.
Use what you want if you feel you can handle it. Though it's a good thing to have multiple languages under your belt.
In what way?
There are many impractical seeming things (to us) that have valid biological reasons. You don't know the circumstances behind the evolution that would bring about that kind of animal. Maybe the gravity is significantly lower? Maybe there's swarms of creatures that fly only at that specific height at certain times of their day?
>to study games technology
>anyone have some advice for me?
Have you looked into the daily life and career of a game dev? It's pretty much being chained to a desk and forced to produce whatever bullshit your bosses are telling you to make and then being fired after completing it.
If you want to program as a career, take computer science and avoid video games.
>See all these conflicting opinions OP?
Half of these "opinions" are just refuting the outright false statement that C++ is somehow more bloated than Java, Ruby, or Python.
OP, I don't give a fuck if you use Python, Ruby, or Java, but doing it because someone tells you that C++ is "more bloated" is fucking stupid. It's a lie, plain and simple.
>Be a dumbass
>Someone on /g/ tells me to stop learning python because they said it was garbage
>Decide to move to Java
>Someone says it's garbage
>Move to C++
>Same as before
>Now on Ruby
Shit, at least I have an idea of the differences in the languages I guess. I'll stick with Ruby for now and jump back onto C++ later.
Here's a shitty calculator I made in C++
By simple virtue of being the more popular game programming language (and by virtue of the language allowing more control over minutiae like memory allocation), you're probably going to find more game programming libraries for C++ than any other language.
A close second, however, would be Java. Java isn't really suited toward big games, but if what you're looking to make is a simple 2D platformer or something similar then Java will suit you just fine, and it's quite a bit easier to learn than C++. I would personally recommend C++, but it can be intimidating to an early programmer and Java's not a terrible alternative.
>Want to make a game
>Try my hand at C++
>Takes me two days to even make the most simple comandline shit like a calculator
>Realize I'm not smart enough to grasp this stuff and make a game with it unless I spend years of my life learning it
>Quit and never try again
I wish I could learn to make games without having to spend years studying.
Well for your first game, you could use many of the assets available on the net. Look for sites that offer free spritework.
If after your first couple of games you decide to get serious, you can as that one guy suggested, commission an artist or just find a friend who can do the artwork for you.
Use '\n' instead.
If you think that does the same thing as endl, that's exactly the problem; endl also does other things.
Not your fault mind you, most tutorials for beginners will tell you to use endl.
I think that anon is thinking about using printf instead cout/endl. I use cout endl because I've been using it a lot of time but I think it's better printf, you can do more things with that and it's more flexible.
>What's wrong with endl?
Nothing, but I believe using "\n" produces the same result
Also I'm fairly certain you include the line:
using namespace std
Before the function to avoid having to always type "std::"
Just learn flash.
It's simple quick and is so ubiquitous that if you don't have a flash player on your pc you're pretty much cut off from 99% of all content on the web.
None of these conflict with each other, we were all calling you out for not knowing anything about C++. You were probably thinking of C#, which is indeed a retarded, bloated language.
OP once you learn one language you've learned them all. Just buy/steal a textbook for any of them and sit down and go through the whole thing writing sample programs for every single thing you learn.
>I wish I could learn to make games without having to spend years studying.
You don't have to.Learn a free engine.
It says in the reference that endl creates a new line then "flushes" the stream. I'm guessing constantly calling it is not an optimal thing to do. Not exactly sure though. I'm not an expert.
>listening to what people tell you after starting by telling you X language is garbage
You'll never learn anything this way. About half of the posts doing this aren't even going to be from people that have programmed more than some hello world shit.
They just saw someone say once "EVERYTHING OTHER THAN C++ IS SHIT" so spout it to try and sound smart.
There's nothing wrong with calling it if you want to flush the output stream. However, you might not always want to do that. Sometimes you just want a newline character without outputting text.
I just started learning C++ and after a while practicing if else statements and such, (after creating a calculator) I made a little tiny text adventure. It was short as fuck, but I was pretty damn excited to see it compile.
It just takes time, anon. Keep practicing, you'll never improve if you always expect to compile a code correctly on the first few tries. I thought the same when I just started, but I just decided to try again and again until I finally fixed my errors.
It's a pretty thrilling experience once you get something to work.
But how can I make a living out of that anon?
I have a lot of the former but none of the latter, though if I had any genuine talent that wouldn't be a problem.
Well by command line calculator I mean it can do addition, subtraction, multiplication and division, and that's all by using the built in functions. It's noting more than that.
Anyway I don't see how that would translate into a text adventure. Seems like it would take a lot of know how to get it to understand words without blowing up.
Ill check that out anon though I don't know how much it will help, thanks anon.
Everyone seems to hate those ready made engine games though, and the games made on them are always criticized for the same sorts of flaws.
In a perfect world, you should know more than just one programming language since different languages can offer different benefits. I know Java, Python and some C++. I wish I knew more. I'm best with Java and is my goto language if I want to code something up. I don't need to think of the syntax since I am so used to it, I just code it. I wish I could do that in other languages.
if you ONLY want to make games, look into something like Gamemaker or Unity. Learning a language and coding your game structure from scratch will waste a lot of time and effort if you're more of a design-oriented person and all you have interest in is creating games.
On the other hand, if you're also interested in computer science or software development as a whole, start learning a more proper language. It'll take longer to learn and longer to actually make games, but the experience will carry over into far more.
>Seems like it would take a lot of know how to get it to understand words
Being able to comprehend an actual sentence would be hard as fuck, and if you could do it you'd probably be working for Google. But what you can do is make a list of actions and a list of objects and have the playing input an action and an object.
>Seems like it would take a lot of know how to get it to understand words without blowing up.
You could create an entire, fleshed out text adventure with nothing but if/else statements and the barest knowledge of accepting text input.
The code would be bloated as fuck if you use nothing but if/else but it's entirely possible and conceptually very simple.
the problem isn't the call to flush as much as the fact that most C++ programmers will never learn it's happening because very few tutorials ever address it
most people are taught that endl is a platform independent '\n', i sure was and that was in a "reputable" university, which is none-sense since '\n' is already platform independent
>which is none-sense since '\n' is already platform independent
'\n' is platform-independent, but doesn't Windows, at the very least, also require a '\r' to actually get a new line?
oop = object oriented programming.
'\n' (line feed) output to a text stream automatically inserts the '\r' (carriage return) in Windows. It won't for a binary stream, but you'll know when you're using one of those.
Similarly, reading a '\r\n' in a Windows text stream automatically converts it to a '\n'.
>tfw CC, C2, MMF
visual programming is the shit.
It looks like Source is in C++, and Unreal is in C++ with an optional UnrealScript scripting language thrown in besides.
That was just a cursory Google search, though. If you're thinking about using either you might want to do some more research.
xna is actually a good place to start. One step above the RPG maker and other game creators, but doesn't require a huge investment. And for all people bitch about Microsoft, if you use Windows getting set up from scratch is super easy.
Plus if you end up enjoying programming, C# and .NET are useful, and C# is syntactically similar to C, C++, and Java if you want to branch out.
>Everyone seems to hate those ready made engine games though, and the games made on them are always criticized for the same sorts of flaws.
Not really. I've played a bunch of fun ones. You can't have it both ways.
>Everyone seems to hate those ready made engine games though, and the games made on them are always criticized for the same sorts of flaws.
/v/ does this. Especially freshman CS kids on /v/.
Nobody cares what the fuck you use to make a game if it's fun.
Just like make game man.
I suppose, I just don't think I have a good grasp of the material, always had to flip back and forth in the tutorial to get things to work.
Oh I see what you are saying, that makes sense.
Oh, sorry I am not familiar with the terms as I should probably be.
And thanks for the advice, I will look into unity.
That's good, I guess I have a back up plan now.
I'm sure you know better than me anon, I'm just saying what I myself often see said around here.
Game engines are pretty popular for run off the mill eroge. They can look professional but at the end of the day I don't think you can land a job with only knowing game maker shit.
Yeah I'd recommend it to anyone in here that is beyond the "Hello World" stage of programming.
I don't have much experience, mostly university related stuff and that was mostly in C and some Java, but I was able to work out the Tetris game over a weekend or so without any guides.
It's pretty easy to learn and you still feel like you're doing more than drag/drop pieces to make the game.
I really like properties too, it just feels a lot cleaner than Get/Set everywhere in Java.
QtCreator nigga. A friend of mine has family working for a big robotics company and they use it for making all their testing programs (although not actually for the robots code)
"\n" is a platform-independent line-ending according to the C standard.
If the system needs a \r\n (or, in the case of older macintosh machines, \n\r) for a line ending, the C standard library is required to make this conversion from a regular "\n" (except for binary streams, where things are input and output literally).
In fact, on a Windows machine, outputting "\r\n" to a text stream will usually actually output "\r\r\n".
Since you don't want to make the easy stuff go straight to an engine like Unity or UE.
You need a lot of in depth knowledge to make anything close to being decent. To know how to use a language properly to develop something massive you also need to know how the hardware works.
C is still extraordinarily useful.
As a career C++ programmer, I've got to agree that making games in C is retarded, but if you want anything embedded, a kernel module, or pretty much anything that needs performance and doesn't benefit from OOP, C is the ideal.
Use the best tool for the job. There's a reason almost every OS kernel is written in C.
Start with C to understand how to deal with data types more eficiently, then proceed to C# with Monogame to start scripting for unity, C++ is excellent if you want to create engines (something you won't do untill you're more comfortable with programming), so C for your first exposure, then scripting with C# for unity and if you wan't to really get into it, try C++ after you're used to scripting.
>. What programming language (if any) should I learn beforehand?
If you just want to make a game, learn to use Unity or even GameMaker, which is significantly easier.
C++ is neat, but it's not for small, indie games, and for fast prototyping of ideas. You need to really know what the fuck you are doing. I've been programming in C++ for about 10 years now and I wouldn't use it to make a game, unless it's something I know I can't do with a ready-built engine.
Also, keep in mind just learning C++ means nothing, because you also need to learn how to implement 3rd party libraries for sound, graphics, etc. Proprietary engines do that for you, which saves a lot of trouble. Moreover, they will be far more optimized than anything you can output in the same timeframe.
In short, fuck programming languages and just use an engine. Anybody suggesting otherwise is a complete fool that has never done anything other than spout buzzwords on 4chan.
DO NOT DO THIS. CS teaches programming but they're mostly focused on COMPUTATION AKA MATH.
If you want to learn to PROGRAM then take software engineering.
Vim is very friendly when you get used to it. When you're a proper vimmer, using anything that requires a mouse is awkward as fuck. Having to press the arrow keys 40 times to get past 5 words in a sentence is pain as opposed to typing "5w".
gdb isn't really "unfriendly" as it is just low-level. It's intended to be used in a terminal without necessary access to a text editor. It excels at what it's meant to do. You can use it as a primary debugger, as many do (including me), but I don't fault anybody for wanting a more tied-in debugger/IDE system (you can even use GDB for this, as many IDEs do).
I've been using Visual Studio since version 6.0 and currently using VS2012, it's fantastic and despite some minor (but irritatingly frequent) bugs, there isn't anything better out there.
If you want something more lightweight (for instance, for a weak laptop), you can also use Bloodshed's DevC++, but it's bare bones and doesn't have equally good compilers.
Code blocks is terrible, and so is Dev C++
Never had any experience with netbeans but that's what my father uses to program his stuff.
What i currently use is VS Express 2013, wich i adore, but there are some other alternatives such as Eclipse, tho i've never had any experience with it
Visual Studio is what every single company uses, including CD Projekt RED and all the other companies making fuck-huge games from scratch.
Source: I applied for CDPR and they asked if I have VS experience.
/v/, how would I go about making something akin to Thief and Dishonored with an art style that can last forever like Wind Waker or shit
i make small games, i usually put them on mobile but occasionally the PC too. i'd post them here but they have my name on them.
if you're going to be a solo dev and you can't draw, you better have money or seriously reconsider the types of games you will be making. it's simply not possible to make those massive indie projects you see on kickstarter all the time by yourself, no you will not make shovel knight. often times artists have a better time being solo devs because there are tools like game maker and unity, if you're a programmer you are stuck with either paying or using programmer art.
don't be a nodev, stay away from /agdg/ since only a handful of the regulars there actually make games
>try to learn to program
>take python codeacademy course
>get to the part where I have to remember why something is str() and something is len.[insert something here]
>what the fuck is going on
>realize I'm too stupid to program
>copy paste this in every programming thread I see
The world would be a better place if everyone were suddenly a mathematician. However people have priorities and would rather learn the minimum necessary to create a game or application rather than learn math in general.
Professional programmer here.
NetBeans is fine for Java, garbage for much else.
Eclipse is the same, but with more idiots actually using it for C++.
CodeBlocks is alright, but a bit bloated and slow.
QtCreator is snappy, lightweight, flexible, and fast. It also has a Vim mode.
Vim/Emacs is awesome if you're willing to learn an editor and manage your own plugins.
Pico is a joke, like Nano.
Visual Studio is fine if you're willing to use proprietary shit (my Unix friends would crucify me if they heard me say this) and don't need proper GCC support. I'd stay away unless you're intentionally only targeting Windows.
Where did you find a job with 300k starting? I'm a computer scientist and I'm struggling to find anything above 40k. You are just a retard saying nonsense, arent you?
>ruby, python C or java
what the fuck, do you know why minecraft is a piece of shit, right? Modern games are made in C++ because you can do a shit ton of proper low optimizations, I wonder if you have ever programmed ever
>Start with a simple text editor to learn programming.
That's a horrible idea.
If anything, using nothing but a regular text editor is for more knowledgeable people who don't need to be told that they have a syntax error or misspelled a function name. Telling someone just starting out to forego stuff like that just seems cruel.
They can safely ignore the more complicated functions of an IDE, though.
The codeacademy course is pretty bad (barely covers OOP), but it shouldn't really give you any trouble. Especially with python since it's fairly idiot proof already.
If you seriously can't get it down, then you're probably right.
Programmers who don't know math are absolute hell to work with.
Programming on a team with math-retarded programmers is like trying to kayak with somebody who's determined to use their feet to row.
They fuck things up, they can't understand optimization, trying to speak to them about big-O notation is a nightmare, and their comments are on the scale of "Move this thingy over there because it looks like it goes faster this way".
Every programmer should be some sort of a mathematician as a base default, just like every construction worker who builds houses should have a base understanding of architecture.
last time i saw anything from agdg posted on /v/, it was some weird pedo games with demented text and rpg maker graphics. kinda got a weird vibe from that place. i'd avoid it just based on the fact it's over on a cancer containment board like /vg/.
You need vector math and binary operations, everything else is trite for game development, and even binary math is just if you want to work from scratch, although I would highly recommend it.
Also, no I wouldn't say you are in the right track. If you want to make games, just pick up an engine, or start on your own and make a game. Nobody will teach you how to do it.
A single semester of computer science will probably actually put you above most "indie devs."
You ain't gonna learn how to program your own fucking physics engine or anything in that short amount of time, but then I took 4 years of almost nothing but CS classes and I still wouldn't trust myself with something like that.
It's called "cel shading".
In the simplest form, it's using standard phong shading, but rounding the final color to a specific interval. You can obviously fancy it up, get better performance, better looks, and outlines and shit, but starting simple and actually implementing it is always best.
>start playing with UDK
>this shit is pretty cool
>have no idea how to get anything I want to start working and no idea what I want to start working on is
never will I be able to perfect the jagged alliance 2 clone of my dreams
I'm actually planning on getting a degree in programming. This is just my first semester after working for 3 years to save up some dosh for college.
They offered me a degree plan for video game design and creation or a general studies for programming and I took the general studies as I have heard that college video game design courses are worthless.
I really really want to make video games but I figured if I couldnt make that happen the general studies in programming degree would come in handy.
Reminder that programmers are literally the garbage men of Computer Science.
People who want to work for VIDEO GAMES are the toxic underbelly of post-secondary education.
Pic related, a real Computer Scientist.
Learn vi for Unix.
It's still not great for programming like vim is, but it's on every Unix by default from AIX to HP-UX to BSD to even the fucking pseudo-POSIX subsystem of AS400.
That sounds good, but in my opinion doing generic programming (I.E. not gamedev) is the most boring thing ever. It feels like you are contributing towards nothing of essence.
Of course, that's just me.
They're not worthtless, actually, they'll teach you exactly what you need to know and no more bullshit, like CS has with as the circuit board thingies, i mean, what game developer needs to know that?
While the pay is much better if you have CS and get a stable job, you'll need to study more things focused at programming for games, and will have no practice with programming for games.
It's just a matter of choice really.
I just want to make some prototypes but if it means anything I do have a friend who is an artist who is professional level who I could slave into doing model design and drawing.
>it's currently filled with raging SJW types capable of a lot of mental gymnastics
Are you disregarding the fact that a guy making a loli rape simulator is a regular dev and half of AGDG supports him?
>Games are like 95% model design, animation and drawing
95%? Nah, man, nah. I'd say 50% and another 50% programmers. 60-40 at worst. There are a ton of programmers and scripters in any AAA title.
>A single semester of computer science will probably actually put you above most "indie devs."
No the fuck it won't because an "indie dev" at least has a fucking game out you piece of shit.
Stop attempting to waste people's time with subjects they don't need to fucking learn.
>Not your call to make man
I wish it was. I have programmers under me who I have to pretty much correct every commit for because they'll write recursive functions that will try to go hundreds of thousands of levels deep, copying every parameter on the way up.
"cost-benefit" is usually bullshit. It's something managers throw around to justify hiring complete idiots, and then they don't realize that their more skilled programmers are doing less of their own programming than reprogramming everything the dipshits do, and then they wonder why the programmers are still having trouble hitting deadlines even thought they hired more programmers.
Hiring a programmer who can't into math is a waste of money, unless you have them stationed permanently on UI-duty.
Thread probably already has all of this advice, but:
- If you haven't done programming before, take up C#. It's a good language to learn principles of code in without wrecking your brain with bullshit that's only necessary 1% of the time. Java is also good for this, because both languages are basically the same, but C# edges Java out with good libraries and IDE.
- Use whatever language helps you make games quickly. C++ is more powerful than C# for example, but you don't need that power most of the time and it'll cost you a lot of time developing high-performance code.
- Use whatever engine will help you make games quickly. Unity engine is very good for rapid prototyping but it has some shortcomings. If you want to make something in 2D and are decent at code then you probably don't need an engine, just a couple libraries like XNA or similar.
- Make lots of games. The best way to achieve and maintain a game development steez is to make a lot of little games, because it feels good to make something, and having a prototype that's playable from early on in development will help you decide if it's worth pursuing the idea or not. Your first project being some ambitious big thing is a stupid idea that will probably destroy your motivation to work.
You science worshiping fucks are single-handedly DESTROYING CIVILIZATION.
Thanks for that you pieces of shit.
Meanwhile programmers are just relatively normal people doing creative things that they love.
It would be good if you could learn C++ because it's very common but if you're doing basic 3d things and you're new the best thing to do would be to learn C# and use Unity.
OOP is gross and C++ is a bastardized language
pure games are created in C
My advice for when you actually start working on something:
FINISH YOUR FUCKING GAMES.
Don't end up like me or /agdg/. I have so many games at various stages of development on my harddrive. I never keep my promise to come back and finish them.
>They offered me a degree plan for video game design and creation or a general studies for programming and I took the general studies as I have heard that college video game design courses are worthless.
Just for fun, take a few of their "video game" courses and look at the people who took that degree course.
You'll be relieved.
Just as a heads up, you don't make video games because you love video games.
You make video games because you love programming and video games. If you don't love programming, don't do it. You'd be just as well off becoming a chef because you love to eat, even though you hate to cook.
Making video games is a shit ton of fun, but not because it's video games. It's fun because it presents unique problems to program around and solve, and allows you to fully play with real-time programming and graphics concepts.
>it's currently filled with raging SJW types capable of a lot of mental gymnastics
Is this true? What's up with "creative" or "artistic" subjects being full of retards who don't understand the science behind racial differences?
>mfw I code in C style but use C++ namespaces and templates
I've actually had some experience in High school with programming.
2 Years of Java and 1 year of c++ but I gave up on it when the teacher was switched out on us on my senior year with some former marine corps programmer who took all the fun out of it for me and told me my dreams were worthless and that video game programming was a shit dream.
I have not programmed for 5 years since then and just recently decided that its what I want to do with my life as I remember how much fun I had learning programming with my first teacher.
The last thing I programmed was a mini old school zelda adventure game with 5 other friends in the class. It was the most fun time doing homework I ever had.
I loved programming the replacement teacher just made me so mad and hate myself and my dream.
A lot of people are against Sim Loli though.
>A single semester of computer science will probably actually put you above most "indie devs."
No it won't.
>You make video games because you love programming and video games
100% this, even if you flunk out of making video games if you love to solve problems it really shouldn't matter.
I'd say that everyone in college should take at least an introductory computer science course.
I'm not saying they need to learn to program, but a basic understanding of the parts of the computer, basic troubleshooting knowledge, and at least barebones knowledge of how a computer operates are all nice to know, especially in an age where just about any job you get is going to require a computer in some fashion.
I'm kinda interested in graphics programming but I tried reading Bjarne Stroustrups book on C++ and gave up after 3 hours when I couldn't even work out how to install Visual Studio so I could compile a program
thanks anons. my dream is to create spiritual successors to thief much like dishonored has, but with less focus on being an unstoppable killing machine like corvo and more emphasis on being indecipherable from shadows.
I agree that mathematics and logic are important. After all, programming is basically just those things applied in computers. My computer science course included a decent amount of mathematics, and I did a bit more on top of that because I took the games stream, which required some physics and advanced maths for graphics programming.
When I graduated I was a head and shoulders above my regular CS fellows, and I have come to realize in the years since that my university's course structure was far better than many other universities in my state.
tl;dr Certain elements of Math & Logic are important to programming because I have anecdotal evidence
>So is material based?
No, it's never done in the fixed function pipeline. It's in the programmable pipeline, so it's separate from the concept of "materials".
Unless you're talking about something besides OpenGL and Direct3D, in which case Material can mean something completely different. I'm a GL guy.
Well, I guess you're right about computer scientists not being garbagemen, at least.
Because Java has garbage collection.
You mean games that aren't ever completed are created in C because you have to pass a billion arguments to get anything interesting done.
C++ is just C, except you can actually get large projects done.
>tl;dr Certain elements of Math & Logic are important to programming because I have anecdotal evidence
Nobody denied this. One simply has to point to a game that was made without advanced knowledge of programming or math and that destroys the "you have to take CS" bullshit arguments ITT.
I don't know any of the top of my head but I've heard it from a few devs before. Probably flash game devs.
I mean I installed it but I had no idea what I was doing and I don't even know if I got the right version
The book just said "refer back to section X to for resources on how to compile a program" then there was nothing there, so I did some googling and apparently Visual Studio is good for compiling C++ source code,
Hello World in windows assembly:
HelloWorld db "Hello, world!",0
msgTitle db "Hello world program",0
push MB_ICONQUESTION + MB_APPLMODAL + MB_OK
push offset msgTitle
push offset HelloWorld
So, what's the differences between C, C# and C++?
If you learn one, do you know most of another?
Video game programming for a big company is kind of a shit dream.
Not that it's unreasonable, but because programming video games for a big company is shit. It's not fun at all.
The best is to find a good company to do fun regular programming for and do indie games on the side. That's what I do, and I've never been happier in my life.
>People responding to this retard seriously
Come on, guys. He honestly just said that programming, the very core of game development, isn't very important in game development.
You're being trolled.
It is. Go there now and check how many people are bitching about Loli Rape Sim. Maybe it's just a few dedicated shitposters, but the situation is out of control. They start shitposting everytime the dev posts his game.
C is the most basic and pure form of all those languages there. C++ added OOP and a couple of other features into it; some people appreciate the added options, some people think they're just muddying up what was already a perfectly fine language.
C#...I don't have any personal experience with it, but from what I hear it's more similar to Java than it is to either C/C++. And that's typically not a good thing. C/C++ are far from perfect but Java is quite a few steps below either.
>spend like 20 hours learning sfml and building simple prototypes
>start working on simple ball game and quit before I progressed past having collision between objects and simple gravity
I know its not an ideal dream.
Its still my dream though. I just want to make a fun videogame that thousands of people enjoy.
I want to be able to see my game packaged on a shelf on some game store and say I helped make that.
I know the horror stories and I don't care I just want to make video games man.
Mmaterials in shaders pretty much mean some uniform values that you pass to the shader for instance exponents and shininess values for specular lighting etc, to make something seem more or less shiny, etc etc.
>One simply has to point to a game that was made without advanced knowledge of programming or math and that destroys the "you have to take CS" bullshit arguments ITT
No it doesn't. An exception does not destroy the rule.
I can point out Bill Gates and Steve Jobs all I want, but that doesn't mean you're more likely to become a billionaire if you drop out of college.
Most libraries will take care of the higher-level math for you, so it's not ESSENTIAL, but you definitely are at a disadvantage.
Please, at the very least, become familiar with arrays.
C is an old language that provides a bunch of power if used correctly. C++ is basically an extension of the C language to include classes and a bunch of other OOP-style stuff. C# is basically Microsoft's answer to Java, with a C-like syntax. C# is an interpreted language so it's slower than C++ but it's also really friendly to write in due to the excellent IDE support provided by visual studio. It's a really cute language that can do a lot of cool stuff due to .NET - C++ is used in games dev because it can produce really high-performance code that interpreted languages can't because it has access to memory management and a bunch of other useful shit IIRC. Thing is for most games, you don't actually need that performance and the hassle of coding in C++ with weak intellisense and all its quirks is probably not worth it unless you're coding a serious 3d engine.
>So, what's the differences between C, C# and C++?
The differences are small but there's a lot of them. One of the major ones is that C++ and C# are object-oriented while C isn't. C++ was sort of meant to build upon what C was but since it came out C has been updated to be very similar.
As stated by >>258938192
You can basically code using C in C++ and vice versa. C# is a little on its own since it requires the .NET framework and is syntactically similar to Java, but it's still very closely related to the others.
Going to be learning Java soon.
>MFW I will be able to make a futuristic 80's inspired text adventure/RPG
>Logical error in your code
>That fucking feel when you fix it
I love this shit
I don't care if it was a shitty mini text adventure game either.
As a longtime member of AGDG I can confirm that due to the rise of the #agdg tag on tumblr (from devs using tumblr as devlogs) it's getting a lot of SJW and jewish attention.
>attempted censorship of Sim Loli
>discussion of microtransactions and intrusive monetization (ads)
>Kickstarter and Greenlight viralers
Depends on the shader. With GLSL you handle that yourself, and it's just a vector value.
"Shininess" is done with a standard reflected dot product calculation. That is to say, specular lighting is done with the raw math, rather than a "material" the pipeline knows how to handle.
>mfw this thread
what the fuck do these words mean
what is an "object" "class" "return" library" "assembler" etc
>An exception does not destroy the rule.
Many exceptions obliterate your retarded fucking rule.
>but that doesn't mean you're more likely to become a billionaire if you drop out of college.
Doesn't mean you're likely to become a billionaire if you go through college either, in which case you're wasting resources.
I'm not saying that a CS degree wouldn't make you a better game developer. I'm saying that a CS degree isn't something most aspiring game developers are going to get, and indeed I wouldn't be surprised if most successful "indie game" devs didn't have CS degrees.
ah, that was just a quick thing I made. I'm going to revise that shit either way. I sometime use ii and jj instead of i and j to be able to tell them apart easier. Do you like this more? Sorry, no syntax highlighting on this one
There's no difference between GLSL and HLSL in this one. They both use materials. Specular Lighting has the shininess value which you can play around with to change the 'look' of the object.
Same. It's out of control. People think they can viral their shit in our thread just because they pop in once every other month. And they start a shitstorm every time a local hero and AGDG treasure like Sim Loli posts. It's a mess in there. I told them to stay away from tumblr, but they didn't listen. How to fix AGDG:
>no shilling at all, not even from long time members
>no commercial games
>anyone that shitposts sim loli gets instabanned
Would solve damn near everything.
It's notepad++. I actually wrote that in VS. I usually work at night and I can't stare at a white screen for extended periods of time when there's little lighting in the room, so I chose one of the dark default skins
A material is an abstraction. Shaders have no notion of materials, just uniforms and textures. The distinction is made because of the differing storage and access patterns, not because of prescribed use.
>What's wrong with endl?
>std::endl isn't '\n'
>it's '\n' followed by std::flush
Nothing "wrong" with it, but flushing streams has a small but extant cost.
Literally will never matter until you want to worry about multithreaded logging or are writing out at least tens of thousands of lines per second.
I'm not involved in this argument but I find your stance against getting formally educated disturbing. Is american college really bad or something? I'm an ausfag and going to university was probably the best thing I ever did.
They don't use materials. Any concept of materials is only what you imagine.
"materials" are abstractions. If you use the concept to make things easier to visualize, that's fine, but neither of those languages inherently has any concept of a material.
If you amortize the (essentially negligible) costs of a flush every time you write std::endl to a single flush once per frame, then yeah, there's a minimal performance benefit.
Or you could just write a newline and not std::endl.
An object is like it sounds. Trying to put it into layman's terms, you stick a bunch of variables into a pre-described "class," and then whenever you need to you can create an "object" of that class which contains all of the variables already.
Sort of like this:
You create some code for a "Person" class which contains the variables "name," "age," and "profession." Then you can create an object of that class (e.g. personBob would have name=Bob, age=27, profession=gigolo, personClara would have name=Clara, age=13, profession=student).
Many functions in a program are set to "return" a value based on their inputs. For instance, a function you create to add two integers would "return" an integer, the sum of those two integers.
Assembly is...okay, so, you might have heard that all computers use to speak amongst themselves is binary. That's an oversimplification, but it works for our purposes. The computers use binary, but you code in English, and assembly is what is used to translate your English code into binary.
Again, much of this is an oversimplification, and you can probably get better examples by Googling some basic programming tutorials.
Don't know anything about programming so thought this would be a good thread to ask, is it true when they say multithreading software is hard?
I heard some other coders say that effectively getting a game to use more than 4 cpu cores is hard and tedious and can make the engine crash easily if data from one thread overwrites data from another thread or something like that
do you think devs can use all 6 available cores to them in the new consoles or is it just too hard to get software to spread across 6 cores?
>I find your stance against getting formally educated disturbing
I find your retarded belief that if we suddenly told everyone to study computer science, everyone would become computer scientists. Sorry, but most people are stupid and uninterested and you're just wasting resources that way. And you don't find any of this "disturbing" you hyperbolic jackass. Go suck some nerd's pencil-dick on reddit.
>Is american college really bad or something?
I've heard American secondary education is the best in the world.
>was probably the best thing I ever did.
Cool. Too bad not everyone is you.
Why are programmers and engineers such arrogant douche faggots?
Okay, thanks for the explanation anons.
>American secondary education is the best in the world
I'm pretty sure the reason for american unis to be at the top of all rating lists is because the rating agencies are american themselves and are biased
The fuck are you talking about? "Material" is just a buzzword that means varying the shader's properties concerning the way the object is lit to give it a sense of being actually made of a different 'material'.
Unrelated to the thread but I've been researching how to solve merge conflicts for a plugin which would allow people to write programs which each other in real time.
How useful would such a program be(all it really would do is offer some basic hosting options and send the same info to all users currently connected)?
>mfw people get mad when I talk about performance enhancement through architectural decisions such as data oriented design
You shouldn't need it. XNA supports making games for both windows and xbox, so maybe you're just trying to create an xbox project? I've heard it misbehaves in Windows 8 though.
Be honest with me /v/. Is it possible for a single person with the help of his friend who can do 3D models to make a game on the level of
Either give an example, or get the fuck out.
Calling names doesn't prove your point and only makes you seem like a shitter.
Also, nobody fucking uses either cout or printf in their final game product.
I heard it gets to a point where you just can't utilize more than a certain amount of cores because you can't split certain things across lots of cores easily and there's only so many operations a game engine does that can be running on different cores each
US has some of the best Unis, but there are many Unis all over the world that are top notch.
Saying that a Uni is good because it is in the US is ignorant though,
In the end the University doesn't really matter, if you don't devote yourself to your goals you will fail no matter what university you attended.
>tfw like programming but haven't done anything more than some small projects in python
>always out of ideas and lack dedication to do anything
I hate myself
>mfw some neerd was struggling with data oriented design near me
C is the best language to learn programming in. Why?
>small number of language primitives - no manual required
>WYSIWYG - no overloading or encapsulation
>basically can be serialized into machine instructions - makes sense
tl;dr it's fucking simple
>What is an:
A location in memory that has a value. "Object-oriented" is different and refers to a language that allows polymorphism (one thing handling multiple types of things) and inheritance (one thing can be based on a previously defined thing)
Only in object-oriented languages. It's basically a custom predefined object. For example you can make a class called "car" and it can have variables associated with it like "make" and "model" and functions associated with it like "accelerate" and "honk".
The end result of a function. 2+2 returns "4".
A list of premade functions and the like.
When you write a program it needs to be converted into something the computer can actually understand and that would be assembly.
C++ is the master race as it can be used to do anything.
Java is a cheap "easier" language as there is no pointer and no need to delete objects.
pic related, my technician degree project I had to work on with 3 other mates.
I'm glad it was done holy shit working with others is hell
I dunno man you just gotta roll with it. People have strong opinions.
My favorite is this one Android dev, Romain Guy. Back when I was developing for Android (this was way back in version 2.x and stuff), I would come across so many stackoverflow and google group postings of like 50+ people trying to figure out some workout for some stupid thing Android does, asking "How do I do X if Android does Y?"
Then you scroll down and you see this faggot Romain Guy. His fix?
>Don't do X then.
His shit doesn't stink and his code is the most brilliant thing on earth and god's gift to man. If you're having a problem with it you're either just plain retarded, your design is wrong or you're using it wrong.
I saw this pattern repeated so many times for so many different things. Fucking hilarious.
Diane Hackborne is a bro though.
I try to operate with as few threads as possible, since adding in threads means you have to worry about synchronization and shit like that. Further, anything with threads is an EXTRA level of bitch to debug.
That being said, I didn't have the greatest teacher for that class and it strikes me as the kind of thing that's not particularly difficult once you fully understand the concept. I just...didn't fully understand all of the concepts.
Basically, you want to schedule your operations such that no core is idle at any given time. So you don't run your operations through a pipeline, you shuffle them around until there is no empty space.
That's not what "buzzword" means.
It's an abstraction.
Shaders don't have "properties".
Most importantly, it's an abstraction that does not exist at a language level. GLSL "has" materials as much as C++ and C do.
Neither. Object-Oriented Programming is a highly common programming paradigm.
C++ is OO, but it also has a bunch of other bullshit to deal with that you probably won't need and will only complicate your learning.
Java is strictly object-oriented and was the language I learned first, because the compiler will tell you where your errors are so that's nice.
C# does everything java does (except ridiculous multiplatforming) but better, so I recommend that. Grab yourself a development environment (I use Visual Studio 2010), and if you can, try to find some of the microsoft learning shit for C# programming. I reviewed some of those materials at one point and it looked like a great way to teach yourself some OOP principles and to learn about some features of visual studio too
I always wondered.
I'm studying programmation at school. My goal is to make some games. Nothing huge, just some game that I can play on my phone and shit.
Let's imagine, if I make money with a game. How would we share the money if there's a guy doing the art, a guy doing the music and another one doing the programmation ?
>tfw studying electrical engineering but kinda wanna switch to computer science
we had a course recently about numerical analysis and it was mostly matlab programming, and it was actually kinda fun, albeit frustrating sometimes
oh well, soldering stuff isnt that bad either
So is coding a game to effectively use 6 CPU cores as difficult as I've heard?
Yeah but I really wanted to allow curved shots. It makes sniping way harder but it looks so cool.
Oh hey, guy. Yeah I haven't done any recreational programming for like 3 months now. I think working as a software developer kind of leaves me burned out, so when I get home all I wanna do is play vidya, not make vidya. Also reading all this five guys bullshit just makes me depressed about how broken the industry is.
>Shaders don't have "properties".
They do, they are called constants and you can pass them as uniforms. Have you ever written a shader? Shininess can be changed per object to make them look like they are from different 'fabric'.
>implying I even browse 4chan
My friend linked me to this shithole, but thanks.
>Let's imagine, if I make money with a game. How would we share the money if there's a guy doing the art, a guy doing the music and another one doing the programmation ?
Programmation is not a word. "Programming." One guy does the "programming."
Anyway, that's really a question to decide amongst yourselves based on how much each of you think your work adds to the whole. If you're deadset on proportional pay then the programmer would almost definitely be earning the most, and depending on the game the other two are fighting for scraps.
That, however, is a very good way to quickly lose friends.
i think i'll have an opportunity to do at least, i've only read one year, starting the second next week.
i chose EE over CS because i wanted to make cool effect pedals to my guitar
I cant design code without seeing what im doing.
visual basic is very helpful because i know exactly what im making but when its just code i dont know how its turning out so i cant do it.
>So is coding a game to effectively use 6 CPU cores as difficult as I've heard?
How would you split a program 6-ways?
You could do rendering on one core, updates on another, physics on the third and networking on the fourth. What about the other two? You can use them for some specific function you want to happen faster and can be parallelized. IN GENERAL, though, you won't have perfect parallelized code and sometimes you can even harm your performance by trying to make something multicore, due to OS optimization of distribution.
As far as I can tell 'component-based' doesn't have a clear meaning. Best definition I've got is it's like in Unity, where you can attach a 'component' as a child to any object, including other components. These can include behaviours, models, input schemes, AI, etc etc.
So when you want your player character, you put together a structure that contains the various components of what that entity should do, and then it all just sticks together and works.
C++ if you want 3d
Java w/ Slick if you want 2D (or just use gamemaker or whatever); Python with pygame if you want to prototype quick
Unity if you want to port to a phone
C/C++ w/ SDL if you just want to goof around with a pet project
i know precisely what you mean
i haven't made ANY progress on my game in probably a month because working 9-5 as a web dev made me sick of hammering out code pretty fast
but now i'm back at uni so maybe i'll write a dialogue system one of these days
one of these
Also C# has access to anything in the MSDN documentation, so you should just use that.
You can program in any language you want to, but C doesn't even come with intrinsic error handling worth shit. You will waste all your energy building boiler plate code before you finally get to any actual game logic. Have fun taking 2 years to make a game you could do in C#/Java/C++ for 6 months.
So M$ and $ony dun goofed hard by opting with 8 weak cores instead of 4 stronger cores in their consoles?
NO NO NO
You're making the beginner's mistake of thinking of it this way.
Basically, you have one thread (or job if you want to get meta) whose purpose is to schedule "jobs". A job is an atomic operation, such as a collision test or a state machine update. The key to these operations is that they can be executed in parallel without stepping on each others' toes. As the job list is populated, the worker threads (one per core) run in an infinite loop of claiming a job, executing it, and repeating.
This is the basic framework of a multithreaded game engine, excluding things like dedicated I/O or audio threads as well as GPU compute possibilities.
What's wrong with A*? In any case, if your areas are large enough that pathfinding is taking up a considerable amount of processing cycles then I would say you should probably be looking at creating a specialized pathfinding algorithm for your specific case.
Well, I am reading C# right now and while I admittedly have the same feel I do know that it's a thing that takes years to get into and that I just gotta keep at it.
But honestly, it does help to know that I'm not the only one that feels like this and that can be enough encouragement to keep going.
In English it's "programming," which is a type of noun called a gerund
I'd recommend starting with Java. It's highly inefficient, generating massive amounts of syntax at assembly through features such as the garbage collector, which will manage your memory for you. Once you can put together a modest working application (5000 lines or so) with working examples of inheritance, polymorphism, overloading and overriding, I'd recommend moving on to C. This will teach you how to handle pointers and manual memory management, and how to mimic OO programming using structs instead of classes. The fundamentals of OOP and memory management will leave you ready to assimilate other languages with relative ease.
You don't need to understand them necessarily, just know that matrices can be used to represent transformations, quaternions and vectors can be used for orientations and positions, and so on.
>I'm terrible at maths, just how much do I need to know?
Computers do everything with math. If you want to understand what you're telling the computer to do, it helps if you have a grasp of some mathematical concepts.
That's not what a property is. That's a variable.
> Shininess can be changed per object to make them look like they are from different 'fabric'.
What? Shader languages have no concept of "objects". "shininess" is not a language feature.
Pic related. It's a fragment shader for specular lighting. Notice that there are no language "properties", just uniforms and varyings (which are standard variables), and there is no language concept of materials nor objects.
Learn C/C++. You'll be programming in C++ if you ever make it to anything genuinely serious, and C# is also good to know, so you'll have some good background before you jump into that (although C# is a bit different). Other languages are all going to be simpler/give you less power; might as well learn it right the first time instead of being babied and not realizing how much you've been omitting from the process.
It's much harder to architect things that way. However, if you set your scheduler up to deal with cache coherency and stuff you can toe the line between job-based architecture with system-based architecture.
shot in the dark, but does anyone know of a good tutorial to implement ribbon trails in 2D? I use the average normal of each mid point but I keep getting overlap problems at sharp angles because offset points overlap each other.
Learn whatever works for you.
Look up any language and you'll find a list of decent/good games made with it.
To be honest I actually studied a few different languages at the same time to get a grasp on the basic stuff. I ended up dropping all but one as I found good support and that it just seemed more intuitive to me.
>passionate as fuck about programming and vidya
>never studied in it
>downloaded a lot of books and took a lot of notes, basically learning by myself at least to the point where code was readable and I could write small simple programs
>finally get into a computer sciences course
>it's in fucking french
>I've studied in english that whole time
>mfw after first course
all these fucking terms, I know them but in the wrong language. shit is confusing as fuck and i'm already a very confused person
but programming just gives me that thrill man, I love it when you're looking for the mistake you did and then you fucking find it, and everything works out perfectly. and running my programs and trying to break them in every way possible to make it as idiot proof as possible
Shit I don't think I ever got that far into it
I don't even know what most of those words mean.
I know only the most basic math required to graduate. How much more should i know to understand this stuff?
I guess that depends on exactly what kind of impact you expect a crushed knuckle to have on how the player moves, attacks, guards, etc., but a general rule of thumb is that any added amount of complexity adds roughly "shittons" of hell.
You can get away with not knowing all the formal stuff, but I found it useful to deal with the theory before putting it into practice. The following things will generally be useful:
- Boolean Algebra (understanding how to structure a logical statement, eg. A AND B vs A OR B)
- Understanding the idea of a function (eg. F(x) = x^2)
- Order of operations
- General arithmetic
Some other stuff is situational, depending on your application
- Linear algebra (for graphics + physics programming)
- Physics, usually just kinematics and dynamics (for physics and some AI programming)
- Trees and Graph theory (for some data structures)
- Sets and stuff (for advanced collections)
>I'm terrible at maths, just how much do I need to know?
LEARN BACK-END WEB-DEV
u = postrequest.username
p = postrequest.username
query = FROM db SELECT username, pass WHERE username = u
if not uqery:
print(YOU ARE NOT IN DATABSE!!!)
if u and (secret_function(p) == pass):
NO MATHS REQUIRED!!!
hey anon, I though I was terrible at maths too but believe me the actual math course is a lot harder than the actual maths you'll have to use in a programming career
just go in it man, and study a bunch
>Pay 20 dollar monthly sub for Unreal Engine 4
>Have access to the the current version of UE4 and all its tools + sample projects
>Don't get updates to engine/new projects
>Pay 20 dollars again months from now if there are updates you want
Unreal Engine 4 uses C++ but also lets you use Blueprints, which is visual graph based scripting that is pretty great if you don't know C++.
I would suggest using Blueprint while learning and trying to use C++ as much as possible.
As for languages to learn if you are actually interested in programming, learn BOTH Java and C++. If you learn Java first look into how the Java Virtual Machine manages memory and learn about what pointers are so you aren't a Java babymode retard.
You all have many opinions on what languages to start with, but what is a good beginner tutorial?
I'm assuming you all started in different places, so what is all of your opinions on what tutorial is best for the absolute beginner?
Get 3D Studio Max for starters if you want to do 3D modeling.
Blender is a monstrosity that's 1000 times harder to use.
Then follow tutorials to learn the tool.
I am also horrible at art, I just don't have the patience required. If you try to rush through it you won't make anything worthwhile.
You get good at art literally the same way you get good at everything. You just keep fucking it up until you learn how not to fuck it up quite so much, and then you keep on fucking it up some more.
With art, however, more than most other things, it's particularly important to get actual, tangible feedback. You need to get that shit looked over by people who can tell you what exactly looks fucked up, and who can HOPEFULLY give you some pointers on how to fix it.
Back in the day /i/ was good for this, but I haven't been on there for years so I don't know what that board's like anymore.
For graphics programming, Linear Algebra (matrices, vectors, transformations quaternions).
For physics simulations, Calculus (I wouldn't be able to say up to what level).
For IA, Probability and Calculus.
Also for somebody who wants to learn, in my opinion the best approach would be to download Unity, and try to make some games using C# (it's becoming the favored language in Unity). It's absolutely essential those games are finished, because if one day one wants to get hired by a company, they would only care for finished work you can show.
Then, afterwards, one can make the jump to C++ and something like Unreal Engine 4.
In fact C#-->C++ is a good route, because C# is closer to C++ than Java, and you could keep using VisualStudio (since both languages are accepted).
Also this is a great book about all the pieces that form a modern game (the second edition just came out, but the first one is easily foundable in torrents):
It's the fundamental idea behind the most common programming paradigm. Basically it allows you to describe your own custom 'data type' (normal ones include numbers, text strings, etc). For example:
represents a person with a name and a whole number height. You can extend that class:
class Student extends Person
This is a student, with a name, height and a course. You can do anything with a student that you can with a person, but more.
It's mostly just a way to structure ideas in a relatable way.
>Object Oriented Programming
Two things. Polymorphism and inheritance. Polymorphism is when the same function can use different data types. For example a length() function that can be used to give the length of a string or the number of members in an array. This function accepts both strings and arrays. It's polymorphic.
Inheritance is when a data type or function can be based off another one. For example you could write a function PenisLength() that inherits from length() but adds "inches" to the end of everything it returns. It has the same abilities as whatever it inherits from has plus whatever else you want to add on top.
These two things are great but people tend to be snooty about its "purity"
So I can just learn a little bit then? That's not too bad.
So advanced stuff is generally only for specialized applications? Ah I see.
I don't know what that is, but I will look it up, thanks.
Thanks for the words of encouragement anon, I'll try.
I haven't personally gone through these ones, but Microsoft does a pretty good job of explaining themselves. You might run into a problem where they're explaining the language assuming you already know some stuff about object-oriented programming.
I plan on making a 3D game, I'll try out both programs and see what I can cook up.
this is the truth
if you use objects you are a communist
I'm this guy so I'm hardly an expert >>258930638
I used a combination of Beginning Visual C# 2012 Programming by Watson to learn C#.
Torrent here http://kickass.to/beginning-visual-c-2012-programming-v413hav-t7000992.html
To get a handle on most C# stuff. I still haven't really used some stuff that is syntactically kind of confusing for me like events, but there's plenty of info there to pick everything up.
And I used the first half of the O'Reily Learning XNA 4.0 to learn basic XNA shit for 2D games.
I did have some prior programming experience but the book is good enough that you could probably just start there as a complete beginner.
>So advanced stuff is generally only for specialized applications? Ah I see.
Yes and no. Having a good understanding of maths will generally help you understand problems related to maths easier. It's alright though, you may well be able to just pick it up as you go.
The number 1 advice I can give anyone for programming is to do a lot of programming. Encounter interesting problems and come up with solutions. Read shit on stackoverflow about your problems and understand what the 'best' solution is. Just do it a bunch, and like anything else in life, you'll get there.
Cool, I started on C++ (which was probably not the best idea) I should try UE4 out and see if it can help me learn more. Is it just scripting like Unity, or is there more to it?
The only matrices I learned in my day was this shit
use unity. you can jump in right away and learn as you go. i've been learning c++ for the past week and what i can do so far, compared to what i was able to do when i just jumped into unity after watching 40 minute crash course on youtube, is laughable. there are zero benefits to c++ other than saving a couple thousand bucks if your game is a hit.
OOP is for fucking cleanfreak pussies
>Polymorphism is when the same function can use different data types
Nope. Polymorphism allows two different (but related) data types to have methods/functions with the same name, and the version of the method that gets used in a call is resolved depending on the type of the object on which the function is called. Same name, multiple different bodies, that's the "Poly-"
What you were describing (a function accepting different data types) is generic programming, which is a way to design functions so their algorithms are able to operate on different types of objects (that's why those functions are considered "generic").
I'm a software developer professionally.
I primarily use C, C++, Ruby, and Lua at work, with pieces of Haskell.
I only do graphics stuff on my free time.
Shaders have "properties", "constraints", and "materials" as much as base C does, which is not at all, at a language level.
In fact, I'm a little baffled at your use of the word "constraint" to mean the same thing as "uniform" here, given that a constraint is a language restriction (or some other restriction), and has nothing to do with a variable passed in. Constraints are syntax-related solely.