Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

A place for game announcements, and for people to discuss games being made.
Forum rules
Please read the sticky before creating a new topic. Linking to Kickstarter/Crowdfunded games requires a demo. Updates to Patreon-backed games may be posted once every 2 months. Adult content should not be posted in this forum.
Post Reply
Message
Author
User avatar
TellerFarsight
Veteran
Posts: 230
Joined: Sun Jun 04, 2017 8:09 pm
Projects: Vora, Secrets Untold
Location: Toronto, ON
Contact:

Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#1 Post by TellerFarsight »

Hey all, I joined this forum almost a month ago and decided to give myself a project so that I could learn how to Ren'Py.

In the wake of Persona 5, I found an itch within myself to go back and play one of my favourite games, "Shin Megami Tensei: Devil Survivor." I realized that it is very much a visual novel, and a complex one at that. What better way to learn how to code a good and proper complex Ren'Py game than by recreating a game I've played probably a dozen times?

I've gotten a lot of help from people on here and I've completed almost everything up until the first combat. I don't know how faithfully I can recreate the whole thing, but I'm not even close to giving up yet!

I've recreated all the art myself except for things like the menu screen (which I'm working on) and all the BGs. I've just been tracing the sprites, essentially, but it's giving me a little more freedom to manipulate and letting me figure out the devil of the details in transferring a sprite from sketchbook to screen.
I'm planning on recreating versions of the music in FL Studio, again just to find the devil in the details for when I eventually transfer original music for an original VN.

The only main challenges left are:
-the dynamically moving phone menu screen, which is what I'm trying to figure out now
-what I'm going to do about the combat system, which will probably become a simplified Turn-Based system
-keeping track of the incredibly complicated branching story of this game
-just typing up the whole damn thing. It's a pretty long game.
DS1.png
DS2.png
DS3.png
DS4.png
DS5.png
So what are your thoughts on this project?
How do you feel about people imitating other people's work?
Do you think reverse-engineering is an effective way of learning this stuff?
Any fans of Devil Survivor out there?
Should I even bother trying to finish the whole game?
Last edited by TellerFarsight on Sat Jul 08, 2017 12:26 pm, edited 2 times in total.
Current Project: Vora
Also Check Out: Devil Survivor [Reverse-Engineered]

SundownKid
Lemma-Class Veteran
Posts: 2299
Joined: Mon Feb 06, 2012 9:50 pm
Completed: Icebound, Selenon Rising Ep. 1-2
Projects: Selenon Rising Ep. 3-4
Organization: Fastermind Games
Deviantart: sundownkid
Location: NYC
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#2 Post by SundownKid »

Actually, I am a fan of the game myself, and I have played around with adding the time-based event system of Devil Survivor to a future game, because I like the way it works and makes the game feel less linear. I was able to pretty much get it working, albeit with my own design and not trying to copy the game.

I do think reverse engineering is a good way to learn, because it gives you some goal to aim for, kind of like a puzzle of sorts.

It's probably not a good idea to recreate the entire game if you are just using it as a learning experience. Because there's really no point to continuing once you have the underlying systems down. You would never be able to release your "remake" due to copyright laws, so considering the demo is for your own personal use only, it would mainly just be a lot of busywork with nothing to show for it.

User avatar
TellerFarsight
Veteran
Posts: 230
Joined: Sun Jun 04, 2017 8:09 pm
Projects: Vora, Secrets Untold
Location: Toronto, ON
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#3 Post by TellerFarsight »

Thanks for the advice, SundownKid!
I have been thinking of it as a sort of puzzle, and it has taught me how to make a lot of cool things.
I've now finished the story up until the end of the first day.... and I plan to end it there.
I've done some new sprites, as I'll show here, which are of much better quality than the main characters now that I've reliably figured out how to make sprites and transfer the files to my computer.
The challenges to overcome are still roughly the same as before

-Create the dynamically moving menu screen
-make the cutscene animations, like the COMP initiation and the cemetary explosion
-make a tile-movement/turn-based hybrid battle system, which is starting to look easier than I originally thought
-A few little things, like replying to email
-the Sound Design!

And once I know all that stuff, I'll be moving on to my SuNoFes entry project!
1.png
2.png
3.png
Current Project: Vora
Also Check Out: Devil Survivor [Reverse-Engineered]

User avatar
TellerFarsight
Veteran
Posts: 230
Joined: Sun Jun 04, 2017 8:09 pm
Projects: Vora, Secrets Untold
Location: Toronto, ON
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#4 Post by TellerFarsight »

