What language are ps3 and xbox 360 game written in? Are the games written in the same language for both systems? Also is the code something you could run on a computer?
What language are ps3 and xbox 360
game written in?
They can be written in any language that compiles to machine code supported by those devices; most likely only C and C++.
The xbox requires the use of DirectX (Xbox stands for DirectX box), so you'll have to use that as your 3d framework.
Are the games written in the same
language for both systems?
Yes, same language but usually different 3d framework (I don't think the PS3 supports DirectX)
Also is the code something you could run on a computer?
Yes. Obviously you would have to compile it first for your computer's architecture, and change some parts of the code (mainly the way you get input, from a keyboard instead of a controller)
From your starting point, I'd look to try out Microsoft's XNA.
Microsoft is known for it's developer support and well thought out frameworks, and in the current video games environment, this is certainly the case.
To become a senior video games professional, you'll most certainly need to learn C/C++, but to start off with, XNA's managed environment and C# are both "easier", and yet considerably powerful.
check more info:
XNA Wikipedia
XNA Dev centre
Related
Upon considering the driver side implementation for DirectX API on windows systems for modern video cards I was wondering why this implementation is not available on non-windows system, most notably linux.
Since there is an obvious absence of this functionality I can only assume there is a good reason which I am blind to, but in my primitive understanding I simply see the DirectX calls as no more than function entry points on the hardware device. And for the record I am not referring to a compatibility layer (most notably WINE, a project I am amazed by every single day) but a library making direct hardware calls.
Is it possible to create an open source version of directx? Would it be possible but obscenely difficult?
AFAIK, the DirectX contains 3 parts
Vendor driver (provide low level API defined by DX)
DirectX library (use low level API defined by DX to access hardware, provide DirectX API)
Software (use DirectX API, ex. game)
There are no driver providing the low level API defined by DX on linux, so even it is possible to provide the DirectX library, but it won't work without proper vendor driver, and I can't see if there is any vendor is going to create one for their hardware platform.
Why not just use OpenGL? It supports all the functionality that DirectX does. Do you have a specific reason to use DirectX? As for a reason, Microsoft made DirectX and I guess they didn't see any need to allow it to run on Linux.
You can run DirectX games in Linux using Wine. You can program XNA on Linux using MonoGame. But all of these use OpenGL to provide hardware-accelerated rendering. AFAIK, OpenGL has been (and probably will be) the only option on Linux for the foreseeable future.
Is it possible to write your own DirectX implementation? Sure - but it involves writing drivers, proprietary knowledge and probably too much cost for anyone to REALLY benefit from it.
EDIT: These days, DXVK is a very real and performant way to run DirectX applications on Linux.
DirectX is a suit of API's:
Direct3D (drawing 3D graphics)
DirectX Graphics Infrastructure (enumerating adapters and monitors and managing swap chains)
Direct2D (drawing 2D graphics)
DirectWrite (fonts)
DirectCompute (GPU Computing)
DirectSound3D (playback of 3D sounds)
DirectX Media (DirectAnimation for 2D/3D web animation, DirectShow for multimedia playback and streaming media, DirectX Transform for web interactivity, and Direct3D Retained Mode for higher level 3D graphics)
DirectX Diagnostics (tool for diagnosing and generating reports on components related to DirectX, such as audio, video, and input drivers)
DirectX Media Objects (support for streaming objects such as encoders, decoders, and effects)
DirectSetup (installation of DirectX components, and the detection of the current DirectX version)
DirectX components deprecated, but still supported
DirectDraw
DirectInput
DirectPlay
DirectSound
DirectMusic
As you can see many parts of the DirectX suit of API's would need to be rewritten with functionality for Drivers written for Linux. Also some parts of the DirectX suit are likely going to make calls to the Windows OS and that code would have to rewritten for a Linux machine without infringement of the copy-written parts of either DirectX or the Windows OS.
Yes you could write a open source API suit which does the same kind of thing as DirectX for Linux, however without a great knowledge of sound and graphic drivers/support by their manufactures for Linux, it would be a very hard task to do.
However if you question was more of a "Can I get/write something to be able to run games and programs made with DirectX to run on Linux?" in it's meaning, in short no due to more likely copyright infringement.
Your question is wrong in 2019. DXVK is an implementation of D3D11 and D3D10 implementation for Linux using Vulkan and Wine
Also mesa has native Direct3D 9 implementation but in my knowledge, no one uses it except wine
The work to create a port for DirectX would create the same problems as you encounter in WINE. It will never be the same as on Windows. Derived from that principle you would have to look into OpenGL and related multi-platform libraries.
At this very moment WINE would be your closest medium if you want to accomplish something with DirectX code you already have. Then again, I'm not sure in what manner Visual Studio or plain typing would get you closer yo a fluent environment. The WINE libraries aren't that far from native, but there always exists emulation, what is acceptable to a certain point in my honest opinion.
If I look at how superbly Final Fantasy XIV ran on full settings on my iMac (2011) I think it's not that bad to rely on WINE's implementation. The game exactly rendered as on Bootcamp (Windows) on my iMac.
If you really want to make work on this front you could try to ask WINE Devs at their forums or mailing lists how you could maybe use the implementation of their DirectX compatibility only and use that in your project. Where you maybe can call libraries instead of requesting DirectX through Windows-emulated system calls.
Edit: I fully agree with user956030's answer too.
DirectX is a propriety products designed for Microsoft targets, so for this to happen would be very unusual
There are two other pieces of software that come to mind, SDL and OpenGL
OpenGL provides the hardware alternative to DirectX, and SDL works with OpenGL to provide the software support you would expect from DirectX
Since 2020, Microsoft has been working to port DirectX 12 to WSL2, which is being done in this repository. In a mailist, Steve Pronovost commented that they might work to port this driver to Linux to have it running natively.
However, in order to do this, they would need to implement the driver on top of the kernel's DRM stack, which itself needs to be modified if they want to keep the driver similar to the Windows one and have related APIs.
There is some effort being done in the Mesa library as well, to support D3D12 within itself, the main purpose being to optimize server-sided GPU calculations that are heavily used in machine learning algorithms.
Even though this is great, it's unlikely that we will ever see any advantage running Windows games on Linux with that driver. The open source community would only have the upper ground if more games start supporting Vulkan, which is faster and better than DirectX, there had been experiments where using DXVK on Windows would be faster than DirectX 9 or even 11, such as the one mentioned here, but DXVK tends to be less reliable and more prone to errors and crashes.
On Windows I've been using C#/.NET to develop both quick and simple CLI utilities as well as big WinForms/WPF applications. Visual studio played a big part in this choice but also the language and libraries allowed me to program wide range of applications without much hassle.
I'm now looking for a similar language, or more languages, on Linux. The best choice for GUI, multi-platform applications seems to be QT, usually with C++. For console utilities the best choice seems to be some scripting language like Python. However, C++ isn't a high-level language like C# and many tasks are unnecessarily more complicated (since usually I don't look for high performance in GUI applications) and scripting languages are slower and have a higher startup time.
So, what are your languages/libraries of choice when developing applications for Linux, both ten-minute utilities and large complex GUI systems.
After a 13 year rollercoaster ride through C, C++ and Ruby, I moved to Smalltalk (Squeak and Pharo) for all my development - web, scripting (just starting here), and desktop GUI apps.
Trust me, no one was more surprised than me, but Ruby got me hooked on dynamic languages, and combined with Smalltalk's live environment, I am high on OO Koolaid. If you've never experienced it, check out this screencast: http://www.pharocasts.com/2010/02/programming-with-live-objects.html
Warning - although the language is beautifully simple, it will take a while to wean off of many unnecessary and complicated, but cherished, distractions e.g. files, databases, compile cycles, etc. Luckily the community is very friendly and extremely helpful.
Also, Squeak/Pharo run on top of a VM which works in (at least) linux, windows, and Mac, so you can develop (and share) anywhere.
Have a look at Monodevelop, It is C# and offers similar functionality as the one you are used to. And above all: it comes from the same company behind C#.
As you mention: Qt is also a possibility and one I've been using extensively. Of course, you will need to develop in C++ then. The tool you want to look at is qt-assistent.
You might be interested in wxwidgets,
http://wxwidgets.org/
regards,
/t
I use python and gtk to develop GUI applications.
With glade as UI editor you can quickly setup your application.
Doing the same thing with python/Qt(or whatever Graphical library you want) should be easily doable as well.
See here : http://docs.python.org/faq/gui.html
Python can make linux system calls; use
import os
os.system("yourFavouriteSystemCall")
Additionally, PyQt4 gives you simple access to the GUI framework Qt4. This could be a good bet for your needs.
Another option is to use QT or Wx with Python or some other scripting language
You can either use QT with Python, or Mono since you already have experience on .NET.
What are the programming languages supported by mobile devices? Is there some list or can anyone make a list of some?
I don't what to search, but I as able to find 3:
.NET
Flash Lite
java
Are these the most used? What other languages are there that are used quite often?
It's hard answering this question, because "used most" implies the need for some kind of statistics to back it up. Instead I present you with some examples.
Objective-C is more or less the default language for iPhone and iPad applications. Flash is verboten, but I think Adobe AIR is allowed, and MonoTouch (.NET)
Java is commonly used for Android applications, although you can probably use any language with a JVM application, so technically it could be Scala, Rhino, Jython.
You can use Lua, Python and more on Android with a program made for running scripts, released by Google outside of Market I think.
Nokia Maego and Symbian favours C++ if I recall correctly but I wouldn't be surprised if you could use virtually anything provided it is runnable on the platform.
Anyhow it varies a lot, and depending on the OS vendor, you can often use a multitude of languages as long as they allow it.
I've been doing a lot of work with Flex/Flash/Away3D lately, and have started looking into Unity3D and Processing, but I'm still waiting for the day (hopefully soon) when you can build Wii/PS3 like UIs that can be used from most computers. It would be amazing if I could just add simple lighting effects on panels that had 3D textures, but it seems like that's gonna be a while.
I keep hearing about flash getting openGL support, but haven't seen anything certain yet. Unity3D seems to be the best thing so far, but maybe you guys have heard some behind-the-scenes news.
What platform/language should we start learning if we want to be ready when full 3D support is released?
Well, it currently exists in WPF3D with XBAP, in IE. That's probably the best option currently on the market.
Google's O3D API is probably the most promising for the future, though, since they're pushing hard for an open in-browser 3D standard.
Java applets have had OpenGL support for decades!
WebGL by the Khronos Group, who are also responsible for the OpenGL and OpenGL ES standards, seems to be promising:
First announced at the Game Developers
Conference in March of 2009, the WebGL
working group includes many industry
leaders such as AMD, Ericsson, Google,
Mozilla, NVIDIA and Opera. The WebGL
working group is defining a JavaScript
binding to OpenGLĀ® ES 2.0 to enable
rich 3D graphics within a browser on
any platform supporting the OpenGL or
OpenGL ES graphics standards.
I've worked on a 3D Web technology for several years; see here (requires a small, safe plugin; windows only for now). The company linked above doesn't exist anymore, but I'm currently working on a new, more open version of the technology anyway (will be called 'open3dweb').
The idea of the 3D Web fascinates me, but I'm still not sure how widely used it will become. It has huge 'cool' factor, but I think we're still working out where its actually useful, and in which ways. I believe live Web browsing on a surface in a 3D world, and World Portals linking together separate 3D websites are both game changing technologies for interactive 3D, but its not yet clear how much 3D is a game changer for the Web...
If the Mono project is successful it will pave the way for commercial software on non-Windows platforms.
I am interested in the prospect of writing and selling commercial software for the Mono platform along the lines of our existing Smoke Vector Graphics (OCaml) and F# for Visualization (.NET) products. Are any commercial library developers already building upon Mono and, if so, are they turning a profit from it?
Also, will it be feasible to write the software in Microsoft's F# language or will Mono have trouble with ILX?
Mono is a perfectly valid platform for running commercial software as a lot of companies have already proven. Some of them you can see here but there is a lot of which you will never hear about as they are running Mono in embedded environments (Sandisk Salsa mp3 player). From the latest news, Electronic Arts is going to use Mono for Sims3. How is that for an argument?
One of the main points of Mono is minimizing the effort for developers coming from Windows to Linux. In most cases no additional effort is required to make the same software that you already have on Windows, run on Linux, MacOS and other platforms in Mono.
Just to clarify some things that other people answering your question conveniently forgot about. Most of Mono (recently even the compiler) is licensed under MIT/X11 license which allows you to pretty much deploy it in under and conditions you see fit. There is no GPL "cancer" that some people seem to be so afraid of.
Personally, I have been playing with F# and Gtk# in Mono and I loved the experience. More about it here. This was possible due to the fact that the F# team has made sure that F# can run on Mono and they provided a simple Linux installer in their release. This should also be a signal that Mono is regarded as serious alternative to .Net, even by Microsoft.
The Mono project lists a number of successful commercial projects here, and I would particularly point out Unity as being one of the more notable ones.
My figures speak against it, we developed Qide 10 years ago and got 4 or so buys. We got at least a few hundred time more on Windows. The state of tools on Linux can just be named bad. Agreed you have wonderful things there but if you use GPLd software you will drown in their license stuff. There does exist one debugger really and one C compiler it gdb and gcc, despite the efforts of Intel and if you come along into some less well known language you got nothing. Ever tried ProjectCenter (Objective C development environment)? , the debuggers are mostly clis and you have to type info reg to get info about registers. DDD works very funny, it's one tools that while scrolling did not get that right, you scroll up you have to scroll the mouse wheel down. It's also unbelievable slow to scroll it's just as if the BOFH wants to make a joke of you.
Well I could argue about the even sader state on IBM AIX. What you have to pay to IBM is way beyond any reason...
So maybe you're luckier than we are. But I'm mostly fed up with trying to earn money with "application" development on Linux. The best I can say is that Linux works well for setting up net infrastructure, there you got decent payments, but with programming tools, forget it.
Regards
Linux people are notoriously thrifty, so I'd consider the ROI.
Do you really want to spend your resources to target a group that has less than 10% market adoption, and out of that 10%, only 1% would be interested in your product, and only %0.01 percent would pay for it?