.NET 3D, where to start? [closed] - c#

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I want to use 3D for two purposes. One is to display statistics in a fancy way for my app and another is to make a simple 3D game.
What I'm looking for is an library that is preferably open source, so I can include it in my C# project, without using any dlls, but if there's no other option, it's no big deal. I sell my apps, so I need to be able to use the library for commercial purposes. It would be perfect if I could create models in Blender 3D and import them into the library easily.

Have you considered using MOGRE, which is a .NET wrapper for OGRE? OGRE is MIT licensed, so fine for commercial use, and MOGRE seems to be LGPL licensed so also fine for commercial use (and you don't have to release source if you dynamically link with it).
A quick search will turn up plugins for Blender to export to OGRE's model format, so you should be fine there.
You can also use XNA, which is a managed library written by Microsoft for game development. However, recently (Jan 2013) it seems like Microsoft is pushing people away from XNA for Windows development, and back to native code.
For example, in the last link, they pitch XNA as being for Xbox Live Indie Games and Windows Phone games, and DirectX as being for Windows. Similarly, the Microsoft Create site, which (if I recall correctly) used to have resources for Windows XNA development, now has 2 big tiles for Windows Phone and XBox, and no mention of Windows development. Finally, there's (currently) no sign of XNA support being added to Visual Studio 2012 (but that may be because a new version of XNA is being developed for the new Xbox which is presumably coming soon).
MonoGame is an open source implementation of XNA (much as Mono is an open source implementation of .NET), but I'm not sure about its 3D capabilities.
If this hasn't helped, there are plenty of other questions and answers about this topic:
https://stackoverflow.com/questions/271138/best-3d-graphics-engine-for-net
Which API to use to draw 3D objects in C#?
etc etc...

C# by itself is only a language, it doesn't have the concept of rendering on its own. "Including 3D in your project" would mean that the library would have to be adapted to your rendering engine, and that's different if, for example, you have a WPF project or a Windows Forms one. There may be libraries (especially for Windows Presentation Foundation) but why not using Microsoft XNA? It runs in a managed environment and it lets you to build your game/viewer/general project entirely in C#, or any other CLR language.

Unity is made to empower you to create the best interactive entertainment or multimedia experience that you can.
http://unity3d.com/promo/unity4/?gclid=CMOSnf281bQCFUbf4AodohUAQQ

Related

Thinking of switching language for game development? Should I? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I've been doing C# with XNA for a year or so now, and I'm pretty comfortable with 2D games. But after some reading, I'm worried about XNA's future since it isn't supported in Windows 8 and stuff like that.
So I've been considering switching to Unity 3D? What are the benefits of Unity over XNA/C# and it is worth the move? if not, why?
I'm also open to suggestions of other languages and engines.
I'm currently going through school and considering game development as a career, so I would like something which won't die in a year or so (as far as we can tell) and will give me skills I need. Also consider that I have previous programming knowledge with C#.
Thanks, David.
XNA
XNA still works on Windows 8. The issue is that they are not supporting XNA based games in Windows 8 Modern UI. XNA still works for Windows 8 desktop games. The terminology is extremely confusing.
XNA will either get a serious overhaul when the new XBox console is released or something brand new will be designed.
Language
If you want to create games for Windows 8 Modern UI, such as Cut The Rope, etc, you'll need to use C++. The last time I saw C++ was the only supported language that could interop with DirectX and Windows 8 mode. All the other features of Windows 8 are available with C#.
Unity3d
If you want to make video games you should pick Unity3d, or an equivalent gaming engine and framework. The problem a lot of video games creators get into is trying to design yet another game engine. This has been done to the point of them becoming commodities. Focus on the game, not the engine.
Unity3d knowledge will be far more value than creating simple games with XNA. You should still understand 3D theory though.
MonoGame is a free XNA-compatible library that allows you to make games in C# for WinRT, Windows Store apps and Windows Phone 8, and on top of the Xamarin tools also for iOS and Android. This works on top of SharpDX, the optimized managed wrapper for DirectX, so your game runs pretty much at the same speed as with XNA.
Since MonoGame is open source, actively developed and targets all the current platforms, you probably need not worry about it being obsolete soon. It gives you a great way to keep your C#, XNA-based codebase to target Windows RT and the Windows Store now, and potentially extend to the other mobile platforms if you buy the Xamarin tools.
So no reason to move your C# stuff to C++.
Unity3D on the other hand is a totally different game framework, and would not be an easy port. But you can then target many more platforms (particularly consoles, and now Flash too), and still script most of the game in C#. But it's quite a different tool to learn.

WPF or GTK ? which one is better [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm going to start a new project with WPF, during last week I read much about it and found it quite useful. But recently I got familiar with GTK whichis Open and have most of WPF abilities.
Which one is better (in common) and is GTK a better choise for me or not?
I use .NET and my clients are using Windows (XP sp2 and above).
I use GTK on windows because windows is my favorite development platform but in production code GTK is only used on Unix (Linux/FreeBSD) platforms. Its just to bad for production code on Windows7. The umlaute key bugs were already mentionend so like to add the problems with popup windows and focus events.
Also despite it is called multiplattform on the GTK webpage the team does not care too much about Windows and MacOSX. This hostile attitude makes it much more worse and dangerous to use code. A good sign is that they simply don't came up with an easy to compile VS2010 environment. I don't understand whats so difficult to write simple makefiles.
On Windows there is no chance other then using WPF or MFC. And on MacOSX you have to use Cocoa. Windows7 and Cocoa both deprecated large parts of the theming engine, which means (and this is an explicit strategic goal) developers must use the platform GUI toolkit in the long term.
...But recently I got familiar with
GTK whichis Open and have most of WPF
abilities.
Hm, I doubt if this statement would persist a thorough analysis. WPF implements many features and abilities which are considered to be implemented by GTK some day, but if you mind waiting...
I use .NET and my clients are using
Windows (XP sp2 and above).
What? You are using .NET and consider using other presentation front-ends then those which are already perfectly integrated with the platform? That I don't understand. I assume you really mean .NET (i.e. the Microsoft implementation of CLR/CLS specification).
I had various problems with GTK because keyboard support is not trully working on Windows. Umlauts etc... are not recognized correctly. Happens in every GTK application I've on Windows, so it's not only in my application.
https://bugzilla.gnome.org/show_bug.cgi?id=371371
Because of this, GTK is never option for me on Windows (can't even use my own applications then).
WPF in contrast tries to split some tasks much more then GTK is able to. Means a designer and a programmer should be able to better split their work.
I think you get clear about your question by googling.
I think you must refer this. links.
http://www.stealthstartupblog.com/?p=23
http://trader.mikaelaldridge.com/uncategorized/wpf-vs-gtk/

What programming language should i learn? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I work for a manufacturing company in the configuration dept so i see alot of process related data control stuff passing me by everyday. In the past i have developed some excel vbscript programmes to manage a lot of data items through a GUI and using excel as the backend to store results, but there's only so far you can take that.
I would really like to learn how to create proper databases with GUIs, multiple user logins and workflows for approval etc, but i have no idea where to start.........any advise on desktop applications or web based applications to allow the system to be used over the internet when working abroad, would be appreciated.
Thanks.
Fergie
C# and .net would be a good place to start. C# is fairly easy to learn and visual studios offers a great development environment for it.
Java is also another way you can go. Java is multiplatform and has great functionality for integrating into a web environment.
If you're looking for a comprehensive solution for desktop apps, web apps and database development, you should definitely look into Visual Studio and .NET. It's the most "cohesive" suite of tools you can use and it sounds like you have some MS programming skills already.
This is not a programming language per se and it's cost money, but FileMaker Pro is great for what you're describing. It's a RAD tool that creates a database and GUI pretty much in the same development cycle.
We use FileMaker Pro for lot of small business software we write, we also heavily use Java, and FileMaker is at least 10 times easier/faster to build things in.
One final note, FileMaker is cross-platform for Mac and Windows, unlike C# which I see mentioned here.
This is very subjective, but based on your requirements, I'd go with C#. Both Java and C# let you develop both web and client apps, but C# integrates much more smoothly with Linux and especially Windows. Also, Visual Studio has an absolutely phenomenal debugger that will make your life much easier.

Microsoft .net, is it worth it? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
So with Microsoft .NET, you get the advantage of language interoperability. But I've heard that this is slower than native applications. What if you only need one language? Then what are the advantages. I am a C and C++ programmer, and .net seems to be heavily tied with C#. Is this the case? And is dot net portable, or tied to windows?
And lastly, is .net worth taking a look at, from the perspective of a C++ programmer who doesn't need language interoperability?
Thankyou.
Then what are the advantages ...
You get all the .NET classes.
'.NET is slow' is a misconception, along with 'Java is slow'. Yes, it used to be slower than native, and yes, you can get faster programs using hand-optimized assembly, but for nearly all cases short of core engine code for games, .NET is as fast as doing the same thing in C or C++, and can (in some cases) be faster.
You also get the huge benefit of automatic memory management (so you can new a heap object and then just forget about it), and a large class library at your disposal.
Language interoperability is one feature of .Net. It is far from the only feature in .Net. Don't forget things like advanced garbage collection, linq, improved api organization, and much more.
So with Microsoft .NET, you get the advantage of language interoperability.
This isn't the main advantage. Most people code in C#, most try to avoid working on a project using both VB and C#
But I've heard that this is slower
than native applications
.NET has memory management which may make it slower on some things. However, the classic example - games, a lot of XBox games are now written using XNA
And is dot net portable, or tied to
windows?
There is a project called Mono which has ported .NET to linux and there is a platform called MonoTouch which runs that code on iPhones.
However, broadly in its Vanilla form it is tied to the WindowsOS.
Then what are the advantages
Most people code in C# because it's a powerful language both on the web and desktop and has an easy learning curve and good tooling. It also has a powerful class library similar but more comprehensive than Java's (IMO)

C# Audio Library [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am looking to develop an audio player in C#, but was wondering what libraries are available for playback. I am looking for a free library that allows for an extensive list of audio formats to be played (for example mp3, wma, wav, ogg, etc.) Thats pretty much the basic functionality I would need. But if I could get picky, a library that can convert audio files between the formats would be handy. Doing a google search I came across the alvas.audio library, but it wasn't free. The VLC library would be nice too, but I couldn't get it to work, and I'd prefer to just package my application with a dll instead of having my users have the VLC software installed on their machine as well.
Thanks for any tips or advice on this.
NAudio is an open source .NET audio library that can play back WAV, MP3, WMA, AAC and AIFF files, making use of ACM or Media Foundation codecs installed on your computer for decompression purposes. For ogg support, there is an add-on nuget package you can use.
(Edit: updated with details of supported audio file types in NAudio 1.7.
Also, full disclosure: I am the author of this library)
Bass Audio Library is one option.
Alvas.Audio
This library doesn't seem to be developed any further, I purchased a lifetime team license and haven't been able to get in touch with the developer since November 2011, no answer after many emails, and no new versions despite the promise to create new versions quarterly. Also didn't get any kind of message from the developer that he is abandoning the project.
You will want to take a look at DirectShow. DirectShow is an unmanaged library which depends on the codecs installed on the user's system for which you can create render graphs. DirectShow is free and usually installed on most Windows machines.
There is a managed wrapper for DirectShow titled DirectShow.NET, which you can find here:
http://directshownet.sourceforge.net/
As of 2012, OpenAL seems to be a viable library -- and something of a standard. It works on a range of OSes (from XP to Windows 8), and integrates with (is already integrated with) MonoGame.
Since the Creative Labs link (above) is down, you can try one of these instead:
SourceForge
OpenAL Soft
irrKlang is a C++ audio library with a .NET API. It is free for non-commercial use.

Categories

Resources