Author Topic: Shin Megami Tensei  (Read 9989 times)

vladgd

  • Hero Member
  • *****
  • Posts: 635
    • View Profile
Shin Megami Tensei
« on: March 26, 2018, 08:52:35 PM »
Ever since Persona 5 hit last year, and I bought it and "cough" never played it "cough" I got back into Persona 4 and actually beat it. That game(p4) ended up being one of my favorite jrpgs, and the more I think about it, favorite games in general, from that one playthrough.

So Persona 5 still sitting on the shelf...it still has me thinking, I aughta play it...after...maybe I beat a real megaten game.

I'm not a guy who goes out of my way to play games because they are HARD FOR TRUE GAMERS, but yknow contra is one of my favorite all time games and that has a reputation, I beat dark souls which was amazing...not because it was hard but because it was amazing, and persona 4 is probably the hardest jrpg I've personally beaten...and all I hear is it's amongst the easiest games under the megaten umbrella.

Pretense out of the way, I hear this game (Nocturne) is nasty brutal and unfair, yet at the same time really really good. I'm not seeking it out because it's hard (im playing on normal, im not a nutter who'd play on hard), but for western releases it's the first smt game, it's cheap on ps2 when I bought it, and the setting is cool. It's a really refreshing setting, and I kinda want more...which I guess we're getting with the strange journey remake, and smt5 will be on the switch in the future.

Having a game where the start is everybody on earth dies, and they actually play through with that, that's cool. It's not like fallout where there's pockets of people barely eeking out a living, everybody is dead, and it's just demons and ghosts and shit.

So I've played roughly 8 or so hours in the past week, going slow in-between doing boring adult obligatory stuff, but it's fun so far. I just beat matador, who is like the first fuck you road block part of the game, knowing this, I prepared a lot beforehand and managed to get him first try. The kicker is, matador has a reputation for being hard, but the game after matador? IT DONT GET EASIER! Any fucking random battle can kill you, the tables can turn and the planets can align in such a way where you just die from a normal low leveled encounter. Not to mention they don't hold your hand, beat matador with a sliver of life left...uhhh you're still where you encountered him, in a place with moderate/hard random battles, far enough away from the save point to kill you before you're off to safety. It's a cool while at the same time kinda frustrating tension you don't get in the standard final fantasy fare I'm used to. Ohh and healing that usually comes to you free in a lot of games now? yeah that costs money, demon dies? even more money, you die? GAME OVERRERERRRRrrrr....and the healing place is usually a random battle or two by the save place...so...bad luck can happen if you choose to take one over the other...enemy ambush + crit...yeah...

I've been interested in exploring more non square jrpgs, and atlus is doing me well so far. Anyone hear of/play nocturne? Or other smt games I've yet to play? Looking into smt4/4a at a later date if I can manage to beat this one. Playing on ps2, legit with a real copy of the game of course, no emulation, no ps3 digital version (don't own a ps3 so no access to the superior ps3 store)




*edit*

Thread renamed since I'll be playing a good few of these games. I'm hooked.
« Last Edit: July 21, 2018, 11:00:41 PM by vladgd »

Spectere

  • \m/ (-_-) \m/
  • Administrator
  • Hero Member
  • *****
  • Posts: 5716
  • printf("%s\n", "Hi!");
    • View Profile
    • spectere.net
Re: Shin Megami Tensei: Nocturne
« Reply #1 on: March 27, 2018, 10:10:13 AM »
I haven't played any of the SMT series, though I've certainly looked into them. I considered picking up SMT4 for 3DS based on its reputation alone, but I never got around to it.

Kinda sounds like Nocturne is probably a bit more than I'd be willing to take, though. What you described seems almost unnecessarily brutal (though I guess you can argue that it punishes unprepared players).
"This is a machine for making cows."

vladgd

  • Hero Member
  • *****
  • Posts: 635
    • View Profile
Re: Shin Megami Tensei: Nocturne
« Reply #2 on: March 27, 2018, 05:11:06 PM »
So far...it's ok. I did have a situation recently where im out and about, went back to the healer, heal to full, take 4 steps to the save point, enter a standard random battle...

"blablabla uses focus (boosts attack immensely next turn, but no big deal), next turn, BLABLABLA CRITS, BLABLABLA ATTACKS, dead main character GAME OVERRRRRRRRRRRRRRRRRRRRRRRRRRRR"

Literally looking at the save door too. Fortunately I didn't do anything important, but still, this game will get you.

From what I hear about smt4, the early game is just savage(nocturne early game isn't bad at all), but I haven't played it myself yet.

But yeah, it's a game all about being prepared. Unlike other jrpgs, you want to use items liberally in this game, and there's a meme for these games "use buffs retard" Which having just beaten Thor...buffs can turn an impossible fight into a trivial one, assuming you live long enough to get set up. I enjoy using mechanics usually not worthwhile in other games. Buffs even moreso in nocturne, unlike persona 4, buffs last the entire battle unless an enemy has a spell to take them away, and most of them seem to affect your whole party or all enemies in one go.

Spectere

  • \m/ (-_-) \m/
  • Administrator
  • Hero Member
  • *****
  • Posts: 5716
  • printf("%s\n", "Hi!");
    • View Profile
    • spectere.net
Re: Shin Megami Tensei: Nocturne
« Reply #3 on: March 28, 2018, 09:19:55 AM »
Oof, yeah, I'm really bad when it comes to item usage. I'm definitely a packrat in games because I'm always worried that I'm going to screw myself later by using an item now. It's not so bad when I know what to expect, but until I get that that point I guard my hoard jealously.

And yeah, the scenario you mentioned would probably make me rage pretty hard, haha. That's actually a good example of why I never even considered the Fire Emblem games until they introduced a casual mode. I've heard so many stories about people having characters killed off before they could even take a turn (and that actually happened to me in Awakening, buuuuut softcode mode saved me). I mean, it's realistic in a sense that you could stumble into a battle that you have no hope of winning, but it doesn't make for good gameplay.
"This is a machine for making cows."

vladgd

  • Hero Member
  • *****
  • Posts: 635
    • View Profile
Re: Shin Megami Tensei: Nocturne
« Reply #4 on: April 01, 2018, 06:16:25 PM »
This game's starting to drive me crazy. Part of the reason I have yet to play P5 is, it has a lot of quality of life changes...that would probably make nocturne unplayable. So you're fusing demons, and you can pass over skills, you select 1, then 2, see what skills you got, it's wrong, so you deselect them, do it again, it's wrong again. I've literally tried over a thousand times(that's actually an understatement, probably closer to 2000 resets of the rng), no exaggeration, and still haven't gotten what I wanted, the same applies for vanilla persona 4 (golden fixes it somewhat), and it's annoying. So did I get what I want? No, you find a skill you can probably live without, deal with 2 of the 3 skills you wanted and go forward. It just aint worth resetting over and over and over and over....and over and over andoverandoverandover

And even in p4, except for like Rise's dungeon, and the near end of the game, you fight a boss, and...you're safe. This game...you still have to go to a save point...which is a problem when say, any random battle can kill you from 100 to 0, before you can even act or do a damn thing about it. It's raising my blood pressure for sure. I have not yet had a game over after a boss, but that stress is on you after fighting a hard as fuck boss (of which there are many) to know that you might die before you can save.

I'm decently far right now. Hard to have context, but I'm level 38 right now, so I think I'm at least half way? maybe more?

Either way, I ran into another dumb scenario. There's an attack that does low damage, but has a chance to lower your hp to 1, ff games have this it's no big deal...except in a game where your main characters death leads to a game over...so back attack, enemies go first, do that attack on my mc, it works, he has one hp, next enemy attacks, he's dead, game over, I didn't even have an option to push a button.

I literally think it's impossible to beat this game without a few game overs unless you are extremely lucky. There are skills to REDUCE back attacks but not ELIMINATE. It kind of reminds me of the final boss of ff13. ff13 is an awful game and I don't recommend it, but the final boss spams death a lot...and 13 to my knowledge is the only ff where the main character dies, GAME OVER BITCH. So same scenario as nocturne and p4. You can spend time to craft things to boost resistance to death...and that's cool, but it doesn't reduce it to 0...so that means at any time in the boss fight, you can just automatically lose and get a game over, and there's not a damn thing you do can about it other than getting lucky, which is the only option I am aware of.

I KNEW IT WAS GOING TO BE HARD, I WAS IN FOR A CHALLENGE, but it's one thing to know of something, and another entirely to experience it.

Regardless, the fun is outweighing the frustration, so I MUST CHUG FORWARD! If I can somehow beat this monster, I may need an easier game as a break...



Halo 2 on normal? lol

vladgd

  • Hero Member
  • *****
  • Posts: 635
    • View Profile
Re: Shin Megami Tensei: Nocturne
« Reply #5 on: April 03, 2018, 06:03:37 PM »
Probably just going to blog this stuff as I progress. It's a hard game to put down despite its quirks.

I'd like to think im 60-70% through the main game? But I intend on doing the bullshit optional dungeon (which is indeed horseshit, good fucking luck doing it without a guide, seriously) and getting the dope "true" ending.

The majority of the game is fine, it has bullshit moments that just kill you, but it's fine. Save points aren't "liberal" but they ain't scarce either, for the most part. Fuse up a Daisoujou with some good skills (which takes a lot of time and trial and error to get what you want) and in essence you have a walking heal factory and mana battery. Mana management is like THE thing in this game (and p4, and I assume all smt? if that pattern is correct) and so having a demon who can drain mana from enemies to fill his mana pool...and the kicker is you do your homework beforehand and fuse him properly to get a little skill called Makatora. This gem doesn't even really seem that good. Cost 10mp, use, gives 10mp to target...so you got a demon who can get free mana from any enemy, and you got a skill to give mana to your allies...OHH BABY

So having access to that, I got a few things done, getting closer and closer to some of the bullshit OP skills in the game, but not quite yet.

That optional dungeon doe, it's a doozey. There's 5 parts, each part is goddamn massive, and there's no saves anywhere...and there's no real shortcut out. I just finished the second part, and got to the start of the third part...and wanted to leave...there's a shortcut pit to get to level 2, no idea how to unlock the pit to 3, so you have to trudge through 2 to get to 3, and then back again...it's yeah...

But doing level 2, it's large and in charge, and until you get to the end, I don't think there's a way out...so it took me roughly 90-100 minutes to complete WITH A GUIDE (way longer without), and any death would..cost me my afternoon slogging through that. Not to mention there's an optional but EXTREMELY rewarding area...high random encounter area with hard monsters, every 2 steps you lose like 40% of your life, and within 6 or so steps you have 1hp, you need to make many many many steps to get through it. You have a skill that 100% escape rate, it's mandatory, but the catch, you spent like 45-50 minutes in the dungeon already, and then you're doing this, ONTOP OF THAT IF THE ENEMY GOES FIRST YOU BASICALLY GAME OVER BECAUSE YOU GOT 1HP......

Stressful as all fuck, but at the end you get 250,000 moneys, which is an absolute fuckload considering I only had around 40,000 total. (ohh and when you get your reward, you have to trudge back...albiet with a few shortcuts, but still...trudge back...to getting lost in the dungeon to finish it because lol you cant leave to save)

I DID IT, now to level 3? Level 1 let you leave whenever to save, I just hope 2 was a gimmick.

Also like, idk, I like the flow of this game. Story minimal, but atmosphere heavy, good rewarding gameplay, good gameplay systems, none of the cringey stuff you see in later FF games (looking at you 10, or 13-2).


vladgd

  • Hero Member
  • *****
  • Posts: 635
    • View Profile
Re: Shin Megami Tensei: Nocturne
« Reply #6 on: April 10, 2018, 11:15:07 PM »
Looking at my posts, I kinda wacked off a lot over how hard the game is.

It is hard...but...then you reach a point where it's...not...hard

I'm so paranoid about shit killing me, I overprepared to the extreme. I beat the game, and I beat the optional dungeon which unlocks the final FINAL boss whom you fight after the normal "final" boss, whom is laughly powerful...

...but I knew this beforehand, so...I didn't touch him till I got brokenly stupidly he man moving the moon powerful. That said, while trivial, the last bosses are fun to just let loose on with the demons you worked the entire game to create. Like my team had vishnu and shiva on it, hindu dieties, fighting with me against THE devil. It was a cool scene and it was fun to experience.

The more I played it, the more I come to think it's not so much pokemon, as it is dragon warrior monsters. Pokemon you can take your starter all the way to the end game(there is one exception in nocturne, DO NOT THROW AWAY YOUR STARTER PIXIE AT ALL, fuse it into other stuff if you want but do not throw away the demon you have that the pixie helped create, you will thank me if you ever play this game at all), dragon warrior monsters and nocturne, you take those guys, fuse em into better guys, until you're fusing bosses you fought and gods and dieties and shit.

The battle system is great. It's a jrpg, but where buffs are important and useful, and you actually want to use buffs/debuffs and moves to take away buffs/debuffs because they matter. Like the most powerful move in the game only does like 800 or so damage, the final boss has like 65,000 health. If you buff and debuff properly, and use focus (never throw away focus, if you do, restart the game, it's that good) that 900 damage move can be a 6-8000 damage move. It's a lot of preparation and setting up for powerful attacks rather than just spamming weak stuff over and over.

Not to mention, in persona 4, it was extremely important to have turns where you defend, you take significantly reduced damage in this state, but you take no action obviously. In nocturne, this mechanic doesn't exist, instead you can "pass" your turn. 4 characters = 4 turns(main character + 3 demons, if a demon dies...you do lose a turn). My endgame setup, I have the main character who is the damage man, a character for healing/debuffing, a character for damage and debuffing, and a guy who literally only buffs/debuffs. When the buffer has finished his job (ie max stacks), he's garbage right? Well, no. He can pass, or say the healer doesnt need to heal and you'd rather use an attack with a stronger character...you can pass to the next character in line. It takes half a turn, meaning the next character can act, but if that second character passes, you wasted a turn. So there's legit strategy in certain characters passing at certain times to give other characters opportunities.

It's a cool system, and it's not braindead at all. It kept me engaged for some 68 hours to grind my ass to level...98...and get high tier demons and beat the cool optional sekret end boss.

It's a great game, and I see why the internet raves about it when it's mentioned. It's ranking up there in one of the better jrpgs I've personally played.

The thing is like 20 bucks on amazon for the physical ps2 copy (which I played), and probably around there on the ps3 (ps4 gets screwed) playstation network, not a hard game to get your hands on.

I give this game a Lucifer out of 10, great change of pace from the typical save the world from evil crap we're all used to.



I'm highly considering playing another mainline smt game in the future. There ain't many to choose from, but we're getting a strange journey remake next month, and smt 5 is coming out on the switch...eventually, also we got two other 3ds games smt 4, and 4a (4a being an actually different game, just in the smt 4 universe/takes place around the same time afiak)

So Iunno, time to mope around for a few days till the next thing grabs me by the balls. This wasn't on my backlog at all, but it was a fun diversion.

vladgd

  • Hero Member
  • *****
  • Posts: 635
    • View Profile
Re: Shin Megami Tensei: Nocturne
« Reply #7 on: April 21, 2018, 05:42:45 PM »
So...I impulse bought shin megami tensei 4...probably shouldn't have done that.

The first 8 hours, or the "tutorial" part of that game. Well, I was splurging about nocturnes difficulty in this thread, and I maybe over exaggerated, but it's still a hard game. Shin Megami Tensei 4, the "tutorial" part, it's the hardest jrpg I've played personally.

I'm talking third random battle killed my main character in one hit from full health on a non crit hard, it's not even really hard as much as it's un fucking fair. Community said the difficulty in the beginning was bullshit hard, but after coming from nocturne, I didn't expect it to be that bad.

The "balance" in that game comes from the "save anywhere" feature. It's flat out mandatory to save before every single encounter, because even if you're 30 levels over leveled, they can still wipe the floor with you. Nocturne killed you, and sometimes it was un fair, but most of the time it was preventable. Being hard designed around save anywhere, I don't like it. Also enemies don't drop money...not a fan of that either.

However, after the beginning part and when you enter the "real game" it's easier than nocturne.

HORRIBLE first impressions thus far however. Nocturne I'd recommend, smt4, not so much. It is getting better the farther I get however, about half way through the game as of this post. I hated the setting for being too soft and pretty, but after the tutorial area, it dirtied up quick, so it does get better.


Spectere

  • \m/ (-_-) \m/
  • Administrator
  • Hero Member
  • *****
  • Posts: 5716
  • printf("%s\n", "Hi!");
    • View Profile
    • spectere.net
Re: Shin Megami Tensei: Nocturne
« Reply #8 on: April 23, 2018, 12:37:49 PM »
Okay, now I'm really glad I never got around to grabbing SMT4. That just sounds dreadful. I doubt I'd be inclined to get over that initial hump.
"This is a machine for making cows."

vladgd

  • Hero Member
  • *****
  • Posts: 635
    • View Profile
Re: Shin Megami Tensei: Nocturne
« Reply #9 on: April 23, 2018, 06:09:38 PM »
It's not an insignificant hump either, and it's not an insignificant amount of difficulty. I probably reset my game over 50 times in the first few hours because of bad luck.

That said, I did just beat it...so...some thoughts.

OVERALL, a good game...but...the start is just too damn bad. The first "tutorial" area is garbage, damn near impossible, and the world doesn't feel at all like a megaten game.

Then you get past the "tutorial" area, and it does pick up, but it's still a bit of a slog even though the world is more into that everything is horrible sense of dread feeling megaten has to offer.

Then you enter the last 20-30% of the game, and it gets damn interesting, it gets really interesting. I don't think anyone here is going to even play this so I'll just spoil it below.

You have the sky japan place that's tranquil and pristine that you start in, then below that is tokyo which is a post apocalyptic city covered in demons...then you go to "blasted tokyo" which is fuckin 6 craters in the ground with damn near no life anywhere, after that you enter "infernal tokyo" which is more or less like the regular post apocalyptic tokyo except everything is on fire, demons run the show, and humans are kept alive as cattle to feed the demons. It progressively got better in my opinion.

It does have a WAYYYYYYYYYYY better fusing system than nocturne, at the expense of each demon not really feeling unique. A tradeoff in its favor, but a tradeoff nonetheless.

If you have say demon A, and you run into an encounter with a demon A, and you talk to one to recruit it. Well you can only have one of any given demon at a time, so, it's a cool way to end an encounter since they'll think "ohh you're chilling with a demon A, you're cool with me, see ya" and just leave. It's a cool touch, and the demon negotiation system is a lot more fleshed out.

Then the ending, there's multiple endings, law, chaos, neutral, all that jazz. I don't know what my ending counted as, but I ended all of existance, and nothing exists anymore...THE END

BITCH!...which thinking about it, is the same deal as deus ex human revolution...4 endings, 3 for each "faction" and 1 everybody is shit, everybody dies ending, which I also chose in that game.

I am going to hold off on playing smt4 apocalypse (think of it as a different game, in the same universe, a la final fantasy 10-2 or something) for quite a while. I do hear apocalypse is actually somewhat balanced in the beginning, and overall a more polished game, but I just came off from beating two long ass difficult jrpgs...I need a break. Strange journey redux is mid may, I might snag that, in the meantime...I'm...finally freeeeeeeeeeeeeeeeeeeeeeeeeeee

Will update thread when either Redux comes out, or If I decide to do some extra things in nocturne. Nocturne has a ng+, but also, it has a few extra challenges to make a ng+ more interesting. Collect all of the demons to make summoning them from the compendium cost 50% less (if you play the games, it's a hugeeeee bonus). And optional graveyard areas which have bosses that you must kill in a set number of turns, do all of those, and you'll get an extra pressturn (5 turns instead of 4, a massive massive MASSIVE advantage) on your ng+ playthrough.

...and persona 5 started all of this, and I have yet to put more than 20 minutes into that game...it's snowballed into something else




Spectere

  • \m/ (-_-) \m/
  • Administrator
  • Hero Member
  • *****
  • Posts: 5716
  • printf("%s\n", "Hi!");
    • View Profile
    • spectere.net
Re: Shin Megami Tensei: Nocturne
« Reply #10 on: April 23, 2018, 09:23:08 PM »
Seems like a pretty interesting premise, but if it only really picks up in the last 20-30% I don't see how it could have been worth the pain. Thanks for suffering through it so that the rest of us don't have to. :P

If you ever get around to playing Apocolypse, I'm curious to know how it is. I've been kind of in the mood to play a good JRPG lately (the closest I've played recently is FFXV, and that's pretty far from being a traditional JRPG).
"This is a machine for making cows."

vladgd

  • Hero Member
  • *****
  • Posts: 635
    • View Profile
Shin Megami Tensei
« Reply #11 on: July 21, 2018, 10:59:47 PM »
Thinking while I've been horrible at tackling my list of games I want to beat in 2018, I've been damn productive in beating new things.

1- earthbound
2- monster hunter world (completing 100% of the pre dlc content I consider beating the game)
3- smt nocturne
4- smt 4
5- south park fractured but whole
6- xcom terror from the deep (I FINALLY DID IT FUCKERSSSSsss)
7- tbd persona 5

Persona 5. I'll have to rename the thread, because it's like final fantasy. All games are different, but all final fantasy. Persona is a spinoff of smt, it's in the same multiverse, personas are essentially the same as demons in smt.

That aside, I'm fiending. 68 hours in, just beat the 4th dungeon. Game lasts till December? I'm in early August...it's a massive game.

I can't recommend these games enough. While I do prefer the combat/battle system of smt proper over persona (talking 3-5, as persona 1-2 are very very different games), the characters/story are fantastic. I'm not an anime guy anymore, but my long lost inner weeb has been coming out and I've had a hard time putting the thing down. It just oozes with charm, and when I hear a casual character spout out "btdubs" I know the localization has been working very hard to make characters feel real and easy to connect to.




There ain't games like this anymore. It's like, I'm almost ashamed I've been away for so long, but I feel happy that I can get so much joy out of experiencing it fresh for myself. It's not a flawless game by any stretch of the imagination, and I'm still only ~50-60% through it. But god damn picking a personal goty is not going to be easy this year. Literally the most fun I've had playing games in over 10 years, no question. If you got a...hundred or so hours of free time to spare, and aren't opposed to Japanese school kid anime videogames, maybe give it a shot.

Spectere

  • \m/ (-_-) \m/
  • Administrator
  • Hero Member
  • *****
  • Posts: 5716
  • printf("%s\n", "Hi!");
    • View Profile
    • spectere.net
Re: Shin Megami Tensei
« Reply #12 on: July 23, 2018, 10:32:39 AM »
Yeah, one of my IRL friends played through P5 and recommends it highly. It's definitely on The List™. The hardest part for me is being able to commit to playing it all the way through. Like, I picked up Doom 2016 soon after it launched and didn't actually get around to beating it until last week. :/

Still (very slowly) working through Disgaea 5, too. Yay.

And MHW is coming out on PC in a few weeks. \m/ (-_-) \m/

Okay yeah, this is gonna be tough. At least I finished my most recent silly visual novel, so that itch is scratched.
"This is a machine for making cows."

vladgd

  • Hero Member
  • *****
  • Posts: 635
    • View Profile
Re: Shin Megami Tensei
« Reply #13 on: August 06, 2018, 05:29:57 PM »
Been meaning to play through a disgaea. Maybe whenever I snag a switch.

Also how do you go about coding a game? It's been...10 months since I've bought this python book and ive yet to really sink in. I barely even know how to hello world on the thing. That'll be another thread whenever I decide to make it, within the month if im not too lazy, I want to finish the book by the end of the year at least, and the longer I postpone the harder that'll get. Especially since I'll be working 50 hour weeks soonish...blehh.

As per the thread...

Game finished last week. 130 hours played, took me a bit longer than persona 4. Probably can say it has the best story out of any videogame I played. I was really invested in everything going on. I aint spoiling anything, but there's a lot of cool stuff that starts happening near the later portions of the game, they don't really hold back. And the ending is superior to p4 in every way imo. Still a bit sappy, but instead of a "WE"LL NEVER SEE YOU AGAIN BYEEEEE BOO HOO" end it's more of a "HEY LETS KEEP IN TOUCH ILL COME OVER SOMETIME ITS COOL" type of vibe, without giving anything away.

Gameplay wise, I still prefer nocturne. Story wise, persona 5 is my favorite by far. I'll recommend both of them, but p5 is the most accessible/easiest game in the series minus the first dungeon which I think is pretty hard (if you decide to do it in one day).

1- earthbound
2- monster hunter world
3- smt nocturne
4- smt 4
5- south park fractured but whole
6- xcom terror from the deep
7- persona 5
8- ???

Not sure what I'm playing next. I did pick up smt 4 apocalypse because of a sale, but I'm not so sure I want to dig into another long challenging jrpg right now. I should at least work on some of that python instead...if I want to get out of my current line of work which I do. But, that's another discussion.

Either way persona 5 is a 10/10 jrpg if I ever seen one, play it.



Spectere

  • \m/ (-_-) \m/
  • Administrator
  • Hero Member
  • *****
  • Posts: 5716
  • printf("%s\n", "Hi!");
    • View Profile
    • spectere.net
Re: Shin Megami Tensei
« Reply #14 on: August 07, 2018, 03:48:27 PM »
Also how do you go about coding a game?

Coding a game is a bit different than coding, say, a desktop application. Instead of sleeping and waiting for things to happen like a modern GUI application, games have a tight loop that does any number of things. At the bare minimum, the gameplay loop will check for input, update the game state, and update the screen. Ensuring that everything happens at the correct time is a pretty important thing, too. You know how some games lose their shit if you uncap the framerate? Yeah, that means they messed up the timing bit.

Game loops are generally fairly tight and typically don't handle more than the things I mentioned above and occasionally things like state changes. Here's a couple of practical examples of game loops: StepMania, Doom. Despite the difference in language and age, the two games do the same basic thing: they have a loop that ends until a set condition is met to handle the player quitting the game. Let's take a quick run through StepMania's loop:

Code: [Select]
while( !ArchHooks::UserQuit() )
This is the start of the loop proper. It says to loop through everything contained in the curly braces until ArchHooks::UserQuit() returns true (literally, the statement reads to process the block while UserQuit() is false).

Code: [Select]
if(!g_NewGame.empty())
{
DoChangeGame();
}
if(!g_NewTheme.empty())
{
DoChangeTheme();
}

These two conditionals check for two state changes: game changes (i.e. dance, pump, techno, etc) and theme changes. If either of these conditions happen, it calls to the appropriate function to load in the new data before continuing the loop.

Code: [Select]
float fDeltaTime = g_GameplayTimer.GetDeltaTime();

if( g_fConstantUpdateDeltaSeconds > 0 )
fDeltaTime = g_fConstantUpdateDeltaSeconds;

This call first retrieves the amount of time that has passed since the last time the gameplay loop was run. The delta time variable will be passed to the subsequent update functions. This is important for stuff like animations, as transitions on a 60hz monitor will have to move further than transitions on a 144hz monitor per frame in order to complete at the same time.

The conditional just below that checks to see if constant update ticks are enabled. This is an experimental feature designed to smooth out animations if the game drops frames. If that's enabled, it uses that as the delta time instead.

Personally, I would have shortened that to this, but that's just me:

float fDeltaTime = g_fConstantUpdateDeltaSeconds > 0
    ? g_fConstantUpdateDeltaSeconds
    : g_GameplayTimer.GetDeltaTime();


Code: [Select]
CheckGameLoopTimerSkips( fDeltaTime );
This is a pretty important one for an accuracy-focused game like StepMania. This call points to a function that checks for dropped frames and logs them if it encounters them.

This is an optional feature and can be disabled from the INI file. If it's disabled, this call really doesn't do much of anything (jumps into the function, then almost immediately returns).

Code: [Select]
fDeltaTime *= g_fUpdateRate;
This is the command that allows the magic tilde and tab commands to work. Normally, g_fUpdateRate is set to 1, so this statement does nothing. However, if you're holding tab, it gets set to 4. If you hold tilde, it gets set to 0.25. If you're holding both, it gets set to 0. Since fDeltaTime impacts animations and such, the delta time getting increased or decreased will cause them to play faster or slower since those functions will think that more or less time passed than it actually did. This is also why tab/tilde work regardless of framerate: it takes the delta time and modifies it rather than selectively bypassing the timing routines (which is what a lot of emulators do).

Code: [Select]
CheckFocus();
This checks to see if the game window is in focus. This will cause the game to drop all inputs to ensure that keys don't get stuck. Additionally, it also changes the game's priority accordingly, so StepMania won't use as many of your system resources if it loses focus.

Code: [Select]
// Update SOUNDMAN early (before any RageSound::GetPosition calls), to flush position data.
SOUNDMAN->Update();

/* Update song beat information -before- calling update on all the classes that
 * depend on it. If you don't do this first, the classes are all acting on old
 * information and will lag. (but no longer fatally, due to timestamping -glenn) */
SOUND->Update( fDeltaTime );
TEXTUREMAN->Update( fDeltaTime );
GAMESTATE->Update( fDeltaTime );
SCREENMAN->Update( fDeltaTime );
MEMCARDMAN->Update();
NSMAN->Update( fDeltaTime );

The specifics of these update calls are out of the scope of this text (it would take quite a bit of digging to cover them), but this is what updates the game state, animations, and sound subsystems each frame.

Code: [Select]
/* Important: Process input AFTER updating game logic, or input will be
 * acting on song beat from last frame */
HandleInputEvents( fDeltaTime );

Input events are handled after the game objects are updated. Placing the input between the game logic update and the draw routines ensures that the input that you press applies to the frame that's being drawn and will ensure consistency. This is critical, especially for timing-sensitive games.

One thing that's easy to overlook is that drawing assets to the screen takes some time (barely perceptible, but it's there). If you're updating consistently at 60hz, each update can take up to 16.666 milliseconds. What's worse is that drawing can take a different amount of time depending on how dense the chart is—MAX 300 at 8x is going to take much less time to draw than bag at 0.25x, for example. If we placed the input routines above the game logic updates, that variable delay would be applied to your input. For StepMania, that could mean the difference between a Fantastic and an Excellent, and it would be impossible to predict. Frame drops can still potentially affect input, but this method at least ensures that timing will be consistent as long as you hold a consistent framerate.

Code: [Select]
if( INPUTMAN->DevicesChanged() )
{
INPUTFILTER->Reset(); // fix "buttons stuck" if button held while unplugged
INPUTMAN->LoadDrivers();
std::string sMessage;
if( INPUTMAPPER->CheckForChangedInputDevicesAndRemap(sMessage) )
SCREENMAN->SystemMessage( sMessage );
}

This is the block that allows you to plug in and unplug a controller and have StepMania pick it up without requiring a restart. The reset method (which is also called by CheckFocus() above) forcibly releases all inputs. If you're standing on a dance pad while unplugging it, it prevents the inputs that you were standing on from sticking and causing problems after the device disappears.

The rest of the block loads the appropriate input drivers, then logs and/or auto-remaps the controls to suit the new device.

Code: [Select]
LIGHTSMAN->Update( fDeltaTime );
If you're running StepMania on a converted cabinet or set up your own lighting rig, this causes the lights to fire.

Code: [Select]
SCREENMAN->Draw();
And, finally, assemble the scene and draw the results.

While there's a lot of magic that happens on top of this (changing screens, playing muzak, etc) this is the loop that orchestrates the entire process. This essentially directs whichever screen is active to do its thing. Think of a game as being a tree. At the base you have the game loop. Below that you have the various major screens in the game (for StepMania, it's stuff like ScreenGameplay, ScreenEvaluation, ScreenSelectMusic, etc). Then you have all of the individual object types that make up those screens, then the objects that make up those, et cetera, with each of those update calls flowing down the tree. This is how you can have a single, tiny game loop like this directing a complex piece of software.

When it's done this way it makes things feel a bit less daunting (by comparison, at least). The core engine sits at the bottom, acting as a conductor that tells the higher level objects when to feed it data and, if done correctly, how much. If you start to delve more into object-oriented programming, the way the pieces of the puzzle fit together will start to become clearer.

I'll put the non-programming stuff in another reply. This post has gotten kind of ridiculous. :P
"This is a machine for making cows."