Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Geek Culture / Unity 5 is now free

Author
Message
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 10th Mar 2015 20:34 Edited at: 10th Mar 2015 21:03
Quote: "That's exactly my point. Anybody who wants to be a programmer must understand OOP concepts or you will not get anywhere."


Yes but in order to understand OO you have to first understand procedural. Learning an OO language as your first language is stupid because it introduces a lot more concepts. The learning curve is a lot steeper.

How are noobs supposed to cope with all of the various "patterns" associated with object oriented design? They'll just end up programming everything in the main method, and it would be the same thing as programming procedural.

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 10th Mar 2015 21:05


Still understandable? I've only changed the vocabulary and syntax to something you're not familiar with in this context. Newcomers don't have the vocabulary or the context.

Quidquid latine dictum sit, altum sonatur
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 10th Mar 2015 22:11 Edited at: 10th Mar 2015 22:12
And I can take a DBPro snippet:


and turn it into:


I don't understand what you're trying to say, BatVink Are you trying to show us what a noob sees when he sees code?

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 10th Mar 2015 22:52
Quote: "Are you trying to show us what a noob sees when he sees code?"


Indirectly. I'm saying that when you know how to code, you can see what it means at a glance (just like reading a book in your own language). But as soon as you obscure it, the meaning is much harder extract. Hence, for somebody who has never coded before, you need to start extremely simple until you understand the semantics. You wouldn't expect, for example, to learn a new spoken language and find the signals in the text that tell you to jump to another section (e.g glossary [method]) and then back again.

Quidquid latine dictum sit, altum sonatur
bitJericho
21
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 10th Mar 2015 23:07 Edited at: 10th Mar 2015 23:16
Classes are some of the easiest things to understand in programming. It's just an organizational tool. Complex OOP concepts can sit on the backburner until the programmer is ready for them. Objects and classes are easier to understand than for/loops and if/endifs. You guys are content with living in the past and that's fine, but everybody else in the programming world has moved on from non-OOP based languages.

@Batvink, Anybody familiar with AppGameKit but doesn't know a lick of OOP will probably understand what's going on in the example I provided, or with 10 minutes of guidance absolutely will. OOP is not a complex topic (on the surface).

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 10th Mar 2015 23:19
Quote: "Classes are some of the easiest things to understand in programming. It's just an organizational tool."


I am proud of you that you understand classes. Well done. They're still harder to grasp than free functions in a procedural language.

How can noobs learn about organising variables and functions before they even know what variables and functions are? Classes are way more complicated, considering visibility modifiers, inheritance, pure virtual and/or abstract classes/interfaces, operator overloading, constructors/destructors, what const does, static members, final, exception handling (stack unwinding) and of course all of the stupid patterns and considerations that inherently come with all of that.

The noob will be utterly overwhelmed. OO is not the way to go if you're starting to learn how to program, it is something you take on after you understand the fundamental concepts of how a computer executes code, and a procedural program is the closest and most logical thing to that.

You need to go and teach people how to program and experience it for yourself, because I'm sure then you'll understand why starting with OO is a horrible idea.

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
bitJericho
21
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 10th Mar 2015 23:27
Quote: "You need to go and teach people how to program and experience it for yourself, because I'm sure then you'll understand why starting with OO is a horrible idea."


I have done.

Quote: "How can noobs learn about organising variables and functions before they even know what variables and functions are? Classes are way more complicated, considering visibility modifiers, inheritance, pure virtual and/or abstract classes/interfaces, operator overloading, constructors/destructors, what const does, static members, final, exception handling (stack unwinding) and of course all of the stupid patterns and considerations that inherently come with all of that."


None of that stuff applies right away. Operator overloading isn't even an OO concept. Visibility modifiers are again very simple when it comes to BASIC. Constants have nothing to do with OOP. Static members have nothing to do with BASIC (generally) or if they do are an advanced topic that need not be discussed right away. Same with final classes/methods. Exception handling has nothing to do with OOP. Patters are something born out of computer programming college classes and need not be concerned with by newbs. Constructors/Destructors do indeed require learning by the beginner, along with methods/functions and fields/variables. That's no more difficult to teach than taking away the classes but keeping everything else. Only now students can't organize as logically.

