• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
fiesil

Java or Python

26 posts in this topic

Hi everybody! I need to start with a language. I've read the article What Language Do I Use? and I'm now deciding between Python and Java.

Depending on the course I'll take (I'm about to start university), I'll learn Java+C (from the first year) or C++ (from the second year), but they are two different courses and I can't choose Java+C and C++.

Aims? Blizzard or Riot. I know it's gonna be tough, but I'll run as fast as I can. From graphic-less games to 2D games to something better and better.

If you recommend another language (possibly not C#, as I've read some bad reviews), go ahead! 

Feel free to ask any question!

0

Share this post


Link to post
Share on other sites

I'm a bit confused after reading your title and thread. Why are you deciding between Python and Java again? Sounds like you are supposed to compare Java and C++ instead.

 

Also, what's better and better than 2D games?

0

Share this post


Link to post
Share on other sites

I'm a bit confused after reading your title and thread. Why are you deciding between Python and Java again? Sounds like you are supposed to compare Java and C++ instead.


I want to start coding on my own before (and during and after) university, so I just said what courses I can choose.
I know C++ is actually very used (about 80% maybe) in the gaming industry, but it's been told to me not to directly start with it.
 

Also, what's better and better than 2D games?

I meant I can improve, starting from a 2D little game to something bigger. Or maybe a 3D game, too
0

Share this post


Link to post
Share on other sites

Depends on you short-to-medium term goals.

If you want to learn what they're using in the industry, if you're talking big names like Blizzard, there's a high chance of C++ though they (the game development studios) use other languages such as Python/Lua for embedding.

 

In you want an advice about what to learn before going to Uni to learn your first language and learn about developing games, I'm biased for Python.

Fun, tight, clear language with some good libs for game development such as PySDL, PyGames and Kivy (follow they Pong tutorial, really impressive how fast you can build something with this framework). As a bonus during you career, there'll always be a moment where you'll wing a piece of Python code to do some odd job for you.

0

Share this post


Link to post
Share on other sites


That's cool! I didn't know about it. Though it seems there are many disadvantages if I study Java as I've read in the article I posted above. That's why I decided to ask here!

 

There will be time spent learning how to program.  10 years from now, there may be some new things out there that makes all this time spent on anything a waste of time if you're trying to master a specific language.  So don't approach it from that direction.  Pick a language and learn to use it.  Any object oriented language will teach you the basics of programming.  Variables, control structures, classes, inheritance, composition, polymorphism, data structures, GUIs, File I/O, networking, threads, graphics, etc...  The list goes on.  

 

It is less important what you pick, and more important that you pick something, knowing full well the knowledge for that specific technology will only last a few years.  

 

P.S. Since that's my website, I'm a little biased towards Java.  

0

Share this post


Link to post
Share on other sites

P.S. Since that's my website, I'm a little biased towards Java.

Yeah, I noticed ;)

Python is a good language for scripting a game in some development frameworks.  Java is a good all-around general language.

So, Java knowing my aims?

Really the language that you choose should typically be determined by the game engine or other type of development framework that one will be using

Don't know yet sad.png I don't know anything about game engines
0

Share this post


Link to post
Share on other sites

Now that even big studios like Blizzard is using Unity, C# seems like a very strong option.

 

Python is great if you want to get up and running extremely quickly and is highly suitable for smaller demos and short-lived projects, such as 48h competitions etc. For larger and longer-running projects, I'd go for Java or C# any day though.

0

Share this post


Link to post
Share on other sites

Now that even big studios like Blizzard is using Unity, C# seems like a very strong option.

Awesome! I didn't know it! Does Unity support Java, too?
I've read C# isn't a good option. I'd go for Java maybe, if it's supported
0

Share this post


Link to post
Share on other sites

 

Now that even big studios like Blizzard is using Unity, C# seems like a very strong option.

Awesome! I didn't know it! Does Unity support Java, too?
I've read C# isn't a good option. I'd go for Java maybe, if it's supported

 

 

Blizz used it to create a small game in their april's fool joke (flapping reaver), I wouldn't assume they are actually using it in major projects.

 

If you don't know how to code yet, more important than a language, is learning algorithm logic. This site have some pretty nice challenges on logic:

http://projecteuler.net/

 

EDIT:

Just on topic, I personally like python better than java, because I find java too verbose and annoying (final result is definitely a somewhat resilient code, still I don't enjoy it). Keep in mind that I learned python when I already knew how to code (C as first language here), so maybe you should stick to java to learn a typed programming language (which I find really important). If you want to learn python first, be sure to go to a typed language (java, C, C++, C#) later.

Edited by KnolanCross
0

Share this post


Link to post
Share on other sites
Awesome! I didn't know it! Does Unity support Java, too?
I've read C# isn't a good option. I'd go for Java maybe, if it's supported

 

 

Did you read that from Stallmans personal blog or something? :) Joke aside, as far as I know C# is currently considered one of the best options when it comes to gamedev. If nothing else, tons of studios seems to use it for their tools.

 

Also as far as I know, Unity does not support Java. Java actually seems quite uncommon in non-handheld gamedev for some reason. I have no idea why, but I'm glad that it is so, because I really don't like Java.

0

Share this post


Link to post
Share on other sites

 

 

Blizz used it to create a small game in their april's fool joke (flapping reaver), I wouldn't assume they are actually using it to major projects.

 

http://unity3d.com/showcase/case-stories/hearthstone

 

I wouldn't call it insignificant, though it's seemingly only the mobile port. I didn't read the whole thing though, I just checked Unitys showcase and saw a title I recognized.

 

 

Wow, didn't know that HS was using Unity 3D. I stand corrected.

0

Share this post


Link to post
Share on other sites

Hi everybody! I need to start with a language. I've read the article What Language Do I Use? and I'm now deciding between Python and Java.

Depending on the course I'll take (I'm about to start university), I'll learn Java+C (from the first year) or C++ (from the second year), but they are two different courses and I can't choose Java+C and C++.

Aims? Blizzard or Riot. I know it's gonna be tough, but I'll run as fast as I can. From graphic-less games to 2D games to something better and better.

