A single-player total conversion of Cube2-Sauerbraten with focus on adding rpg/adventure elements. The goal is to make gamebuilding as fun as playing a game, with intuitive menus and guides to help anyone make their own open-source rpg/adventure game, without prior knowledge of programming or 3D-modeling.
Posts | ||
---|---|---|
SabiCube 1.0 manual | Locked | |
Thread Options | ||
Aug 26 2013 Anchor | ||
SabiCube is a single-player total conversion of Cube2-Sauerbraten with focus on adding rpg/adventure elements. This package includes the first three levels of the game ZetaProject, and a test-map for the new features. The goal is to make the gamebuilding process as fun as playing a game, with intuitive menus and guides to help anyone make their own open-source rpg/adventure game, without prior knowledge of programming or 3D-modeling. This is a work in progress so editor-workflow might change in future releases as we add features to the engine, but maps from the original sauerbraten (or compatible engines) will be able to load with minor adjustment, and we have no plans to change the map-format. SabiCube is tested on 64-bit (Kubuntu) and 32-bit (KXStudio), and compiling should be fairly simple, just follow the installguide below. To get the latest version of this document, or SabiCube, please visit Github.com Quick-start: 1. place the sabecube folder in your home-dir For a more in-depth explanation of the individual components, please follow the guide below or have a look at the cfg-files for the included game ZetaProject. Editing: Once you have loaded a map click [F1] for editmode (edit can be disabled when starting a game). Use your mouse to look around and WASD to move, just like when playing the game, and althou there's no "speedrun" in editmode, you can set floatspeed in the main editing menu. When you click on the ground, your cursor will select a square (hold down G and scroll to enlarge/minimize the size of the square), if you scroll, the selected part will follow, up to make a solid cube and down to make a hole. For a full list of available editing hotkeys, use the keys/scroll-tab in the main editing menu (F3 in edit-mode). Editing of mapmodels and textures are mostly done as in the original cube, but in SabiCube you can load textures inside the editor and all mapmodels are available and are easy to script. When you select "Create new map" from the main menu, you can select one of the predefined texture-packs, and other script basic stuff like inventory and other essential variables, and if you are making a map and suddenly decide you need some different textures, you can load a texture-package without having to leave the editor. Scripting: Whenever a map is loaded it executes a configuration-file. If your map is called foo, your cfg will be called foo.cfg (if you use the "Create new map" from the main menu, a cfg-file will be created along with the map) if no foo.cfg file is found, the map will use the default mapmodels and textures. If you create your own cfg-file, remember that the first 100 items of your mapmodels are used for pickups. You can call other cfg files from your foo.cfg, so if you want to script a npc or item, you can do so in a separate file. The path to the cfg file is /packages/base/foo.cfg, and from that file you can point to any file you want inside the SabiCube folder. If you want to use the default inventory in your game, you simply add the following line to your foo.cfg: exec /packages/base/inventory.cfg Hotkeys: ESC: menu F1 : edittoggle pickup-able items: mapmodels 0 - 79 mapitems are numbered from 0 and up, where 0 (default) is a spinning question-mark, 1 is the next mapmodel in the list, in this case a brawndo-plant (I had to call it something). When picking up an item, it sends a item_pickup_x (where x is the mapmodel), so if you want to script what to do when a player pick up a model nr 4, it could look something like this: item_pickup_4 [ If you just want to use the existing inventory-items, you don't have to script pickup-able items Weapons: mapmodels 80-99 Weapons are no longer being picked up autocratically, the players mouse have to be hovering over them and clicking them like any other pickup-able item. Default weapon (crowbar) is the replacement of the original fist from Sauerbraten and will be equipped whenever a map is loaded. placing a weapon or ammo is just like a normal pickup-able item (BOX). You can't equip a weapon without having the appropriate ammo. barrel: mapmodel 100 Enter edit mode (F1) click where you want it to appear, open the edit menu (F3) and select Explodable barrel. Once you have placed it, you can click it, and then use your scroll-wheel to select any model from the mapmodel-list, if you want an explodable gas-canister or fuel-truck. platform: mapmodel 101 Enter edit mode (F1) click where you want it to appear, open the edit menu (F3) and select Platform. Interacting with executabale items: mapmodels 102 - ? Keypads npc's and other items that shouldn't be picked up when a player activates them, are defined the same way as pickup-able items. item_activate_166 = [ You can make a very simple quest, by combining items, npc and gui: item_activate_166 = [ Monsters: There are currently 16 types of monsters (start counting at 0). to place a monster, first enter edit mode (F1) click where you want it to appear, open the edit menu (F3) and select monsters. type 10 is a wooden crate that player can destroy. When a monster is killed, it sends a monster_dead_x (where x is the type), so if you want to script what to do when a player kills a type 12, it could look something like this: monster_dead_11 = [ If you simply want to use the existing monsters and their default values, you just have to include the file packages/base/triggers.cfg, or select triggers in the "Create new map" menu. Monster type 10 is a wooden crate that doesn't move or do damage, but player can destroy it, very useful for removing planks barring a door, or a crate that gives you ammo or similar items when destroyed. Scripting a wooden crate is done like this: monster_dead_10 = [ triggers and doors: Can be controlled by a executabale item or by proximity. To place a proximity trigger, you just place a trigger/door and choose "auto-close" (or "once"). This will place a door that opens autocratically when the player approach it. To use a switch or other model to control the trigger/door, follow the guide "Adding executabale items". A closed door with tag 3, can be opened with "trigger 3 1", and closed again with "trigger 3 0". At the moment, ammo is not automatic transferred, but if you update the inventory with the current ammo, you can reassign it when the next map is loaded. Have a look at the way ZetaProject use triggers to transfer ammo from map to map: level_trigger_4 = [ // exit first map Savegames: Since version 1.0 was released, SabiCube have started implementing savegames, this is done using the savegame command. The savegame command have two arguments: savegame int string Where int is the current journal status and string is the mapname. The command loops through player-inventory and saves it along with character-stats in a file called mapname.sav In the ZetaProject game-menu (located in packages/data/menus.cfg), you can see how to loop through your savegames, and how to present them as a list (I have simplified it for clarity): newgui zetaproject [ The savegames does not currently support player-position and trigger/monster-states, but are still very usefull when traveling from map to map, all you have to do is add it to your exit-trigger like this: level_trigger_4 = [ // exit trigger Once the new map is loaded you can then update inventory: level_trigger_13 = [ Installing: Just as the original Cube, SabiCube require that libsdl-mixer and libsdl-image are installed. These two should be available in the repository of every respectable linux-distro, and if you are on a deb-based distro like Ubuntu, you can install them with: sudo apt-get install libsdl-mixer1.2 libsdl-image1.2 SabiCube is tested on 64-bit (Kubuntu) and 32-bit (KXStudio), and we have provided a binary for both, so in most cases it is enough to simply place the sabicube-folder in your home-dir and execute sabicube_unix. If that doesn't work, try launching sabicube_unix in a terminal: ./sabicube_unix If you need to compile SabiCube, you have to install sdl-image/dev and sdl-mixer/dev, you'll most likely find them in your package-manager. if you are on a deb-based distro like Ubuntu, you can install the necessary packages using a terminal: sudo apt-get install autoconf libtool libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev build-essential cd into the src dir and run the following: make && make install I highly recommend placing the sabicube-folder in your home-dir. if you want to place it somewhere else than in your home-dir, you have to update the file sabicube_unix line 12. so if you place it in /home/myawesomegame, the line should read: SAUER_OPTIONS="-q${HOME}/myawesomegame" Compiling on win and osx, should be possible, but since I use neither, I can't help you there. If you manage to compile it for either of the above systems, please send me the binary so I might include it in the next release. Gameplay: Pressing [CTRL] will cause the player to crouch, player will un-crouch when releasing it. To interact with a door, npc or console use the [E] button on your keyboard Your crosshair will show a hand when hovering over an item or npc that can be activated or otherwise engaged License: Everything I make is GPL. You should have received a copy of the license, if not, you can view it online here: Gnu.org I have done my best to make sure that textures and models in SabiCube doesn't infringe on any copyright, but in the case that any does, please let me know, and I'll remove them. Contributers: Artwork: Gui cursor from Sauerbraten Enhanced Edition Original Cube 2 Sauerbraten by: Edited by: sandsound |
Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.