Classes can be thought of as a custom type with it's own methods. That's not a tough concept if you understand types. But wait! Why bother with OOP when you need to learn types and stuff first? Well you can learn that stuff by programming in Main() before you get to classes and objects.

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 10th Mar 2015 23:50
Quote: "Well you can learn that stuff by programming in Main() before you get to classes and objects."


Then what's the point of using an OO language if you're going to be programming procedurally in it anyway? That will only limit the programmer.

Did you start off with an OO language? I remember trying to start with Java before I came across DBC, and that crap made zero sense to me (I was probably 14 years old back then). It mattered not how long I sat at my computer screen and copy/pasted code, the concepts of Java were so far over my head I wasn't ever going to get anywhere.

DBC was way easier to understand.

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 10th Mar 2015 23:55
When I teach my 8 year old son programming I use procedural languages/examples.

Can't get my head around why I would introduce him to oop on day 1?

Most people already know a language and if it's English it reads left to right going down the page, so procedural programming seems like a good first step into programming imo.

bitJericho
21
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 11th Mar 2015 00:03 Edited at: 11th Mar 2015 00:04
Quote: "Then what's the point of using an OO language if you're going to be programming procedurally in it anyway? That will only limit the programmer."


Because you can ease into it without trashing the entire language and all the syntax you've had to learn. I'm not saying learn it on day 1. I'm saying, learn it as soon as you're ready to start making more complex data structures. In game programming, that would be when you're making NPCs, items, tile maps, etc.

I think it's simpler having variables under a Player class and instantiating a player object and then manipulating those variables, than having 30 variables with no real thought to scope and no way to manipulate any of those particular variables without passing them all into a function or making them global. Non-OOP is complex. OOP brings well defined structures.

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 11th Mar 2015 00:26 Edited at: 11th Mar 2015 00:28
Quote: "I think it's simpler having variables under a Player class and instantiating a player object and then manipulating those variables, than having 30 variables with no real thought to scope and no way to manipulate any of those particular variables without passing them all into a function or making them global. Non-OOP is complex. OOP brings well defined structures."


But a noob is going to do that. I did that. Every noob creating help threads is doing it. Structures are something that come *after* learning the basic concepts.

Also, what you say is crap. procedural languages have just as much encapsulation capabilities as OO languages do. For instance, the following two snippets are conceptually identical.





There's no real reason to learn OO as a beginner, it's only confusing and hinders progress. I say this because there are so many damn ways to solve a problem in a "clean" "abstracted" "object oriented" manner as opposed to the single correct way to solve it procedurally. People starting out with OO often wind up questioning their design choices and restructuring their code endlessly without ever getting anywhere with their program, procedural languages allow you to just code and not care that much about design choices and abstraction.

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
Dark Java Dude 64
Community Leader
13
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 11th Mar 2015 00:29
Quote: "Also, what you say is crap"
Nothing against you, but this particular wording is how flame wars start.

"Sorry, you can redo your sig...Stupid Mod pressed the wrong button." Clonkex ~~ May his legacy live on!!
bitJericho
21
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 11th Mar 2015 00:30 Edited at: 11th Mar 2015 00:34
Why would you bother to teach a struct when you could just do the exact same thing with a class and then add methods when the student is ready? And you can do more advanced things with classes than structs, such as polymorphism and constructors/destructors, properties, etc.

Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 11th Mar 2015 04:26
Quote: "He picked up the mouse and put it physically on the screen!"


lol Like when we tried to teach Dad to play Portal. When we said "ok, now look to your left", he would literally look out the window. That's what we get for growing up playing games, I guess

Quote: "So get used to the lowest level of programming you are going to encounter first, before you move to more complex concepts."


My thoughts exactly!

Quote: "That's exactly my point. Anybody who wants to be a programmer must understand OOP concepts or you will not get anywhere."


Our point is that the concepts of OO are insanely difficult to learn for someone that doesn't understand the tiniest bit of programming.

Quote: "But a noob is going to do that. I did that. Every noob creating help threads is doing it. Structures are something that come *after* learning the basic concepts."


+1

Quote: "Also, what you say is crap."


Please try not to directly insult people in a debate. We don't want to lock yet another thread due to flame war, do we?

Quote: "Why would you bother to teach a struct when you could just do the exact same thing with a class and then add methods when the student is ready?"


Why not start with structs? They're simpler and still a necessary thing to understand.

---------------------------------

Well anyway, this thread has gotten very off-topic. Not that I mind exactly, but we're getting off topic very quickly in a number of threads around the GC board. Should we be trying to limit the number of off-topics conversations?

