Dev Guide

This is a guide for people willing to develop Rockbot in several platforms.

————————————————
BUILD INSTRUCTIONS
————————————————
Linux:

Packages needed:

In Ubuntu, just type:

  1. sudo apt-get install build-essential libsdl1.2debian libsdl1.2debian-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsdl-ttf2.0-0 libsdl-ttf2.0-dev

Ubuntu normally ships with an old version of Qt Creator, download the newest from http://qt.digia.com/ and install it from terminal:

  1. chmod +x qt-creator-linux-x86-opensource-2.0.0-beta1.bin
  2. ./qt-creator-linux-x86-opensource-2.0.0-beta1.bin

Download source from this site, or from svn: https://svn.code.sf.net/p/rockbot-game/code/v1.

Now run Qt Creator and open the cpp_rockbot.pro file inside the rockbot (v1) folder you created, then the Rockbot_Editor.pro in editor folder, click on project button, check and change it to build folder or copy the build/data folder to where project is configured to be built into.

The qmake project cpp_rockbot.pro, contains a section with CONFIG flags to build for several platforms, if your computer have the corresponding SDK installed on it, just uncomment the desired one and comment out all the rest, run qmake again on the IDE and rebuild to have binaries for other systems.

————————————————
PROJECT STRUCTURE
————————————————
Rockbot is divided in three parts:
  1. game is the game-engine that uses the SDL library
  2. editor is game data editor, that uses the Qt 4.X library
  3. editor/conversor is a command line utility used to copy game data to a new format, if needed
All of those are edited with QtCreator and have a project made with it, we recommend it as editor, but you can also use any other, since you can generate Makefiles from the qmake project, thus, the IDE use is not mandatory.
————————————————
DATA STRUCTURE
————————————————
the project files are stored in the bin/data folder, with the following structure:
  • build – contains binaries for game, editor and conversor, plus data files
    • data – contains game data
      • fonts – holds the ttf fonts used in the game
      • game – holds game and stages data files
      • images – hold all images, sprites and tilesets
        • backgrounds – holds image files for backgrounds like menu and stage select
        • faces – npc, character and boss faces and logos
        • map_backgrounds – used for parallax effect or static background
        • projectiles – sprites for the weapons and projectiles
        • scenes – scenes for intro and storyline
        • sprites – holds sprites for players, enemies and bosses
          • backgrounds – for large NPCs, contains a static background used altogether with the sprites
          • enemies – should be dropped, and all files must be in it’s parent folder
          • objects – all object sprites
        • tilesets – contains scenary tilesets and special effects animation (ready message, explosions) graphics
      • music – holds mp3 background music files and it’s licenses notes
      • sfx – holds wave sound files with sound effects
    • packages – scripts for generating release packages for several platforms
  • character – all classes related to players and NPCs
  • docs – some information and game manual
  • editor – contains the editor and conversor projects
    • conversor – data conversion utility
    • mainwindow_tab – individual components for each tab in editor
    • resources – images and icons used in the editor GUI
  • file – classes that handle file format (game data structure) and I/O
  • graphic – some classes that handle showing graphics, menus, cursor and other visual elements
  • objects – classes related to objects
  • options – classes that hold and change game options
  • ports – files that are needed by some particular systems/devices
  • scenes – classes related to game intro, dialogs and ending
————————————————
BASIC GAME SOURCE STRUCTURE
————————————————
(@TODO: use graphic to describe character(player, npc) and game (stage, map) structure)

———————————————————————–
GRAPHICS FORMAT
———————————————————————–

Each tile (part that composes the tileset, used to render the background) have a size of 16×16 pixels.

A boss or stage enemy can have any width, but height must be multiple of 16 (16, 32, 48, etc)

The image files are in PNG format (with the given palette).

There is no need to separate parts for the sprites, we are using complete animation frames (each frame is the whole picture).

Boss/players faces are of size 32×32 pixels.

Some examples and a reference to our palette (in RBG). Please note that the last 3 colors are used for effects of color-cycling.

Color Palette

Colors
Colors

Tileset
Tileset

Apebot's sprites
Apebot’s sprites

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.