A generic talk on the OpenMW project.
- Site Admin
- Posts: 1193
- Joined: 05 Aug 2011, 22:21
- Location: Wroclaw, Poland
Hi folks, I want to manifest my admiration not only for working on this project in particular but in general for skills like these whose I'm very envious
I'm a programmer for enjoyment and pleasure (not professionally) so I'm always impressed when I read of projects like yours, porting something to my beloved linux. I'm now playing to a very old windows game: Pharaoh
; since it is a game of the far 1999 I asked myself if I was able to do a similar thing but soon a lot of questions rose. Can you help me to give any answers? Let's begin:
1. which are the steps of a porting like openmw. Is required a lot of reverse engineering?
2. which tools are recommended to analyze exe and data files? Is it necessary access to a windows machine?
I wonder how for a game that occupies a cd/dvd in fact the game engine is tiny; for example Pharaoh.exe is only 2.2MB; probably it's quite the same for Morrowind. So, considering these numbers, why developers are so reluctant porting own games to other platforms?
Guys, you are my heroes!!
which are the steps of a porting like openmw. Is required a lot of reverse engineering?
We were lucky here, because the MW community had already done most of the reverse-engineering. If we had to start from scratch, we had to analyse at least the ESM/ESP, the BSA and the NIF formats.
which tools are recommended to analyze exe and data files
Forget about the exe files. Trying to reverse-engineer an executable is a waste of time. You try to figure out how the game works by playing it and than write your own program accordingly.
As for data files, it depends on what they look like. A hex editor is a good start. After that you probably want to write your own analysis tool.
Is it necessary access to a windows machine?
Yes. You need to be able to play the original game to analyse the game mechanics.
I wonder how for a game that occupies a cd/dvd in fact the game engine is tiny; for example Pharaoh.exe is only 2.2MB; probably it's quite the same for Morrowind.
Well, 10 years ago games were a lot more simple and as such a lot smaller. But actually 2 MB is enough for quite a lot of code. Easily several 10k lines of code. Furthermore software typically uses some dynamically linked libraries (dll or so), which exist as separate files and contain code too.
considering these numbers, why developers are so reluctant porting own games to other platforms?
The commercial aspect is certainly important. There are simply not enough Linux boxes out there to make it worth the extra development time.
Also keep in mind, that most developers have a Windows background. Pretty much everything in Windows is focussed on non-portability. Microsoft doesn't want other operating system and all tools, applications and file formats on that platform are designed to make portability extra hard.
Porting games to other platforms is pretty difficult commercially and tough on all ends of your development and support. If you develop for a platform, you must also have support for it.
When the number one priority is getting it out the door and client/customer's hands, I don't blame people for not going cross-platform.
Analyzing an exe is pretty arcane. Great for people to do it, but I'm with zini - Play the game, make careful observations, and your education does the rest.
You just know that when OpenMW is finished there's going to be some small game websites that will want an interview and will ask similar questions about porting older games to a new engine and multiple operating systems. Good warm up.
Thanks for all your preciouses tips