So: Unity unity unity. Stuff and things about Unity. More stuff. More things. On-topic conversation. Unity. FREE. Unity talk.

Dark Java Dude 64
Community Leader
13
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 11th Mar 2015 04:30
Quote: "Should we be trying to limit the number of off-topics conversations?"
Yes. I have proposed ways of doing this, but nobody's liked them.

"Sorry, you can redo your sig...Stupid Mod pressed the wrong button." - JLJupiterCat
bitJericho
21
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 11th Mar 2015 05:01
Quote: "Why not start with structs? They're simpler and still a necessary thing to understand."


Well I generally don't have to deal with structs since they're not a feature in Monkey (you just use a class with no methods)

Seditious
10
Years of Service
User Offline
Joined: 2nd Aug 2013
Location: France
Posted: 11th Mar 2015 05:21
Monkey, what's that?
ascension
10
Years of Service
User Offline
Joined: 17th May 2013
Location:
Posted: 11th Mar 2015 10:17
I just upgraded and it is perfect
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 11th Mar 2015 11:29
Well my Wii-U Unity Pro License doesn't work with Unity 5 but I just upgraded anyway. Think I might concentrate on Unity Development for a while anyway as I could potentially use Unity for some upcoming work projects... also I am constantly being contacted by recruiters about Unity jobs because I have C#, games and applications experience but I'm generally not interested because I don't know Unity well enough to get past an interview. What puts me off is the drag-drop aspect because (other than windows forms designer) I am generally a code-it-all kind of guy.

What the heck, I think it's time to take the plunge and see what I can make with Unity 5 with next to no experience. I might never come back

Using AppGameKit V2 Tier 1
BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 11th Mar 2015 11:52
It seems that Torvalds doesn't like OO, he's a procedural kind of guy. Although I'm sure that BASIC would get the same tirade of abuse from him as OO does.

Quote: "the only way to do good, efficient, and system-level and portable C++ ends up to limit yourself to all the things that are basically available in C. And limiting your project to C means that people don’t screw that up, and also means that you get a lot of programmers that do actually understand low-level issues and don’t screw things up with any idiotic “object model” crap."


Quidquid latine dictum sit, altum sonatur
The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 11th Mar 2015 13:03
Quote: "Classes are some of the easiest things to understand in programming. It's just an organizational tool. Complex OOP concepts can sit on the backburner until the programmer is ready for them."


Ok, I can see what you mean, but my point is that you shouldn't use a OOP centric language like java to do it because to do something interesting in java, you need a lot of OO.

I think I mentioned this before, but this is roughly what you need to do to draw a rectangle



Looks like a lot of fairly advanced OO to me.

Quote: "Objects and classes are easier to understand than for/loops and if/endifs."


I have to disagree, most of my friends understood loops/if statements right away but it took ages for them to know the diffirence between a class and an object, let alone how to use them propperly.

Loops and control structures have a simple way of describing them. If a is true, do this, do this while a is true or do this for every element in a list.

It's even easier if you use something like python where the syntax is self explanatory.


Classes/object on the other hand can't really be described as easily. You could do something like "A class is a blueprint for something and an object is something built after the blueprint, but it will still get hard to understand.

As for teaching structs, I think that by the time you want to know about structs, you might aswell learn OOP anyway since you know what the use for it is but personally, I have a really hard time learning things when I don't feel like I have a need for it.

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 11th Mar 2015 13:04
Quote: "I just upgraded and it is perfect"


To Unity 5? Awesome!

Quote: "What puts me off is the drag-drop aspect because (other than windows forms designer) I am generally a code-it-all kind of guy."


That put me off initially as well, and it will continue to put you off until you actually start making a game... but then you realise just how incredibly useful the system is! It makes it ridiculously easy to build scenes and set them up, especially if you write you code such that it works well with the inspector.

Yodaman Jer
User Banned
Posted: 11th Mar 2015 14:53
For me the biggest advantage with Unity is making all of your variables you know you're going to be modifying accessible in the Inspector, because you can change them during runtime to see exactly what results you'll get. Very, very useful and helpful!

Also the Vector maths functions are some of the best out there, makes it ridiculously easy to set things like moving elevators up, or to even make basic "AI" enemies that can follow you around. Ridiculously simple.

