![]() ![]() Other files: These should be named - or.If you want saves to be consistent across all game variants, you should instead provide your own implementation of loadGameState and saveGameState, and create savefiles using the format. Saves: If you use the new loadGameStream & saveGameStream methods, these will automatically be created in the form of.script/bytecode interpreterĪdditionally, the files saved by each engine should be consistent. pure virtual) Engine methods.Ĭontains the implementation of the plugin interface, as described in base/plugins.h. We suggest you use the following names for specific parts of your engine:Ĭontains at least the constructor and destructor of your (primary) Engine subclass, as well as the implementations of the mandatory (i.e. Besides source code conventions (see Code Formatting Conventions), this affects filenames. It is therefore expected to adhere to various conventions used throughout all engines. Be it to fix bugs in it, modify it to still compile after changes made to the backend code, or to simply add new functionality. Over the course of its existence, many people will have to deal with the source code of a given engine. ![]() Then add the following line to it:Įnable_unsupported_game_warning = false General Conventions File name conventions If you want to suppress it, locate and open your scummvm.ini file, and find the section added for your game. With this done you should be able to add your game, and run the skeleton engine.Īs a second optional step, by default everytime your game starts, you'll get an unsupported game warning dialog appear. You can do so, and then paste it to extract the md5 and filesize for the file, which can be used to update the detection entry. If you then run ScummVM and try to add the game, it should prompt you that an unrecognised md5 for the game has been found, and give you the option to copy it to clipboard. The easiest way is to choose a file in your game's folder that you think is unique, and change the filename in the detection entry to it. In either case, once you've got the skeleton engine compiling, your next step should be to update the placeholder detection entry in detection_tables.h. Each view simply has to implement a drawing method and override different event handler methods to handle whichever events it needs. This has benefits of avoiding duplicating event loops in multiple different places, each handling event processing and quit checks. In this case, it creates a more sophisticated engine skeleton that has a single centralized event loop, and dispatches events to views, which can be easily switched between. The second kind is selected if you also specify -events as an extra parameter after the engine name. The first, if you just specify an engine name, creates a bare bones engine with a sample event loop. There are two styles of engine skeletons supported. This will create a folder for your new engine as well as set up a batch file in the dists/msvc/ folder with the engine name that you can use as a shortcut to create a ScummVM solution with only that engine enabled. ![]() From the command line prompt, you should then run create_engine with the desired engine name provided as a single parameter. This will create a create_engine.exe executable in the same folder. If you go to the devtools/create_engine/ folder, you'll see a create_engine.sln solution which you should open and compile. Run make devtools/create_engine, then run the devtools/create_engine/create_engine, where engine name is the desired engine name. There is a tool that automates creating new skeleton engines which works both with make-based systems like *nix/Mac and with Microsoft Visual Studio. Actually, some ports use a custom build system, but their maintainers will usually add your new engine once it has been added to ScummVM.įinally, you need to make ScummVM aware of your new engine. You also must hook yourself into the regular ScummVM main build system. Our Doxygen documentation is your friend and should hopefully explain enough about this: Engine class. This will ease integration of your work.Įssentially, you will have to implement a subclass of the Engine class. Note that it's strongly advised to base your work on the current development version of ScummVM, and not on a release version. I will assume that you are at least roughly familiar with ScummVM, and have a recent checkout of our source code repository. It does not tell you how to create an engine for a given game rather it is meant to tell a developer how to properly "hook" into ScummVM. This page is meant as a mini-HOWTO which roughly outlines the steps needed to add a new engine to ScummVM.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |