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.