Giter VIP home page Giter VIP logo

rapture's Introduction

Rapture

Rapture is (or will be) a fresh spin on the tried-and-true genre of hack-and-slash ARPG genre. This project was started in the realization that there aren't very many quality games in this genre, and Clint Bellanger's FLARE engine had some glaring design problems which I feel hold it back. Instead, I decided to write my own game and engine from scratch, using SDL 2.0 as a backbone for the game.

I'm always open to outside contributions and suggestions. I will be hiring professional artists when the full game is fleshed out, and basic game programming is done. I haven't yet decided on a license; I feel as though the GPL is optimal, but it unfortunately doesn't play nice with Awesomium's licensing terms.

The game is written in C++, while menus are done in HTML/CSS/JS. Minigames such as lockpicking, etc will be coded in JavaScript. It is designed to be a game that is easily and comprehensibly moddable.

If you have any questions or concerns, you may reach me at e e z s t r e e t @ l i v e . com

=== Compiling ===

Please read the COMPILING document for information on compiling. Currently the project is set up for Microsoft Visual Studio 2013/Windows, but I've designed the code to manage other OSes just fine. I plan on utilizing CMake when a proper Mac/Linux port is in the crosshairs.

rapture's People

Contributors

eezstreet avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rapture's Issues

Make documentation

need to make documentation, including a proper README.md and a compilation guide

Collision stops movement

If the player is holding down the mouse and they collide into a wall, their movement is stopped.

Document things

...preferrably with something like Doxygen. I'd like it if there was a free VS2013 plugin to generate Doxygen-like stuff akin to how Eclipse handles it.

Labels/console

You can cause labels to appear when the console is down. Not ideal.

CPU Hog

Rapture takes up a ton of CPU power, and progressively gets slower.

Auto-fill values for fs_homepath

This should be platform-dependent. ie, Linux should be ~/My Games/Rapture, Win32 should be C:\Users***\Documents\My Games\Rapture

Screen locking

Locking the screen (Windows Key + L) and unlocking the screen causes input to no longer register

getopt-like commandline options

The RAT could maybe have its commandline options changed to use something more akin to getopt.

Example:

» geany --help
Usage:
  geany [OPTION...] [FILES...]

Help Options:
  -h, --help                 Show help options
  --help-all                 Show all help options
  --help-gtk                 Show GTK+ Options

Application Options:
  --column                   Set initial column number for the first opened file (useful in conjunction with --line)
  -c, --config               Use an alternate configuration directory
  --ft-names                 Print internal filetype names
  -g, --generate-tags        Generate global tags file (see documentation)
  -P, --no-preprocessing     Don't preprocess C/C++ files when generating tags file
  -i, --new-instance         Don't open files in a running instance, force opening a new instance
  --socket-file              Use this socket filename for communication with a running Geany instance
  --list-documents           Return a list of open documents in a running Geany instance
  -l, --line                 Set initial line number for the first opened file
  -m, --no-msgwin            Don't show message window at startup
  -n, --no-ctags             Don't load auto completion data (see documentation)
  -p, --no-plugins           Don't load plugins
  --print-prefix             Print Geany's installation prefix
  -r, --read-only            Open all FILES in read-only mode (see documentation)
  -s, --no-session           Don't load the previous session's files
  -t, --no-terminal          Don't load terminal support
  --vte-lib                  Filename of libvte.so
  -v, --verbose              Be verbose
  -V, --version              Show version and exit
  --display=DISPLAY          X display to use

Loading Screen Incorrect

The HUD loads before the loading screen shows, causing the game to hang for a little while before actually showing the loading screen. Needs to be fixed.

[rat] Pack files programmatically

One idea that has been in my head for a few days now, is the ability to pack files automagically into .asset files using the RAT.exe executed on command-line.

The way this would work, is that the RAT would get some new commandline argument:

assettool.exe -project "project.json"

project.json might look something like this:

projectFile {
    "fonts": "fonts.json",
    "menus": "menus.json"
}

This project file indicates that there are two .asset files that need to be made: fonts.asset and menus.asset. These are specified in fonts.json and menus.json. Here's an example of what fonts.json would look like:

assetFile {
    "assetName": "fonts",
    "contentGroup": "BaseGame",
    "author": "Full Spectrum Software",
    "compressionType": "none",
    "components": [
        "consolas": {
            "componentType": "Asset_Font",
            "style": 0,
            "fontFace": 0,
            "size": 14,
            "import": "fonts/consola.ttf"
        }
    ]
}

fonts.asset would be an asset named "fonts", from the BaseGame DLC package and having one component: fonts/consolas, which is a Font type and is imported from fonts/consola.ttf.
In particular, this type of schema would be amazing with our current setup, which has all of the assets contained within a Visual Studio project. With luck, all of the game editing can be truly done from inside of Visual Studio, barring other tools on the side (blender, etc)

Ingame Map Editor

Maps will be created ingame using the Map Editor. The Map Editor is available from the main menu and allows editing of maps - either preset areas or parts of a maze.

Maps created using the map editor are saved as .json files in the user's homepath directory (fs_homepath). These json files need to be "compiled" into an .asset file, where the data from them is transferred into binary data. The map editor cannot edit maps which are present in .asset files, only ones saved on the filesystem. However maps can be exported into json from the Rapture Asset Tool/RAT.

When the user hits the Map Editor button on the main menu, they are prompted with a list of created maps in their homepath. By selecting a map and hitting "Open", the map editor module will launch as the path to the map treated as savefile. The user can also create a new map in this menu. They are given some options (size of map, map name) and it will create a blank .json file which appears in the list. They can then select that map and run it.

Since the map editor is part of the game engine, the map editor can be collaborative (multiplayer editor) at some point and/or be used for other projects.

Use cvar description field

Currently the cvar description field is useless, it is supposed to be on a separate line when one just enters the cvar.

vid_restart issue

Using vid_restart will cause texture resources to become invalidated. This is related to #22, and has been determined to be an issue with SDL. Upgrading SDL to 2.0.4 might fix it however.

Console button spam

Holding the console button during regular gameplay will cause the console to flicker between on/off state. This can cause severe performance issues.

Thanks to @Silverfang22 for finding this.

Unsafe file paths allowed

Currently, these types of illegal paths are allowed for File::Open:

../
~/
C:/

Shouldn't allow this sort of thing to take place, would allow mod authors to traverse directories and cause havok.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.