Alrighty, so I've made progress on a few things.
-The dynamically moving phone menu is completely done, with some help to figure out how to finally do it viewtopic.php?f=8&t=45121&p=461610#p461610
-and I know how to do the other things and just need to find time to do it.
-I know how to make the COMP initiation sequence
-I'm working on the email reply system for that one email Atsuro sends at the end of "day BEFORE," which I don't think will take very long
-I've got the basics of turn-based RPG down
-I went and learned how to use FL Studio, so now I can recreate the music and the little boops and bops.

Unfortunately I'm leaving pretty soon on vacation, so I'll be away from my computer and won't able to work on this stuff. I'm also starting to think I won't have time to whip up a demo for SuNoFes :( but what can you do I suppose.
Current Project: Vora
Also Check Out: Devil Survivor [Reverse-Engineered]

User avatar
TellerFarsight
Veteran
Posts: 230
Joined: Sun Jun 04, 2017 8:09 pm
Projects: Vora, Secrets Untold
Location: Toronto, ON
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#5 Post by TellerFarsight »

Alright, I can't show a video of it, but I got the RPG battle system to work! It's a turn based fight 3v3, with multiple actions available (attack,spell,item,etc) and enemies have random behaviour (not just attack one unit repeatedly). Stats are viewable, and animation can happen during an attack.
On top of that, email replying is done, and sound effects for buttons are in. I still need to re-compose the background music though.
I might just finish this in a reasonable amount of time, but now I need to go back to working on recreating the visuals and put down the coding for now.
Just as a note, the end goal here is that I'll record a video of the project and post it to Youtube, and then link to it here so y'all can see how it turned out.
Current Project: Vora
Also Check Out: Devil Survivor [Reverse-Engineered]

User avatar
TellerFarsight
Veteran
Posts: 230
Joined: Sun Jun 04, 2017 8:09 pm
Projects: Vora, Secrets Untold
Location: Toronto, ON
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#6 Post by TellerFarsight »

I'm working on the RPG system now, making and applying the DS visuals to it. The COMP initiation sequence is done, so the only things left are the battle sequences and the background music. The 'overworld' of the battlemap is done, with dancing idle sprites that can stand or walk or whatever, and the map also pans to follow whose turn it is. There's a lot of little zim-zams and flashy lights involved with battles, but here's some screenshots of where I am right now in the process.
Untitled.png
Untitled2.png
Untitled3.png
Untitled4.png
Current Project: Vora
Also Check Out: Devil Survivor [Reverse-Engineered]

User avatar
TellerFarsight
Veteran
Posts: 230
Joined: Sun Jun 04, 2017 8:09 pm
Projects: Vora, Secrets Untold
Location: Toronto, ON
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#7 Post by TellerFarsight »

