Page 1 of 2 [ 24 posts ]  Go to page 1, 2  Next

kxmode
Supporting Member
Supporting Member

User avatar

Joined: 14 Oct 2007
Gender: Male
Posts: 2,613
Location: In your neighborhood, knocking on your door. :)

06 Dec 2012, 5:38 am

Does learning Java help establish a foundational knowledge of programming?
Once someone gets comfortable with Java can they jump into other programming languages like C#?
Is it true you can create a game from the ground up with Java?
How are Java files encrypted so that people cannot peek into them, or can they no matter what?
Is Java a programming language like Assembly?
Between Java and C# which is better to learn for (1.) web? (2.) game development?
Are Java and JavaScript related?

Please share any other information. Thanks!



Trencher93
Velociraptor
Velociraptor

User avatar

Joined: 23 Jun 2008
Age: 125
Gender: Male
Posts: 464

06 Dec 2012, 7:01 am

kxmode wrote:
Does learning Java help establish a foundational knowledge of programming?

Not necessarily. You can learn Java without learning the fundamentals of programming. I'd recommend a really good Java book like Bruce Eckel's "Thinking in Java" that teaches both.

kxmode wrote:
Once someone gets comfortable with Java can they jump into other programming languages like C#?

There are a group of similar but different languages including (but not limited to) Java, C++, C#, Objective-C, and Python. They're similar in how they derive their basic syntax from C, but can be quite different in many other aspects.

The more languages you learn, the easier it is to learn the next language. This is also a problem, since the more languages you learn, the harder it is to remember any one language because they're all similar but different.

kxmode wrote:
Is it true you can create a game from the ground up with Java?

Yes. Not my area of expertise, but people have written games in Java.

kxmode wrote:
How are Java files encrypted so that people cannot peek into them, or can they no matter what?

Learn more about Java before asking! The way you ask shows you don't know enough about Java to ask this question yet.

kxmode wrote:
Is Java a programming language like Assembly?

No, Java is a high-level language which is compiled to assembly, which in Java's case is the JVM.

kxmode wrote:
Between Java and C# which is better to learn for (1.) web? (2.) game development?

Learn more about both before asking! What's better for driving, a car or a truck?

kxmode wrote:
Are Java and JavaScript related?

No. The name "JavaScript" is an unfortunate choice which has forever linked the language to Java. Call it ECMAScript.

JavaScript is an interesting language to learn, because it is a dynamic language that can be used for functional programming, and very different from Java or C#. That's what I mean when I say similar but different. JavaScript shares a superficial syntax with Java, but the language is remarkably different in emphasis.

kxmode wrote:
Please share any other information. Thanks!


Google is your friend. Use it to do research.

