I think we all have that in common here.
We are all here and do the things we do because we are passionate for Mario. In my case, I think I started playing Mario games around 25 years ago or so, and started trying out game development around 2002. My experiences were pretty similiar to yours. All of the things I did back then were a mess, and it took quite some time to make things that were even just decent. Even nowadays, I'm still far away from having mastered this craft and there's still a lot of things I'm bad at. That's perfectly normal, so don't worry about getting some criticism here and there, even after over 15 years of game development.
Originally posted by GeneSu730The physics so far look a bit janky and unpolished, though that's difficult to say for sure without playing it myself.
That's pretty interesting, actually. Which game did you take as a base? Super Mario Bros.? Or a different Mario game?
It's difficult to say exactly why it looks "janky" in the video. I think part of it may be the camera. In most of the official Mario games, there's a lot of work put into the camera movement to make sure it feels smooth and intuitive to the player. In the current version, the camera looks as though it always moves with Mario. That is fine for a first approach, though to really get a camera that feels great, you might want to change some of the details over time. In Super Mario World, for example, the camera ignores minor movements of Mario and only starts moving once Mario either gets too close to one side of the screen or achives a certain speed or something like that. There's a number of clever tricks the camera uses to feel smooth while also giving the player as much information as possible. For a solid start, I definitely recommend looking into several Mario games to see what they do.
I think another major factor in what makes the current version appear "janky" are the animations. I've noticed that the animations in this version don't appear quite as gradual and smooth as in the original Super Mario World. For example: after only running for a few pixels, your Mario already seems to play its animation at full speed. This feels a bit too fast and unnatrual. Basically, while Mario's sprite is still picking up speed, his animations are already at full speed. There's a disconnect between what the animations show and the speed at which Mario is running. I think this is what contributes to the feeling of "jank", because it looks as though Mario was actually struggling and fighting physics. Also, I've noticed a general lack of animations, which probably contributes to this. I've noticed that when you jump on Koopas, they turn into shells pretty much immediately, with no transitions or effects or anything like that. I'm not sure if it was like that in the original game, but it feels a bit abrupt. The Koopas don't even pop out of their shells like in Super Mario World. Effects in general would also greatly help in dejanking the look and feel of the game. For example: spawning a small dust cloud when Mario turns around or something like that.
Another thing I've noticed is that when Mario picks up a shell, he's not actually holding it. The positional offset isn't correct here, it's misplaced to a point where the shell doesn't even touch his hand, but rather is floating above his hand. In the original game, the shell was rendered behind Mario's hand.
I think if you work on most on these aspects, the physics themselves also won't look quite as janky anymore, and the Mario physics you've ported from the original game will probably shine through more.
I don't think the 30 FPS is necessarily the cause for the game appearing a bit unpolished, though of course 60 FPS gameplay videos are generally preferred and will probably look better, so I do recommend going with that if you can afford the disk space.
Originally posted by GeneSu730I would like some advice on what I should do to the HUD/status bar.
My advice here is to keep it simple. For a game like Mario, that should work perfectly. In general, you definitely have the right idea when you say you wanted to make the HUD stand out from the gameplay, though I feel like the red text actually is taking it a bit too far and making it stick out too much, to a point where it distracts from the gameplay. It no longer quite looks like part of the game, but like debug text rendered onto the game. I think the key to a good UI is finding a balance between "easy readability" and "feeling natural". It's definitely tricky to nail down (especially for someone like me with little design experience), but the good thing is that you don't have to reinvent the wheel here. After all, you're making a SNES-styled Mario fan game, here, and Mario games have already had servicable to good UIs for many years. Honestly, I would simply do the same thing as SMW here and use with text with black outlines. Using just basic colors like black and white will make the text not stick out too much, while using outlines will make sure the text is always readable.
As for UI placement, I'm not sure what's ideal, but again, I think you can simply use SMW as a reference and do stuff similar to it. Unless you introduce some new stuff entirely to the HUD, I don't think there's necessarily a reason to do things differently.
Using a different font for "Mario Start" and "Bonus" texts should be alright, though. The original game also does it, and this text usually appears before the level starts, so there's little potential for clashes here.
Originally posted by GeneSu730Of all your talking points, this one stung me the most. I actually composed the music on my own using DirectMusic and I really put my heart and soul into it.
Ah, gosh, now I feel slightly bad for what I said.
I feel like I kinda devastaed the effort you put into the music. That definitely wasn't my attention. I know how that feels all too well to pour a lot of effort into something, just to find out it's not quite as well received as one had hoped.
Do you actually like making music? You said your mom forced you to. That kinda makes it sound like it's not something you particularly enjoy, but rather something you just do because you don't want all of that time to go to waste. If it's something you don't enjoy, know that it's perfectly fine to not do everything on your own. You don't have to make music just because you were made to learn music in the past. This can sometimes be a difficult thing to grasp, but focussing on the things you actually enjoy doing will ultimately lead to an end product that is even better than what you would otherwise be able to do.
If you DO actually enjoy making music, though, I will try to give a bit more useful criticism here. It's difficult for me, because as I said, I have zero music literacy, but it's the least I can try.
Do you know about music theory? Music theory, from what I know, is the theory the focuses on music and the effects it has on people. Basically, everyone who really wants to get into composing music in one way or another learns about music theory, because music theory will help you to create music that actually conveys a certain theme and is enjoyable to listen to. If making music is something you enjoy and you want to improve the quality of the music you compose, then learning about music theory is what I recommend.
As for the technical stuff, I don't know much about DirectX8, because the oldest major version I've worked with myself was DirectX9, but you're coding everything in C++, right? That means you should be very flexible in what you can do. Do you actually have to use the audio output capabilities of DirectX8? I'm thinking, from a technical standpoint, there's probably nothing that prevents you from using DirectX8 for rendering only, while using a different API for audio output. For example, you could use XAudio2 for audio output. That would give you the flexibility to do pretty much anything. You could then just use fmod to play .mod files or vorbis to play .ogg files or even something else entirely. The quality you could gain from that would definitely be worth it. MIDI is unfortunately just a bit too simple for purposes like this, especially on modern hardware, which rarely has any special MIDI playback functionality with nice samples.
Whatever the case, I hope my criticism doesn't demotivate you too much.
If making music is truely something you enjoy doing, then you should definitely keep doing it, no matter what.
Originally posted by GeneSu730I want to find out what building this sort of video game really involves
That definitely sounds like a good motivation to do this and should be a great learning experience. I am definitely looking forward to see what this will shape into over time! Even if this currently doesn't get much attention here, I will always keep an eye on this.
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!