Sign in to follow this  

[New] I am committed to starting my first real game

This topic is 1103 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Greetings and thank you all for this wonderful community. 

I'm excited to finally be part of it.

 

Now I'll get to the point, since I've spent the whole afternoon researching the web.

 

About me:

  • I am 21 years old, currently a Computer Science senior student.
  • I am experienced in many languages (Java, C#, Python, C++, Actionscript) and I am knowledgeable of general modern programming theory, yet I do have my limitations that I am well aware of due to my lack of proper real-world experience.
  • I am always willing to learn and I am a fast learner as well.
  • I love games. They are my passion. I want to do games for the rest of my life, instead of just solving other flavours of problems using software.

What I will do:

  • I will develop and design a unique 2D rhythmic game called Labyrhythm. Scope of the game will be to avoid obstacles in the level while a song is playing. Insta-death will be a thing, meaning if you make a small move in your dance, the level will reset. Actual level design and more details have been fleshed out, so I won't mention them, altough they will be important down the road.
  • Your character will be the cursor, most likely portrayed as an orb of light.
  • The basic focus of this game will be on pathfinding, since there will be some entities in the level that I shall refer to as "seekers" that will follow your cursor.
  • I will make this my college degree, so I basically have to make a working prototype in 7 months time.
  • I will wish to pursue this game to the market after I finish my degree.
  • Even though I have team experience, this project will be done by myself as a solo project.

What tools I found and decided to use:

  • .NET Framework - A framework that is familiar to me and has a lot of support. C# and Visual Studio have proven to be great for me.
  • BASS.NET API - Since I will be making a rhythm game where the focus is on the music and the player must feel it, I felt that having a proper tool to deal with sound processing was a good choice.
  • MonoGame - I wish to make it cross-platform, and this meant I had to design it from the grounds up as such. After searching for many tools, this one looked to be the best for me.

Other tools I found:

  • XNA - I saw that Microsoft dropped support for this, and I got discouraged from using it. I did see that MonoGame was a good replacement.
  • Mono - I was looking into cross-platform options for C# and .NET and I found the Mono platform to help me. This way I found MonoGame and that it was targeted specifically for what I need. I haven't learned the major differences between the two.
  • SFML - I also heard people recommend this multimedia library but I wasn't really convinced of it.
  • SDL - another cross-platform development library, but I saw it was natively built for C++, even though support was available for C#
  • Unity Engine - I managed to read the FAQs and it looked like my first game project shouldn't be using something as grand as a game engine, especially one that looked more suited to me for 3D games

 

Questions I had:

  • How does DirectX fit into all of this? I have never used DirectX libraries, or proper GFX library, apart from some Actionscript 3.0 Flash games back in the days for fun.
  • How does OpenGL fit into all of this? Why should I prefer it to DirectX?
  • What are the main differences between Mono and MonoGame? I see one is targeted for games, but in the end they have the same core right?
  • Is MonoGame reliable as a first project? I saw a lot of great indie games made using MonoGame, like Bastion, Transistor and Elysion.
  • Is it difficult for a 2D game, with some complexity and networking to be made in 7 months?
  • What other alternatives for tools are there that I haven't stumbled upon?
  • Do I have all I need to get started? What am I missing?
  • Any other bits of wisdom that you can offer to an aspiring game dev?

 

Thank you all for your help, it really means a lot to me at the beginning.

 

Keep the passion alive,

Loop.

Share this post


Link to post
Share on other sites

Well since you have done lots of research start leaning MonoGame but start small think in small steps like create a window, draw and object, move that object, etc... Depending on your learning speed will determine how fast you are up and running with a working prototype of your game. With all that said game development isn't the easiest task to handle and as such learn the basics. 

 

From personal experience SFML is awesome from a all coding standpoint.

 

Unity is fantastic and well thought out truly a great game engine with a nice UI. (My recommendations after you learning how game programming works)

 

Since you want to be xplatform don't worry about DirectX since it is a Microsoft thing. Also You don't have to worry about OpenGL if you are going to choose something SFML or Unity as those lower-level libraries are already written to work under the hood. If you want to do it from scratch (reinventing the wheel) in DirectX or OpenGL get ready for a long and painful experience.

 

Also I think you are overloading yourself with a lot of information and not actually doing... Which just might get a little overwhelming. Start doing pick something work with it and if you don't like it or feel like this isn't it for you try something else you have lots of  choices and you seem to have researched a lot of them. Great learning games are brick out, pong, etc...

Share this post


Link to post
Share on other sites

Thanks to both of you, really helpful advice.

 

As for overloading on information, I love this environment, where I have all the info I need. All I wanted to do now is solidify that information and find a good path to trek.

 

As for something I am still not clear on: What would be better to use Mono or MonoGame. MonoGame seems to be reasonably new compared to Mono, not to mention the community sizes.

Share this post


Link to post
Share on other sites

Mono is just an open source clone of the .net framework, a bytecode jit compiled general purpose vm that c# etc compile to (and it's associated libraries aka "assemblies").

 

Monogame is a games development framework built on top of mono or .net.

Edited by braindigitalis

Share this post


Link to post
Share on other sites

If you're planning to use MonoGame, be warned that you will probably want to install XNA as well as MonoGame still has some dependancies on its content pipeline. Font rendering in particular is a problem because there is no way to do it in MonoGame without either using XNA's content pipelin or implementing your own font renderer.

Share this post


Link to post
Share on other sites

If you're planning to use MonoGame, be warned that you will probably want to install XNA as well as MonoGame still has some dependancies on its content pipeline. Font rendering in particular is a problem because there is no way to do it in MonoGame without either using XNA's content pipelin or implementing your own font renderer.

Is that still the case for fonts?

 

I've been working with an older version of MonoGame, but recently updated to 3.2. Their new content pipeline utility (MonoGame Content Builder) removed any need for me to keep XNA installed (it builds effects, textures, sounds etc without any issues). I haven't done any in game text-rendering yet, but I think the utility supports font exports as well... correct me if I'm wrong smile.png

Edited by Orangeatang

Share this post


Link to post
Share on other sites

One of the minor problems with XNA and the way it handles fonts is that it makes a bitmap copy of the font, rather than just using TTF files installed onto the PC.

 

This can cause a licensing problem, as due to the way TTF fonts are licensed, the way XNA works means it has made a copy of the font face, which means that for most font faces licensing fees must be paid, which can be quite astronimical and silly money, out of the reach of all but big studios.

 

Be very careful of this!

 

For more information see the note section for the SpriteFont class on MSDN.

Edited by braindigitalis

Share this post


Link to post
Share on other sites

*Sigh* Go with Unity. Games are about a lot more than shiny, 3k textures. Once you draw all that real-time glory, that AI still has to go somewhere. Monogame is a framework, a wrapper of sorts, built around XNA, which was an API. Unity is like a cookbook. Monogame is The equivalent in kind to to giving you a blank book,and saying "here kid, write your own recipes. There's also www.gameinstitute.com as well. It costs about 99 dollars, but you learn a lot. www.3DBuzz.com also has some tutorials. Moral of the story: Go with Unity. I noticed you never even mentioned a little something like an image manipulation program. If your school permits, I would go with photoshop. If not: www.gimp.org.  There's also an online photo editor named pixler.

The answers to your questions are as follows:  

Direct3D and OpenGL -- put them in a file and just walk away, right now. DirectX is a complete set, comprised of numerous API's. Direct3D is mainly resposible for drawing anything you see on the screen.

OpenGL is Direct3D's main competitor -- it's also portable. If you write a game in DirectX, you're mainly targeting windows. Opengl works on Linux and Mac. SDL, can use both OpenGL and DirectX

 

There's also Allegro and Love2D.  No, 2D game programming isn't difficult, but networking adds another nitch to the game. All you need to get started is essentially Microsoft paint, and an IDE, the arduous part is coding the beast. Any other advice? Go with Unity!

 

Edited by Code_Grammer

Share this post


Link to post
Share on other sites

*Sigh* Go with Unity. Games are about a lot more than shiny, 3k textures. Once you draw all that real-time glory, that AI still has to go somewhere. Monogame is a framework, a wrapper of sorts, built around XNA, which was an API. Unity is like a cookbook. Monogame is The equivalent in kind to to giving you a blank book,and saying "here kid, write your own recipes. There's also www.gameinstitute.com as well. It costs about 99 dollars, but you learn a lot. www.3DBuzz.com also has some tutorials. Moral of the story: Go with Unity. I noticed you never even mentioned a little something like an image manipulation program. If your school permits, I would go with photoshop. If not: www.gimp.org.  There's also an online photo editor named pixler.

The answers to your questions are as follows:  

Direct3D and OpenGL -- put them in a file and just walk away, right now. DirectX is a complete set, comprised of numerous API's. Direct3D is mainly resposible for drawing anything you see on the screen.

OpenGL is Direct3D's main competitor -- it's also portable. If you write a game in DirectX, you're mainly targeting windows. Opengl works on Linux and Mac. SDL, can use both OpenGL and DirectX

 

There's also Allegro and Love2D.  No, 2D game programming isn't difficult, but networking adds another nitch to the game. All you need to get started is essentially Microsoft paint, and an IDE, the arduous part is coding the beast. Any other advice? Go with Unity!

 

 

I am not sure if I should agree here or not. My gut says to use pre written libraries where possible if you are on a tight deadline, but the learning curve for these libraries has been glossed over. In terms of complexity comparing learning unity and xna/monogame is like comparing learning to drive a car and fly a helicopter. Xna/monogame is simpler and includes all the basics needed - 2d sprite manipulation, sound, input and platform independence. 

 

Given this, why spend 6 of those seven months learning all of unitys toolkit when the game could be finished in a month by any competent c# programmer with a little time in monogame. Oh, and monogame is free, so no need to buy a license for software which is essentially a school project...

Share this post


Link to post
Share on other sites

Back when I started on my current game project I evaluated XNA but was disappointed because I wanted more control over what was going on. I ended up going with SlimDX, which is a wrapper around DirectX which can be used in .net. It doesn't hold your hand at all, it's exactly like the blank recipe book analogy cited by Code_Grammar, but that's exactly how I like to roll.

 

That said, it was fairly daunting to get a working game engine up and running. But now that I've put in the effort I'm really proud of what I've achieved. If I ever get more heavily involved with games development it should provide a good base skill set.

 

I'm not saying its the right way to go for you, something like Unity or Monogame might be more appropriate, but thought I'd add it to your potential options.

Share this post


Link to post
Share on other sites

This topic is 1103 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this