C# Game development road path

Started by
5 comments, last by MyLastGamble 9 years, 4 months ago
Hi Guys,
This is my first post here - and I've been researching over the past couple of days on game developing, most routes of research have landed me here and has been a great help in answering many questions, but one question still lingers which I'm totally stuck on!
Basically my end goal is to create a 3D game (for Windows) where users can place objects in a 3D space. These objects will be stored in a separate folder and loaded when a user types in the 3D model name. For example, a user places "Shape.ext", this then loads the "objects/Shape.ext" file.
Ideally I want to make this game in C#/DirectX, however I'm unsure how to begin this process, and whether it's really the correct languages/technologies used. I prefer to use C# as it's a language I'm looking to learn more of, but already have a pretty good grasp as I have often made programs in work to make my life easier, ranging from tools such as a program to search for certain string in files created between two dates - all the way up to pulling WHOIS Information for domain names, and finding out what server they are hosted on within our network.
Admittedly this isn't the most advanced stuff created in C#, but like I said I want to learn this language more.
I intend to start by recreating classic games such as Pong and Tetris, but I want to progress to be able to create more complex games, building up to the game aforementioned at the start of the post, hopefully without straying too far away from the environment I start developing in.
I originally a few months ago looked in XNA, however after downloading it, it became apparent that it's no longer developed - as installing it on Windows 8 required a bunch of other stuff to stop it throwing errors. Then I looked into DirectX and C# which returned SharpDX which looks very promising as an engine. MonoGame is also a very highly recommended by many people here it seems, as it's essentially XNA but still being developed.
I think my real question is - What, for my end goal, should I use? Do I need an Engine? What Engine is the "best" overall for C#? I know this really goes down to preference (And sort of against the forum rules of asking a "something" Vs "something" thread), but I guess it's just opinions I'm after.
tl;dr: I want to progress through 2D game development to 3D eventually, hopefully written in C#. Is there a certain "path" I should follow? such as "Start with Engine "X" and then try with writing part of your own and then go back and use Engine "Y""
Any help would be appreciated really - so thanks!
Advertisement

If you mention C#, Unity 3D comes to mind. Indie-Friendly 3D Engine with a free version that will let you write code in C#.

If you mention XNA: you will find lots of Threads here where people asking about XNA get pointed in the direction of Xamarin. Seems to pretty much do the same thing.

As too "Engine vs writing from scratch"... depends what you value more. Learning as much as you can about game programming form the ground up: write from scratch. Want to be as efficient as possible and not re-invent the wheel: use an engine.

Usually people get told to try some simple games from scratch first to get a basic understanding before moving to an engine. Seems you already paln to do that.

As soon as you spend more time on low level plumbing and writing an engine than writing your game, it is time to move over to an engine IMO. At least if writing an engine is not your goal.

EDIT: here, have a link to a thread: http://www.gamedev.net/topic/663148-c-xna-and-xamarin/

Thanks a lot Gian-Reto,

Xamarin looks pretty interesting - looks almost sort of like Android Studio which I've used in the past too - definitely promising!

My only worry with Unity3D is being a bit overkill on 2D games, and how to directly write in C#. I suppose really I want to develop in C# Express (or another version, the name escapes me) which allows Unity3D debugging etc?

In a way I'd really just like a 3D "stage? Raster? View?" within a Windows form to begin with - is this possible with Unity?

I suppose I am looking for engine when I really look into - like I'd like to be able to just sort of manipulate the "objects" or "sprites" etc directly

My only worry with Unity3D is being a bit overkill on 2D games, and how to directly write in C#. I suppose really I want to develop in C# Express (or another version, the name escapes me) which allows Unity3D debugging etc?

In a way I'd really just like a 3D "stage? Raster? View?" within a Windows form to begin with - is this possible with Unity?

I suppose I am looking for engine when I really look into - like I'd like to be able to just sort of manipulate the "objects" or "sprites" etc directly

Yes, it might be overkill in a way. Unity can be intimidating to newcomers without too much expierience in game dev. But besides of that, Unity 2D tools have come a long way, you might want to give the tutorials a quick glance anyway to see if you like the workflow.

