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
Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 7th Mar 2015 08:05
RIDICULOUS EXCITE!

MASSIVE AWESOME!

UNITY 5 WITH ALL ENGINE FEATURES IS NOW FREE FOR ALL!



INSANE INCREDIBLENESS!

Think I'm going to burst with excitement! So many AAA engines available for FREE. YEES EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!!!!!

http://unity3d.com/get-unity

Dark Java Dude 64
Community Leader
13
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 7th Mar 2015 08:28 Edited at: 7th Mar 2015 08:29
Quote: "Geek Culture / Offensive / Unity 5 WITH ALL ENGINE FEATURES is now FREE!!!"
Gosh darn it, this thread sure is offensive.

Sorry, you can redo your sig...Stupid Mod pressed the wrong button.
Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 7th Mar 2015 09:22
Quote: "Gosh darn it, this thread sure is offensive."


It puts the red exclamation marks around the title so I used it

Unity 5's just about finished downloading. Can't wait to play around with it!

The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 7th Mar 2015 10:00
Looks like the battle is heating up. What are the terms regarding pricing on this, is it like unreal where you have to pay a percentage of your revenue or something else.

Im not to terribly interested in this unless they release a linux version of the editor.

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 7th Mar 2015 11:19
Once you reach $100k in revenue you have to upgrade to Unity Pro. Which is $75/month per developer.

Seditious
10
Years of Service
User Offline
Joined: 2nd Aug 2013
Location: France
Posted: 7th Mar 2015 15:18
Makes you wonder why anyone would pay for a lesser engine when Unity/UDK are both pretty much free now (and industry standard, of course!).
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 8th Mar 2015 13:26
Quote: "Makes you wonder why anyone would pay for a lesser engine when Unity/UDK are both pretty much free now (and industry standard, of course!)."


For learning purposes. Unity doesn't teach you how to program.

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
Seditious
10
Years of Service
User Offline
Joined: 2nd Aug 2013
Location: France
Posted: 8th Mar 2015 13:54 Edited at: 8th Mar 2015 13:57
Quote: "For learning purposes."


Why bother learning something that isn't industry standard?

Quote: "Unity doesn't teach you how to program."


I don't know if you've ever used Unity before but it has fantastic scripting capabilities, so you're completely wrong there. If anything it's one of the most perfect platforms to program on since it supports C# scripts across all significant platforms, which is an industry standard language. And of course it also supports Java and other languages, which makes it an extremely useful learning tool.

Unless you think T3DGM is a better learning tool LOL.
Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 8th Mar 2015 14:22
Quote: "For learning purposes. Unity doesn't teach you how to program."


Exactly! I see it this way: Unreal is best for teams of devs, Unity is best for single devs and TGC products are best for non-devs or newcomers.

Quote: "Why bother learning something that isn't industry standard?"


Because oftentimes the concepts of game development are what you need to learn first.

Quote: "I don't know if you've ever used Unity before but it has fantastic scripting capabilities, so you're completely wrong there."


No, because Unity has excellent professional scripting capabilities. It's not very good for learning with. DBPro or AppGameKit, on the other hand...

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 8th Mar 2015 14:47
@Seditious - It's very powerful and is a great tool to use if you want to slap together a good looking game, no doubt there.

What knowledge do you think is required to develop something like Unity? Definitely not the knowledge Unity teaches you. You may have a vague idea about how the underlying components work together, but all of the details are abstracted away.

If all you know is Unity, then you will be forever dependent on people making game engines for you. Perhaps that's what you want, but it will only get you so far.

Quote: "Why bother learning something that isn't industry standard?"


Who's going to make the next gen game engines?

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
Randomness 128
17
Years of Service
User Offline
Joined: 13th Feb 2007
Location:
Posted: 8th Mar 2015 14:56
Quote: "Makes you wonder why anyone would pay for a lesser engine when Unity/UDK are both pretty much free now"


Maybe someone really likes MSAA and wants to use it with deferred shading, which I don't think UE4 or Unity support. Seems rather nitpicky, though.

