Skip to content

pinguin999/ALPACA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ALPACA

ALPACA (short for "A Library for Point And Click Adventures") is a game engine for adventure games and interactive comics. It's written in C++ and can easily be scripted in Lua.

๐Ÿ“š Documentation ๐ŸŽฎ Example Game ๐ŸชŸ Windows Build

Chat

Features

  • Easy to use ๐Ÿฃ
  • Gif Recording ๐ŸŽ‰
  • Node based dialog editor ๐Ÿ—ฏ๏ธ
  • Integrated dialog engine ๐Ÿ’ฌ
  • PDF export for voice actors ๐ŸŽค
  • 2D bone animations via Spine ๐Ÿฆด๐Ÿ’€
  • Events via animation ๐Ÿฆพ
  • True multi-platform via JNGL ๐Ÿ’ป๐Ÿ“ฑ๐Ÿ“บ๐Ÿ–ฅ๏ธ
  • Hot reload ๐Ÿ”ฅ
  • Mouse, controller and touch support ๐ŸŽฎ
  • A* navigation ๐Ÿงญ
  • Easy scripting via Lua ๐Ÿ“‡
  • Automatic save game handling ๐Ÿ’พ
  • Automatic tests playing the game ๐Ÿค–
  • Build via GitLab CI ๐Ÿ‘ทโ€โ™‚๏ธ

These tools make ALPACA possible

  • Spine is used for all graphic assets and animations.
  • JNGL is the cross platform game library that makes it possible to publish to Nintendo Switch, Xbox, PC, Mac, iOS, Android and the Web.
  • Schnack is a node based dialog editor.
  • Rhubarb for creation of lip sync information from audio files.
  • Lua is the scripting language used for game logic.

All these tools are managed by a Python asset pipeline with file watchers for fast reloading of changes into the game.

Links and examples

Demo project Scene one of demo project

Project setup and Lua interface documentation

Example on the web

Getting Started

Everything in ALPACA is organized in scenes. And we already provide two demo scenes, you can easily modify. The scene is defined in the data-src/scenes/test_chamber_one.json file.

{
    "items": [
        {"spine": "banana", "x":"330.0", "y":"400.0", "scale": 0.3, "skin": "normal"},
    ],
    "backgroundMusic": "audio/ingame-action.ogg",
    "background": {"spine": "scene1"},
    "zBufferMap": null
}

In this demo scene you have a background and one item. You can change the x and y coordinates of the item or duplicate it.

If you want to add a new item, you first have to create a new Spine project and save it in date-src. More details in the docs.

If you want to create a third scene, you just have to create a new file or duplicate the test_chamber_one.json and change it to your needs.

Build ALPACA from source

Linux und macOS

cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Debug
cmake --build build

Windows

Install Visual Studio Community and please make sure to select Desktop development with C++ while installing.

Then you only need to choose Open a local folder and open the ALPACA folder. Visual Studio will automatically run CMake and you can choose pac.exe as target and press F5 to build and start the game.

Contact

If you need help setting up your first project or want to talk about your game. Book a time slot with the developers of ALPACA at calendly ๐Ÿ‡ฉ๐Ÿ‡ช๐Ÿ‡ฌ๐Ÿ‡ง or mail me at kolja@portaldogs.com ๐Ÿ‡ฉ๐Ÿ‡ช๐Ÿ‡ฌ๐Ÿ‡ง

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

  • Code distributed under the zlib License
  • Assets (except Spine Boy) distributed under CC-BY