Hey all,
Life's real busy and it's been a while since I worked on this. I cleaned a bit of it up and recorded most of what I have. I have the rest of the dialogue for "day Before," but I have not coded the second (more complicated) battle. I left some other failed elements out of this version, like attack flourishes, button sound effects, and unit attribute overlays. Also, I'm sure you'll notice a number of little hiccups.
Thank you to everyone on these forums who helped me learn how to code (I didn't know a single goddamn thing about programming before I started in June) and for just being a bunch of cool people.
I might pick this project back up one day, but I'm working on an original IP first (look out for a WIP post soon).

Current Project: Vora
Also Check Out: Devil Survivor [Reverse-Engineered]

User avatar
Xerofit51
Veteran
Posts: 376
Joined: Thu Jan 09, 2014 12:58 am
Completed: Freak-quency, Harvest-Moon spin off
Projects: Freak-quency
Deviantart: xerofit51
Location: Indonesia
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#8 Post by Xerofit51 »

Whoa I'm really interested in how you mad some of the gui and sprite movements work

User avatar
TellerFarsight
Veteran
Posts: 230
Joined: Sun Jun 04, 2017 8:09 pm
Projects: Vora, Secrets Untold
Location: Toronto, ON
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#9 Post by TellerFarsight »

What do you want to know? Ask away.
Current Project: Vora
Also Check Out: Devil Survivor [Reverse-Engineered]

User avatar
Xerofit51
Veteran
Posts: 376
Joined: Thu Jan 09, 2014 12:58 am
Completed: Freak-quency, Harvest-Moon spin off
Projects: Freak-quency
Deviantart: xerofit51
Location: Indonesia
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#10 Post by Xerofit51 »

I'm curious about the moving demon sprites did you make them frame by frame or by atl, the chain movement n the intro and the moving buttons I guess. I tried using the base from Alex from your other post but got confused. if there many buttons then do you need to set each button their on variable for it to move correctly or is it a grid by grid thing? Thanks! If you can show me a code snippet I'd appreciate it, but if it's private, it's okay

User avatar
TellerFarsight
Veteran
Posts: 230
Joined: Sun Jun 04, 2017 8:09 pm
Projects: Vora, Secrets Untold
Location: Toronto, ON
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#11 Post by TellerFarsight »

I'm not 100% sure what you're asking, but this is how I did the moving phone menu. It's a lot like the base Alex gave me, just repeated over several buttons. I've only shown one button here (the top left one), but there are 9 in total. For this top button, it sets the variable "mid_move_down" and "low_move" to True. If you look at it in the video, hovering over the top button makes the middle row move down, and the bottom row also move down. A button in the middle row, when hovered, would make the top row move up and the bottom row move down, and a button on the bottom row would make the top row move and the middle row move up. The piece of code at the bottom controls the change in the offset variable, and each row is given a variable offset (top_offset, mid_offset, and low_offset). There's also a lot of background stuff I'm leaving out here, but it's just added images.

Code: Select all

default top_offset = 0
default mid_offset = 0
default low_offset = 0
screen phone_menu():
    default top_move = False
    default mid_move_up = False
    default mid_move_down = False
    default low_move = False
    add "images/PhoneMenu/PM_background.png"
    add "pm2"
    imagebutton:
        xpos 62
        ypos 131
        idle ("images/PhoneMenu/PM_idle_team.png")
        hover ("images/PhoneMenu/PM_hover_team.png")
        hovered [Show("phone_menu_image",app="TEAM",x=109,y=131), SetScreenVariable("mid_move_down", True), SetScreenVariable("low_move", True),Play("sound", "music/browse.ogg")]
        unhovered [SetScreenVariable("mid_move_down", False), SetScreenVariable("low_move", False), Hide("phone_menu_image")]
        action Play("sound","music/select.ogg")
        yoffset top_offset

    if top_move:
        if top_offset > -80:
            timer .01 action SetVariable("top_offset", top_offset-16) repeat True
    else:
        if top_offset < 0:
            timer .01 action SetVariable("top_offset", top_offset+16) repeat True
    if mid_move_up:
        if mid_offset > -80:
            timer .01 action SetVariable("mid_offset", mid_offset-16) repeat True
    else:
        if mid_offset < 0:
            timer .01 action SetVariable("mid_offset", mid_offset+16) repeat True
    if mid_move_down:
        if mid_offset < 20:
            timer .01 action SetVariable("mid_offset", mid_offset+10) repeat True
    else:
        if mid_offset > 0:
            timer .01 action SetVariable("mid_offset", mid_offset-10) repeat True
    if low_move:
        if low_offset < 40:
            timer .01 action SetVariable("low_offset", low_offset+10) repeat True
    else:
        if low_offset > 0:
            timer .01 action SetVariable("low_offset", low_offset-10) repeat True
The battle code is too long and complicated to post here, I think. I didn't actually make a grid, it's literally just isometric figures shown and then moved diagonally by amounts I calculated manually. I know there's a way to have the program compute a grid using the sizes I give it, but I was too lazy for that.
Current Project: Vora
Also Check Out: Devil Survivor [Reverse-Engineered]

User avatar
ComputerArt.Club
Veteran
Posts: 427
Joined: Mon May 22, 2017 8:12 am
Completed: Famous Fables, BoPoMoFo: Learn Chinese, Santa's workshop, Cat's Bath, Computer Art Club
Location: Taiwan
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#12 Post by ComputerArt.Club »

Wow, nice work!

User avatar
Xerofit51
Veteran
Posts: 376
Joined: Thu Jan 09, 2014 12:58 am
Completed: Freak-quency, Harvest-Moon spin off
Projects: Freak-quency
Deviantart: xerofit51
Location: Indonesia
Contact:

Re: Shin Megami Tensei: Devil Survivor [Reverse-Engineered]

#13 Post by Xerofit51 »

Thanks, sorry if I sound confusing, English is not my native language. Thanks a lot

Post Reply

Who is online

Users browsing this forum: Google [Bot]