320x224
Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 8th Mar 2015 15:11
Quote: "but all of the details are abstracted away."


Which is actually something that can hinder the use of Unity sometimes as well, simply due to not knowing how the engine works underneath.

Quote: "Makes you wonder why anyone would pay for a lesser engine when Unity/UDK are both pretty much free now (and industry standard, of course!)."


Depends how you define "lesser". The Games Factory was a million times better as a learning tool for Young Me than Unity or Unreal could ever have been, yet the games you could create had only simplistic 2D graphics. Without it, however, I may never have gotten into the games industry and may never have even come across TGC.

AutoBot
14
Years of Service
User Offline
Joined: 25th Sep 2009
Location: Everywhere
Posted: 8th Mar 2015 20:18
This is no doubt in response to Epic making their Unreal Engine 4 free for all to use, last week. Awesome to see these powerful game making tools become free for anyone to use!

Now, I wonder how TGC will compete with this?

Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 9th Mar 2015 00:13
Quote: "This is no doubt in response to Epic making their Unreal Engine 4 free for all to use, last week."


Indeed it is! It's why I'm so happy Epic decided to do that - they basically made Unity free!

Quote: "Now, I wonder how TGC will compete with this?"


They won't, I suspect. No need to. Their tools are on a different level, and not designed to compete with those extremely high-end products. TGC's products are aimed at a different market and fill quite a big gap

Jeku
Moderator
20
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 9th Mar 2015 01:22
Quote: "If anything it's one of the most perfect platforms to program on since it supports C# scripts across all significant platforms, which is an industry standard language."


Although I love C#, I'm not sure it's quite an industry standard language yet. Everywhere I've worked in the game industry used C++ for most things still. C# might be on its way *because* of Unity, not the other way around.

Senior Developer - CBS Interactive Music Group
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 9th Mar 2015 01:38
Quote: " Although I love C#, I'm not sure it's quite an industry standard language yet. Everywhere I've worked in the game industry used C++ for most things still. C# might be on its way *because* of Unity, not the other way around."

The open-sourcing of Joslyn and .NET Core will help quite a bit with the adoption of C#. C# does have quite a bit of competition with modern C++ and toolkits like Qt though.

Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 9th Mar 2015 01:46
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 9th Mar 2015 01:51
Quote: " I don't like C# at all. C++ or UnityScript (or BASIC obviously) for me! "

C# is so much cleaner for OOP than C++ is though. It's basically what Java should have been.

Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 9th Mar 2015 02:11
Quote: "C# is so much cleaner for OOP than C++ is though."


I find C# messy, confusing and unnecessarily complicated. C++ is so straightforward by comparison.

BiggAdd
Retired Moderator
19
Years of Service
User Offline
Joined: 6th Aug 2004
Location: != null
Posted: 9th Mar 2015 02:17 Edited at: 9th Mar 2015 02:18
Quote: "C# is so much cleaner for OOP than C++ is though. It's basically what Java should have been."

Quote: "I find C# messy, confusing and unnecessarily complicated. C++ is so straightforward by comparison."


https://www.youtube.com/watch?v=CMNry4PE93Y&t=0m9s

I think my favorite language was Java, not quite sure what it is now. Maybe C++, PHP or Javascript? I can't decide!

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 9th Mar 2015 02:48
Use the right tool for the right job.

C# is a nice scripting language and teaches good OO habits. That said, it's not a performance language. C++/C will blow away any C# or Java implementation when it comes to low-level (especially graphics related) code.

http://stackoverflow.com/questions/145110/c-performance-vs-java-c