I guess you are talking about an isometric "2.5D" View? You can do that in almost every engine that support 2D development. Usually pure 2D Engines are used for that, like Gamemaker. Not many of these support C# though.

Have a look at the engine DB on devmaster.net to see if there is a 2D Engine for C# (if there is no one coming forward with a better solution here).

Also be aware that with 2.5D, you really start to get into a gray area, where doing things in full 3D and Polygons might get easier to pull off than Sprite based 2D, if you want to go for a very highend look. 3D Graphics creation has a "higher overhead" so to speak, but scales better with the complexity of animations than 2D Sprite animations.

Of course, this depends a lot on your exact specifications, and you might want to achieve that retro Sprite look that is hard to pull off with polygons.

Hi Guys,
This is my first post here - and I've been researching over the past couple of days on game developing, most routes of research have landed me here and has been a great help in answering many questions, but one question still lingers which I'm totally stuck on!
Basically my end goal is to create a 3D game (for Windows) where users can place objects in a 3D space. These objects will be stored in a separate folder and loaded when a user types in the 3D model name. For example, a user places "Shape.ext", this then loads the "objects/Shape.ext" file.
Ideally I want to make this game in C#/DirectX, however I'm unsure how to begin this process, and whether it's really the correct languages/technologies used. I prefer to use C# as it's a language I'm looking to learn more of, but already have a pretty good grasp as I have often made programs in work to make my life easier, ranging from tools such as a program to search for certain string in files created between two dates - all the way up to pulling WHOIS Information for domain names, and finding out what server they are hosted on within our network.
Admittedly this isn't the most advanced stuff created in C#, but like I said I want to learn this language more.
I intend to start by recreating classic games such as Pong and Tetris, but I want to progress to be able to create more complex games, building up to the game aforementioned at the start of the post, hopefully without straying too far away from the environment I start developing in.
I originally a few months ago looked in XNA, however after downloading it, it became apparent that it's no longer developed - as installing it on Windows 8 required a bunch of other stuff to stop it throwing errors. Then I looked into DirectX and C# which returned SharpDX which looks very promising as an engine. MonoGame is also a very highly recommended by many people here it seems, as it's essentially XNA but still being developed.
I think my real question is - What, for my end goal, should I use? Do I need an Engine? What Engine is the "best" overall for C#? I know this really goes down to preference (And sort of against the forum rules of asking a "something" Vs "something" thread), but I guess it's just opinions I'm after.
tl;dr: I want to progress through 2D game development to 3D eventually, hopefully written in C#. Is there a certain "path" I should follow? such as "Start with Engine "X" and then try with writing part of your own and then go back and use Engine "Y""
Any help would be appreciated really - so thanks!

Take my words with a ton of salt. Visual Studio for 2D games and Unity for 3D.

What will you make?

If you mention XNA: you will find lots of Threads here where people asking about XNA get pointed in the direction of Xamarin. Seems to pretty much do the same thing.

why xamarin over mono? whats teh advantage?


I intend to start by recreating classic games such as Pong and Tetris, but I want to progress to be able to create more complex games, building up to the game aforementioned at the start of the post, hopefully without straying too far away from the environment I start developing in.

I am actually on the same path as you are. I've asked similar questions just a few weeks ago. First off, this is the right place to be. There are so many great people on here looking to give advice. Use it. :)

I've look into a lot of game engines in the past few weeks, including Unity and Construct 2, and my opinion would be, stick with Visual Studio for your first game or two. I am currently trying to write Tetris from scratch using nothing but Visual C# Express and the research I've done and the problems I've figure out on my own in the past 4 days are worth their weight in gold. You can create games just fine in a game engine however I feel you lose a little if you are already developing and can bring that knowledge to the table. Again, that is just my opinion based on my past few weeks experiences.

Either way, enjoy the journey. I wouldn't mind seeing what you come up with as far as a Tetris game, if you do it from scratch. Mine should be done here soon, I gave myself a goal of having it completed by next Tuesday. It'd be interesting to see how someone else has solved some of the issues I had.

This topic is closed to new replies.

Advertisement