Tumgik
#was fun to try to emulate the game's screenshots! I think I did pretty well
windydrawallday · 5 months
Text
Tumblr media
SOME SACRIFICES WERE MADE
I always made sacrifices during these 3 decades of living and adulting but cheeses: the ones for this year were on another level! Some even didn't feel fair...
I only wish 2024 doesn't take from me, or anyone else, more sacrifices than we can give.
Happy New Year! 🗡️💔
6 notes · View notes
intramoon · 2 years
Note
How are you doing Aj? Do you have any tips for new writers, or people who are interested in making a simblr or story like myself? ♡
I can try my best to give you advice from back when my story was in its prime! This is more story advice, if you are looking for more Simblr advice let me know but I could do a whole podcast that ;-;
Don't wait, just post unapologetically. I think one of the biggest cruces to people not telling their sims stories is the illusion it needs to be finished or perfected for you to be able to post it. That mindset will keep you from posting, you'll always find a reason why your story is not "finished" or "perfect" but your story is art, and art is mostly "unfinished". My advice to you is to understand your characters, their environment, and their antagonist(s), know the beginning of your story and just start posting. Some storytelling requires experience, an experience you'll only get from doing. Once you start posting you'll learn so much about yourself and your story, and that knowledge will help your story tell better as you progress.
Sometimes it'll feel like no one is reading your story or that no one cares about your story but keep going! Story content is just one of those things, it can be hard to find readers who are very interactive because of the nature of the stories. You have to keep up with them, have a foundational knowledge of the story, etc. My advice to you is to do these two things, find enjoyment in creating the content that is independent of you posting it. Have fun seeing your characters posed, editing them, decorating lots/creating their world, if you can do that it will make storytelling not only more enjoyable but easier because it's giving you something just from the process and that’s something Tumblr cannot. Secondly, this is more as you get into posting, know that just because you do not see people interacting with your story that does not mean no one is reading it or cares. There are so many people who read but never like, reblog, comment or ask but they are there so do not dismiss them!
You don't have to adhere to any particular kind of planning style, just use what works for you! Notion and Milanote are popular options, but they've never worked for me. I like to write things down, sometimes doddle scenes. With where I am now I know my whole story off the top of my head so I don't write out my plans all that often. I would lead with whatever kind of learner you are but if you don't like to write things down/type things out, do not feel you have to plan a certain amount/way to start storytelling.
Research is not all you need to tell a compelling story. I used to think being knowledgable = qualified, but it does not. In addition to knowing what you're writing about well, you need to know how to use that knowledge in tangent with character development, plot devices, literary devices, and just general writing/storytelling knowledge. It's a long game. If you are tackling trauma, it is not about the immediate event and the immediate aftermath, it's the long-term effects it's how those effects affect others and how those people respond. It's about how did we get here. It's the journey. It is usually not linear. It can definitely be done, just be thoughtful and sensational. 
More practical tips!
Look into cinematography to help you with taking screenshots and editing your photos. Use the media you like (or want to emulate) as a reference. Even graphic novels can be helpful! If you are a visual person, Pinterest is a great place to find show/movie screencaps to use as a reference. I recommend branching out and away from the media in your native country and seeing how film varies in different regions.
Similarly really explore editing, I know I edit pretty heavy compared to most and I am not saying you should do the same but know how to change the color of a photo to create other moods, a little photo manipulation if you want to add something to a scene, just a handful of things you may want to use for specific scenes. You can really elevate your posts if you can set the mood right.
22 notes · View notes
midzelink · 3 years
Text
So, as some of you might know, one of my GIFs was recently featured on the Tumblr Radar - which is pretty cool!  I was fairly happy with how that one turned out, especially considering that I made it rather last-minute on a whim to acknowledge Valentine’s Day.  It understandably received a lot of attention as a result of this, and I’ve loved reading through all the comments and tags (especially all the ones about how people want to eat the heart containers from TP); however, I wanted to clear up a bit of a misunderstanding surrounding the creation of that GIF, as there were additionally a lot of tags along the lines of #3d art or #artists on tumblr in that influx of reblogs.  I don’t want to take credit for something I didn’t do, even accidentally, and so allow me to be perfectly clear: the heart container GIF is not something I modeled and rendered myself! It is the original in-game model, recorded in-game using the Dolphin GCN/Wii emulator, with very little done in the way of post-processing in Photoshop.  If that sounds impossible or confusing (which is perfectly understandable, for those of you unaware of what Dolphin is capable of), I’d like to take this opportunity to give you guys a bit of a “peek behind the curtain,” as it were, to show you guys exactly how I made that particular GIF, as well as similar ones I’ve made (such as those in my #items tag).  
I didn’t take screenshots of my initial process (nor did I save the edited textures I used), so I’ll be recreating it from the ground up for the sake of demonstration, but that shouldn’t be a problem.
First thing’s first: finding a heart container! For this particular GIF, I wound up using the one that spawns after the Morpheel fight at the end of Lakebed Temple.  I’m sure many others would work just as well (I think, at the time, this one just happened to be the most accessible to me), but let’s use the same one for the sake of it.  
Tumblr media
Morpheel: defeated.  And I didn’t even need Zora Armor! (Seriously, we do that in the speedrun.  But I’m getting off-topic.)  Of course, we’re going to need clean, close-up footage of the heart container rotating in order to do what we want to do, so let’s shift into first-person mode and and get a bit closer to the thing.
Tumblr media
Now, because the only UI-element in this shot is Link’s health (and it’s in the corner and relatively non-obtrusive), removing it isn’t strictly necessary - but I’ve already made a texture pack that removes UI elements as part of my Text Free TP project from a while back, so let’s load it anyway, for the sake of being thorough.  This shot is also still a bit too far away, so next we’ll be utilizing Dolphin’s free cam feature (which can be accessed by going to Graphics > Advanced > Free Look and checking “Enable” in Dolphin) in order to get the heart container in a more central position. Now we’re left with this:
Tumblr media
And we’re already looking well on our way to making a nice, solid color background GIF.  But how do we get the solid color? Well, that’s where more texture editing comes into play - and here I have to give credit where credit is due, as this is a trick I picked up from 186px, after wondering how they were able to make this GIFset of Link fighting Ganondorf in The Wind Waker in a great, black void.  (Seriously, shoutouts to them, their stuff was and still is amazing.)
But, very basically, we’ll be using Dolphin’s texture dump feature in order to find the textures that need to be edited so we can replace them with pure black ones.  Texture dumping can be enabled by going to Graphics > Advanced > Utility and checking “Dump Textures,” and the file path for these dumped textures by default is Documents > Dolphin Emulator > Dump > Textures > [Game ID].  (In the case of Twilight Princess, the Game ID is GZ2E01).  After dumping the textures in the Morpheel arena, my GZ2E01 folder looks like this:
Tumblr media
When editing textures, sometimes you’ll have to endure a bit of trial and error until you find the correct ones.  Luckily, in this scene, the textures making up the sand floor and the stone walls are rather large, so let’s isolate the ones we’re pretty sure are responsible (plus a few others that are obviously environmental, just to be safe).
Tumblr media
Now, when loading custom textures, it’s important that the file name you’re trying to load matches up exactly with the original texture that you’re trying to replace.  I have a plain, black, square PNG that I keep on my desktop specifically for this purpose; I copy the file names of the textures I’ve isolated, then rename and drag and drop the black PNG into the folder where custom textures are loaded (Documents > Dolphin Emulator > Load > Textures > [Game ID]).  Like so:
Tumblr media
And now, to refresh our custom textures by disabling and reenabling them in Dolphin’s graphics settings:
Tumblr media
And voilà! We have something that very nearly resembles the GIF I made (well, a still of it, at least).  I skipped over a few details, such as the fact that TP has a pretty significant amount of bloom surrounding just about everything, which I’m fairly certain I disabled using cheat codes when I made the original GIF in order to give it an overall cleaner look.  It’s hard to tell from this still, but TP’s heart containers also sparkle considerably in a way that’s random and not loopable; I found the texture responsible for this sparkle and replaced it with a transparent 1x1 PNG, in order to remove it entirely (as well as the texture behind the “glow” of the thing).  After that, it was as simple as recording the game with OBS, dumping the MP4 into Photoshop, cropping and cutting it to make it loop, and adding some adjustment layers for contrast and color.  So...yeah!
I hope this has served to clear up any confusion about some of the things that I’ve made in the past.  I’m not a 3D artist - just a person with an emulator and way too much free time on their hands.  This stuff is really, super simple, and also lots of fun, so I would highly encourage anyone with the means to mess around with emulation on their own some time to see what they can do!  (Even if you don’t have Photoshop and can’t make GIFs, there are always edits, such as this one I made of Midna.)  For Twilight Princess in particular, I also highly recommend checking out TPGZ; it’s a patch you can apply to a clean ISO of the original game, designed with the purposes of helping folks learn and practice the speedruns (yes, I had to bring up speedrunning one last time, kill me), but it’s got nifty features like built-in savestates, cheat codes, and HUD removal, as well as the ability to freeze actors while maintaining the ability to move the camera freely, among other things (all things that are very useful as far as making unique graphics go).  Sorry this post got as long as it did, but I at the very least hope that some of you found it educational and/or interesting.  Cheers!
72 notes · View notes
maleyanderecafe · 3 years
Note
Hey there was a mobile game I wanted to recommend you check out! It’s called MazM: The Phantom of the Opera. Obviously the phantom himself is a well-known character and prime example of a yandere, and this version’s Raoul also takes on that trait a little (although it’s mostly because Christine is in a life or death situation and this he’s protective over her), he’s very sweet and doesn’t wait a moment to shower her with praise. Anyway it’s a pretty faithful retelling of the original book and was extra fun for me as a yandere-lover as you play as Christine caught in between the yandere and the actual boyfriend. I think it’s coming to the switch soon as well if you want to wait for that.
Tumblr media
...Are you sure that Raoul just takes on this trait a bit...?
Joking aside, sorry it took me so long to answer this ask. I was originally going to watch a walkthrough on youtube, but then I realized that you said it would be on switch and since I just got my switch emulator, I ended up playing with a friend. I will say that there is a lot for me to say about this game, so this will be a long read.
First things first, I'll admit that I've never actually read or watched the Phantom of the Opera before, so I genuinely have no idea what happens in the story. This is where my friend who I was streaming for comes in because she has read the story so she helped fill me in on what happens (she's also making a yandere vn in the future which I will be spamming the heck out of because yandere vn). I think from what she told me, most of the story is relatively accurate, though some parts are changed for one reason or another (for instance, The Persian has a name in this game, but in the original, he doesn't), which has some pros and cons for some characters. Overall though, the story was pretty good for a first timer like me since it really let me experience what the Phantom of the Opera is truly about. I think the creator Mazm did a good job for historical detail, which makes sense considering their platform is about creating games that reinterpret famous stories (they've also done one for Wizard of Oz and Jekyll and Hyde which I sort of want to play), and there are a lot of different notes the player can collect in the game that give more historical insight into what is going on.
The story for the most part is pretty linear. There are some choices you can choose, but except for two, they don't really affect the story. For the most part, the game plays as a visual novel, though you do have to walk around to talk or interact with things to proceed the story. There are cats and notes that lie around the game too, with the notes giving more historical insight and the cats being used as hints in case you don't know where to go. The story is about a detective trying to find out the truth of the Phantom of the Opera at a request of a client whos husband was a victim of him, but most of the story is played through a flashback.
There are also small minigames as well that aren't too difficult, though I honestly felt like some of the minigames got to be tedious at times, specifically the one minigame where you have to press the order of the mirror combo which I found really annoying because besides the fact that I'm bad at those games, you had to do it every time you wanted to enter under the Opera house, which was just... ugh. The game itself seems much more optimized for mobile than it was for switch considering how slow the characters move (and its really slow walking to different places sometimes) as well as the fact that it takes forever to load between different scenes and there's no touch screen option for switch (that I know of). Plus the buttons for moving and pressing hints were annoying to deal with (though this could just be because I'm using an emulator). I also kept getting confused when I was playing, since sometimes I would walk around the entire opera house trying to figure out what to do next, only to learn that I was suppose to talk to someone that was literally five steps from where I spawned. The last thing I found annoying was the fact that there's no option to skip dialogue which is really annoying when I wanted to replay a specific part of the story to take some screenshots. If you play this game, it's probably better to play it on mobile than on switch.
In terms of artwork, Mazm's Phantom of the Opera is really gorgeous, from the overworld sprites to the dialogue sprites to the background and CGs. I love how cute the overworld sprites are (I think Jammes and Raoul's are my favorite, they're both so cute) and every background is really nice to walk through and gives a good atmosphere of what it's trying to show. The character sprites for each characters are nice and varied. I can always appreciate characters that have recognizable faces and shapes, since a lot of times I have face blindness when it comes to characters that look way too similar. The CGs of course are super well done and I love all of them. Overall, the artstyle of this game is very solid and I love the way it looks.
The main character of the story was Christine, who looks really good ( I really love her hair), was for the most part alright initially. While I found her to be a bit naive (because she believed that there was an actual Angel of Music when it was just... the Phantom), she was for the most part alright, and even ended up saving another character from the phantom. However, I found her actions annoying after she met the phantom, specifically the part where she agreed to stay underground with the phantom for two days and would be released as long as she didn't touch his mask, and guess what. Right as she was literally about to leave, SHE TAKES OFF HIS MASK, AND FOR WHAT? YOU WERE JUST ABOUT TO LEAVE?? The other thing that bothered me was the after being trapped with the Phantom for about a month, she is given free reign to go back above ground, under the conditions that she only goes to the opera house and at home. During this time, she's expected to break it off with Raoul, so she fakes a honeymoon with him before he leaves for the artic. However, during this time, she doesn't tell anyone, not even Raoul about what the Phantom is up to. She has an entire month, an ENTIRE MONTH to tell someone that the Phantom is likely to hurt people (as previously he had dropped a chandelier on top of the audience) and she just... didn't. Understandably, she might have been afraid that the Phantom might have heard her, but still, what is he going to do to the possible 100 people that Christine could have told about him. She could have saved people from death if something like that were to happen. Near the end, she does get proper character development and learns to choose things for her sake and not others, which was pretty nice and does stand up to the Phantom after all the trauma (and doesn't get stockholm sydrome, thank goodness), but I still think that a lot of her actions could have probably been written better to make her less naive (since apparently in the original she was about 16ish while in this remake she's about 20 so it's less awkward between her and the phantom).
Raoul is the next character I'll be talking about, because even though he is very adorable, he also has one braincell and talks about Christine way too much. My friend and I actually decided to make a counter on how many times Erik and Raoul say "Christine." Erik says Christines name 128 times and Raoul... says it 340 times. This isn't even counting his introduction and only starts up to when Erik is introduced as a formal character and also doesn't count any time he says it in the overworld. 340! My friend kept on joking around that because Raoul says Christine so much, his brother Phillipe became an alcoholic because he's so tired of Raoul talking about Christine. Raoul only really has like three things going for him: the fact that he was in the military, the fact that he's part of the Chagny household and Christine, and that's it. Throughout the story, his goals are pretty much always related to Christine, whether it be to give gifts to Christine, being worried about her or trying to protect Christine from the Phantom. When the chandelier drops on half the crowd during one of the performances, instead of being worried for them or trying to get out of the Opera House, he instead looks for Christine, who is on stage and quite literally in the safest location within the theater. I would consider him a redeemed/protective yandere though, considering his priority is always Christine (he even gives up his own family name to be with her) and he's always trying to protect her. There's a part of the story where Raoul becomes really unhinged when it comes to protecting Christine, lashing out her her friends and other members of the Opera house. He does some really dumb stuff because of the Phantom, specifically throwing away Christine's ring that she got from the Phantom (that she also literally told him before that as long as she's wearing the ring she wouldn't be harmed by the phantom and he just...?? okay??). When he's tortured in the mirror room, he hallucinates Christine blaming him for her capture, and he even cries while hallucinating that Christine friendzones him (which I though was actually really funny, even if it was a tad bit stupid). His redemption comes near the end of the story where he apologizes for being so emotional and realizing that he was a bit of an obsessive beast, and in one ending he lets Christine go to travel the world. To be honest, I don't know if Raoul would continue to be as protective and obsessed with her even after the Phantom's death, but I guess there's not really any way to know.
The Phantom, or Erik (which I know is his cannon name but it makes me laugh because he really doesn't look like an Erik) is the main villain of the story. Unfortunately, in this version, I don't think I can call him a yandere, for one simple character: Melek. Melek, as far as I know isn't in the original story, is a prisoner that Erik has after she refused to marry her. As a character, I do actually like Melek since she's the one of the more sensible characters in the story and she's the more rational one between her and Christine, but her role in the story basically deconfirms Erik as a yandere, at least in this version. For one, Melek is a blind maid of Erik that he did fall in love with and trap, similar to how Christine was, which kind of comes off as Erik being the kind of person who would trap any girl that he likes. Even if this is the case, I don't understand why Erik would keep her alive even after she fell for Christine. Supposedly the reason is that Erik wanted to make Christine feel despair and he did attempt to kill her, but Melek survives and he just... doesn't do anything with her. Honestly, if Melek were straight up not in the story, I would have put him as a yandere because pretty much all of his other actions point to a more possessive/worship type of yandere, but because of Melek it's just not possible in my eyes. Besides that Erik sort of reminds me of a chunni in this version (he's like this absolute darkness is my curse! Like people with 7th grade syndrom seem to have), it was kind of hard for me to take him seriously in certain times. He is very intimidating when he threatens Christine, but his overdramatic nature (which I know is something he's always known for, just this version is uh...) really makes him seem like a child. Erik is for sure suppose to be more antagonistic in this version, considering the addition of Melek and his general actions of possession towards Christine and his disdain for Raoul, but near the end we do see more of his story and we see just how devastating his life is from the moment of birth. I did feel really bad for him when Hatim/The Persian keeps on mentioning the prince he used to work with because its really obvious that he still has trauma from it (and he keeps begging him to not talk about his past and the Persian just... keeps traumatizing him I guess) and the fact that he was treated so badly because of his appearance, but this doesn't excuse his actions in the story. Christine does try to sympathize with him using her own tragic backstory, which Erik kind of pushes away (like bro, we're not trying to see whose parents are worse, she's just trying to sympathize with you, dang) as not being tragic. I think that Mazm did present him pretty well in this story, not showing just his antagonistic side but also his more tragic side. Sadly, like I said, I can't consider him a yandere because of the addition of Melek, at least not in this version.
In terms of other characters, I really like the trio of Meg Giry, Sorelli and Jammes- the friends of Christine. From what I can tell, they're all a bit more aged up in this version, with Sorelli being the oldest and Jammes being the youngest and I feel like they gave more character to them than in the original version. Sorelli is the head of the dancers and the dating partner of Phillip de Chagny, Raoul's older brother and she's the mature and strong willed one of the group, wielding a blade that she uses to protect her friends. I like the fact that they made her a bit more protective and in one of the overworld sprites its mentioned via rumor that Phillip fell in love with her after he saw Sorelli swing her dagger, which I thought was pretty cute. At the end though, after Phillips death, she realizes that she was struggling too hard to climb up the social ladder and decides to forge her own path. In the beginning she attempts to protect her and her friends from the Phantom, declaring that she'll stab him if she sees him. Next is Meg Giry, and from what my friend told me, she was very young in the original books and kind of scardy cat. In this version, she's a bit older but maintains the scardy cat position, and is very terrified of the Phantom. She does gain more character development during the story, standing up to her mother and the managers and overall being a more assertive and confident person, which I thought was a nice touch. Last but certainly not least is my best girl Jammes. In the original story, she barely makes an appearance, but in Mazm they made her quite literally the best character. For one, the canonical reason why there are so many cats hanging out in the opera house is that Jammes keeps on feeding them and letting them in and she has named all of them after the Opera House staff. Jammes loves to spin and has a cute animation and while she can be loud and a bit strange sometimes, she can be smart and assertive when she needs to. Jammes always pushes the other three into being better and protects them when needed (for instance, when Phillip lashes out at Sorelli, she steps in and demands that he apologize for his actions) and can be really smart at times (she's the only character that attempts to at least cover her mouth when the Phantom's fragrance, a hallucinogenic gas, starts to fill up the box seat, despite others who have been in there not even trying) and is the one who stands up for Christine's abuse as well as for the dancers at the opera house being treated unfairly by the manager as she organizes a strike against them. She also becomes part of the women's suffrage after the events of the story. I could go on and on about Jammes, but instead I'll leave a cute picture of her at the end of this entire analysis. Besides those three, I did like Carlotta, the original singing lead of the opera house. Originally, she became an antagonist towards Christine after she became the lead singer, however, she did apologize to her afterwards and befriended her once more before traveling the world. I love her interactions with Raoul because she basically said that Raoul only has Christine and military training and when he gets angry and lashes out, Carlotta glares and him, causing him to cower (this actually does happen multiple times), and I just found that really, really funny. Mifoid, though useless in the story is actually pretty cute as well, I love his bouncing animation. The last character I'll talk about is Phillip because he became meme material for me and my friend considering he probably is so tired of Raoul talking about Christine (we joked that the reason he was sent to military was so that he didn't have to hear her name again) and while he is mostly a decent but strict character in the story, his last appearance really makes him out as a jerk. I did think it was kind of weird that Phillip was so willing to let Raoul go to the Artic mission considering nobody that has gone there has ever returned, and he was rather elitest towards him, not letting him marry Christine because she's of lower
class but during his last chapter before he dies, he goes on a frenzy after he and Raoul have a fight, revealing to Sorelli that he only dated her for fun and not to actually settle down with her, which is just horrible. It's a bit sad though that Raoul only saw him as someone who tried to get rid of him considering that Phillip did raise Raoul and that his last actions were an attempt to save Phillip from the phantom, and yet Raoul barely has a reaction after seeing his body and doesn't even go to his funeral. It's really sad that Raoul didn't even really cry after seeing Phillip's body, considering that he was basically his father figure.
Overall, it's a good game to play and a good retelling of the Phantom of the Opera. I wouldn't consider the Phantom to be a yandere in this game, but I do think that Raoul is one. Thank you for this recommendation!
Tumblr media
57 notes · View notes
whyeverr · 5 years
Note
So, I started a simblr several months ago, and want to actually start posting gameplay. (Combination Build A City Challenge and Random Legacy challenge). I really like the way you did your IL gameplay, with just the right amount of story, but no too much, so I kind of want to emulate that a bit in mine. But i'm worried about sticking with the save, and knowing when to take screenshots. Do you have any tips for gameplay saves?
Hmmm... 🤔 These are big questions, Anon. The kind that don’t really have universal answers. But I’ll try my best!
First off, my approach to balancing storytelling with gameplay is to pretty much always let the gameplay drive. I might have a general path for things in mind, but I’m really intentional about not forcing (or ignoring) things for the sake of what I think should happen. If I wanted to write stories where I control every aspect of the narrative, I wouldn’t bother using a game to do so. Not that there’s anything wrong with that approach (there are a lot of interesting simblrs that do just that!!)—it’s just not what keeps me coming back to my game or wanting to share it, you know? The fun, to me, is creating and exploring and learning more about the characters and places in my game (whether those are EA-created or of my own making) versus acting out a script with pixel performers.
In terms of sticking with a save... this seems to be something people lose a lot of sleep over and I find that to be really silly. You don’t owe anyone anything, and if you get tired of a save it’s up to you what to do about that. Legacies that go on and on are really cool but I think the idea of endlessness being the default goal puts a damper on the fun of playing The Sims. I personally prefer to end things when I’m feeling ready to move on, but that’s just me. 🤷🏼‍♀️
And as far as taking screenshots goes... I take them, um, pretty much constantly...? 😅 It’s not a problem, I swear (until everything starts lagging like crazy). But uh if you’re trying to emulate my approach, this is me giving you permission to take as many screenshots as you’d like and to not worry about perfect framing, composition, lighting, or whatever else we feel inadequate about on any given day. I know lots of people enjoy composing and editing every screenshot they post (again, nothing wrong with that in any way), but I’d personally much rather fly by the seat of my pants, capture it all along the way, and post sloppy screenshots that make me laugh or feel all the feels. 🤗
I don’t know if any of that was helpful or what you were looking for but congrats on starting a simblr and I wish you well with your endeavors! 💗
16 notes · View notes
askaceattorney · 6 years
Text
What’s next?
Well, I’ve found myself in quite the predicament here.  The Modthorne recently resigned as a moderator, a long-time submitter just said his goodbyes, and now I’m stuck by myself with over a thousand letters to answer (and plenty more on the way, no doubt).  On top of that, I’ve been attempting to balance my schedule between this blog, drawing things for my art blog, and a number of other creative projects.  Not to mention all the real-life tasks to add to the mix.
Basically what I’m trying to say here is...
Tumblr media
Much as I'm going to miss the Modthorne, I think it’s time for someone else to fill the empty seat here at Ask Ace Attorney!  The thing is, I haven’t given much thought to who should take the Modthorne’s place when she retired, but I guess the best way to find a replacement is to subject a bunch of applicants to the same rigorous screening process that we subjected ourselves to when we started...answering these letters?
Nah, just joking.  I’m going to do it in pretty much the same way the Mod did.  After all, it worked out pretty well last time, wouldn’t you say?
So, if you’re interested in becoming a part of the de Modder line, the job requirements are as follows:
Fluency in English - Sorry if it’s your second language or you’re not entirely comfortable with it, but dialogue is one of the most important parts of the games.  It has to be sharp and witty and without mistakes.  Know your grammar and your vocab.
A firm understanding of the games/characters - This should go without saying.  You can’t run a blog like this without having played all the titles and retained all the events.  Understanding character motivation and voice is important too.
Time - Without the ability to devote an hour or so a day to the blog, you can’t do it.  It’s that simple.
Love for the work - Running an ask blog always sounds like fun, but people will abandon it as soon as they realize it’s work.  You won’t come into your stride if you don’t stick with it.  You can trust me on that.
Respect for canon - The foundation of AskAceAttorney is the game series.  It isn’t fanfiction or shipping wars or web comics or the anime or anything like that.  The American localization is the canon used here, and while you can seek the anime, manga, or movie for reference, they aren’t the law.  You aren’t here to invent character traits or off-screen events either.  Understanding that is an absolute must because it allows for the entire audience to enjoy the blog, not just a sub-sect.
Understanding the difference between an ask blog and a roleplay blog - If selected, you’re here to answer letters in the format you’re used to.  You’re not playing a single character or hosting conversation.  You’re not inventing story threads.  The idea behind the blog is fans writing celebrities and those celebrities writing back.  Think of it like email or handwritten letters.
Image editing software - This is a vital tool for answering letters.  You have to screenshot and crop letters, which is something a child can do, so you don’t actually need to know how to use the software, you just need to have it.  There are free options out there, such as GIMP 2 and Pixlr Express, so you don’t even need Photoshop.
In case you’re wondering, these are the same requirements set forth by The Mod a couple years ago, almost ad verbatim, and I feel that they still apply to any new moderator of this blog.  The main idea is also the same: Remember the “feel” of the games and try to emulate what already exists.  That’s what we’re all fans of, after all.  Respect for the soul of the blog and the game series is extremely important.
So, if this sounds like something you’re interested in, send an email to [email protected] telling me why you think you’d be good for the position and any other qualifications you might have.  Can you make gifs?  Do you make cool art that could be used as bonus content?  Are you a freelance writer?  Do you actually work for Capcom?  Something else super cool?  Remember, this email is how I’ll judge your personality, knowledge of the series, and intellect.  Sound smart and quick-witted, but don’t try too hard.
I don’t need or want any personal information.  I don’t even need to know your real name.  All I care about is your ability to pretend to be multiple characters and anything else that might help with that.
If you think you’re a good fit but don’t know how to run a blog, apply anyway.  More important than anything is a love of the Ace Attorney franchise and a love of this blog.  I’ll also be there to help you get settled in should you end up being the winner -- it’s not a very complicated job, but there are some rules of thumb that I’ve picked up during my time here that I think will be helpful.
Best of luck to everyone who chooses to apply (whether it’s a hundred people or just a handful), and have some fun while you’re at it!  Remember to take it seriously, but...not too seriously.
Tumblr media
I’m look forward to seeing what sort of Ace-level talent I can find!  Best of luck, and I’ll see you ‘round!
-The Co-Mod
26 notes · View notes
pixelgrotto · 7 years
Photo
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
"Don’t give up, Senua”
Hellblade: Senua’s Sacrifice is one of those games that’s hard to view objectively if you’re up-to-date with video game trends. It came out about a month ago and is currently an industry darling for combining the thoughtful nature and affordable price point of indie games with the big-budget look of AAA games. It’s effectively brought back the concept of the “mid-tier” title, something that existed before the PS3 and Xbox 360 era, when the cost of developing games suddenly became too expensive for most companies to aim for anything less than the returns yielded by mainstream blockbusters. It’s finally won wholehearted praise for developer Ninja Theory, who produced a reboot of Devil May Cry four years ago which attracted so many whiners that Capcom now seems determined to forget that it ever existed. (A mistake, if you ask me.) And most importantly, Hellblade has garnered recognition for its earnest and extensive portrayal of psychosis. Ninja Theory dared to create a game starring a protagonist who suffers from acute mental illness, and thanks to input from neuroscientists and actual psychosis patients, they pulled it off respectfully, to the point where Mental Health America had approving words.
All of this is great, and made me wanna check the game out ASAP even though I’ve got a ton of other things on my backlog. After my first couple hours, though, I realized that there were actually a lot of things that I didn’t like about Hellblade, which made me feel sorta guilty. I’m all for criticizing critical darlings if I find them overrated, but Hellblade’s very existence was doing so many wonderful things for the industry that it seemed unfair of me to have anything less than gushing praise. So I continued playing until the conclusion of Senua’s 10 hour journey, wondering if my opinions would change. And they partially did. In the end, I’ll say that Hellblade deserves to be played by as many people as possible - though there were several occasions where I found the experience clunky and even painful.  Even though it’s mostly been promoted as a third-person action adventure, Hellblade is really a psychological horror game, and the premise makes me think of a Celtic version of Silent Hill. Senua is a Pict warrior trying to enter Hel to free the soul of her murdered lover, and because she has multiple voices raging in her head and can’t stop hallucinating, there’s some discrepancy over how much of her journey is actually “real.” A discussion on reality is pointless, however, because the ordeal of the quest is real to Senua, and it soon feels real to the player too, especially as the game stealthily weaves the multiple voices of Senua’s mind in and out of your ears thanks to surround sound. Then there are the hallucinations that you’re forced to endure, many of which manifest by changing the environment. One particularly unpleasant hallucination turns Senua’s surroundings into a blood-soaked realm filled with human hands all gripping for her flesh, and it’s heavy stuff. There’s a high probability that playing through Hellblade will be too much for a lot of people, especially those who have personally suffered from psychosis or other forms of mental illness. It was too much for me at some points, and when I call the experience “painful,” I mean that I really had to put the gamepad down every now and then or risk being overwhelmed. All of this made Hellblade an ordeal to play, but it’s perfectly okay to make players endure grimness as long as they’re invested in the characters they’re controlling and want to see things through until the end. Horror games do this all the time, and believe me, I was rooting for Senua to persevere and emerge victorious from the dungeon of her mind. Unfortunately, while grimness is one thing to endure, not-so-fun technical design decisions are another thing entirely. Hellblade typically has you doing either one of three things - 1) watching cutscenes, 2) fighting vikings, or 3) using Senua’s “focus” ability to zone in on hidden runes in the environment, which are then used to open doors and solve puzzles. This “focus” mechanic is actually meant to evoke the capability that psychotic people have to mentally restructure their surroundings, zoning in on certain details and seeing elaborate patterns in the items around them that others might be totally unaware of. While it’s admirable that Ninja Theory managed to take this and make it into a main gameplay pillar, I just didn’t find the puzzles particularly satisfying or enjoyable. All you’re really doing is wandering around looking for optical illusions, several of which are a pain to locate. Once you find ‘em, you go, “Hm, that’s neat,” open a door, and then find some more. There are a few different parts where you’ve got to traverse mini-mazes or use Senua’s focus to rebuild bridges and stairs, but mostly its just looking for runes. It’s probably a good thing that Hellblade only lasts for 10 hours, since this mechanic wouldn’t be able to sustain interest in a longer game.
I did like the combat more than the puzzle solving, and pretty much all of the screenshots above were taken during battle segments. I don’t wanna say that the game “feels like Dark Souls” (ugh), but Senua’s movements and sword swings do have a similar weight to them, and it’s satisfying to see blows connect. The only problem is the camera, which is something that really should not be an issue in a 2017 game. Senua’s just too close to the screen most of the time, and when stuck in a combat stance she lacks a fast move to create distance between herself and enemies. Because combat encounters usually take place in confined spaces with multiple foes, it’s quite possible to get stuck in a corner with your vision blocked as everybody curb-stomps you to death, and the whole thing kinda feels reminiscent of something out of an early third-person PS1 game.
These technical issues, as well as a prominent gameplay mechanic that I didn’t especially like, would keep me from giving Hellblade five out of five stars if I were reviewing it for a magazine. But I think I’d go ahead and give it three and a half stars, and I’d also earnestly proclaim that this is a game that’s still worth experiencing at least once. Why? Well, because of what it represents and encompasses - a positive portrayal of a much misunderstood disorder, an unsexualized female protagonist who strives to be heroic despite her flaws, a game that strips away all of the fat plaguing far too many modern titles and offers an intriguing alternative to teeny indies and bloated big-budget spectacles. And also because there were a few times when Hellblade, despite its problems, really clicked for me. 
(Some light spoilers ahead, FYI.)
The first occasion was when a determined Senua cleared two gates blocking her from a bridge leading to Hel. When she finally steps foot on that bridge, the game kicks in with an awesome Norse-inspired backing track that really pumps up the soul. A flurry of enemies fly at Senua, and combat with them is fast and glorious, particularly since it’s on an open bridge and not the usual confined spaces where the other battles take place. 
The second occasion was when Senua temporarily loses all ability to see her surroundings. Guided only by the voice of her dead lover and the fading light of a single torch, the player has to help her navigate a forested area and a cabin filled with grotesque flesh monsters just lurking in the background. It’s here that the game’s binaural audio really proves its worth. You can hear the monsters, but you can’t really see them, and the dread is intense. Then there’s a part where Senua has to move through a series of corridors that all look the same, and every time she makes an error and ends up travelling in circles, the muses in her mind laugh at her with frightening ferocity, creating surreal feelings of claustrophobia, confusion and frustration - perhaps the closest the game ever gets to actually emulating the experience of living with voices constantly inside your head.  And the third occasion was at the very end, when Senua faces Hela and her minions in a final battle to the haunting ambiance of a really incredible song by Passarella Death Squad. Not only is the song the perfect accompaniment for the desperation of this finale, but this is the moment in the game where Senua’s mastered the voices in her head - at least temporarily - and forced them to work together in harmony. While the voices have always chimed in during combat to serve as a kind of “second sense” for Senua, warning her when enemies are about to strike from behind, they’ve usually done so in a denigrating way. This conclusion, however, sees the voices finally acknowledging Senua’s worth and encouraging her onwards. “You can do this, Senua.” “Behind you, Senua.” “Look out, Senua.” All of these are gentle whispers rather than the normal cackles and cacophony, and the end result feels like poetry in motion as you press buttons in a pulsating attempt to overcome both Hela and Senua’s inner madness. It’s cathartic, it’s a darn good ending and it makes the game feel worthwhile. 
That, in a nutshell, is Hellblade: Senua’s Sacrifice. Highly imperfect, but also highly worthwhile. I probably won’t ever play this game again, and I’m not sure if I’ll be checking for its sequel...but I am glad that it was made. Both the electronic entertainment industry and the mental health community deserve something like this, and I’m perfectly comfortable with saying that Hellblade deserves all of the attention it’s been getting. Even if it wasn’t 100% my cup of tea. All screenshots taken by yours truly using Hellblade’s photo mode.
9 notes · View notes
nullset2 · 6 years
Text
Toy Project: Fortune Telling from Super Mario Bros. DX
I recently moved out of my country and I've been staying at a hotel and turns out I got bored so I started just trying random stuff to try to have fun while I get my own place.
So I remembered... back in the day, I don't remember how, because I never actually had a gameboy of my own, but I remember I managed to play Super Mario Bros. DX for the Gameboy Color. I remember that port, a pretty good one at that, because of the fact that not only does it recreate Super Mario Bros. on the Gameboy Color really well, no matter the small screen size of the system itself which leaves a lot to desire to the NES's resolution, but because there's a massive amount of extra content added to the original SMB trip.
There's time trials, You vs. Boo mode, multiplayer modes, hidden red coins, hidden yoshi eggs, a new map screen and a lot of other random smaller stuff, such as Gameboy printer stickers (in case you have one of those laying around lmao), a day planner in case you're still rocking your gameboy color as a PDA 20 years later, and even a fortune telling minigame. It's awesome!
 The fortune telling minigame