"If you want to make an apple pie from scratch, you must first create the universe." - Carl Sagan
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 11th Mar 2015 14:57 Edited at: 11th Mar 2015 15:01
Quote: "Why would you bother to teach a struct when you could just do the exact same thing with a class and then add methods when the student is ready? And you can do more advanced things with classes than structs, such as polymorphism and constructors/destructors, properties, etc."


Okay, I've given it some more thought and I've re-evaluated my stance. I think it doesn't matter what language you start with because noobs are going to suck in all of them. Some languages are harder (C++) than others (python, Java) because they carry more boilerplate code, but ultimately it really doesn't matter.

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 11th Mar 2015 16:05
Quote: " Okay, I've given it some more thought and I've re-evaluated my stance. I think it doesn't matter what language you start with because noobs are going to suck in all of them. Some languages are harder (C++) than others (python, Java) because they carry more boilerplate code, but ultimately it really doesn't matter."

I can agree with that.


On-topic
Unity is gonna have to be really really nice to for me to give up my Blueprints. Maybe this summer I'll have some time to prototype some stuff up in both Unity and Unreal.

Seditious
10
Years of Service
User Offline
Joined: 2nd Aug 2013
Location: France
Posted: 11th Mar 2015 16:24
Quote: "It seems that Torvalds doesn't like OO, he's a procedural kind of guy. Although I'm sure that BASIC would get the same tirade of abuse from him as OO does."


That loses him a lot of respect from me.
Yodaman Jer
User Banned
Posted: 11th Mar 2015 16:28
Quote: "Unity is gonna have to be really really nice to for me to give up my Blueprints."


Indeed, Blueprints are great. Unreal in general is pretty stellar, I really like using it. In less than five minutes I was able to cobble together a collectible item that blew up as you grabbed it, really really easy to do with Blueprints.

Too many good engines out there!

Dar13, are you good with knowledge on Unreal? If so please send me a PM, I might have an interesting proposition for you!

Quote: "That loses him a lot of respect from me. "


I've never been a big Torvalds fan myself... he just always comes off as a know-it-all who thinks he's the God of computers.

Or was that Steve Jobs I'm thinking of?

"If you want to make an apple pie from scratch, you must first create the universe." - Carl Sagan
BiggAdd
Retired Moderator
19
Years of Service
User Offline
Joined: 6th Aug 2004
Location: != null
Posted: 11th Mar 2015 18:20 Edited at: 11th Mar 2015 18:22
Quote: "I have to disagree, most of my friends understood loops/if statements right away but it took ages for them to know the diffirence between a class and an object, let alone how to use them propperly."


This logic is fine if you think of programming in terms of a hobbyist or on the small scale, but from a software engineering perspective, procedural code is way worse than OOP.

OOP code is far easier to maintain, test, design and understand on the larger scale.
Legacy code is often procedural, but newer systems (if supported) are always written as OOP objects. Obviously OOP takes many different forms, like Entity driven (Unity), but its far easier to manage.

Its one of the reasons I can't really program in DBPro or AppGameKit anymore using their basic language, it just doesn't offer the flexibility that an object oriented language gives.

Java is always a good starting point for people learning a new language, because its one of the most widely used languages, its very versatile, it has tonnes of support and tutorials, its easy to set up and get coding, its entirely OOP and its a C-based language.
This is why a lot of Universities always start with Java as a first language.

It took me a couple of weeks to grasp OOP when it was first introduced to me, but once you do there is no going back!

Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 11th Mar 2015 18:37
Quote: " I've never been a big Torvalds fan myself... he just always comes off as a know-it-all who thinks he's the God of computers. "

All of his quotes are in the context of kernel development. C++ wouldn't be as good of a choice as C for the extreme low level kernel programming, especially since C++'s abstractions haven't been "cost-free" until relatively recently.

Steve Jobs was much more of the "God of computers" personality.

@YodamanJer
I've dabbled in it, but I haven't been able to jump in too much since all my creativity has been sapped by work and school. If you need a programmer that doesn't need a whole lot of creative input, I'm down. I do prefer email though. (PMs on this site kinda stink at the moment...)

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 11th Mar 2015 19:39 Edited at: 11th Mar 2015 19:43
Quote: "I've never been a big Torvalds fan myself... he just always comes off as a know-it-all who thinks he's the God of computers."