That's why it's good to know both worlds. When developing games professionally, you will be involved in low level C++ code as well as various high level scripting languages (lua, python, c#, ...) gluing all of the low level stuff together.

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: 9th Mar 2015 02:53
The only time I would recommend Java to someone over C++ (if the person was already familiar with Java), is if they were doing any memory intensive or memory efficient work. For instance, a minecraft server would have greatly benefited from being written in C++.

I think its however fine for most things, even games to some level.

Seditious
10
Years of Service
User Offline
Joined: 2nd Aug 2013
Location: France
Posted: 9th Mar 2015 03:09 Edited at: 9th Mar 2015 03:10
Quote: "Because oftentimes the concepts of game development are what you need to learn first."


True, although I think these necessary concepts depend on what you plan to specialise in, ie. programming, level design, and so forth.

Quote: "No, because Unity has excellent professional scripting capabilities. It's not very good for learning with. DBPro or AppGameKit, on the other hand..."


I think that's pretty accurate. Although for learning to program I would always recommend someone to start in C++/C# and work with console apps.

Quote: "What knowledge do you think is required to develop something like Unity? Definitely not the knowledge Unity teaches you. You may have a vague idea about how the underlying components work together, but all of the details are abstracted away."


It depends how much work you want to do yourself. Considering the huge community and countless tutorials floating around, I think it's very easy to get into using it and understanding all the different concepts.

Quote: "If all you know is Unity, then you will be forever dependent on people making game engines for you. Perhaps that's what you want, but it will only get you so far."


Well, who's going to make the next gen game engines? Not the average joe, that's for sure.

Quote: "Depends how you define "lesser". The Games Factory was a million times better as a learning tool for Young Me than Unity or Unreal could ever have been, yet the games you could create had only simplistic 2D graphics. Without it, however, I may never have gotten into the games industry and may never have even come across TGC."


That's true; for learning the principles it can be easier to use more simplistic software. I don't think Unity is unfit for purpose in this regard, but I think it requires a more mature mind.

Quote: "Although I love C#, I'm not sure it's quite an industry standard language yet. Everywhere I've worked in the game industry used C++ for most things still. C# might be on its way *because* of Unity, not the other way around."


Well, I assumed it's pretty standard outside of game production, but then I don't really have any experience in that area so maybe I'm wrong.
Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 9th Mar 2015 09:46
BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 9th Mar 2015 10:15
Quote: "Although I love C#, I'm not sure it's quite an industry standard language yet"


In the UK, C# probably accounts for the largest percentage of Windows-based developer jobs. Most jobs are centred around business, where complex business logic overrides performance to a large degree. Processing a few thousand invoices takes seconds, so performance is not a big deal. You don't need 60 FPS to process a manufacturing order or a bank transfer

Quidquid latine dictum sit, altum sonatur
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 9th Mar 2015 11:02
This is great news.

I had the Unity Pro subscription for a couple of months, they made you sign up to a 12 month subscription but what they don't tell you is you can change to a month by month basis by filling in a simple form(as long as you earn less than 100k a year).

So if you have a few games and you want to get rid of the unity splash screen you can just get one month of Unity Pro if you want. This presumes you have already used your free trial at an earlier date.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 9th Mar 2015 11:07
Quote: "In the UK, C# probably accounts for the largest percentage of Windows-based developer jobs. Most jobs are centred around business, where complex business logic overrides performance to a large degree. Processing a few thousand invoices takes seconds, so performance is not a big deal. You don't need 60 FPS to process a manufacturing order or a bank transfer "


^ This

Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 9th Mar 2015 12:29
Quote: "they made you sign up to a 12 month subscription"


What? Am I misunderstanding you? Because AFAIK you've never been forced to use a subscription model, and that's definitely not the case ATM. You have three choices:

- $0 ("Personal Edition") - all engine features (YAY), lacks certain "professional" additions such as a team license and priority bug-fixing
- $75/mth ("Professional Edition", subscription) - all features including "professional" additions
- $1,500 up front ("Professional Edition", one-off payment) - same as subscription model

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 9th Mar 2015 12:49
A lot of services advertise as Per Month, but in fact it is a year long contract...

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 9th Mar 2015 13:02
Quote: " $75/mth ("Professional Edition", subscription) - all features including "professional" additions"


Yes, this is what I had, but as MrValentine said, it is a minimum of 12 months before you go on to a flexible plan. But, you can go straight to a flexible plan immediately by filling a simple form, this is not advertised anywhere as far as I know. I only found out about it after emailing them because I could no longer afford the payments.

The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 9th Mar 2015 16:17
Quote: "I think that's pretty accurate. Although for learning to program I would always recommend someone to start in C++/C# and work with console apps. "


I think i'd do the opposite, probably because that's how I learned. I started out with dark basic and moved away from text based stuff within a few days. Being able to do something really cool really helped me get into programming, even though the code I wrote was terrible. Then I moved on to AppGameKit and eventually grew out of that and decided to learn C++.

I see a ton of people start out with java and having no idea what they are doing because java is so object oriented. It takes a long time until you can understand why you type public static void main() for example.

I think you should start with a really simple language which can be built upon as needed. I didn't bother to read up on what an array was until I had a need for one, copying my movement code for each enemy I added became annoying.

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
Indicium
15
Years of Service
User Offline
Joined: 26th May 2008
Location:
Posted: 9th Mar 2015 18:23
Quote: "It takes a long time until you can understand why you type public static void main() for example."


This is just the entry point to the application, right? I'm not seeing what's hard to understand. Unless I'm now part of the group who take a long time to understand why you use it.
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 9th Mar 2015 19:00
Quote: " This is just the entry point to the application, right? I'm not seeing what's hard to understand. Unless I'm now part of the group who take a long time to understand why you use it. "

With Java's built-in reliance on IDEs, that wouldn't be immediately apparent until you start using more complex features. Most IDEs automatically set the starting method for you, so that the distinction of the "application starts here" that exists in C isn't really there.

The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 9th Mar 2015 19:54 Edited at: 9th Mar 2015 19:55
Yea, you can say that it's the entry point for the application but you can't explain why you have to write public static in front of it.

There are other examples of the same thing in java because it's completley OO based. For example, if you want to draw graphics, you have to either learn that you have to type. (Comments are things a new programmer without OO experience would not know)



Having to learn OOP before being able to propperly do graphics seems like it would make you a lot less interested in programming, or you would write your program based on a tutorial and hope that you don't misstype anything and only being able to add tiny features within the OOP parts.

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
Indicium
15
Years of Service
User Offline
Joined: 26th May 2008
Location:
Posted: 9th Mar 2015 19:58
Quote: "Yea, you can say that it's the entry point for the application but you can't explain why you have to write public static in front of it."


Why is this something you need to understand? I use Java at uni, I'm not an expert, but I can take a guess. It's static because there can obviously only be a single instance of it, you can't instantiate the class that holds your entry point. As for public - well, I'd imagine that's just for pedantic reasons or for consistency as it's never actually called within the code, that I know about.

Am I close?
The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 9th Mar 2015 20:30
Yea, you are almost spot on, except for the perhaps the public part. But wouldn't it have been nicer to not have to guess what the code does?

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: 9th Mar 2015 20:50 Edited at: 9th Mar 2015 20:55
Quote: "Yea, you can say that it's the entry point for the application but you can't explain why you have to write public static in front of it."


Static because it must be callable without having to instantiate the class holding it, and public because otherwise it wouldn't be callable from outside the class.

It's impossible to have a program that is purely object oriented. You *have* to punch a hole somewhere (using static) so the program can bootstrap itself.

Need help with C/C++ game dev? PM me or add me on skype: the__comet.
Current active project: Light Ship
Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 10th Mar 2015 02:04
Quote: "I started out with dark basic and moved away from text based stuff within a few days. Being able to do something really cool really helped me get into programming, even though the code I wrote was terrible."


Same for me.

Quote: "This is just the entry point to the application, right? I'm not seeing what's hard to understand."


For a newb? Well, what's an entry point? Think about it. They know nothing about programming so they're not going to know what an entry point is, what public means, what static means, what void means, what main means, heck, even what the brackets mean. In order to explain what public means you have explain object-oriented programming. This is going to be extremely difficult if they don't know how to program even in BASIC. See what I mean? Learning to program requires a drastic shift in the way you think and complete re-learning of what lots of words mean.

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 10th Mar 2015 03:47 Edited at: 10th Mar 2015 03:58
Quote: "For a newb? Well, what's an entry point? Think about it. They know nothing about programming so they're not going to know what an entry point is, what public means, what static means, what void means, what main means, heck, even what the brackets mean."


This.

I'm not going to lie, it took me about a year before I realized that main() in C++ is where the program begins executing. I always thought it began at the top of the file, like in DBPro.

People at my college are programming Java for the first time in their life. Do you know how hard it is to explain to them what the this keyword does? They can't grasp the concept of an object let alone instantiation of objects. To them, the class is the same thing as the object and teachers are using weird phrases like "the class is only the blueprints for the objects you'll be making" to try and explain that the two are different. Do you know how confusing that must be?

Quote: "I'm not seeing what's hard to understand."


Keep in mind it took me an hour of explaining to you why posting input events to your event queue would result in a 33ms delay when combined with the physics update, rather than a 17ms delay. Remember that discussion? It's all fine if you understand it, but it's really hard to explain it to someone who's missing all of the fundamental building blocks.

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: 10th Mar 2015 06:09
Quote: "Keep in mind it took me an hour of explaining to you why posting input events to your event queue would result in a 33ms delay when combined with the physics update, rather than a 17ms delay. Remember that discussion? It's all fine if you understand it, but it's really hard to explain it to someone who's missing all of the fundamental building blocks."


Bit of an over exaggeration, it took a single diagram.

I get your point though, I took at as the person in question was new to Java, rather than new to programming as a whole, which obviously wasn't in keeping with the conversation.

Quote: "public because otherwise it wouldn't be callable from outside the class"

I'm not buying this though. Surely the JVM couldn't give a damn whether you declare it's entry point as public or not, it's calling it regardless, the JVM is above scope. I reckon it's just a consistency thing (you have to declare scope).
Clonkex
Forum Vice President
13
Years of Service
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 10th Mar 2015 07:04
Quote: "I'm not going to lie, it took me about a year before I realized that main() in C++ is where the program begins executing. I always thought it began at the top of the file, like in DBPro."


Me too. I used to always put main() in just because that's what all the tutorials did. It was ages before I understood why it had to be there.

Quote: "Surely the JVM couldn't give a damn whether you declare it's entry point as public or not, it's calling it regardless, the JVM is above scope."


I know very little about Java, but I'd agree with this.

BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 10th Mar 2015 13:15
Quote: "Surely the JVM couldn't give a damn whether you declare it's entry point as public or not, it's calling it regardless, the JVM is above scope"


Nope, it's looking for a specific signature, which includes being public.
Every language has to have a set of rules. There are dozens of Java parsers from Sun (Oracle), IBM, Microsoft and many more. You have to create a standard by which they all abide so that all platforms behave in the same way. As mentioned earlier, this signature punched the hole into the program and allows the JVM to get hold of it.

Quote: "For a newb? Well, what's an entry point? Think about it. They know nothing about programming so they're not going to know what an entry point is, what public means, what static means, what void means, what main means, heck, even what the brackets mean"


This. You'd be surprised at how much knowledge you have absorbed and take for granted. When I first showed my dad how to use a computer I thought I was being very smart by telling him to move the mouse across the screen and get used to how it responds, before we do anything else. He picked up the mouse and put it physically on the screen!


I'm a believer in starting with BASIC (cue flame wars). The reason is very simple. Every method in an OOP class is effectively a piece of procedural code. At this level, you write down a series of sequential commands. So get used to the lowest level of programming you are going to encounter first, before you move to more complex concepts.

Quidquid latine dictum sit, altum sonatur
The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 10th Mar 2015 17:38
I defentivley agree, you should start with a non oop language and learn some simple procedural code before you move on. BASIC is a good option and in my college we started out with python for half a year and have now moved on to java. My programming course in high school went straight to java and noone understood anything (which might have been because we had a terrible teacher)/

Another reason to not start out without OOP in my opinion is that you won't know you need it until you have done some procedural programs. If you start out with java, you might learn that you should make fields private, methods public and organise everything into classes, but not why that is usefull.

I mentioned that I learned arrays by getting tired of copying the same movement code, and that was also sort of how I learned the usefullness of OOP. Types in AppGameKit just didn't do enough.

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy
Indicium
15
Years of Service
User Offline
Joined: 26th May 2008
Location:
Posted: 10th Mar 2015 18:20
While I agree it's obviously looking for a method signature, the public part is arbitrary and plays no actual role unlike static. The signature could just as easily be a private method.
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 10th Mar 2015 18:34 Edited at: 10th Mar 2015 18:43
Quote: "While I agree it's obviously looking for a method signature, the public part is arbitrary and plays no actual role unlike static. The signature could just as easily be a private method."


No, it couldn't. If it were private, you couldn't access it from outside of the class.

Why are you arguing? We've already established the reasons why it must be public and static, what's there still to question?

It is required from the Java language specification:
Quote: "The method main must be declared public, static, and void."


It is required from the JVM specification:
Quote: "The Java Virtual Machine starts up by creating an initial class, which is specified in an implementation-dependent manner, using the bootstrap class loader (§5.3.1). The Java Virtual Machine then links the initial class, initializes it, and invokes the public class method void main(String[]). The invocation of this method drives all further execution. Execution of the Java Virtual Machine instructions constituting the main method may cause linking (and consequently creation) of additional classes and interfaces, as well as invocation of additional methods."


Visibility specifications (public/protected/private) are an intricate part of the Java virtual machine. Java's JIT compiler can take advantage of visibility for optimisation purposes, for example, so no, it's not some arbitrary thing.

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 18:38
It seems arbitrary in isolation, but when you look outside of the box (or outside of the main() ) it's not.

By definition, a private class can only be called from within the application. This is a security feature, and therefore excludes direct access from the JVM also. If the JVM could execute a private class, you have a security breach as this would allow other applications to also call the private class.

Thus, the main() class must be public to maintain the integrity of 1) the JVM and 2) the Java model.

