All Projects → fallahn → osgc

fallahn / osgc

Licence: other
Open Source Game Collection - mini games created with xygine and SFML!

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to osgc

Trivia-Knowledge
Trivia knowledge is a fun trivia game in which players have to guess the answers of questions by filling the answers boxes with correct letters.
Stars: ✭ 77 (+352.94%)
Mutual labels:  games, game-dev
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (+1535.29%)
Mutual labels:  games, game-dev
xtory
a tool for writing branching nonlinear stories.
Stars: ✭ 14 (-17.65%)
Mutual labels:  games, game-dev
Is Engine
SFML C++ game engine that allows to create games on Web (HTML 5 - CSS 3), Android and PC
Stars: ✭ 94 (+452.94%)
Mutual labels:  sfml, game-dev
hacker-feud
💥 A single page web game made with Svelte.
Stars: ✭ 61 (+258.82%)
Mutual labels:  games, game-dev
Sfml
Simple and Fast Multimedia Library
Stars: ✭ 7,316 (+42935.29%)
Mutual labels:  games, sfml
PICO-EC
A tiny scene-entity-component library created for the PICO-8 fantasty console.
Stars: ✭ 37 (+117.65%)
Mutual labels:  games, game-dev
Game-Assets-And-Resources
Free and paid game assets and game resources for 2D games, 3D games, mobile games, Steam games, Unity games, and other games.
Stars: ✭ 164 (+864.71%)
Mutual labels:  games, game-dev
Unity Solutions
Use Firebase tools to incorporate common features into your games!
Stars: ✭ 95 (+458.82%)
Mutual labels:  games, game-dev
Langaw
A sample project for following along a tutorial found on jap.alekhin.io.
Stars: ✭ 90 (+429.41%)
Mutual labels:  games, game-dev
Nero-Game-Engine
Advanced SFML Game Engine, Designed to be Simple and Intuitive
Stars: ✭ 50 (+194.12%)
Mutual labels:  games, sfml
boxgame
A sample project for following along a tutorial found on jap.alekhin.io.
Stars: ✭ 32 (+88.24%)
Mutual labels:  games, game-dev
gust tools
A set of utilities for dealing with Gust (Koei Tecmo) PC games files
Stars: ✭ 117 (+588.24%)
Mutual labels:  games
agario
Python clone of agar.io game, made with pygame.
Stars: ✭ 32 (+88.24%)
Mutual labels:  games
Gibbed.Borderlands
Tools & code for use with Borderlands.
Stars: ✭ 44 (+158.82%)
Mutual labels:  game-dev
LudiiExampleAI
Project with examples for the implementation of third-party AI algorithms / agents for the Ludii general game system.
Stars: ✭ 20 (+17.65%)
Mutual labels:  games
moon-cheeser
Moon Cheeser is an infinite runner where the player plays as a mouse gathering cheese pieces and avoiding craters and other astronomical objects, such as comets and planets, on a moon made of cheese.
Stars: ✭ 32 (+88.24%)
Mutual labels:  games
pokerwars.io-starterbot-python
A starter bot written in python for the pokerwars.io platform. To play: pull this code, register on pokerwars.io, get your API token and play!
Stars: ✭ 37 (+117.65%)
Mutual labels:  games
mamesaver
Mamesaver is a mame emulated screensaver - get all the good ol' games playing their demo modes while you procrastinate and enjoy!
Stars: ✭ 26 (+52.94%)
Mutual labels:  games
Examples
Smaller or bigger examples that I've written or will write in the future in C++.
Stars: ✭ 14 (-17.65%)
Mutual labels:  sfml

OSGC

Open Source Game Collection

What is osgc?

OSGC is a frontend built with the xygine library which acts as an interface to load any game written in the OSGC plugin format. I started this project as I'm often creating experiments and small games with xygine (Disclaimer - I'm the author ;)), and creating a new project each time, even with a template available, can become tedious. The plugin format allows creating a new xygine game quickly starting from only one header and one source file, while linking to xygine and SFML.

All games are open source, and come with the caveat that, well, most of them probably aren't very good. In fact they'll most likely be incomplete experiments. There may be a few gems, however, and I'm hoping that the open source nature will eventually encourage others to contribute to the games they like, or even write their own game plugins.

Binary downloads can be found on itch.io !!

Getting Started

Dependencies: You'll need to have at least SFML 2.5.x built and installed as well as xygine to build the frontend. Different plugins may require further libraries, for example the Drone Drop plugin also requires tmxlite. Use the CMakeLists.txt in the root of the repository to create project files for your build chain of choice - OSGC is frequently tested on Windows, linux and macOS with Visual Studio, gcc and Apple clang. Note that the cmake file will attempt to copy all of the assets folders to create the correct directory layout (below) and place the binary files in the correct directories, although this isn't gauranteed on all platforms. Symlinks (mklink on Windows) to asset directories can be used as effectively while developing a plugin.

To create your own plugin copy the plugin_template directory and rename it to something of your choice. Edit the included CMakeLists.txt for your new project, or create a new project in your IDE if you prefer. Remember to add the template source files to your project, link against SFML and xygine (and any other libraries you require) and set the project to be built as a shared library. The library output file must be named osgc.dll/libosgc.so/libosgc.dylib depending on your platform.

Use the begin() and end() functions in the EntryPoint.cpp file to register and unregister any game states with the frontend. See the plugin example in the 'shooter' directory for further example. To learn more about creating a game with xygine follow the xygine tutorial and refer to the wiki.

Note that while OSGC is designed around xygine it is not strictly necessary to use xygine beyond implementing the plugin interface. Any game or software which will run within the event/update/draw loop of a xygine state and can be drawn to an SFML render window is entirely feasible. For example my Gameboy emulator Speljongen can be built as an OSGC plugin.

Directory Structure

To correctly load plugins and their assets, the directory structure must follow this layout:

osgc
  |
  |____osgc-frontend
  |____assets
  |       |____assets used by the front end
  |
  |____plugins
          |____directory named for plugin
          |               |________________osgc.dll/so/dylib
          |               |________________info.xgi
          |               |________________assets
          |                                   |______assets used by plugin
          |
          |____directory named for plugin
                          |________________as above

Plugin directories should have a unique name describing the game as this will be used by the front end as the display title if the info.xgi file is missing. The info.xgi file is a text file written in the xygine ConfigFile format. Its properties are used to display information on the browser screen of the front end.

game_info
{
    title = "My Game Title"
    thumb = "path/to/thumb.png"
    background = "path/to/background.png"
    version = "0.0.1"
    author = "Jimmy Jim Bob"
}

Note that these are all string properties and can in theory contain anything they like, with the exception of thumb which should be a relative path to a thumbnail image 960x540px in size, and background which should be a relative path to an image 1920x1080 in size. All properties are optional.

See the screens directory for screenshots of OSGC in action

License

The frontend project and OSGC plugin template source files are licensed under the zlib license. Further OSGC plugin source, such as the top down shooter game, may be licensed differently. See individual project directories for more information.

Many Thanks

OSGC is a collaborative project, which couldn't exist without the contribution of others either directly or indirectly via sites like Open Game Art, Freesound or Looperman, or through the awesome gamedev communities on the internet. I try to credit every resource I can, usually through the use of credits.txt files in a particular project's directory, though some may slip through the net! If you feel I have a missed a credit somewhere then please leave an issue on the Github tracker or even submit a pull request. A particular mention should go to @sadface_RL for his excellent pixel art tutorials, @ryanmusicco for his wonderful compositions and the lovely chaps and chapesses over at #sfml for their feedback and support. Do go check them out!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].