Vidya Dev

In terms of being able to understand how video games are made, what is the best programming language I can learn . C++ or C# , which does Sup Forums prefer?

Other urls found in this thread:

youtu.be/qdwUkYrHosk
sfml-dev.org/tutorials/2.4/window-window.php
twitter.com/AnonBabble

most anything is fine if you're just being casual about it, it's not about the language but the approach

when you actually desire performance and/or portability you can worry about the language

only thing i would recommend is not to mess with memory management until you understand how to properly work with that, or multithreading, so uh, make a turn-based game...?

English is my favorite language

THERE ARE NO JOBS IN VIDEO GAMES, YOU ARE WASTING YOUR TIME

learn c# though cause at least when you fail you can work in enterprise systems or something.

C++ is much deeper but C# is more practical now days unless you're hardcore.

Who said anything about a job you autismareeno?

C#, just because I use it more
I do it for fun

What so you're going to go to all the effort of learning to program and still work a shitty low paying job?

maybe he just wants to make games on his leisure time
why are you worried about what he does, dad

Turn based games are harder to make than a normal game

what makes you say that?
please explain your logic

>THERE ARE NO JOBS IN VIDEO GAMES
I guess video games are made by AI then

>made by AI
his love is real
but he is not

C# pretty much like Java is extremely easy to learn and do something useful with it, but you will never learn how a computer (or games for that matter) works by using those languages alone.
C# uses managed code, which pretty much like playing in a sandbox, it's safe and comfy, however it's limited. C++ is like playing on a beach, you don't have the same limitations as in C#, but you have to built pretty much everything from scratch, and you need to understand how a computer works to do that.

Companies use C# and Java because they are supposed to be retarded-proof.

Not him but I feel turn based gets a bit awkward, unless we're talking turn based like...card games, stuff like that.

Easier stuff is simple platformers and the like, plus that can get you into some basic physics which is useful.

C++ is the de facto language in game development. C# is mostly useless outside of Unity projects.

it's not awkward, it's very easy to program stuff like that, i want to know what's so hard compared to something like a platformer where, and i'm not saying it's hard, but it's a bit more complicated to program the input management section of code, along with collisions and resolving degenerate cases based on collisions and race conditions to avoid or minimize bugs

with turn-based, you have way less chance of facing the above problems

It doesn't fucking matter. If you want to make games, just learn Unity, or some other game making package, and then pick up whatever else you need as you go.
Learning a programming language is the wrong place to start if your goal is JUST videogames. Especially now.
If you really want to learn programming, do some free courses on HTML+Javascript or Python. Don't waste your time on C/C++, only learn them later if you feel you need to for some job or framework. I am an engineer who works all day in C/C++, unless you are part of a professional team working on a AAA console game, or already understand all the components necessary to write a game with these languages, then it is not worth it. You will spend 100's of hours re-implementing things (even with frameworks) that Unity will give you for free. Of course, you will get full control if you do it yourself, but that is lightyears beyond your capacity.

If you're casually making Indie games, the language hardly matters. However, if your trying to enter the industry, C++ is the standard.

>If you really want to learn programming, do some free courses on HTML+Javascript or Python
This is one of the most retarded things I've read this year.

C is bad and all languages based on C are garbage.

You must not read at all then, I am surprised you even know enough to post.

Because programming is funyou stupid normie

this, i program everything in mirc script

Is there any list of easy vidya projects to train my coding skills?

Literally every major language is C based except python and old ass unused shit like cobol/lisp/basic. go away fedora tipper...

Make a Minecraft clone in under a week
youtu.be/qdwUkYrHosk

C# is probably a good middleground for strongly typed languages. It's object oriented and doesn't require manual memory management. This is accurate to how most PC and phone games are made. C++ would be more accurate for console games

C++ if you want to get your hands dirty and have a steep learning curve

C# if you just want to get to the logic of it and more quickly explore what you can do with code.

Honestly, java isn't a bad starting point with the program Processing. its a library and IDE that has a lot of drawing functions and some math objects (vector2s) that really help you visualize your code

No. Its like asking how to change the oil in your car, when your car is a disassembled box of parts.
If you want to jump into something, start with Unity, Game Maker or RPG Maker and make use of the built in scripting.

Sorry, I don't like coding 3dshit

i'm referring more to something like that Sup Forums rolling pic with different easy projects to train coding like Pong and such.

For the love of God just learn C, or at the least the simplest subset of C++, which is almost C.

>object oriented programming

Biggest fail of the industry?

What the fuck are you on about? Turn based lets you avoid most of the problems you'd run into with a real time game. Even design wise most people who play turn based Vida don't seem to care if you just make your game a grind fest devoid of strategy filled with fancy abilities that just make you more powerful against x type creatures. The only time this isn't the case is if you wanted to make a serious strategy game, but they barely exist and we now actually have the tools to make good AI for them.

Biggest fucking waste of my time ever.
I can't believe people actually program like that.

Not to mention with game programming.

C# allows for easier implementation of design patterns

You had better be joking user.
Don't do this to me, don't start me now.

hybrid is the future, your precious functional programming will never be the standard