You see, for some strange reason I have this weird kinship for the fortune telling minigame... I always liked the fact that the little messages you get are so satisfying to read, the little jingle that sounds before the message is displayed sounds so exciting, and the fact that you can even get extra lives for the main platforming game if you have good luck and you get a nice fortune :)
So here's the challenge:
I want to recreate, for fun, the fortune telling minigame in a web application.
Right off from the bat, this is what I'm gonna need:
A dump of all the fortune messages that Nintendo put in the game.
A dump of all the graphics and sound used in the fortune telling minigame.
A database schema to store traffic data and fortune content data, so people can login, see and share fortunes, ideally with facebook.
An admin interface to add or edit the fortunes on my database easily (nice to have, and it involves making a User model too. I can do with SQL only though)
A web server that displays the actual frontend for the fortune telling minigame, does the "random shuffling" process, handles user traffic, then shows the users' fortune as an actual document that they can see on a browser (Ideally I'd expose it as a RESTful API too, but I don't want to do that at the moment, and for the sake of having a controllable scope for this project, I'll focus on doing everything as a rails web application)
TL;DR: Here's is the finished product: Have fun
This is gonna be fun :)
Dumping the fortunes
First of all, unfortunately I didn't manage to find a complete text dump of all the available text data in SMBDX online. Bummer! I was sorta anticipating this though. I guess I have to dump the text myself.
How to dump the text off a gameboy color game though? I was puzzled by this... however, I did notice something, the font used in the fortune telling minigame is similar to the font used in other gameboy color games, like the Legend of Zeldas available for it.
For example, compare both uppercase "W"s in the words "Words and "What", respectively. It's the same typography.
So I figured out that there ought to be a parallel there. Maybe if somebody has already dumped the text off of, say, The Legend of Zelda: Link's Awakening DX, and shared their techniques online, I could use something similar to dump the text off of SMBDX into a text file.
Turns out that there's many text dumps of all the zelda games on Gameboy Color, and off of the notes in those, I found out that there's many games that use ASCII encoding for their script. ZeldaDX is one of them. You can theoretically just open a game's files on a text editor with ASCII encoding and copy the script off of that
What does this mean? It means that the ROM image of the game, which is the actual collection of all the data that composes the game and that got shipped in carts in the original release of ZeldaDX (or any game on cart, ever, for that matter), has the actual text content itself encoded with the exact same hexadecimal values that the American Standard Code for Information Interchange uses:
From here onwards things are about to get more and more technical so buckle up and enjoy the ride. If you don't yet understand terms such as "Encoding", "VRAM", why RAM is different than ROM in the GBC or any computer's architecture, or what "Hexadecimal" means, feel free to stop here and just look at the results, or shoot me a line and we can chat about it over beers :)
So let's fire up good old trusty XVI32 and look at the ZeldaDX ROM image in it using ASCII and lo and behold, what happens when we try to search for a string of text which we already know is in the game, for example, "Marin"
There it is :)
You can also use a decent text editor to open the ROM and force "Western" (or Windows-1252) encoding when opening the ROM.
So, I procured a ROM image of SMBDX off from the actual retail copy I have and that I purchased with my own money, like you also should. Then, after dumping the ROM image, from here it should be a cakewalk, right? Open the SMBDX ROM on a hex-editor with ASCII encoding and presto, right?
Well, not quite.
Unfortunately, Mario DX, for some bizarre reason, doesn't use ASCII encoding for its text. Strange.
My hypotesis at this point is that, well the fortunes data must be there in some kind of sequential order still, because the fortune lines are data that must necessarily be persisted in order somewhere in the ROM image to be presented to the users.
Let's pretend that we have a false encoding for a second, where the letters of the alphabet are represented by the following key:
A => A0 B => A1 C => A2 D => A3 E => A4 F => A5 G => A6 H => A7 I => A8 J => A9 K => AA L => AB M => AC N => AD O => AE P => AF Q => B0 R => B1 S => B2 T => B3 U => B4 V => B5 W => B6 X => B7 Y => B8 Z => B9 a => BA b => BB c => BC d => BD e => BE f => BF g => C0 h => C1 i => C2 j => C3 k => C4 l => C5 m => C6 n => C7 o => C8 p => C9 q => CA r => CB s => CC t => CD u => CE v => CF w => D0 x => D1 y => D2 z => D3 ' ' => D4
Based on that assumption, and unless SMBDX is doing some shifty on-the-fly uncompression thing to the ROM image (!!!), based on the fact that we already know that there's a message in the game that reads: "With a Fire Flower", and that the data has to necessarily be in that order somewhere in the rom, we should expect to find a sequence similar to the following data somewhere in the ROM:
B7 C2 CD C1 D4 BA D4 A5 C2 CB BE D4 A5 C5 C8 D0 BE CB W i t h a F i r e F l o w e r
The problem is, though, that we don't know for certain that the game stores its alphabet starting from uppercase A, with value A0... it could be any other value for all we know.
So to try to get a bit more clarity at this point we can use a hearty good old emulation debugger. If we fire up the ROM on a good-ass old emulator (in this case, I'm using nocashgmb), you can see the state of the Gameboy Color's RAM on runtime. Nice. We can trigger a fortune inside the fortune telling game, then inspect the memory to find out what data is actually getting read and from where:
If we take a look at the first uppercase W when we triggered a fortune it shows that the data comes from address 99C1 in the Gameboy Color RAM (look under Map Address)
So let's use a hex-editor to Goto address 99C1 and we find from offset 99C0
8D D6 E2 ED E1 1D DA 1D C5 E2 EB DE 1D C5 E5 E8 F0 DE EB
Look at the following screenshot:
Notice something interesting here? Probably we got the jackpot ;)
What are the giveaways?:
Notice how there's a lot of instances on this string of hex values of the value 1D. Why could that be? Could it be some kind of separator? Or delineator? What about... if it was a representation for typographical space?
Notice how the value C5 appears two times. The character F also appears twice on the phrase, on "Fire" and "Flower". Coincidence? I think not.
It seems to me that the string of hex values we found translates very well to:
8D D6 E2 ED E1 1D DA 1D C5 E2 EB DE 1D C5 E5 E8 F0 DE EB W i t h a F i r e F l o w e r
Some other thing that I noticed is that the lowercase values seem to be incremental and alphabetically ordered (notice at the values representing 'l' and 'o' and how they seem to be in sequence when you interpolate 'm' and 'n' between them, exactly in order going from E5 to E8), yet the uppercase values don't seem to follow the same order. I may be mistaken though.
So perhaps we can build a translation table from Mario-encoding to ASCII by deducing it from the debugger, then input it into a hex editor that can do custom translation tables, and hopefully try to deduct the rest of the code from there. We could throw out some ruby for this:
#!/bin/ruby LOWERCASE = { } ASCII_LETTER_a_OFFSET = 97 offset = 0xDA (0..25).each do |i| LOWERCASE[($ASCII_LETTER_a_OFFSET + i).ord.chr] = offset+i end $LOWERCASE.each do |k, v| puts "#{k} => #{v.to_s(16).upcase}" end
Which produces this table:
a => DA b => DB c => DC d => DD e => DE f => DF g => E0 h => E1 i => E2 j => E3 k => E4 l => E5 m => E6 n => E7 o => E8 p => E9 q => EA r => EB s => EC t => ED u => EE v => EF w => F0 x => F1 y => F2 z => F3
So far so good. Notice how it perfectly syncs with the example fortune.
Let's try to see how this plays out in a hex editor before we move onto the uppercase characters. Let's open the Rom on XVI32.
A quick tangent: of particular interest, notice how there's a string of perfectly good ASCII text at the beginning of the ROM file, showing the game's title and key. Longtime experience with Wii hacking and Nintendo DS and 3DS fidgetry has made me understand that since a forever, Nintendo has always liked to assign a unique alphanumeric code to each and every title that releases on their console. They call that code the TITLEID. I can see that SMBDX is AHYE. A quick look at the game's product ID on a site like GameFAQs seems to confirm that:
So there's a feature on XVI32 called character conversion that one can use to make XVI32 follow a custom encoding instead of ASCII when trying to visualize the data inside a file. This fits perfectly with our use case that we want to see the text in Mario-Encoding, which we have already deduced. Let's try to input our conversion table there:
Turns out XVI32 has a format that it uses to exchange conversion table data called XCT. This is a simple format which can be created from plaintext consisting of n different lines denoting a semicolon-separated pair of translation values, one per each line. We can adapt our ruby code to produce an xct table very easily, associating our values on the reverse order, so to speak.
For example, we have determined that 'a' (ASCII hex 61) corresponds to Mario encoding 'DA', our first translation pair in the xct table would read: DA;61
Let's use the code that we used before and modify it a bit so it dumps an xct table for us:
#!/bin/ruby LOWERCASE = { } ASCII_LETTER_a_OFFSET = 0x61 offset = 0xDA (0..25).each do |i| LOWERCASE[($ASCII_LETTER_a_OFFSET + i).ord] = offset+i end $LOWERCASE.each do |k, v| puts "#{v.to_s(16).upcase};#{k.to_s(16).upcase}" end
The resulting xct table, so you don't have to run this script, is here.
Which we can then load into XVI32 for conversion... and once we do that, lo-and-behold:
And from here it should be pretty easy to decode the uppercase alphabet that Nintendo used for this game:
#!/bin/ruby UPPERCASE = { } ASCII_LETTER_A_OFFSET = 0x41 offset = 0xC0 (0..25).each do |i| UPPERCASE[($ASCII_LETTER_A_OFFSET + i).ord] = offset+i end $UPPERCASE.each do |k, v| puts "#{v.to_s(16).upcase};#{k.to_s(16).upcase}" end
Yes, I know, I didn't bother to modify the original code to integrate both cases and just ran one for uppercase alphabet, and another one for lowercase. I was lazy xD.
The final fortunes content, with a bit of formatting and retouching, is here.
Getting the GFX and the Sound
Fortunately it was really easy to find the graphics for the fortune telling online, since sprite ripping is fairly easy to do and has been commonplace since the dawn of the commercial internet and emulation (credits to spriters-resource.com).
The sounds weren't as easy to find since the Result, option select and option opening sounds weren't as interesting as to warrant somebody posting them online in wav format for other people to download. I didn't manage to find them, but not to worry, this is a simple sound capture job. VBA-m, a popular gameboy emulator, has screen and sound recording features. After sound capture, it´s a simple edition job. Audacity is a great tool for this.
But anyway, I had to rip the sound effects that come after you get your fortune, because those weren't available anywhere. That was a simple audio capture and then editing with audacity. My audio collection is available here.
Developing the app
Now that we have this, we can jump into development of the actual app! Oh joy!
I decided to architecture the application as a standard server request-and-response cycle. I kind of had to take a bit of time to think about this. Do I develop this in the traditional way, using a server and a database with a request-response loop, or do I do it on the clientside? After all, doing everything clientside is pretty hot these days... But the argument that having a relational database available to add extra fortune messages is too compelling to ignore, and backend languages are still in my opinion more amicable to that purpose than just doing everything on frontend. I will eventually make this app more robust clientside in a version 2.0.
These are the design tenets:
A web server displays the fortune selection page, which should have the necessary design to play audio and display animated content (without plugins, mind you! Modern Web is awesome!).
On click, the frontend performs an animation, then the user gets redirected. The user's traffic is intercepted by the server, which makes a dice throw and shows the user's result, with the corresponding audio and graphics according to the result.
The pages in the site should be responsive so it works well on different viewports, even smaller screens. The web server should be able to connect to a relational database to retrieve the fortunes.
The server should be able to retrieve the fortune text off of a relational database.
So I decided to go with a simple Ruby stack for this, with the Sinatra framework for coding the server, PostgreSQL on the database, heroku as the platform (I like PaaS and heroku has amazing, free support for PostgreSQL out of the box).
On the frontend I use some small parts of CSS for webkit animations, transitions to animate all the assets I got off the ROM, and rotations/translations to position the clickable elements of the page in a circle formation, and the Javascript audio API to play sound.
A snag that I ran into quickly is that I need to add another media query to order the elements in another way on very small screens (the responsiveness is achieved purely through media-queries). Plus the animation is fidgety and not compatible in all browsers because I'm tweening the content property of an img element in the page for animation and this doesn't play well with browsers, or rather, doesn't produce smooth-enough animation. I think that I will look into canvas in version 2.0 of the app to handle all the gfx.
And finally, I needed a way to populate my database quickly with all the text I dumped from the ROM. I made a quick sql script for that, which I placed on the project's repository. Vim proved very good for this, parting from the previous txt file with the raw Fortune strings:
CREATE TABLE Fortunes(type_id integer NOT NULL, content varchar(40), created_at timestamp DEFAULT current_timestamp, updated_at timestamp DEFAULT current_timestamp); INSERT INTO Fortunes VALUES (1, 'With a Fire Flower you''ll beat Bowser.'), (1, 'Fortune awaits you in the clouds.'), (1, 'Fortune will lead you to Yoshi.'), (1, 'Look below to find what you seek.'), (1, 'Good friends bear good news.'), (1, 'Southerly winds bring sunny skies.'), (1, 'Kindness given is returned tenfold.'), (1, 'Good news is due from a loved one.'), (1, 'Good things come from hard work.'), (1, 'Soothing music soothes the soul.'), (1, 'Keep a good grasp Fortune will last.'), (1, 'Worries naturally melt away.'), (2, 'Stomp a shell and scores will swell.'), (2, 'Pipe cleaning reaps rewards.'), (2, 'An eye to the sky reveals Red Coins.'), (2, 'Keep your head up Find what you seek.'), (2, 'A party of three brings good luck.'), (2, 'Luck arrives with the easterly wind.'), (2, 'Express yourself with written word.'), (2, 'Seek out the one who thinks of you.'), (2, 'Active bodies breed active minds.'), (2, 'To create music is to create joy.'), (2, 'You shall achieve great victories.'), (3, 'Enemies lurk in watery depths.'), (3, 'Fortune is hidden in bricks unbroken.'), (3, 'Today is your day to win the race.'), (3, 'Boxes may contain clues to the quest.'), (3, 'Victory is yours in the coming race.'), (3, 'Beware of winds from the west.'), (3, 'Feelings shared will be understood.'), (3, 'He who thinks of you is beside you.'), (3, 'Imagination is a wonderful toy.'), (3, 'Old tunes bring new fortune.'), (3, 'Trade high scores to set new goals.'), (4, 'Stomping on spikes leads to sore feet.'), (4, 'Careless footing causes one to fall.'), (4, 'Kicked shells may bounce back.'), (4, 'What you seek is right beside you.'), (4, 'Sincere apologies renew friendships.'), (4, 'Storms ride in on northerly winds.'), (4, 'You will not find true love this day.'), (4, 'A VS Mode victory is not your fate.'), (4, 'Not all pain leads to gain.'), (4, 'Happy songs lift sad moods.'), (4, 'The Warp Zone speeds success.'), (4, 'Only a Challenge clears the mind.'), (5, 'Bowser''s breath engulfs the future.'), (5, 'Flying Koopas cut short success.'), (5, 'Dont count Yoshis before they hatch.'), (5, 'Leave impossible dreams to dreamers.'), (5, 'Seek answers in a friends advice.'), (5, 'Beware of pointed enemies.'), (5, 'Change old habits Yield new success.'), (5, 'Victory in a race may wash pain away.'), (5, 'Excess is a powerful enemy.'), (5, 'Favorite tunes never fade.'), (5, 'Now is the time for patience.'), (5, 'Help all in need, not just a friend.');
If you're using heroku to mount the app, it's very easy to populate heroku's postgres database through the command line by using unix redirection from the file to heroku pg:sql with the following command:
heroku pg:psql --app "the_name_of_your_app_here" < scripts/create_databases.sql
A quick note: a fast look at the main executable for the server, fortune.rb, you can notice how I'm handling connections to the database. It is a good practice to store connection credentials for your database on an Environment Variable in the server, from where I read at the moment of connection in runtime, else I default to development-credentials, which you should replace by your own if you try to run this on your machine.
Final Words
So this is it! Hope you enjoyed the ride and remember that you can check out my project and deploy it for yourself from my github [profile] (https://github.com/nullset2/smbdxfortunes).
Have fun and may you have great luck in your future! :)
0 notes