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 10 years ago.
The goal of my personal experiment is to create a 3D engine in C#.
I have read a little about XNA and SlimDX. I'm not sure about XNA, because it's basically a complete engine already and so there won't be much for me to do. SlimDX looks closer to my assumptions, but I would appreciate any other recommendations.
I have some experience using OpenGL and writing a simple engine for Android games, and for the PC using jogl.
I am interested in hearing about something similar to the level of abstraction available through Java / OpenGL, but this time with DirectX.
You can download the old DirectX SDK from here which will give you C# wrappers for Direct3D.
However... if you did want to give XNA a shot, this is probably one of the best tutorials out there to get started with (and by started I mean enough to implement your own game, but it will take a lot of work).
http://www.riemers.net/
You can get the current version of the XNA SDK here
As a DirectX c# wrapper, there's also http://sharpdx.org/
Couple of Pros/Cons between Xna/SlimDX
Xna is simple to learn, and you will already have some built in functions to load models, draw text, some built in render state presets, Math classes/structures. On the other hand it's feature set is fairly limited compared to new graphics card capabilities. You will have something up and running quite fast, but on the other hand, you might end up a bit limited for advanced features (tessellation/compute/append buffers/readonly depth to name a few). You will still have quite some work to do of course.
SlimDX/SharpDX are fairly minimal (they mostly wrap around DirectX functions), so If you want to use DirectX11 (if you want to use 9 go for xna :) , you will have a bit of work to do in order to have something running in the first place, but you will have full DX power and complete flexibility over how you want to organize your engine. You will need to have your own model importer, font renderer (DirectWrite), state manager. Most common math part is already there (Matrix/Vectors) so you won't have to worry about this part.
Related
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 have read a lot about the XNA framework going away and Microsoft not openly supporting it any more. I would like to know if there are any similar technologies available keeping in mind that I do not want to pay a lot of $$ for creating a cross platform indie game.. I know that XNA only support Microsoft devices and that there are already a lot of open source game engines available such as Torque, NeoAxis and so on. I am mainly looking for a simplified game engine where I can code in c#. I do not require the Complex 3D rendering component or worry to much about memory management. Just want to get a simplified tool set as a beginner. Any suggestions would be greatly appreciated..
Unity3D is the answer to your problem. Although 3D is in the name, you can do just about any type of a game in Unity. It also supports game scripting in other languages like JS. There are plenty of examples, great support, and growing popularity. I believe they also have a free version of their engine. www.unity3d.com
If you want something similar to Microsoft's XNA you can always try MonoGame which is an open-source implementation of XNA 4 and includes support for Windows, Windows Metro, Mac OSX, Linux, Android (with MonoDroid) and iOS (with Xamarin.iOS/MonoTouch)
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.
Since Microsoft are dropping XNA (and yes, I know that one can still use it quite successfully, but the fact it's not being developed after only a short period of existence speaks volumes).
What are the best C# graphic libraries for simple 2D development (akin to Allegro, SFML, SDL and the likes)? By the best I mean those under active development, with an active community, and hopefully with some decent tutorials.
I tried searching for an answer but, one way or another, it's XNA that always comes up (maybe for a reason...)
Thank you!
OpenTK or TaoFramework.
There are a lot of tutorials. One of them can be found here.
Frameworks I like:
for openGL - OpenTK
for DirectX - SlimDX
For the libraries you have listed there is a wrapper for SDL SDL.NET
Re-adding content that was removed in a review (WHY? The answer is not XNA, but Open Source implementation of XNA)
Also if you are familiar with XNA you can use MonoGame - implementation of XNA under active development. Playstation Mobile and Raspberry PI support is under development.
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 10 years ago.
I am interested at trying my skills at game development. I am a fairly good C# developer. But my current skill set is in application development (WPF, WCF and Entity Framework).
I am trying to figure out how to make a graphical game for Windows Phone 8. But all the examples I see (for games) are using C++.
8+ years ago I was a C++ Game Developer, but I have forgotten most of those skills (I doubt they would be useful now days anyway).
I am not looking for 3D rendering. Just a nice 2D (Tower Defense) game.
I would rather code in C# if possible. Can game development be done using C#?
If so, a pointer on where to start would be appreciated.
This is what I have been able to find out:
There is a library called SharpDX that allows you to call DirectX from C#. It seems fairly good.
But, the Windows Phone makers did not include support for Direct2D. So unless you are planning to make a fully 3D app, you are out of luck (and that is a lot of work let me tell you!).
So, if you just wanted to make a nice 2D app, these are your choices:
Write your game using Xaml and C# (Performance Issues?)
Write your game using C#, SharpDX and 3d (but only draw on one plain) (A lot of work for 2d).
Use the DirectX Took Kit found on codeplex. It allows you to use the dying XNA framework's API for development (This is a C++ option).
Support for C++ has been added in Windows Phone 8. On Windows Phone 7, apps could only be developed using Silverlight or XNA. It didn't prevent developers to publish thousands of games, including mainstream titles like Plants vs Zombies or Angry Birds. Therefore, I believe it's safe to conclude that game development is indeed possible in C#.
According to https://dev.windowsphone.com/en-us the Windows 8 sdk is now available. According to their samples, most are actually done using C#. You can also find some XNA game examples there too.
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 10 years ago.
I used to work with the Hammer editor of Valve for my Portal 2 mod, however if I just want to draw a basic concept or sketch for chambers while brainstorming, the editor has just too much features so I can not focus on what I really need and have to mess around with specific things I don't need. Therefore I am thinking about the development of a simple tool (in C# based on WPF/XAML) which is optimized for basic level geometry, only consisting of cubes/voxels, and a few gameplay entities. For the moment I am doing some research to approximate whether this is a good idea or whether this would be wasted time.
So far my requirements would be:
tiled view with a 3d window and different 2d perspectives known from different 3d editing tools (the 2d views could be made optional to simplify the usability)
camera movement in the 3d window
basic item handling including selection, movement and rotation
Although I have specific details about the file formats I don't want to mess with that in the early stages where I just want to get the editor working. Anything related to (de)serialization is not part of this question.
My questions:
Are there any similiar projects I might have a look into or even reuse?
Which resources (tutorials, books, articles, ...) would you recommend for the development of such an editor?
What you just described could be done perfectly using an existing 3D modeller tool, such as Blender. Using Blender specifically for this use case, you could setup a Workspace with exactly the views you wish, and you can completely hide all the unwanted options/windows such as texturing/animation/lighting.
You could also set up a template project to give a basic startup project so you could jump instantly into just sketching and throwing geometry around.
Plus it's free, and has excellent export support for many standard types.
I do understand it may sound appealing to write your own editor (been there, done that), and it would definitely be an interesting learning experience, if you just want a tool NOW, I'd recommend using Blender and not reinvent the wheel.
Blender 3D
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.
This is a trend I've noticed. There is a very large adoption of ruby from the java community. Is it that c# is such an awesome language + having good tools over java that most c# developers aren't as keen to switching to ruby permanently as java developers are?
What are your opinions?
C# is a modern, and quite powerful language, sporting:
Lambdas (closures)
Continuations (yield)
Value types
Properties
Type inference
Pass-by-reference
...just to name a few.
These features make a transition from C# to Ruby far less attractive than a transition from Java to Ruby.
Because .NET is part of a coherent environment which includes developer tools, database links, orm management GUI front ends, net front ends etc. etc.
Java is a language! There are losts of piecemeal bits and pieces which do all of the above, but, the quality varies considerably. From something like Apache POI which is a better interface to MS Office documents than MS provides to the abysmal J2EE stack which half does in a very complicated way what .NET does in a simple and elegant way.
Whereas for Enterprise level, millions of transactions, bullet proof, fast never lose your data all the extra work putting together J2EE, JDBC, Spring, Hibernate etc.etc. etc. is actually worth it, for a quick simple Web to Database app its just too painful, hence the attraction to ROR.
On the other hand while .NET can scale up to the big stuff (not as well as J2EE! ) it is still reasonably straightforward to do a small application.
I see two reasons:
It seems to me that the biggest benefits of switching to Ruby for a Java developer are closures and dynamic type inference. Both of these can be found in C#.
.NET benefits from a rather tight integration with the Windows platform - (COM interop, WPF, easy installation), making it more difficult to switch from .NET to something else.