Friday, October 28, 2016

(Archive) Final Fantasy VII 2D Remake - Vanit



(from Final Fantasy 7 2D Remake's GamePage Blog on RMN by Vanit - December 6th 2013)

Hey guys, finally submitting a page here so my game is more accessible. TLDR: project is largely on hiatus, but I do plan to finish the bombing mission.

A little about me:

I graduated from a Bachelor of Engineering majoring in Software Engineering (2011), and I'm currently working as a developer for a startup (web, Android, iOS).

When I started my degree I decided to experiment on a high level with the programming concepts I was learning in something I was familiar with; RPG Maker 2003. Over the years I've seen many people attempt a 2D remake of FF7 and fail, so I thought I'd try do it right.


About the remake:

My core goal is to make the FF7 that would've existed if it was developed in 2D instead of 3D. We were so close to living in this reality, so I find it an intriguing idea that I'm almost writing this love letter of a game from an alternate dimension. To that end I'm really fortunate that FF7 was designed, albeit unintentionally, in such a way that it's very easy to relate back to 2D.

The game itself is made in RPG Maker 2003 (rm2k3), however the only built-in feature I'm really using is the tiled movement for the field. All the other systems (menu, combat, message boxes/text, etc) were built from scratch using rm2k3's event scripting. As a game engine rm2k3 is extremely restrictive so I'm using quite a few hacks to make it more bearable (special thanks to Cherry, who is well known for his RPG Maker hacks).

The bulk of the time spent developing the remake has been reproducing the menu and battle system in excruciating detail, which was my starting point before I even touched the art assets. 95% of the game mechanics are well documented, thanks to qhimm.com, such that my remake also plays exactly like the original as well as looking like it (this is why I say remake instead of demake). Even though my remake only has a few scenes, the menu and battle system are functionally able to handle all the mechanics in the game (I even use the exact same enemy AI). What isn't well documented is the behaviour of the interfaces, which I've spent a lot of time studying to make sure mine are 99% accurate.

Another part of replicating FF7's feel was in getting the art style right. If you look at the pre-rendered backgrounds in FF7 they really do look like crap - you can tell the artists didn't know how downsampled the renders would be in the final product, so there's a lot of blurry things-that-you-aren't-quite-sure-what-they-are everywhere using way too many colours. I translated this feeling to my sprites by using really rough dithering that gives it that same shitty feeling that is very FF7. I also use the exact same colour palette, such that if you reverse image search screenshots of my remake, it will return results of the original game. To make sure Cloud's battle animations felt the same I recreated them frame by frame in 2D (not rotoscoped).

I'm probably the only person who's glad the PC version of FF7 used midis because I was able to dump them, add flags so they loop properly and use them in rm2k3. Similarly I was able to dump all the sound effects as well (sadly there's over 700 of them and they have no file names - that's been fun). My remake wouldn't feel nearly as authentic without these, so a special thanks really has to go to the folks at qhimm.com who have done fantastic job reverse engineering FF7.

Where I am now:

The real FF7 has over 700 scenes, and the process for replicating each one takes me at least a week (I don't use tiled graphics - each background is drawn by hand, pixel for pixel) - you just need simple math to work out how long it would take me, and this is ignoring the additional time needed for character and enemy sprites. My personal goals have already been satisfied though - I gained experience designing/implementing complex game mechanics, and I answered my question of if you can really make a 2D game feel like its 3D counterpart (hint: it's yes!). I still want to finish the bombing mission to make a complete package of "what it might've been like", but my progress on this is glacial - the work left on this is Barret's battle animations, a few enemy sprites and about 7 more scenes.

What I didn't account for when I started the project was my own personal development, and I've moved beyond it being time well spent working on this project. I'm a full blown software engineer now and I'm capable of much more than a remake in rm2k3. I used to have insane amounts of free time, but now am married and work full time so I'm very particular with what gets to occupy the remainder of my time. I want to start developing my own games that I have the rights/ability to release on Steam or Android/iOS, so my remake is on hiatus, although I do return for it from time to time when the motivation strikes.

Mirror Downloads:

Developers Note:

Release 1 - Proof of Concept

(from Final Fantasy 7 2D Remake's GamePage Blog on RMN by Vanit - December 16th 2014)

Hey guys! I used Molebox to bundle the game into a single exe, which is the reason your antivirus is treating this as a false positive. The reason this occurs is that Molebox effectively hides an exe (the rm2k3 runtime) inside an exe (the Molebox bundle), which is normally suspicious behaviour. If you're running into this issue you just need to make an exception for it in your antivirus.

Release 2 - Unencrypted Game Files

(from Final Fantasy 7 2D Remake's GamePage Blog on RMN by Vanit - October 26th 2016)

There seems to be a lot of people struggling with the old Molebox exe, rather than repackaging it I figure it's about time I released the game files so people can inspect the insanity I went through to make this in rm2k3.

The game uses a hacked RPG_RT.exe with Cherry's Pic Pointer Patch, so it will crash if you replace it with a different version. Also I was using a hacked rm2k3 that raised the max variable limit. It should be safe to inspect the events in a regular rm2k3 copy, but if you change the variables you may not be able to set them back.

Enjoy!

No comments: