• 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
Brick

Most Widely Used Programming Language (for games)

45 posts in this topic

So far I've learned a couple of programming languages that I found out weren't that useful for game development AFTER I put the time into learning them (the concepts certainly helped, though). I'm trying to avoid this mistake again by doing a bit more research first. The first thing that comes to mind is C++, but what programming language have you personally seen used the most in the context of game programming?

0

Share this post


Link to post
Share on other sites

What programming languages have you used? You should tell us this because we have people who are experience in different languages that can guide you more on this.

 

In the industry, it varies. AAA triple games use C++ and C for engine. C# for tools. Some of the casual game development company use ActionScript and C# for Window 8 games. I heard you can use Flash for Facebook games. Anyone correct me on this if I am wrong. You can use Java for Android apps.

 

It really depends on what platform your application is going to be on.

 

I learned game development with Java for 8 months now so I thought I give you advice on the subject.

 

Download an open source game project of the given language you are going to use. Look at how the codebase is laidout. In the Internet, you get some awesome games like Pong but their codebase written has horrible coding style. So look for a well-written codebase for a simple game. One of the best way to learn game development is to analyze the foundation of the codebase and start tinkering with the code instead of writing out the code one by one. Then start taking it apart and adding your own code.

Essentially, this step is the hands on work you want to have when learning game programming. Analyzing an open source game project eliminates a lot of the guesswork of what you still need to know to program something like pong. If you know pong, you have a better understanding to write a simple arcade shooter game. You want to improve and deepen your conceptual understanding with every game you write.

 

Generally, if you want to use C++, you can do that but the other step is learning the library that is compatible with C++. So you are actually learning two things when you are programming games. You will need to learn how to link a game programming library to the IDE you are using with C++. This applies to a lot of programming languages. You don't have to use C++. It really boils down to which language you know well enough out of the other ones you also know.

 

I used Java and it is a great language to learn for general programming and game programming. Java is one of those rare exception where it does have a built-in library where you can set up the graphics environment for your game yourself or you can also link a Slick2D library that does a lot of the heavy lifting in setting up the graphics environment for you. So you can just focus on the game logic which is very crucial for anyone starting out programming games.

 

Anyways, the key thing is not getting caught up with which language should I use, but what do I get out of using this language? It is just a tool. Once you learn one, you can apply the concepts you learn to another language while still learning something new.

Edited by warnexus
0

Share this post


Link to post
Share on other sites

C++ & Lua and you should be good to go. I'd say these are probably the most common combination of compiled & scripted languages in the "professional" space.

2

Share this post


Link to post
Share on other sites

If you want to work on indie games like me, I'd say the way to go is:

 

- C# or JavaScript to work with Unity3D;

- ActionScript 3 for flash games (and actualy you can compile and publish flash to android and ios);

- LUA to work with corona SDK (a great engine to develop games for mobile);

 

I think these are the main languages that I've learned over the years.

 

And of course there is C++, wich I think is the must know for all game developers.

Edited by brunopava
2

Share this post


Link to post
Share on other sites

I'm extremely biased here because I've been a Flash developer for many years, but I would recommend ActionScript/Flash for a number of reasons:

 

1. Portability: Between Flash and AIR, your code can reach just about any device and any OS. If you're careful how you code things, the same code can run as-is in both Flash (web) and AIR (desktop/mobile/tablet).

 