Quidquid latine dictum sit, altum sonatur
bitJericho
21
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 10th Mar 2015 19:30 Edited at: 10th Mar 2015 19:32
Starting with a non-oop language is pretty stupid, considering OOP is the bedrock of modern programming, unless you want to get into functional programming. Take a look at a monkey x program:




It's painfully obvious to anybody how this works with a minimal amount of experience and consideration. This, like any other example, will be greek to anybody who doesn't program.

Don't mistake TGC's inability to stay up with the times as a reason to not consider learning OOP especially if it is your first language.

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 10th Mar 2015 19:40
Quote: "It's painfully obvious to anybody how this works with a minimal amount of experience and consideration."


That's easy for you to say, you're assuming that everyone knows the concepts of OO.

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 20:20 Edited at: 10th Mar 2015 20:21
That's exactly my point. Anybody who wants to be a programmer must understand OOP concepts or you will not get anywhere.

Anybody who's starting out will be lost with or without OOP. OOP is not hard to grasp in BASIC languages that support it, like Monkey X or FreeBASIC and in fact can be learned after the core concepts are learned, since you could program procedurally in Main(). When you're ready to move onto the meat of the language, the libraries, they will be almost entirely OOP and be better off for it.

The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 10th Mar 2015 20:24
Quote: "Starting with a non-oop language is pretty stupid, considering OOP is the bedrock of modern programming,"


Yea, OOP is important to learn at some point, but in my opinion it's better to start out with something easy to learn that can give you some cool results first. And it's not like the skill you got when learning procedural programming can't be used when you move over to OOP.

Say ONE stupid thing and it ends up as a forum signature forever. - Neuro Fuzzy

Login to post a reply

Server time is: 2024-04-19 16:53:55
Your offset time is: 2024-04-19 16:53:55