Language Interoperability Preferences of the Professionals

Started by
46 comments, last by swiftcoder 11 years, 2 months ago
Yeah, I have heard a little about PyPy going deeper. Some are just like you sticking with it unless they just have to use say C/++ or other. How are you going to implement your own language - interpreter? I have no idea how to make a language.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

Advertisement

[quote name='3Ddreamer' timestamp='1358720115' post='5023650']
How are you going to implement your own language - interpreter?[/quote]

I was initially looking at targeting the CLR (the virtual machine/runtime underlying .Net and Mono).

However, I have decided that the advantages of native compilation (using LLVM for native code generation) outweigh the benefits that the CLR provides.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

What are you saying - make your own virtual machine?

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

[quote name='3Ddreamer' timestamp='1358715899' post='5023620']
By JIT, you must mean Just In Time compilation, correct? I couldn't find anything detailed in the internet about LuaJIT. Some coders love Lua, but I don't remember reading about anybody using LuaJIT in a game so I must not have been at the right place to find it. I wonder why we don't see many popular games which have been made with Lua and C - can't think of any at the moment.[/quote]Lua is extremely popular in games wink.png Every game that I've worked on, which wasn't using UnrealScript, was using Lua.

LuaJIT is a drop-in replacement for Lua -- it's the same API, but the author has re-written the whole library in assembly code to keep it as lean as possible. He's then also added an extra option you can enable, which enables Just In Time compilation of the Lua bytecode to native assembly for even more speed.

[quote name='3Ddreamer' timestamp='1358718533' post='5023638']
What exactly does this mean: Closed Platforms? Are you saying Windows?
If something is so great, then why would any platform manufacturer not allow JIT?[/quote]Closed platforms are ones where you need permission from some "gate keeper" in order to publish a game on them -- e.g. Nintendo, Sony, Microsoft, Apple.

Usually, these platforms require all of your code to be compiled into the version that you submit for testing, so JIT compilation is banned. This is mainly a security issue -- if someone manages to modify your game's data files, they can edit your scripts. Normally, this wouldn't be a problem for the platform-gate-keeper, however, if these scripts can generate and run native assembly code, then perhaps that will let people hack into the OS, etc, etc...

In other words, JIT is great for hobbyists but a dead end for commercial games, right?

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

No. On PC JIT is wonderful stuff. See every HTML5 game in Chrome for example.
Okay, that's great to know, but what about Windows based games? Who are the "gatekeepers" for Windows?

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

[quote name='3Ddreamer' timestamp='1358815398' post='5024106']
Who are the "gatekeepers" for Windows?[/quote]

There aren't any gatekeepers per se, because you are always free to sell your software by direct download (or, in the past, on disk), thus bypassing any potential need for approval.

That said, as app stores become more popular, they start to fulfil that role. You might argue that Steam and the Windows Store both take on the role of gatekeepers.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Yeah, Valve are the gatekeeper of Steam, but they boast that they don't require you to go through a strict certification process like other platforms ;)

Windows/Linux/Mac are great because everyone can make and release software for them without needing to go through a publisher.

The Windows8 app store on the other hand (for buying Win8 "metro" apps, like the iPhone app store), or the old "Games for Windows Live" label... they do have a certification process, where your app has a whole bunch of requirements it has to pass. I'm not familiar with them though, so I'm not sure what they are.

Back on the original topic - I don't really think about what languages I'd like to use. When I start a new project I think about which engine or libraries are going to get the game working with the least amount of work, and that usually decides the language for me. Picking a language without considering the needs of the project is a bit like picking the musical instrument before picking the music - fine if you just want to play but not usually the best route to practical results.

In the last month I've worked with C++ for one project, C# for one project. Python for two others, and Javascript for another. You just get used to switching.

This topic is closed to new replies.

Advertisement