I think that's a good thing in regards to the kernel project. The last thing you need is some wuss in charge of merging kernel changes. Who knows what code would have made it into the main branch if it weren't for Linus making sure the code submitted is of good quality? Those that get offended by his insults are simply not fit for the job, and should go and sulk somewhere else.

(for example, a quote from Linus):
Quote: "> Greg, the reason you get a lot of stable patches seems to be that you
> make it easy to act as a door-mat. Clearly at least some people say "I
> know this patch isn't important enough to send to Linus, but I know Greg
> will silently accept it after the fact, so I'll just wait and mark it
> for stable".
>
> You may need to learn to shout at people."


From here.

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 11th Mar 2015 20:18
Quote: "This logic is fine if you think of programming in terms of a hobbyist or on the small scale, but from a software engineering perspective, procedural code is way worse than OOP."


Oh, defentivley. I moved away from AppGameKit because my small hobby projects got to big to manage without OO.

But im happy that I didn't start by learning java because a big reason I stuck around with programming was because I could to so much cool stuff with DBP without actually knowing that much. The code I wrote was terrible but it was probably better than whatever I would have written in java without knowing why or how to use OO.

Quote: "
It took me a couple of weeks to grasp OOP when it was first introduced to me, but once you do there is no going back!"


Same thing for me but it would have taken a lot longer before I learned it propperly if I hadn't had the procedural programming knowledge than I had gained from DBP/AGK.

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
Seppuku Arts
Moderator
19
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 11th Mar 2015 22:26
Quote: "Indirectly. I'm saying that when you know how to code, you can see what it means at a glance (just like reading a book in your own language). But as soon as you obscure it, the meaning is much harder extract. Hence, for somebody who has never coded before, you need to start extremely simple until you understand the semantics. You wouldn't expect, for example, to learn a new spoken language and find the signals in the text that tell you to jump to another section (e.g glossary [method]) and then back again."


I would say pretty much this. For me, this is what Dark Basic was and did for me. I have since tried other languages and I have this same picture in my head and can pick up other languages much easier. Other languages confused the hell out of me until I got a stronger grasp of programming concepts. Granted it doesn't cover all the bases, particularly as it's procedural and you can't OOP in it, but actually, User Defined Types in DBP worked to me as a useful stepping stone into understanding how OOP works. It works wonders for entry level.

Now I've had little difficulty picking up C#, Visual Basic, Ruby, SQL, ASP.NET. C++ is more complicated for me but I've only dabbled, if I had the motivation, I reckon I'd learn it and understand it, but I don't have the motivation or a reason to, so I won't. I'd rather learn the languages I am likely to keep using.

Another advantage is that Dark Basic is very good at getting stuff out quickly, like a prototyping tool. When I was using Unity3D, I was actually testing some coding ideas/concepts in DBP first before building them in Unity 3D. For example, my inventory system.


Another thing to note is what people /enjoy/, because sometimes you like to program because you enjoy it. Preferences can be made simply based on joy. What you use professionally, doesn't necessarily have to be what you use in your bedroom.

easter bunny
11
Years of Service
User Offline
Joined: 20th Nov 2012
Playing: Dota 2
Posted: 12th Mar 2015 01:03 Edited at: 12th Mar 2015 01:06
Quote: "Some languages are harder (C++) than others (python, Java) because they carry more boilerplate code, but ultimately it really doesn't matter."

Actually I found C++ much easier to learn then Java... Lol

For my two cents, Procedural languages are much much much much much easier for a beginner to understand.
Pretend for a second you know nothing about Programming and compare:


If a complete noob looks at either of those, they won't really understand either, will they?
But which one is easier to explain???
Explaining the BASIC code is easy:
1. it starts from the top and executes each line
2. explain each command

However to explain the Java code, you have to explain the basics of OOP first, and how are the supposed to understand OOP when they don't know anything about programming in the first place!

I learned to program on QBasic, I migrated to FreeBasic and learned the basic concepts of OOP from there (ie starting with Functions, Types, the moving forward).
Understanding OOP wasn't hard at all since it was introduced gradually via FB tutorials There's no way I could have understood it immediately though...




Basically I'm saying Procedural is a whole lot easier to understand for a beginner lol, and OOP is a whole lot easier to understand if you already understand Procedural