Probably what you want to do is learn about programming, using something like O'Reilly's "Practical Programming" book. Then learn about Java in general. ("Thinking In Java" is good.) Then learn about the domain you want to work in, such as game programming. If you want to learn about game programming, learning linear algebra and matrix theory will be a must (check out Dover's math books on this topic), as well as computer graphics.



Vectorspace
Veteran
Veteran

User avatar

Joined: 3 Oct 2012
Age: 35
Gender: Male
Posts: 903
Location: Germany

06 Dec 2012, 1:31 pm

kxmode wrote:
Does learning Java help establish a foundational knowledge of programming?
Once someone gets comfortable with Java can they jump into other programming languages like C#?

Depends.
Java teaches you the concepts of imperative and object-oriented programming. It doesn't teach anything about low-level stuff or functional programming.
AFAIK, C# is quite similar, though I don't know C#.

Java is popular and not that hard, so it's probably a good language for beginners.
I don't like Java that much, though.

Quote:
Is it true you can create a game from the ground up with Java?

Minecraft should suffice as an example.
Java code is generally a bit slower than code written in languages like C++, and it's also very memory-hungry.

Quote:
How are Java files encrypted so that people cannot peek into them, or can they no matter what?

They're compiled into bytecode, which can be decompiled.

Quote:
Is Java a programming language like Assembly?

They're both programming languages, but it's really a different experience.
(You only need to code in Assembly if you need really fine control over what's going on.)

Quote:
Between Java and C# which is better to learn for (1.) web? (2.) game development?

No idea. C# usually means you'll be doing .NET stuff.

Quote:
Are Java and JavaScript related?

Not really. But I won't bother you with typing paradigms right now.

Final remark: If you want to learn about programming, go on. If you only want to make a game, you'll be disappointed. Programming is not easy and involves a lot of theory...

Image



Evinceo
Deinonychus
Deinonychus

User avatar

Joined: 13 Apr 2012
Age: 32
Gender: Male
Posts: 392

06 Dec 2012, 3:11 pm

Vectorspace wrote:
Final remark: If you want to learn about programming, go on. If you only want to make a game, you'll be disappointed. Programming is not easy and involves a lot of theory...


If you want to make a game well, you need to learn lots of theory-only the tightest searches and sorts will do!



Vectorspace
Veteran
Veteran

User avatar

Joined: 3 Oct 2012
Age: 35
Gender: Male
Posts: 903
Location: Germany

06 Dec 2012, 4:53 pm

I should have mentioned:

You may want to start by finding a game that supports Lua scripts. It's a really simple programming language.
Try to modify existing script.
This way, you can achieve visible effects after a few days.

You can try writing a Blobby Volley bot. (It's really fun if you know a little bit of physics. One of the official bots was actually written by me when I was bored after finishing High School – and it was the strongest one at that time. :))

If you want to stick to Java, try Greenfoot. It's a platform that teaches Java via games.



Trencher93
Velociraptor
Velociraptor

User avatar

Joined: 23 Jun 2008
Age: 125
Gender: Male
Posts: 464

06 Dec 2012, 4:54 pm

Vectorspace wrote:
If you want to learn about programming, go on. If you only want to make a game, you'll be disappointed. Programming is not easy and involves a lot of theory...


I totally agree with Vectorspace's statement. There is only so far anyone can go with programming, without understanding the theory behind it. Check out Paul Suppe's book on axiomatic set theory, or Erich Kamke's book (both from Dover and both good introductions), and see if that sort of thing interests you.

Game programming is one of the most mathematically intense areas of computing, since it involves build a model of your world (data structures), drawing it (graphics which involve matrices and linear algebra), and AI.

Java is certainly a good candidate for simple games, for beginners, since it is an easier language, but games are probably written more in C++ than either Java or C#, both of which have runtime platforms (JVM and .NET) which aren't all that fast. C++ is not trivial.



UnLoser
Veteran
Veteran

User avatar

Joined: 28 Mar 2012
Gender: Male
Posts: 655

07 Dec 2012, 12:06 am

kxmode wrote:
Final remark: If you want to learn about programming, go on. If you only want to make a game, you'll be disappointed. Programming is not easy and involves a lot of theory...


Well, if you want to make a game, you'll have to learn some kind of programming. No getting around that. But from my experience, programming video games is not quite as daunting as you make it seem. If you're just writing scripts for a game engine like Unity or Unreal, then you just need to learn the basics of the language it uses, and dive into some tutorials to learn about the game engine's scripting API. Then start with some very simple projects, referring back to the internet to help you overcome obstacles. After about a year or so, you'll be competent enough to make a moderately complex game, if you're dedicated. No complex theory is required, aside from vector and matrix math.

Obviously, coding your own game from the ground up-without the use of a game engine-is an enormous undertaking, and it's not necessary for a hobbyist just looking to make some games. You can do so much with a free game engine and a scripting language.



Evinceo
Deinonychus
Deinonychus

User avatar

Joined: 13 Apr 2012
Age: 32
Gender: Male
Posts: 392

07 Dec 2012, 1:15 am

I'm in the contriversy-sparking mood, so I won't hold my tounge on this one:
Scripting for a game engine with a full tool set & object model (ie Unreal and it's poor cousin, Unity) is to developing a game as writing fan fiction is to writing original fiction.



Trencher93
Velociraptor
Velociraptor

User avatar

Joined: 23 Jun 2008
Age: 125
Gender: Male
Posts: 464

07 Dec 2012, 7:42 am

Controversy! Finally! I was waiting. :)

I don't know much about the game industry, but engines are so hard to write that I've heard even game companies buy existing game engines and script them. Would be an interesting research topic. Game engines are abstractions that do the rendering (all the linear algebra and matrix transformations required to create bitmaps from the game's world model), so that's where the heavy math is, and where optimizing is critical. Once you have an engine, from what I understand, creating new levels and scripting what happens is comparatively easy. So I guess there are strata in the game developer world like anything else, with the real gurus writing the game engine internals.

Probably scripting an existing engine would be a good entre into the world of game programming. Then you can write your own engine later.

Used to be there was a "demo scene" where programmers would write their own graphics demos using hand-optimzied assembler. I guess those days are over.



Evinceo
Deinonychus
Deinonychus

User avatar

Joined: 13 Apr 2012
Age: 32
Gender: Male
Posts: 392

07 Dec 2012, 7:16 pm

Demo scene programmers still exist-they tend to be on the bleeding edge of smaller and less-powerful tech (ex: gameboys). That said, the best game engine programmers are themselves often famous Assembly hackers (ex: Abrash, Carmack).

I distinguished between a rendering engine (which is deep magic) and engines with fixed object models, because the latter forces you to accept it's limits and paradigms, something that many programmers learn to hate.



Oodain
Veteran
Veteran

User avatar

Joined: 30 Jan 2011
Age: 34
Gender: Male
Posts: 5,022
Location: in my own little tamarillo jungle,

07 Dec 2012, 7:30 pm

Evinceo wrote:
I'm in the contriversy-sparking mood, so I won't hold my tounge on this one:
Scripting for a game engine with a full tool set & object model (ie Unreal and it's poor cousin, Unity) is to developing a game as writing fan fiction is to writing original fiction.


some fan art beats the originals.

gaming is such a varied and complex field that no generalizasation about these things hold true.

almost all games today are based on third party engines to some extent, it is a tool, and just like any other tool it will have its limitations.
if not the engine itself then their renderer or their lightning engine or, or, or, or.


_________________
//through chaos comes complexity//

the scent of the tamarillo is pungent and powerfull,
woe be to the nose who nears it.


Evinceo
Deinonychus
Deinonychus

User avatar

Joined: 13 Apr 2012
Age: 32
Gender: Male
Posts: 392

07 Dec 2012, 7:32 pm

Oodain wrote:
Evinceo wrote:
I'm in the contriversy-sparking mood, so I won't hold my tounge on this one:
Scripting for a game engine with a full tool set & object model (ie Unreal and it's poor cousin, Unity) is to developing a game as writing fan fiction is to writing original fiction.


some fan art beats the originals.

gaming is such a varied and complex field that no generalizasation about these things hold true.

almost all games today are based on third party engines to some extent, it is a tool, and just like any other tool it will have its limitations.
if not the engine itself then their renderer or their lightning engine or, or, or, or.


Some mods are far better then the original game too (Brutal Doom is an excellent example.)



Eleas
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 29 Nov 2012
Age: 44
Gender: Male
Posts: 33

07 Dec 2012, 7:46 pm

Trencher93 wrote:
Used to be there was a "demo scene" where programmers would write their own graphics demos using hand-optimzied assembler. I guess those days are over.


Not entirely, I think. The elite coder hype has lessened, partly because the emphasis has shifted to content creation rather than optimization, and partly because the demo scene hasn't grown substantially while the rest of the computer world has ballooned. Heck, there're still C64 demos being made at annual gatherings today.

So the Scene still exists. I think the problem is that there's a mainstream gamer arena now, one that has been sharply decoupled from the veneration of programmers. It may have to do with the fact that you don't really need the same amount of skill to create something flashy anymore when all you need is to double up on the GPU. Having a glut of processing power breeds sloppy coding. Then again, the cynic in me wonders if it really has to do with something else. Way back when, using a computer was a more intimate thing: the OS didn't aim to keep you ignorant the way today's systems do.

Back when, for instance, to use an Amiga exclusively for any length of time was to learn to understand it, to trust the system. You had to be willing to pay attention, and if you did, the rewards were immense. Demo coders weren't mysterious gods back then, just people who had progressed further, far enough to allow them to do awesome stuff on their machines. They were inspirational.

Today's systems, in contrast, are rigid, ponderous, full of terrifying complexity for the new user. Worst of all, they break: where the old systems could swiftly be reset to factory settings, today you can easily cause permanent damage if you do something at the wrong time, particularly as a new user. So how do mainstream OSes address this?

They teach new users to be careful, to avoid pushing the system's limits, and to be timid in their actions, or something might just go wrong. Given that mindset, there's no kinship with the coder or the demo scene: dabbling in such things makes today's common user mildly fearful of potential catastrophe.



Trencher93
Velociraptor
Velociraptor

User avatar

Joined: 23 Jun 2008
Age: 125
Gender: Male
Posts: 464

08 Dec 2012, 12:30 pm

Eleas wrote:
Having a glut of processing power breeds sloppy coding.


That's true of all programming these days. The padded rooms of .NET and the JVM are good examples, where programmers aren't allowed to hurt themselves. Or anyone else.



UnLoser
Veteran
Veteran

User avatar

Joined: 28 Mar 2012
Gender: Male
Posts: 655

09 Dec 2012, 7:00 pm

Evinceo wrote:
I'm in the contriversy-sparking mood, so I won't hold my tounge on this one:
Scripting for a game engine with a full tool set & object model (ie Unreal and it's poor cousin, Unity) is to developing a game as writing fan fiction is to writing original fiction.


The difference is that stories that rip off someone else's source material would generally not taken seriously as commercial products or works of art, while games made using a licensed game engine can easily be commercially successful and critically acclaimed. The only catch is that professional games made with Unreal or Unity usually have most of their game logic coded in a compiled language, so it's technically not scripting. But I'm sure there are successful indie games that make heavy use of scripting.



Evinceo
Deinonychus
Deinonychus

User avatar

Joined: 13 Apr 2012
Age: 32
Gender: Male
Posts: 392

09 Dec 2012, 7:10 pm

UnLoser wrote:
Evinceo wrote:
I'm in the contriversy-sparking mood, so I won't hold my tounge on this one:
Scripting for a game engine with a full tool set & object model (ie Unreal and it's poor cousin, Unity) is to developing a game as writing fan fiction is to writing original fiction.


The difference is that stories that rip off someone else's source material would generally not taken seriously as commercial products or works of art, while games made using a licensed game engine can easily be commercially successful and critically acclaimed. The only catch is that professional games made with Unreal or Unity usually have most of their game logic coded in a compiled language, so it's technically not scripting. But I'm sure there are successful indie games that make heavy use of scripting.


But, like a fanfic, you must obtain permission from the original author to use it. In the case of most com. game engines, that also means a hefty price. In the case of fan fiction, it means you basically only get to publish if you're commissioned to write it in the first place.