If you recommend another language (possibly not C#, as I've read some bad reviews), go ahead! 

Feel free to ask any question!

 

The only bad thing about C# is that it still didn't replace Java...

Edited by Alessio1989
0

Share this post


Link to post
Share on other sites

If you want to learn python first, be sure to go to a typed language (java, C, C++, C#) later

For sure, that was an option.

Also as far as I know, Unity does not support Java. Java actually seems quite uncommon in non-handheld gamedev for some reason. I have no idea why, but I'm glad that it is so, because I really don't like Java.

Oh, I understand. I didn't see many great games made with Java, too.

Is C# a good language? Really, I've read some bad reviews. Also, I don't know if it'd be better to start with it or with Java.
What about Python? Nobody seems to go for it as a first choice to get into game dev. I had in mind to go with it so I could also code for web and other software in general.
Should I make a pool to see what the result would be?
2

Share this post


Link to post
Share on other sites

Although Python is not the "first choice" as general purpose language to get into game development (it's still often used as scripting language in game development), it is one of the "first choice" to get into programming for a beginner.

Also forgot to learn only the programming languages that you are going to use at your uni courses.

Edited by Alessio1989
0

Share this post


Link to post
Share on other sites

Is C# a good language? Really, I've read some bad reviews. Also, I don't know if it'd be better to start with it or with Java.
 

 

It's a great language. Most people bashing it are either anti Microsoft (ie GNU/Linux people) or because it is "slower" and "more limited" than something like C++. The latter would probably also bash Java though.

 

C# is also currently one of the best all-around languages, since it's suitable for desktop app development, mobile app development, gamedev and web. It's not "biggest" or "most popular" in any of those categories, but has a rather strong presence in all of them.

0

Share this post


Link to post
Share on other sites

 

Depends on you short-to-medium term goals.
If you want to learn what they're using in the industry, if you're talking big names like Blizzard, there's a high chance of C++ though they (the game development studios) use other languages such as Python/Lua for embedding.
 
In you want an advice about what to learn before going to Uni to learn your first language and learn about developing games, I'm biased for Python.
Fun, tight, clear language with some good libs for game development such as PySDL, PyGames and Kivy (follow they Pong tutorial, really impressive how fast you can build something with this framework). As a bonus during you career, there'll always be a moment where you'll wing a piece of Python code to do some odd job for you.

 Blizzard and Riot are my aims, really. Not saying I don't want to start from below, I do! They are just my goals.
I know about Python being used almost everywhere, even if not as the main language; though I'm starting university within 2 months, so I don't really have time to do a long-time project to finish BEFORE joining the university. Instead I'm looking for something to go along with for months.
 

+1 for Java.
 
http://www.indiegameprogramming.com/

That's cool! I didn't know about it. Though it seems there are many disadvantages if I study Java as I've read in the article I posted above. That's why I decided to ask here!

 

 

a) You should continue doing side projects even while doing university. University can only teach you the basics (thats what they do anyway), and your future employer might expect much more than what you learn at a university (even if you do a Master degree). If you really want to make a good impression (and given your lofty goals, you will have to), have zero work expierience in the field (given you are not content with joining a smaller, less well known studio for some years before knocking at blizzards doors), IMO doing as many and as impressive side projects as possible besides university is a MUST!

 

Will you have to give up your already little free time besides university for it? Yes! But there is no "shortcut" without sacrifices.

 

b) Java, C#, C++ .... in the end, it really will not matter. Go with the language you will pick for your university curriculum and you will have an easier time in the beginning of uni.

 

In the end, what language you will use in the Industry depends a lot on the studio and the position. For Graphics Programming a healthy dose of shader languages and knowing APIs like DX or GL will help you as much as C++ I guess. For Gameplay programming, you might be coding much more in Script languages or C# than C++.

 

The important thing is to start learning the basics of programming. If you know what an Array is, or a scalar variable, you know how loops are built up, you know about some patterns like observer or factory, you will find it quite easy to learn a new language. 

 

There are important differences. But these are much easier to deal with as soon as you have learnt to program, and this skill to a large extend is completly language agnostic.

Edited by Gian-Reto
0

Share this post


Link to post
Share on other sites

You should continue doing side projects even while doing university

Another user said it before, and it's true; I'm only looking for something to start with, but I'm planning on studying on my own during and post -uni.
I have "Visual C# 2010" I've never read. Is it the right book to start with? Can you suggest anything better?
Or even another language?
I'm stuck on those questions sad.png
0

Share this post


Link to post
Share on other sites

 

You should continue doing side projects even while doing university

Another user said it before, and it's true; I'm only looking for something to start with, but I'm planning on studying on my own during and post -uni.
I have "Visual C# 2010" I've never read. Is it the right book to start with? Can you suggest anything better?
Or even another language?
I'm stuck on those questions sad.png

 

 

Having an understanding of C# when starting your C++ course in Uni (if you decide to go that way) is still better than having no programming expierience at all.

 

You will still have to learn new concepts like memory management that C#, most of the time, will take care of for you. But around 90% of the language (save libraries that might differ) will be highly familiar to you by then, as its only a slight difference in syntax between C# and C++...

 

 

You have to see that most of the languages popular today, especially in the field of game programming, have common roots (in C AFAIK). Thus the basic concepts are very close.

 

 

Now, as you already have this book laying around, you have 2 Months left and want a cool project, you could either start by writing small text based or 2D Games with the C# book and an additional tutorial on Game Loops and basic game concepts like that (translating a Java tutorial for a game loop to C# should be easy, and is a good training in understanding basic concepts and differences of these languages in itself for example)...

 

Or you could do what a lot of the impatient newbies did (me included ;) ), download Unity (its free as long as you don't need the pro stuff), skip through a quick tutorial to get the basics (who has the time to really do a tutorial from start to end, right? What could possibly go wrong, right? smile.png ), and then use the Engine, combined with some nice free 3D Models found on the net, combined with your C# book to setup a nice scene, populate it with stuff, and get things moving with C# scripts.

 

 

The first suggestion is certainly a better, more bottom up approach for a game programmer... no better way to understand the basics of a game loop than programming it yourself. You will learn more about the language, and by the time you hit Uni you certainly have some small games done.

 

The second approach will give you nice visual results faster. You will also learn a lot about C# and Programming, as an added bonus you get some expierience with using a Game Engine Editor (which is different for each engine, but the basic stuff stays the same more or less) and you get exposed to some topics of 3D Graphics (baking lightmaps, realtime lighting, shaders, ...).

If you have enough staying power to really dive in head first, you might, after a lot of learning, be able to build simple 3D Games with stock models. Which to some people is much more motivating than writing simple 2D Games.

 

 

I think I personally would mix'n'match a little. You really should try writing game loops to get a feel for how every engine is built up at its core (and then get the opportunity to see why something sounding so simple like refreshing a 2D Image 60 times per second will fail miserably if implemented in a naive way... happened to me)

When you get tired of writing simple text games, move on to nice 2D Games, or download an engine and dive in head first into 3D Game dev.

 

There is much more to learn than just how to program. If you really have 2 months full time, you can get a headstart on other students for your CS Education, AND learn some basics for later game dev projects.

 

 

EDIT:

 

Oh, and be aware that a book with the name of "<language name> <year>" will usually be a good reference for an expierienced programmer, but might not be the best start for a novice. You usually will find a book "learning <language name>", sometimes even from the same publisher.

 

For example, O'Reilly will normally Publish a general reference book on a language ("Perl in a Nutshell" for example), but also a beginners book ("Learning Perl" for example).

 

The beginners book will explain the basics much better, but will never go that much into the details as the reference book, and will omit library specific parts that the reference book might include to get more space for simple tutorials and a much more examples.

Edited by Gian-Reto
0

Share this post


Link to post
Share on other sites

The beginners book will explain the basics much better, but will never go that much into the details as the reference book, and will omit library specific parts that the reference book might include to get more space for simple tutorials and a much more examples.

I've noticed: http://www.amazon.com/s/url=search-alias%3Daps&field-keywords=c%23
This seems a good book, even if some say it's better "Head First C#". I don't know if I should study on a newer book (that one is from 2012, but things go fast). What would you recommend?

The first suggestion is certainly a better, more bottom up approach for a game programmer... no better way to understand the basics of a game loop than programming it yourself. You will learn more about the language, and by the time you hit Uni you certainly have some small games done.

I think I'll go with this path. There are many books I can buy to code games (1, 2, 3, ...) and having a good understanding of the language should help... even if, if you didn't tell me it was better, I'd have chosen the second path.

Edited by fiesil
0

Share this post


Link to post
Share on other sites

 

The beginners book will explain the basics much better, but will never go that much into the details as the reference book, and will omit library specific parts that the reference book might include to get more space for simple tutorials and a much more examples.

I've noticed: http://www.amazon.com/s/url=search-alias%3Daps&field-keywords=c%23
This seems a good book, even if some say it's better "Head First C#". I don't know if I should study on a newer book (that one is from 2012, but things go fast). What would you recommend?

The first suggestion is certainly a better, more bottom up approach for a game programmer... no better way to understand the basics of a game loop than programming it yourself. You will learn more about the language, and by the time you hit Uni you certainly have some small games done.

I think I'll go with this path. There are many books I can buy to code games (1, 2, 3, ...) and having a good understanding of the language should help... even if, if you didn't tell me it was better, I'd have chosen the second path.

 

 

I personally like the O'Reilly books, and I have their "learning C#" book at home. Used it during my CS studies, though I use online references mostly nowadays when doing C# development for Unity (because the Unity API is best consumed from the Unity webpage). I have passed it on to my Girlfriend so I haven't really opened it for quite some time, but I think the book was quite useful for learning.

 

I don't know the other books sadly, so besides the O'Reilly book and giving rather broadish advices I fear I cannot help you further. Pick a book with good reviews in your price range and go.

 

 

From the other links you posted, #1 is a book about game dev with Unity and C#. While I personally think its a fine way of being introduced to game development, it is more related to the second option I listed, which is working with an existing engine.

 

So if you want to start from scratch, pick another book.

 

 

About "better path"... it is certainly better for someone that aspires to be a game programmer, of most probably all specializations of game programming. If this is your career goal, then yes, start from scratch.

 

If you would aim to be a level designer, that advise might be reversed... knowing how to use an engine and an engine editor would be much more important to this person then being able to write games from scratch (altough understanding basics of other professions never hurts)

Edited by Gian-Reto
0

Share this post


Link to post
Share on other sites

Personally I think that Python is the best and easiest  high-level language to start with . I recommend using Pygame framework which makes it easy to create programs with 2D graphics. All you need to start making simple 2D games is a computer and the wonderful book "Making Games with Python & Pygame" ; you can download it from this direct link :   http://www.datafilehost.com/d/ab305094

It's the better way to make your first step into game development world. :)

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0