Audacia Games - Latest WIP - AUTOMAYTE 2.1, AppGameKit one click deploy to Android
"When you've finished 90% of your game, you only have 90% left"
Dark Java Dude 64
Community Leader
13
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 12th Mar 2015 01:58
Quote: "ctually I found C++ much easier to learn then Java..."
I agree. Back when I tried learning both C++ and Java a few months apart, I always got waaaay further in C++. I never spent endless time agonizing over help articles about the language trying to figure out what they meant. C++ seems more solid and logical to me. Granted, it's been a while since I have tried either.

In fact, one time I made this command line tic tac toe game with C++ and uploaded a YouTube video of it. About once every month or so, I get a request from some college or high school student for the code, as they "need help with their school project".

Whereas with Java, I've made nothing productive.

"Sorry, you can redo your sig...Stupid Mod pressed the wrong button." - JLJupiterCat
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 12th Mar 2015 02:22 Edited at: 12th Mar 2015 02:23
Quote: "I agree. Back when I tried learning both C++ and Java a few months apart, I always got waaaay further in C++. I never spent endless time agonizing over help articles about the language trying to figure out what they meant. C++ seems more solid and logical to me. Granted, it's been a while since I have tried either."


C++ is easier to start with than Java in my experience, but don't be mistaken. C++ is a *beast*. Gradually you start to uncover details you've been doing wrong. You try to fix these, and you start uncovering more and more details, which begins to make you realize how massive the language actually is.

According to this here, C++11 has 189 concepts - one of the largest collection of concepts out there.



Const correctness and template metaprogramming are the major culprits here. Now with C++11, you also have stuff like rvalue references turning what was previously known as "the rule of three" into the rule of five, three or zero, and lets not forget the addition of lambdas (the syntax is confusing as hell).

C++ may be easy to begin with, but it will take you many years before you've learned everything, and until then, your code will suck.

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
Indicium
15
Years of Service
User Offline
Joined: 26th May 2008
Location:
Posted: 12th Mar 2015 04:32
Quote: "C++ may be easy to begin with, but it will take you many years before you've learned everything, and until then, your code will suck."


You keep thinking you have to use every feature C++ provides for you, the choice is yours to simply not use those features.
easter bunny
11
Years of Service
User Offline
Joined: 20th Nov 2012
Playing: Dota 2
Posted: 12th Mar 2015 08:18 Edited at: 12th Mar 2015 08:23
AGK t2 uses C++, but you don't have to use all the features of C++, in fact you can pretty code with a BASIC knowledge of C++
Of course if you want to use things like OOP and stuff you can

Edit: and on the diagram of language complexity... It's kinda misleading... if you put Assembler in that list, it'll be the simplest by far, but it certainly isn't easy to code in!

Edit 2: However your point is correct. C++ is definitely one of the hardest languages to master


Audacia Games - Latest WIP - AUTOMAYTE 2.1, AppGameKit one click deploy to Android
"When you've finished 90% of your game, you only have 90% left"
The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 12th Mar 2015 11:29
I think we may find C++ easier to learn is because you don't need to know as much about the language to do something usefull as you need with something like java.

Personally I had a lot of issues with memory management when I first started out because I didn't really know how things worked. That was probably because I moved from AppGameKit T1 to T2 expecting things to be more similar than they were though

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 14th Mar 2015 04:29
This may be of interest.
http://www.gamedev.net/topic/666513-best-programming-paradigm-for-noobs

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
BiggAdd
Retired Moderator
19
Years of Service
User Offline
Joined: 6th Aug 2004
Location: != null
Posted: 15th Mar 2015 01:55
Quote: "But im happy that I didn't start by learning java because a big reason I stuck around with programming was because I could to so much cool stuff with DBP without actually knowing that much. The code I wrote was terrible but it was probably better than whatever I would have written in java without knowing why or how to use OO."


I agree that a beginner learning Java has a lot to take in initially. If you're like me, you like to know everything all at once, and its not sufficient when someone tells you "Just ignore what I'm writing now and we'll cover it later".

But I think its important for people to grasp OOP as early as possible if they want to get into serious development, and to me Java is a good starting point, because you can write procedural code in the main method to teach simple concepts like program flow, types and loops etc.

But its difficult to tell someone "Just ignore all this extra stuff I'm adding around, and ignore why we're putting all this code here".

It does take time for OOP to finally click, but its a matter of a week or two at the most, not months/years!

Maybe a language like PHP is a good starting off point? You don't have to compile it, people are familiar with websites, you can write procedural or OOP code and its a C-based language. Also the documentation is excellent.

Seppuku Arts
Moderator
19
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 15th Mar 2015 11:58
Or perhaps something like Ruby? I've picked it up recently and it seems like something very straight forward and simple to use and introduces OOP concepts as well. Then of course you've got IRB in Ruby, which is useful for experimenting.



Plus people report that ruby and ruby on rails are a joy to work with, which is what has attracted me to learning it. If it is a joy, I guess it's useful motivation to keep programming.

Also, as you're looking at PHP as being being already familiar with the web, Ruby On Rails of course offers that advantage too.

BiggAdd
Retired Moderator
19
Years of Service
User Offline
Joined: 6th Aug 2004
Location: != null
Posted: 16th Mar 2015 11:04
Quote: "Or perhaps something like Ruby"


Ruby isn't C-based, so in a way you are limiting yourself if you learn it as a first language. Moving from PHP to Java, C++, C#, Javascript or Swift would be easier than from Ruby.

Quote: "BiggAdd Smells"


How did you know!?

The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 16th Mar 2015 13:39
Learning syntax after you know one or two langauges is really easy. I'd say start out with one simple language, python, ruby or php or something similar. Once you have the basics down, you can move on to learn a more powerfull language that you are likley to use in the future

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
JLMoondog
Moderator
15
Years of Service
User Offline
Joined: 18th Jan 2009
Location: Paradox
Posted: 16th Mar 2015 18:44
I hate oop and will never learn it.

bitJericho
21
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 16th Mar 2015 22:02
You should, it will take your abilities to the next level, and it's not hard in a language like Monkey X.

Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 16th Mar 2015 23:09
I found php to be a good and easy step from dbpro, it would be a decent starting point on is own, but php is kind of like the wild west where just about anything goes. it's loosely typed, it runs server side but can be embedded into the response pages back to the client. it's easy to build habits that often don't translate or apply to other languages.

Seppuku Arts
Moderator
19
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 17th Mar 2015 01:34
Quote: "Ruby isn't C-based, so in a way you are limiting yourself if you learn it as a first language. Moving from PHP to Java, C++, C#, Javascript or Swift would be easier than from Ruby."


I don't think it's too big of a jump. To be honest, I found DBP to be a great start for me, despite not being C-Like. Getting into the C-like frame of mind in terms of how code is presented wasn't such a huge jump. I think the bit I found hardest was going from procedural to OOP. With Ruby, that's not an issue, because it does OOP.

Or perhaps if working with Rails and doing web, you're prolly going for an all round approach - Ruby + HTML + CSS + JavaScript.

Granted, not saying a better route than PHP as a beginning, but I think a viable alternative starting point.

For me, my starting point was Dark Basic and I think the reason it worked for me was because I enjoyed programming in it, there's stuff I might have found more of a chore. If you enjoy the language you're using then it's a big bonus in my eyes.

BiggAdd
Retired Moderator
19
Years of Service
User Offline
Joined: 6th Aug 2004
Location: != null
Posted: 17th Mar 2015 21:06 Edited at: 17th Mar 2015 21:15
Quote: "I hate oop and will never learn it."


The world is built up of objects, like Vehicles.


Objects have attributes (properties).


Objects can do things, just like in the real world.


Objects need a way to be created


And then they can be created:


Objects can also be types of other objects


And they can also be built like their parents


Objects can also contain other objects


And that is the basics of OOP!

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 17th Mar 2015 23:06
Quote: "And that is the basics of OOP!"


It really is a beautiful thing when put simply like that.

Dark Java Dude 64
Community Leader
13
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 17th Mar 2015 23:23
Quote: "It really is a beautiful thing when put simply like that."
I agree. When you understand the concept, it's a wonderful thing to use. The mere implementation of said concept, however, is the tricky part. I see it as a hill to go over. You have to hike a rather steep hill, that is learning OOP, but once you've gotten to the top of the hill, it's downhill and easy from there. I personally have gotten pretty close to the top several times, but each time, I have gotten tired and rolled all the way back to where I came from. In other words, I give up and move on and forget everything I learned.

It would be neat if there was an OOP based language designed specifically to be learned; that could be a great stepping stone for those intending to learn OOP.

"Sorry, you can redo your sig...Stupid Mod pressed the wrong button." - JLJupiterCat

Login to post a reply

Server time is: 2024-05-03 22:42:26
Your offset time is: 2024-05-03 22:42:26