How hard would it be for one person to implement an engine?

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
Starfy
Posts: 1
Joined: Thu Mar 18, 2021 7:19 am

How hard would it be for one person to implement an engine?

Post by Starfy »

Topic. I just want to know, because there's some games that I'd want to try and add compatability for, if adding a new engine isn't too difficult. I doubt that many people that are already here would be that interested in adding them, since they happen to be eastern PC RPGS rather than western, so I'd probably be working on my own.
digitall
ScummVM Developer
Posts: 1172
Joined: Thu Aug 02, 2012 1:40 pm

Re: How hard would it be for one person to implement an engine?

Post by digitall »

Starfy: That would depend on the complexity of the engine really. It is certainly possible for a single person to develop an engine, but you need to be pretty skilled and motivated. If you mean Visual Novels, there is already a fork for those: https://github.com/monyarm/NovelVM. I am not aware of any for JRPG and the RPGs present in ScummVM are mainly as the same engine was used for a point and click game i.e. Kyra LoL etc.

https://wiki.scummvm.org/index.php?titl ... er_Central should give you some good pointers.
User avatar
sev
ScummVM Lead
Posts: 2273
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Re: How hard would it be for one person to implement an engine?

Post by sev »

In fact, many engines in ScummVM were implemented by a single developer.

The effort depends on a number of factors: the absolute size of the binary, used technology of the initial engine and your experience with reverse engineering and Assembly language in general.

Several examples for you:
  • gobliiins, 80kb engine, was lazily reversed by a single dev in about 6 months. DOS application, no decompilers were at the time, so it was straight from assembly
  • INSANE subsystem for Full Throttle, about 100kb binary blob. It took me about 3 months of working every evening, again straight from assembly
  • Full Pipe game, 500kb + 90kb DLL, written in C++, thus, vtables, complex structs etc. Took about 1.5 years to fully complete with the use of HexRays decompiler
  • Blade Runner, 590kb + 6Mb in 117 DLLs, written in C. On and off during 8 years, 3 experienced devs were working on it in the final 1.5 years
Disclaimer: you should not ask DreamMaster how much time it takes to reverse engineer, as he generates tons of thousands of lines of resulting code non-stop, with no sleep or personal life. Or do not ask john_doe, because he reverses an engine for a breakfast.

Speaking of john_doe, I would suggest taking a look at the list of WIP engines outside of ScummVM (https://wiki.scummvm.org/index.php?titl ... ource_tree) those, which are authored by john_doe or there is mention to contact sev (me), are mostly like 90% complete. Thus, if some game is appealing to you, you could finish the engine and that will bring you the needed experience much more rapidly than starting completely from the scratch.


Eugene
Post Reply