Check out the demo presentation!
See how you can start playing with it on youtube!
Also playing:
- Multiplayer Mode - the next innovation in online presentations!
- PDF export - watch a presentation convert itself to PDF and download itself in the browser.
This software is so fresh, it's currently in usable alpha!
- What is Bûllets?
- How To
2.1 How to create your first presentation
2.2 How to export to PDF
2.3 How to run your own multiplayer-server
-
Bûllets is a slide show software powered by the Godot game engine
-
It helps you create beautiful presentations on all platforms (Windows, Mac, Linux, and the web) that are 100% self-contained and will look and feel the same on all platforms
-
Using plain text with optional easy markup for content makes slide creation a breeze
-
If you know how to code, you can create the most complex, interactive animations, with sound effects - or even embed a full game into your slides.
-
You can share Bûllets presentations either as native programs or publish them to the web
- Like this first demo!
-
PDF export is supported, too
- Web-exported Bûllets can directly create PDF and download presentations from your slides - right in the browser!
- All you have to do is: press
<P>
- All you have to do is: press
- Native Bûllets executables can create PNG images from your slides
- a small browser tool converts the PNG slides to PDF
- the conversion happens locally in the browser, no upload is required
- Web-exported Bûllets can directly create PDF and download presentations from your slides - right in the browser!
-
Bûllets presentations are version control friendly and allow for GitHub collaboration
-
And yes, it works with your favorite wireless clicker!
-
In Multiplayer mode up to 3 presenters can control the same presentation simultaneously!
- each presenter gets a different laserpointer color
- each presenter gets a different drawing color
- you only need to agree on a "room" when joining:
- and a running bullets-server to connect to.
- then all up to 3 of you can control the presentation, interact with it, point your lasers, and draw in your window -- and all updates get instantly relayed to all other players in the same room 😎!
- see How to run your own multiplayer-server for details on running your own!
- Check it out on youtube
-
Bûllets is a proof-of-concept and a work in progress
-
It is also a hack
It only takes 15 minutes, including downloading Godot. Watch it on youtube!
- Run your presentation in the browser, after a web export
- Go to the first slide
- Press
<P>
- You're done!
- Bûllets will iterate over all slides and create PDF pages in the background
- At the last slide, the PDF download will start automatically
Note: The conversion will happen purely in your browser via JavaScript. Your slides will not be uploaded to any server for conversion.
See how that works on youtube (1:20)
- Run your presentation from the Godot Editor (not the web version).
- Press the
<P>
key - The slideshow will now iterate over all slides and create a .PNG image for each
- Locate
pdfstuff/browser/index.hml
from your Bûllets folder and double-click it to open it in your browser - Click the Choose Files button
- Select all the generated PNG slides
- Click Open
- Done, the PDF will be "downloaded" as
result.pdf
instantly
Note: The conversion will happen purely in your browser via JavaScript. Your slides will not be uploaded to any server for conversion.
See bullet-server on GitHub for instructions about how to automatically build and deploy a bullets-server docker image, and how to run it on your server.
Running your own multiplayer server is easy. Unless you're playing with Docker, you need a linux system.
You only ever need to run 1 server - and can use it for all your presentations! It is up to you and your users to make sure that you choose unique room names for your presentations when connecting to the server. To not let things get out of hand, I hardcoded a limit of 30 simultaneous connections into the server. You can change that to your liking, the server hardly consumes any CPU or memory resources anyway.
- Go to the bullets-server project page
- Clone or download the project
- Download the server edition of Godot:
- go to godotengine.org
- click on 'Downloads'
- click on 'download repository'
- go to the latest release, e.g. 3.2.2
- download Godot_v3.3.3-stable_linux_server.64.zip, for the 3.2.2 version (your version may differ)
- unzip the server
- put it somewhere where you can start it conveniently (e.g. $HOME/bin)
Just run the Godot server in your multiplayer server directory. It will start listening on port 9000 - so make sure your port forwardings and firewalls are OK with that.
Example:
$ cd bullets-server
$ Godot_v3.2.2-stable_linux_headless.64 --port=9000
The commandline argument --port=xxxx
allows you to specify a different port; 9000 is the default in which case the argument can be omitted.
If you're hosting your presentations on a site with HTTPS enabled, which you should, browsers will not allow your presentations to contact a multiplayer server that uses unencrypted websocket connections. So in that case you need to set up the multiplayer server to use encrypted websockets. For that you need SSL certificates and keys!
Note: Luckily enough, any secure server will do. This is super handy if you host your presentations on GitHub pages. You can host them there but run the multiplayer server on some other server where you have access to the SSL certificate. Check out Google cloud compute, AWS, etc. They all have free contingents for running super small linux server VMs.
So, you only ever need to run 1 server - and can use it for all your presentations! It is up to you and your users to make sure that you choose unique room names for your presentations when connecting to the server. To not let things get out of hand, I hardcoded a limit of 30 simultaneous connections into the server. You can change that to your liking, the server hardly consumes any CPU or memory resources anyway.
If you're using Letsencrypt, the files privkey.pem
and fullchain.pem
are what you need. They're typically found at /etc/letsencrypt/live/my-site
, where my-site
stands for the name of your site. Rename the 2 files so they have the .key
and .crt
extension or else the Godot server will not know how to process them.
Once you have your key and certificate files handy, you start the multiplayer server like this, in your multiplayer server directory:
$ cd bullets-server
$ Godot_v3.2.2-stable_linux_headless.64 --keyfile=privkey.key --certfile=fullchain.crt
The above line also shows the defaults for keyfile and certfile. If the files cannot be found, a warning will be printed to the console and SSL support will not be available. The commandline argument --port=xxxx
allows you to specify a different port; 9000 is the default in which case the argument can be omitted.
Note for clients: Your server connection string changes from ws://
my-server:9000
to wss://
my-server:9000
. Note the extra s
in wss://
.