OOP, in the case of the Common LISP object system, is so fantastically awesome and underrated that it shocks me that every subsequent language didn't just clone this and be done with it.

C++/Java style OOP, interpreted in the style of "make a gigantic hierarchy with zoo animal classes" is absolute garbage tier shit of course. The whole point of object orientation is basically to just be a means of allowing you to program around Liskov substitutble structures.

The hell is hybrid programming

I mean there's also fags here saying object oriented programming is a failure, so I assume most people in this thread have never programmed.

C++ sees more widespread usage, it's the most commonly taught language in higher education computer science programs. C# sees inflated use in vidya because it's the language Unity is programmed in. It's also a higher level language, which makes it easier to get into.

If you care about ease of access, I'd say go with C# and try Unity as a vidyadev source. If you care about programming or computer science in general, then C++ is a stronger choice.

But that's just if you want to make vidya. If you want to
>understand how video games are made
Learning a language isn't going to teach you this. Video games are made in every language, they're not exclusive to one. If you want to understand how video games are made, you need to understand logic and computer science in general. Go pick up a comprehensive book about logic and design and object oriented programming and read it.

Or go to school.

It IS a failure.
If I can at the very least stop a single person in this thread from going down that path, I will be happy.
Not for my sake, but theirs.

How does Common Lisp do it all?

Start by getting comfortable with C# console applications. That'll teach you about variables and OOP basics.

1. game about guessing a randomly generated number (game flow, user input/output)
2. Wheel of fortune (more complex behavior, rendering the board).
3. 1v1 RPG battle, where monsters are loaded from files (OOP, class design, serialization). Also add the ability to save and load your character.

Do these and come back.

>b-but i don't like it
you don't like developing skills and learning new things?

fuck off casual
git gud

Fuck off, someone will actually listen to you and get fucked when they go in for a job interview. OOP is good, especially when working in teams.

posting it just in case anyone is interested

>It IS a failure
I'm still waiting for an argument.

I'm not saying don't learn it, just never use it.
And I say that because of the pain it caused me, not because of some fanboy elitist mentality.

And that's just the maintainability portion of it.
Then when you get into the performance detriments that stem from OOP design, it's just a second kick to the stomach.

Java if you ever want to touch android games or apps. C# for PC games.

