Introduction to Modding

From Open Surge Wiki
Revision as of 18:16, 15 January 2011 by Alexandre (Talk | contribs)

Jump to: navigation, search


If you're an absolute beginner and wants to start hacking Open Surge, this place is for you.

Open Surge is an open source game developed to allow user created content as much as possible. The modding scene has been around since the early 90's when people hacked games, found out how the content was generated and substituted it's content with their own.

In Open Surge, it is fairly easy to modify any game content you wish. It ranges in difficulty from replacing sprite files and adding images to actually modifying the source code to add functionality to the engine. A popular way of adding new functionalities to Open Surge is via scripting.

Open Surge is highly modifiable. Early modifications (a.k.a. MODs) made by our users ranged from simple sidescrollers to platformers with ninjas and RPG elements. Other types of games, such as racing games or even space shooters, can also be made with the Open Surge Engine. You just need to imagine something, study the engine and work hard to make your idea become a reality.

This wiki contains documentation on how to modify Open Surge. Besides the documentation, it's useful to study the modifications other users make, so you can learn from them. The place they can be found is in our community.

Study guide

There are many ways of hacking Open Surge. We'll subdivide the hacking mechanism into a series of steps: from the most basic to the most advanced ones.

Step #1: the level editor

Learning how to use the level editor is perhaps the most important part of hacking Open Surge.

We recommend reading: How to make a level

Step #2: hacking the built-in game content

Hacking the sprites

Once you learn how to edit existing levels and how to make new simple ones, you can take one step further and learn how to modify the built-in sprites. In order to simplify the speech, we define sprites as the graphics of the objects of the game: characters, items, etc.

We recommend reading: Sprites

Hacking other game contents

Not only sprites are modifiable. Other game contents such as sounds can also be hacked.

We recommend reading: Sound effects, Musics, Fonts, Characters, Menus

Step #3: advanced level making

You already know how to use the level editor and how to modify the built-in game content, but what if you want to create whole new worlds? This demands a bit more of studying than the previous two steps.

We recommend reading: Bricksets, Backgrounds, Groups, Quests, Level specification

Step #4: scripting

With scripting, you can use whatever is generated by your imagination to create completely new elements, including, but not limited to: enemies, items, bosses, weather effects, cutscenes, custom user interfaces, and much more. Scripting demands some serious studying, but it really pays off.

We recommend reading: Introduction to objects, API Reference, and all the case studies in the front page.

Step #5: beyond scripting

Beyond scripting, the only way to change the way the game acts is to modify the source code directly. This is fairly difficult and requires knowledge of programming, so it isn't recommended for the faint of heart. Be aware that this approach imply on licensing (GPL) and multi-platforming issues. Not only that, but after you make your MOD you will have to find some way to distribute the entire executable instead of just a simple script. Still, if you want to try it, you can find the source in the src/ folder in your game directory. After you modify the source code, you will have to recompile the game to make the change take effect.

Regular users should not worry about this, as the mechanisms we talked to in the previous steps give enough power to make a wide range of MODs with ease. Open Surge is an open source game written in C language. Programming experts may want to hack the source code directly to see how it works and to add new features to it. Those who want to port Open Surge to diverse hardware systems must also deal with the source code.