2. Penetration: AIR and Flash combined are installed on some 1.5 billion devices (http://www.adobe.com/ca/products/flashruntimes/statistics.html). Only Java (in the runtime category) comes close to that level of penetration. Practically, this means anywhere Flash or AIR run, your game will run. This includes limited BlackBerry support and, increasingly, smart TVs too.

 

3. Ease of use / power: I'm not going to pretend that ActionScript code can run at native (C++) speeds, but the runtimes have been greatly improved and run impressively fast. You get access to all of the older Flash APIs as well as extended AIR APIs which, collected, is not easy to stick together into one native game package if you're slapping together disparate libraries. Plus, you're guaranteed that your code will run the same way no matter which device or OS you're running on.

 

4. History: Adobe has been evolving Flash for many years now. It's a solid product and with AIR, exactly the same skills/language/tools are used to produce apps that run with native privileges. Adobe has built in many great features including direct GPU integration, networking and P2P abilities, fantastic audio support, top-notch video support, and many other features you'll be glad are there once you start building your game.

 

5. Control: Along with the improvements mentioned above, Adobe has done a lot to "open" up the Flash/AIR virtual machines. This means access to a lot more low-level data which previously would be handled in the background by the runtime. A simple example of this is the sound API which previously could be used to control loaded audio, but the audio data itself remained hidden in memory and protected by the runtime. That data has been opened up as of a few versions ago, opening up raw audio data for applications such as realtime sound effects, software-based audio synthesis, and other useful functionality.

 

That being said, I would stay away from using Flex / FlashBuilder for producing your game. Great products for coding, but for visual design the old Flash IDE is best. If you're on a budget, FlashDevelop is a great IDE that easily competes with Adobe's commercial products.

 

At the end of the day, ActionScript is the language that powers both Flash and AIR, and it's also closely related to JavaScript and Java so it's a great "gateway" language too. If top-notch performance is a concern, Flash and AIR may not be the best solution (there's a reason it's called ActionSCRIPT), but you can produce impressive games without the hassle of lower-level languages like C++.

 

My highly biased two cents ;)

Edited by Patrick B
0

Share this post


Link to post
Share on other sites

C++ for game/engine code, C# for tools.

 

I've also seen some pretty fancy build process stuff done in Perl and makefiles. Perl makes no sense to me. I'm decent with Make, but not expert.

 

Personally I like C and assembly for game code and C++ for tools... but I mostly do SNES style games.

 

I love the blood red "language war" tag on this thread laugh.png

Edited by DekuTree64
0

Share this post


Link to post
Share on other sites


I love the blood red "language war" tag on this thread

 

Yes, it has seen a revival lately.. very appropriate.

0

Share this post


Link to post
Share on other sites

 

There are of course many who keep telling everybody at games development conferences that the future of games is going to be JavaScript and HTML5.

 

For casual web/mobile games that is very likely to be true in the near future (possibly with some native ties to the platforms marketplace for in-game purchases in cases where the platform lacks a JS accessible API for it), the ease of deployment across the primary platforms for such games (facebook, various webgame portals and mobile phones/tablets) is a huge advantage.

 

for big AAA titles its unlikely to ever become popular.

0

Share this post


Link to post
Share on other sites

I'm extremely biased here because I've been a Flash developer for many years, but I would recommend ActionScript/Flash for a number of reasons:

 

1. Portability: Between Flash and AIR, your code can reach just about any device and any OS. If you're careful how you code things, the same code can run as-is in both Flash (web) and AIR (desktop/mobile/tablet).

 

2. Penetration: AIR and Flash combined are installed on some 1.5 billion devices (http://www.adobe.com/ca/products/flashruntimes/statistics.html). Only Java (in the runtime category) comes close to that level of penetration. Practically, this means anywhere Flash or AIR run, your game will run. This includes limited BlackBerry support and, increasingly, smart TVs too.

 

3. Ease of use / power: I'm not going to pretend that ActionScript code can run at native (C++) speeds, but the runtimes have been greatly improved and run impressively fast. You get access to all of the older Flash APIs as well as extended AIR APIs which, collected, is not easy to stick together into one native game package if you're slapping together disparate libraries. Plus, you're guaranteed that your code will run the same way no matter which device or OS you're running on.

 

4. History: Adobe has been evolving Flash for many years now. It's a solid product and with AIR, exactly the same skills/language/tools are used to produce apps that run with native privileges. Adobe has built in many great features including direct GPU integration, networking and P2P abilities, fantastic audio support, top-notch video support, and many other features you'll be glad are there once you start building your game.

 

5. Control: Along with the improvements mentioned above, Adobe has done a lot to "open" up the Flash/AIR virtual machines. This means access to a lot more low-level data which previously would be handled in the background by the runtime. A simple example of this is the sound API which previously could be used to control loaded audio, but the audio data itself remained hidden in memory and protected by the runtime. That data has been opened up as of a few versions ago, opening up raw audio data for applications such as realtime sound effects, software-based audio synthesis, and other useful functionality.

 

That being said, I would stay away from using Flex / FlashBuilder for producing your game. Great products for coding, but for visual design the old Flash IDE is best. If you're on a budget, FlashDevelop is a great IDE that easily competes with Adobe's commercial products.

 

At the end of the day, ActionScript is the language that powers both Flash and AIR, and it's also closely related to JavaScript and Java so it's a great "gateway" language too. If top-notch performance is a concern, Flash and AIR may not be the best solution (there's a reason it's called ActionSCRIPT), but you can produce impressive games without the hassle of lower-level languages like C++.

 

My highly biased two cents ;)

 

Flash seem to have a very good quality and is interesting -

I never used it. But the two question comes to my mind, could

you ansewr :

 

- is there some free environment where you can make games and not pay for it? Is there some lightweight environment to build flash programs (how many megabytes to download?)

 

- what with right mouse button click?, when i play flash games 

(recently played one whole day) It is always strange feeling 

of not being able to use right mouse button

Edited by fir
0

Share this post


Link to post
Share on other sites

FlashDevelop is a free Flash/AIR IDE that I use regularly: http://flashdevelop.org/

Apache Flex is another free Flash/AIR IDE based on Eclipse and given royal approval by Adobe: http://flex.apache.org/

 

These are pretty much complete solutions with the exception of the graphics/motion editor built into the standard Flash IDE. When I was first learning Flash and OOP, I found it extremely useful to have the graphical editor -- it visually represented the code structure behind it. However, anything you can do in the Flash IDE can be replicated using ActionScript so it's not absolutely necessary.

0

Share this post


Link to post
Share on other sites

I've known a couple of associates strung out over Java.

However, I myself when offered the choice between C, C++, and C#, chose C++. . . and so that's where my loyalties lie.

To me as an independant learner, it was the easiest among those three to understand.

0

Share this post


Link to post
Share on other sites

C++ is very good, despite all the hatred, usually fueled by frustration or sometimes inexperience.



Lulz.


People who like C++ typically are the ones lacking experience in other languages and development paradigms.
2

Share this post


Link to post
Share on other sites

 

C++ is very good, despite all the hatred, usually fueled by frustration or sometimes inexperience.



Lulz.


People who like C++ typically are the ones lacking experience in other languages and development paradigms.

 

 

Or lacking experience with C++, on the surface it doesn't look that bad and most of the problems caused by incorrect usage are hidden from the programmer (until a user sends in a cryptic crash report or that fancy server application you wrote got hacked using a buffer overrun), heck a significant portion of all bugs and security flaws in todays software, written by professionals with years of experience would have easily been avoided had they used a different language. (Yes, C++ has its advantages for low level code and has gotten better in recent years, sometimes it is even the best option available but its not a perfect language)

Edited by SimonForsman
2

Share this post


Link to post
Share on other sites

 

C++ is very good, despite all the hatred, usually fueled by frustration or sometimes inexperience.



Lulz.


People who like C++ typically are the ones lacking experience in other languages and development paradigms.

 

Not really,

 

I've hated C++ for about two years. I only had experience with Java, C# and scripting languages.

But I was faced with a job that required C++ and was forced to learn it.

 

Aside from C++, I have experience in Java, C#, Prolog (for specific applications), PHP, Java Script, COBOL (only maintenance of an old-but-running system).

Languages I learned as hobby are Ruby (as I thought it would be the next big thing), Perl (good old times of Ragnarok Online bots), Haxe (only recently).

 

And in my opinion, C++ is not a monster.

But yeah, I lack experience when compared to some, but I do this for eight years, and I like to think can differ an opinion and a fact, even when the opinion is mine.

Edited by dejaime
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