|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On December 25 2014 07:14 spinesheath wrote:Show nested quote +On December 25 2014 05:19 McDutch wrote: So I'm here for a little advice. =) I'm a Junior webdeveloper. I'm mainly working as a back-end developer with PHP, Laravel. As of interest I want to get into game development as a hobby. I don't expect to create anything awesome anytime soon, but i just want to learn. Obviously I've googled a lot and a lot of different opinions.
I thought about learning C++ and C#, but then i read that XNA will not be supported on a lot of platforms anymore. Which makes me anxious about getting into it.
I could still learn C#, and go with Unity. For Unity i could even use javascript, which i obviously don't have to learn from scratch, but i feel learning C# will make me a better programmer.
I guess this question has been asked at least hundreds of times, but out of experience i know TL is mostly filled with Wise people who can show me some good insight and point me into the right direction! Since you don't expect to create anything awesome anytime soon, C# will do the job for now. You'll have to get familiar with frequently occuring problems and concepts in game programming in order to become good at it. These problems and concepts should mostly apply to just about any language/framework, so it really won't matter a whole lot which language you use at the start. Similarly with programming languages in general; the majority of skills can be transfered between languages. I personally recommend C# over C++ unless you have a specific reason to choose C++. C++ is a very powerful language, but it also requires a lot of effort and practice to use it properly.
Thanks for your input! Would it make any difference if i would work with Unity using c#? Or should i pick up some c# framework? I heard XNA is going to be pretty useless, but would it hurt to start here? Or do you suggest something else?
|
On December 25 2014 07:55 McDutch wrote:Show nested quote +On December 25 2014 07:14 spinesheath wrote:On December 25 2014 05:19 McDutch wrote: So I'm here for a little advice. =) I'm a Junior webdeveloper. I'm mainly working as a back-end developer with PHP, Laravel. As of interest I want to get into game development as a hobby. I don't expect to create anything awesome anytime soon, but i just want to learn. Obviously I've googled a lot and a lot of different opinions.
I thought about learning C++ and C#, but then i read that XNA will not be supported on a lot of platforms anymore. Which makes me anxious about getting into it.
I could still learn C#, and go with Unity. For Unity i could even use javascript, which i obviously don't have to learn from scratch, but i feel learning C# will make me a better programmer.
I guess this question has been asked at least hundreds of times, but out of experience i know TL is mostly filled with Wise people who can show me some good insight and point me into the right direction! Since you don't expect to create anything awesome anytime soon, C# will do the job for now. You'll have to get familiar with frequently occuring problems and concepts in game programming in order to become good at it. These problems and concepts should mostly apply to just about any language/framework, so it really won't matter a whole lot which language you use at the start. Similarly with programming languages in general; the majority of skills can be transfered between languages. I personally recommend C# over C++ unless you have a specific reason to choose C++. C++ is a very powerful language, but it also requires a lot of effort and practice to use it properly. Thanks for your input! Would it make any difference if i would work with Unity using c#? Or should i pick up some c# framework? I heard XNA is going to be pretty useless, but would it hurt to start here? Or do you suggest something else?
If you just want to make games for the sake of making games, starting with Unity is a better option. There's also UE4 which is great.
If you want to go a little more in-depth and the technical part about them is important for you, going C#/XNA, C#/MonoGame or C++/SFML is a better option. There's also the possibility to learn DirectX and do it all from (almost) scratch, which can be fun but takes way longer.
Also, XNA isn't going anywhere. It might not be further developed, but it's a great tool to make games still.
|
On December 25 2014 08:18 KeksX wrote:Show nested quote +On December 25 2014 07:55 McDutch wrote:On December 25 2014 07:14 spinesheath wrote:On December 25 2014 05:19 McDutch wrote: So I'm here for a little advice. =) I'm a Junior webdeveloper. I'm mainly working as a back-end developer with PHP, Laravel. As of interest I want to get into game development as a hobby. I don't expect to create anything awesome anytime soon, but i just want to learn. Obviously I've googled a lot and a lot of different opinions.
I thought about learning C++ and C#, but then i read that XNA will not be supported on a lot of platforms anymore. Which makes me anxious about getting into it.
I could still learn C#, and go with Unity. For Unity i could even use javascript, which i obviously don't have to learn from scratch, but i feel learning C# will make me a better programmer.
I guess this question has been asked at least hundreds of times, but out of experience i know TL is mostly filled with Wise people who can show me some good insight and point me into the right direction! Since you don't expect to create anything awesome anytime soon, C# will do the job for now. You'll have to get familiar with frequently occuring problems and concepts in game programming in order to become good at it. These problems and concepts should mostly apply to just about any language/framework, so it really won't matter a whole lot which language you use at the start. Similarly with programming languages in general; the majority of skills can be transfered between languages. I personally recommend C# over C++ unless you have a specific reason to choose C++. C++ is a very powerful language, but it also requires a lot of effort and practice to use it properly. Thanks for your input! Would it make any difference if i would work with Unity using c#? Or should i pick up some c# framework? I heard XNA is going to be pretty useless, but would it hurt to start here? Or do you suggest something else? If you just want to make games for the sake of making games, starting with Unity is a better option. There's also UE4 which is great. If you want to go a little more in-depth and the technical part about them is important for you, going C#/XNA, C#/MonoGame or C++/SFML is a better option. There's also the possibility to learn DirectX and do it all from (almost) scratch, which can be fun but takes way longer. Also, XNA isn't going anywhere. It might not be further developed, but it's a great tool to make games still.
I don't want to create games just to create them. I'm interested in how everything works, and i feel with unity i get to much help. Also i guess, when creating games with c++ or c# will make me a better programmer. Which will also help me in webdevelopment. I'll do some research on C++ and C# and will make a decision on what I'm going to get started with.
|
On December 25 2014 07:14 spinesheath wrote:Show nested quote +On December 25 2014 05:19 McDutch wrote: So I'm here for a little advice. =) I'm a Junior webdeveloper. I'm mainly working as a back-end developer with PHP, Laravel. As of interest I want to get into game development as a hobby. I don't expect to create anything awesome anytime soon, but i just want to learn. Obviously I've googled a lot and a lot of different opinions.
I thought about learning C++ and C#, but then i read that XNA will not be supported on a lot of platforms anymore. Which makes me anxious about getting into it.
I could still learn C#, and go with Unity. For Unity i could even use javascript, which i obviously don't have to learn from scratch, but i feel learning C# will make me a better programmer.
I guess this question has been asked at least hundreds of times, but out of experience i know TL is mostly filled with Wise people who can show me some good insight and point me into the right direction! Since you don't expect to create anything awesome anytime soon, C# will do the job for now. You'll have to get familiar with frequently occuring problems and concepts in game programming in order to become good at it. These problems and concepts should mostly apply to just about any language/framework, so it really won't matter a whole lot which language you use at the start. Similarly with programming languages in general; the majority of skills can be transfered between languages. I personally recommend C# over C++ unless you have a specific reason to choose C++. C++ is a very powerful language, but it also requires a lot of effort and practice to use it properly. Isn't gereral C a better choice when you want to become a better programmer?
|
On December 25 2014 23:20 sabas123 wrote:Show nested quote +On December 25 2014 07:14 spinesheath wrote:On December 25 2014 05:19 McDutch wrote: So I'm here for a little advice. =) I'm a Junior webdeveloper. I'm mainly working as a back-end developer with PHP, Laravel. As of interest I want to get into game development as a hobby. I don't expect to create anything awesome anytime soon, but i just want to learn. Obviously I've googled a lot and a lot of different opinions.
I thought about learning C++ and C#, but then i read that XNA will not be supported on a lot of platforms anymore. Which makes me anxious about getting into it.
I could still learn C#, and go with Unity. For Unity i could even use javascript, which i obviously don't have to learn from scratch, but i feel learning C# will make me a better programmer.
I guess this question has been asked at least hundreds of times, but out of experience i know TL is mostly filled with Wise people who can show me some good insight and point me into the right direction! Since you don't expect to create anything awesome anytime soon, C# will do the job for now. You'll have to get familiar with frequently occuring problems and concepts in game programming in order to become good at it. These problems and concepts should mostly apply to just about any language/framework, so it really won't matter a whole lot which language you use at the start. Similarly with programming languages in general; the majority of skills can be transfered between languages. I personally recommend C# over C++ unless you have a specific reason to choose C++. C++ is a very powerful language, but it also requires a lot of effort and practice to use it properly. Isn't gereral C a better choice when you want to become a better programmer?
But i also want to create something fun. Like i said, I'm also interested in programming games. So getting better at programming in general, doing something that is interesting is mostly the best way to go i think. Else you work on something you don't really care about.
|
On December 25 2014 23:35 McDutch wrote:Show nested quote +On December 25 2014 23:20 sabas123 wrote:On December 25 2014 07:14 spinesheath wrote:On December 25 2014 05:19 McDutch wrote: So I'm here for a little advice. =) I'm a Junior webdeveloper. I'm mainly working as a back-end developer with PHP, Laravel. As of interest I want to get into game development as a hobby. I don't expect to create anything awesome anytime soon, but i just want to learn. Obviously I've googled a lot and a lot of different opinions.
I thought about learning C++ and C#, but then i read that XNA will not be supported on a lot of platforms anymore. Which makes me anxious about getting into it.
I could still learn C#, and go with Unity. For Unity i could even use javascript, which i obviously don't have to learn from scratch, but i feel learning C# will make me a better programmer.
I guess this question has been asked at least hundreds of times, but out of experience i know TL is mostly filled with Wise people who can show me some good insight and point me into the right direction! Since you don't expect to create anything awesome anytime soon, C# will do the job for now. You'll have to get familiar with frequently occuring problems and concepts in game programming in order to become good at it. These problems and concepts should mostly apply to just about any language/framework, so it really won't matter a whole lot which language you use at the start. Similarly with programming languages in general; the majority of skills can be transfered between languages. I personally recommend C# over C++ unless you have a specific reason to choose C++. C++ is a very powerful language, but it also requires a lot of effort and practice to use it properly. Isn't gereral C a better choice when you want to become a better programmer? But i also want to create something fun. Like i said, I'm also interested in programming games. So getting better at programming in general, doing something that is interesting is mostly the best way to go i think. Else you work on something you don't really care about. I thought you could do pretty much the same with C as C# or C++ can't you?
|
On December 25 2014 23:20 sabas123 wrote:Show nested quote +On December 25 2014 07:14 spinesheath wrote:On December 25 2014 05:19 McDutch wrote: So I'm here for a little advice. =) I'm a Junior webdeveloper. I'm mainly working as a back-end developer with PHP, Laravel. As of interest I want to get into game development as a hobby. I don't expect to create anything awesome anytime soon, but i just want to learn. Obviously I've googled a lot and a lot of different opinions.
I thought about learning C++ and C#, but then i read that XNA will not be supported on a lot of platforms anymore. Which makes me anxious about getting into it.
I could still learn C#, and go with Unity. For Unity i could even use javascript, which i obviously don't have to learn from scratch, but i feel learning C# will make me a better programmer.
I guess this question has been asked at least hundreds of times, but out of experience i know TL is mostly filled with Wise people who can show me some good insight and point me into the right direction! Since you don't expect to create anything awesome anytime soon, C# will do the job for now. You'll have to get familiar with frequently occuring problems and concepts in game programming in order to become good at it. These problems and concepts should mostly apply to just about any language/framework, so it really won't matter a whole lot which language you use at the start. Similarly with programming languages in general; the majority of skills can be transfered between languages. I personally recommend C# over C++ unless you have a specific reason to choose C++. C++ is a very powerful language, but it also requires a lot of effort and practice to use it properly. Isn't gereral C a better choice when you want to become a better programmer? You don't become better by choosing a language with as many pitfalls as possible. To become a better programmer means to write simpler code. C doesn't really help you with that.
And yes, of course you can do the same stuff with all these languages. There's little you can't do with either of them. It's a question of how you do stuff in different languages.
|
On December 25 2014 23:20 sabas123 wrote:Show nested quote +On December 25 2014 07:14 spinesheath wrote:On December 25 2014 05:19 McDutch wrote: So I'm here for a little advice. =) I'm a Junior webdeveloper. I'm mainly working as a back-end developer with PHP, Laravel. As of interest I want to get into game development as a hobby. I don't expect to create anything awesome anytime soon, but i just want to learn. Obviously I've googled a lot and a lot of different opinions.
I thought about learning C++ and C#, but then i read that XNA will not be supported on a lot of platforms anymore. Which makes me anxious about getting into it.
I could still learn C#, and go with Unity. For Unity i could even use javascript, which i obviously don't have to learn from scratch, but i feel learning C# will make me a better programmer.
I guess this question has been asked at least hundreds of times, but out of experience i know TL is mostly filled with Wise people who can show me some good insight and point me into the right direction! Since you don't expect to create anything awesome anytime soon, C# will do the job for now. You'll have to get familiar with frequently occuring problems and concepts in game programming in order to become good at it. These problems and concepts should mostly apply to just about any language/framework, so it really won't matter a whole lot which language you use at the start. Similarly with programming languages in general; the majority of skills can be transfered between languages. I personally recommend C# over C++ unless you have a specific reason to choose C++. C++ is a very powerful language, but it also requires a lot of effort and practice to use it properly. Isn't gereral C a better choice when you want to become a better programmer?
While I've argued a lot for C in the past, I've started to disagree with this statement.
If you want to understand how things work, you can write C and you'll learn a lot. It doesn't really make you a better programmer since none of that knowledge will actually help you write better code. Good code isn't defined by memory or CPU efficiency, good code is defined by maintainability, structure and "cleanness" and efficiency comes far after that.
C is an interesting language to learn and it's worth dabbling in it to see where it all started, but, unless you are working with microprocessors or very low level code, it just teaches you bad habits.
|
On December 26 2014 00:33 Morfildur wrote:Show nested quote +On December 25 2014 23:20 sabas123 wrote:On December 25 2014 07:14 spinesheath wrote:On December 25 2014 05:19 McDutch wrote: So I'm here for a little advice. =) I'm a Junior webdeveloper. I'm mainly working as a back-end developer with PHP, Laravel. As of interest I want to get into game development as a hobby. I don't expect to create anything awesome anytime soon, but i just want to learn. Obviously I've googled a lot and a lot of different opinions.
I thought about learning C++ and C#, but then i read that XNA will not be supported on a lot of platforms anymore. Which makes me anxious about getting into it.
I could still learn C#, and go with Unity. For Unity i could even use javascript, which i obviously don't have to learn from scratch, but i feel learning C# will make me a better programmer.
I guess this question has been asked at least hundreds of times, but out of experience i know TL is mostly filled with Wise people who can show me some good insight and point me into the right direction! Since you don't expect to create anything awesome anytime soon, C# will do the job for now. You'll have to get familiar with frequently occuring problems and concepts in game programming in order to become good at it. These problems and concepts should mostly apply to just about any language/framework, so it really won't matter a whole lot which language you use at the start. Similarly with programming languages in general; the majority of skills can be transfered between languages. I personally recommend C# over C++ unless you have a specific reason to choose C++. C++ is a very powerful language, but it also requires a lot of effort and practice to use it properly. Isn't gereral C a better choice when you want to become a better programmer? While I've argued a lot for C in the past, I've started to disagree with this statement. If you want to understand how things work, you can write C and you'll learn a lot. It doesn't really make you a better programmer since none of that knowledge will actually help you write better code. Good code isn't defined by memory or CPU efficiency, good code is defined by maintainability, structure and "cleanness" and efficiency comes far after that. C is an interesting language to learn and it's worth dabbling in it to see where it all started, but, unless you are working with microprocessors or very low level code, it just teaches you bad habits. what made you switch your view? there are so many people I see talking about reinforcing good habbits.
but maby I am just reading from then wrong sources
|
The higher level languages are just so much more convenient when you just want to get something done. You simply don't need to know all the stuff you can learn by coding C specifically.
|
what makes object oriented programming good/fast? can someone please explain? I've never understood. Is it purely because of the structure of the program or something to do with how the code is run?
|
On December 26 2014 02:58 Hadronsbecrazy wrote: what makes object oriented programming good/fast? can someone please explain? I've never understood. Is it purely because of the structure of the program or something to do with how the code is run? OO langauges makes coding alot easier. and as far as I am aware of it doesn't really have any major downsides performance wise.
|
On December 26 2014 02:38 Khalum wrote: The higher level languages are just so much more convenient when you just want to get something done. You simply don't need to know all the stuff you can learn by coding C specifically. the amount of stuff you can get done in js/php is incredable without having to learn ANYTHING else.
|
On December 26 2014 02:58 Hadronsbecrazy wrote: what makes object oriented programming good/fast? can someone please explain? I've never understood. Is it purely because of the structure of the program or something to do with how the code is run? Initially people were allured by the idea of correspondence of objects in object-oriented programming languages with real life objects. It sounded great, and OOP spread like cancer, until people realized that such a style of programming has many harmful side effects, like promoting mutability, creating spaghetti code, and spreading state all over the place. Growth slowed down, and people started applying tons of counter-intuitive design patterns, whose only goal was to deal with the shortcomings of object-oriented programming. Stefan Kisielewski's quote "socialism heroically overcomes difficulties unknown in any other system" applies perfectly to OOP.
Nowadays OOP is popular mainly due to inertia -- there's tons of code written in object-oriented languages; C++, JavaScript, and Python are often taught as the first programming languages; and beginners are still charmed by the "duck is a subclass of bird" real-life analogy. Also, due to the fact that basically every single programmer has been exposed to the "wonders" of OOP, while a much smaller number has had extensive experience with other programming paradigms, there are naturally many more OOP zealots.
|
OOP doesn't bring a whole lot of really big advantages over non-OOP, but there are some and if you don't do bad things in the name of OOP (just because you can doesn't mean you should), it doesn't bring any real disadvantages. Note that OOP and functional programming are orthogonal to each other. When functional becomes the dominating paradigm, it won't be functional without OOP, it will be functional with OOP.
Honestly, OOP is associated with more bad things than it is really responsible for. Sometimes it's the language not being strict enough, sometimes it's people just doing things that would be bad in the context of any paradigm.
|
Ehh.. There are really just 2 languages to learn. C and Lisp. If you learn those two you'll know all the rest. Why those two? Because those are the only programming languages with differing paradigms. People get all excited about functional programming now, lambda expressions, recursion, anonymous functions and other features are being introduced into most modern languages (C#, PHP) and Lisp had it all in the 70's. Right now the closest thing you get has 8 out of 10 features of Lisp. If functional languages like Haskell and Scala will make the leap and adopt the 2 missing features they'll just become another dialect of Lisp.
|
Lisp could do with a little less parentheses though.
Yes, functional is definitely not new, and skills can be transfered between languages. As Randall Munroe put it so nicely though: "Functional programming combines the flexibility and power of abstract mathematics with the intuitive clarity of abstract mathematics." At least until now, functional programming hasn't been so easy to understand for the average programmer. That doesn't mean that the average programmer writes better code with non-functional languages, though.
|
isn't functional programming the same as OOP without the mutational abilities?
|
Technically that's not too far off the mark. But usually a bunch of other stuff is associated with functional programming as well since it wasn't really supported in non-functional languages for a long time.
Robert C. Martin had a talk at the Norwegian Developer's Conference where he basically said: Structured programming is not using goto, OOP is not using function pointers (replaced by the safer virtual methods/interfaces), functional is not using assignments (immutability).
Imo that captures the essence pretty well, but since the OOP and functional branches have evolved seperately for a long time each of them developed specific higher level concepts that are just now being merged into the respective other branch.
|
On December 26 2014 05:29 spinesheath wrote: Technically that's not too far off the mark. But usually a bunch of other stuff is associated with functional programming as well since it wasn't really supported in non-functional languages for a long time.
Robert C. Martin had a talk at the Norwegian Developer's Conference where he basically said: Structured programming is not using goto, OOP is not using function pointers (replaced by the safer virtual methods/interfaces), functional is not using assignments (immutability).
Imo that captures the essence pretty well, but since the OOP and functional branches have evolved seperately for a long time each of them developed specific higher level concepts that are just now being merged into the respective other branch. If OOP is not using function pointers, then FP is closer to structured programming than to OOP, as functions in FP are first-class, and get passed around all the time.
|
|
|
|
|
|