Once Unity dies (which won't be long, given the rate at which people are beginning to directly associate it with complete trash), C# will be dead too.

If you've ever worked with a heavily object oriented codebase, you'll know the arguments against it subconsciously. It's just that no one really second guesses it because those are the patterns, that's how everyone learned.

I don't even know if it's really OOP's fault, it really all comes back to C++.
Because you can define 'objects' as anything.
But it's those methodologies that C++ engendered that caused the real harm, which leaked into Java, which leaked into the rest.

Such as? Give languages faggot

C++ with SDL2 if you just want to do some simple 2d game programming

I did Reimer's tutorials with C# and XNA a while ago but XNA is pretty dead these days. still not bad for learning i guess

Sounds like learning C# first is good for grasping the concept. Move on to C++ once you've ran into dead ends?

Why would you bother with bytecode languages for games? Go with C++ and clang.

Programming is just one part of the game development process (the glue). There are many other factors.

>C++ or C#
You can make games in a variety of languages but C++ and C# are pretty common. And no, just because you dabble in some coding tutorials for a week doesn't mean you'll be able to create a game.

>which does Sup Forums prefer?
Sup Forums is full of people who are just idea guys, much less people who know how to code, much less people who are capable of scrapping together a game engine.

If you want to learn programming OP, just learn Python.
It's good, it's easy to understand.

>And no, just because you dabble in some coding tutorials for a week doesn't mean you'll be able to create a game.

Yes it does. You can make a pong clone in a weekend from scratch, the hardest part is figuring out how to use libraries like SDL and actually compile your project.

can someone give me a quick rundown on functional programming and why some men prefer it over OOP?

C++ is the right choice if you actually make a demanding game and want it to have the highest performance possible. If you're making something very simple or if you're just interested in learning basic game dev concepts/how to do things, you can also go for C# which is nicer/easier/prettier as a language and it would very likely be easier for you to pick up.

F# I assume

Only edgy neets who never worked choose functional.

>You can make a pong clone in a weekend from scratch
Be realistic here. People asking questions about game development here want to create something bigger than a pong clone.

so it's just like the edgy neets who shit on IDEs and claim that using nothing but notepad programs/sublime/LaTeX is the best?

Ok, and if I have a little idea of how C# works, how can I make a game with that?

Letters and numbers? Windows forms? Unity?

A game is a game; unless specified it could be anything from flappy bird (achievable within the same time frame) to a huge 3D RPG. Besides, if you learn to create something like pong programmatically then you've hopefully already gotten a bunch of transferable knowledge.

C++ is a terrible language. Oh sure plenty of successful programs are written in C++, but that's because we've been messing with it for decades, forcing unfathomables horrors unto it until it bends to our will.

>extremely error prone manual memory management
>shitty OOP implementation
>Undefined behavior everywhere
>Implementation defined behavior everywhere else
>inconsistent compiler interfaces
>unreadable errors and warnings
>strings holy fucking shit strings kill me now
>no updates for years then suddenly a bunch of weird new shit every 2 years
>the messiest preprocessor ever
>compile-time code directives that look like someoenr andomly copypasted arbitrary keywords and punctuation.
>const except it's not const
>raw pointers and "managed" pointers
>retarded syntax for anything more than basic keywords
>header and implementation except when not
>linking is always a shitshow
>takes ages to compile
>fucking makefiles. Seriously about every other languages have some sort of standard way of compiling a whole projet but with C++ you better be ready to shove 5 undocumented cactus up your ass and hope it compiles

Not sure about C#, but it's very easy with C++ and the right library.

sfml-dev.org/tutorials/2.4/window-window.php

>object oriented programming
I am dumb and dont know how to program. What is it?

C++ template metaprogramming and smart pointers already make up for the trash parts.

Stick to c++ and integrate python into it and you're doing yourself a favor. You can learn tmp if you need assembly speed performance and that uses c++

In theory, you create objects that represent the "entities" in your program, and each object have it's own data and responsibilities. Objects interact with each others according to a contract.

In practice you make a bunch of classes that are too coupled and nothing ever really makes sense or work right until you decided to disregard OOP and just have data structures that does shit in an imperative way.

It's the idea of organising all your data into Objects.
So maybe we have a pixel, that could be an object.

The problem stems from people overblowing that concept.
So in reality, a pixel is just a colour and a position on the screen at best.
But someone following a Object Oriented mindset might add all this unnecessary functionality and indirection to this concept of a pixel, which is at its core a very simple thing.

You gotta start somewhere faggot. Making a clone of another game is a great place.

Something you should disregard in favor of data-oriented design.

C# if you actually want to finish something.

C++ if you want to spend years making an engine only to end up with a pile of crap that is worse than something that already exists.

Also learning a programing language isn't like learning a real life language. You learn one, and it's easy to learn another within a few weeks. Your first one takes a while because you're learning proper fundamentals along with it.

I program as a hobby and I still don't fully understand what the fuck OOP is supposed to be.

Again, there is a big difference between programming up a version of pong to coding up some massive RPG. If people want to make pong and flappy bird clones then ok but some people think that knowing some C++ will help them pop out an amazing RPG or whatever. It takes time and dedication for those types of games.

Of course. Crawl before you walk and walk before you run. There's more to it than knowing just a little C++ (or whatever language).

I see a lot of people talking about C.

what about lua? lOve2d?

It's nonsense, disregard it when YOU code.
Learn it, but don't use it.

When you start out you have little language wars in your head.
You want to make sure you're using the best language, the best little game library to help you.

Lua is a good starting point.
But it's more about understanding programming concepts.
So don't get hung up on the languages just yet, just learn Lua first.

C is for if you're a performancefag but don't want to learn tmp which is a trip on the rabbit hole but faster

Some people like lua more than python. They both serve the same purpose which is code that can be launched on the fly, just pick what you like more. Python has more resources but both are valid

The problem is that beginners don't even have the knowledge to realize how infeasible such a huge scope is. Teach them the basics, and they'll figure it out eventually.

kinda yes
they have this obnoxious elitism that goes really nowhere but egostroking, inflating their sense of self worth like they were dobson on self-esteem

Sure

Go with lua if you can guarantee that your game won't ever suffer from performance issues.

>98. General Lambert's-Problem Solver
But that's not even that bad. I had to do it for an Orbits class and it only took maybe 4 hours to make. Why is it Fuck You tier?

Learn your ropes with C, then move on to C++ if you need object oriented features, or stick with C to avoid bloat.

>Engineer
>Had some C++ classes
>All i know how to do is console-based number-crushing programs and .txt outputs for databases
>What to mess up with interfaces, maybe even make a small game for fun
I have no fucking idea where to even begin.

You know it's easy as fuck to break it down if you've got a ref.
Anyone here know about how MUGEN works? Then you can understand OOP, as each thing you add towards MUGEN is it's own self contained 'object' MUGEN then calls as it's needed (Stages, characters, lifebars, selection screens, ect ect). It's to allow a lot of secretly made things work together under the same hood.

Proper OOP is like using well-designed data structure but with the bullshit meter cranked up to 13.

Like said, it's good to learn the theory because it does have good ideas, but it's just not practical to code everything in a perfectly OOP way.


Purely functional languages are too much of a pain to get any real work done, except for highly mathematical stuff I guess.

Functional concepts in imperative languages however can be pretty nice. See C#'s LINQ for example. It's so fucking sexy.

Just make ASCII art in the console and have a text adventure

Start converting your number crunching programs into a gui version using sdl or raw opengl stuff.

Oh nice find, MUGEN is indeed a pretty good example of the good OOP stuff.

Lua has the love framework which is honestly a very good leg up for beginners, it cements the ground floor while minimizing any limitations on programming.

It's not nonsense, it's just development and maintenance optimized instead of performance optimized. Given that for games the last one is the most important you have to be careful about your use of OOP in that context.

Video games are literally just number crunching programs with pretty pictures and time delays.

Aku Ankka coodi