Giter VIP home page Giter VIP logo

godot-power-pitch's Introduction

Godot Power Pitch

Godot Power Pitch is a Free and Open-Source presentation of the Godot game engine running in the game engine. As it's a Godot game, you can:

  • Run games inside your slides
  • Translate your presentations into many languages with only a spreadsheet editor
  • Animate anything with the animation editor or tweens, add particles and sounds
  • Or even be creative and display the slides inside of a game!

It'll save you hours of work if you want to introduce Godot at meetups and other gamedev events. And you can customize it to better suit your needs!

Power Pitch was made also a slideshow system made in Godot, that now became its own project: Godot presentations.

Videos and articles

  1. Discover Godot: the Free 2D and 3D game engine (Power Pitch)
  2. How to Use Translations and Contribute New Languages
  3. Godot slides 2.0: open source presentation tool in Godot (Project overview)

You can also find a video recording of the original 40 minutes Intro to Godot 3 (Thanks to Gabriel Marais for the English translation).

Controls

You can change the slide with a swipe of your finger on a touchscreen, or by hovering and clicking on the arrows on the edges of the screen. You can also navigate the slides with left and right mouse clicks: LMB and RMB.

On a keyboard, press n and p to jump to the next and the previous slide respectively. You may also use , and ., the < and > keys on QWERTY keyboards. You can use the angle brackets to avoid colliding with the demos' input actions inside your slides. To toggle fullscreen, press f.

Help us translate the slides!

The Power Pitch currently ships with these languages in version 2.0:

  • English
  • French
  • Japanese
  • Spanish
  • Portuguese (BR)
  • German
  • Indonesian
  • Italian
  • Chinese
  • Korean
  • Ukrainian
  • Slovak
  • Polish

Let's translate it in as many languages as possible! This way people can pitch Godot all around the world, in local game creator meetups.

How to contribute translations

First, open the translations file located at godot-3-presentation/content/power-pitch/PowerPitch.csv with your preferred text or spreadsheets editor.

Then, you will see various language codes in the first row. Add to the next available column your language code according to this list.

In the followings rows, add your translation for each text, in the column you used to add your language. Remember to respect the BBCode!

After that, open up the project in Godot. A *.translation file with your language code will be generated at godot-3-presentation/content/power-pitch. We will add this file to translations by going into Project > Project Settings > Localization and clicking the Add button.

Finally, open the godot-3-presentation/presentation/Presentation.gd file. In the first lines, you will see an exported enumeration with different language codes. Add yours (the same that you added before).

export(String, 'en', 'ja', 'fr', 'es', 'pt_BR', 'de', 'it') var LANGUAGE_MAIN = 'en'
export(String, 'en', 'ja', 'fr', 'es', 'pt_BR', 'de', 'it') var LANGUAGE_SECOND = 'ja'

Then you can set up your language in the godot-3-presentation/presentation/Presentation.tscn scene and run the presentation with your language. Thank you for your translation!

Licenses

The code is under the MIT license terms. The pictures and video files are under CC-By 4.0 (see below for the full credits).

Credits

godot-power-pitch's People

Contributors

allsv avatar antoniotorresm avatar calinou avatar davcri avatar daviantonio avatar drtwisted avatar enricomonese avatar fleskesvor avatar gmarais avatar guilhermehto avatar hapit avatar henriiquecampos avatar hummussamurai avatar junyakosaka avatar krokerke avatar lserlu avatar lupodharkael avatar mhilbrunner avatar nathanlovato avatar spkingr avatar sundayglee avatar texaco avatar yursan9 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

godot-power-pitch's Issues

Proposal for *.json

Hey, I'm making the port of the data from .gd to .json already, I think it will be a good first step.

One of the things that I find would be useful is to set the picture parameter always be an array of pictures, instead of a single one.

This way we will be able to use some dynamic usage of GridContainer in order to display said pictures.

Animation: swipe-based Slide transitions

The presentation offers a solid base for any kind of presentation. It does lack intuitive touch and swipe controls to use on mobile, tablets and to export to html5.

This task is only about the swipe animation itself, not the touch controls. The animation should work regardless of the user's action: both with the keyboard and touch.

The current structure doesn't allow for a swipe/slide animation or any other movement-based transition. It would take at least two slides, maybe three?

The problem

There is only one Slide. When you change to the next or the previous slide, the Presentation node replaces the content of Slide directly.

Possible solution

With this solution, the idea is we can see both the current slide moving out of the screen and the next slide moving it. Also that the user could control them with a swipe gesture (scrub the animation by moving the finger left and right). It's not the easiest but it'll make for flexible and appealing controls.

Turn Slide into a generic object that can cache slide data. It can roughly keep the structure it currently has, but should be a separate scene we can instantiate.

Have 3 Slides instead of one:

  • Previous
  • Current
  • Next

When you change slide, have the Presentation manage the transition.

When the user requests the previous or next slide, animate the Slide objects themselves. Horizontal movement + fade in / out.

Requirements

Let's make sure the performances are okay on recent mobile phones, tablets and in modern web browsers: Godot attracts users from all around the world.

Slideshow isn't showing

After commit 0c03feb for #55 and #57, the slideshow isn't working anymore on the 'A free modern engine' page. When I run the presentation, the right side is white, where the slide show should be.
I'm using Godot 3.0.6

duplicate constants

For example, just importing it, and then clicking on the "Run Project" icon, doesn't work because of an error (I already reported) where you define two times the IDLE constant (in two enums in res://content/demos/attacks/characters/weapon/sword.gd) exactly on https://github.com/GDquest/godot-slides/blob/0970fb89a04ce0202faef33d72a360198437ddf7/godot-3-presentation/content/demos/attacks/characters/weapon/sword.gd#L5:

extends Area2D

signal attack_finished

enum STATES { IDLE, ATTACK }
var state = null

# Registering input before the attack ends
# Also common in platform games or for jump mechanics.
# You register the next jump before the character hits the ground
enum ATTACK_INPUT_STATES { IDLE, LISTENING, REGISTERED }
var attack_input_state = IDLE

The error:
image

Originally posted by @lstep in #50

Use a UI theme

It'll be much simpler to reskin the presentation this way (fonts etc.)

Make videos available through Git

As far as I understand, videos have to be downloaded through a separate zip to reduce the download size. I understand the rationale, however, I think there are better ways to achieve this:

  • Git LFS - a user which doesn't have Git LFS will only get the pointer files, so it's still possible to download the repo without the video assets
  • A seperate video repository which can be cloned into godot-3-presentation/godot-3-presentation/slides/videos/ and that directory is added to the .gitignore of this project.

These approaches both achieve pretty much the same thing, and the second can also be combined with LFS, which gives some options for specifying which files to download if relevant.

Refactor the project to make it easier to contribute to

In progress in the redesign branch

The first version was more of a prototype for the presentation. I had to finish it fast for events. Tomorrow I'm giving a short presentation in Japan so I started refactoring the project to make it easier to contribute to. 2 goals:

  1. Make the code and project architecture a little clearer
  2. #18 Change the visual design

Todo:

  • Delegate calls to individual sections of the slides (header, footer)
  • Change the source data structure or the components' properties to harmonize the data and the presentation's behavior
  • Split up the presentation scene into multiple scenes and script files

Make the presentation editable in the editor, with Drag and Drop

When I first designed this project, Godot had some limitations that made scenes a pain to use to design slides. I just ported the slides' data to JSON, and this text-based approach isn't too great.

Now the UI system is solid, and with upcoming improvements in 3.1, it's worth making it more reusable. The idea is to let you compose slides from the editor, using premade UI widgets (or by adding your own):

godot_2018-09-08_16-13-53

And to order the slides you'll just add them and order them in a new Presentation:

godot_2018-09-08_16-17-22

The reasons:

  • When you move pictures or files in the project, Godot will resolve dependencies for you
  • It's a lot more flexible
  • It's a lot more fun!
  • It'll be easier to update the presentation or add new ones
  • We can use the built-in translation system!
  • It's also a great way to showcase Godot's UI system when you give the presentation. E.g. you should be able to drag and drop a new .theme file on the presentation node and the presentation's look should update instantly

Trying to go beyond slides start/end causes input to stop being registered.

Description:
Pressing back at the start (or next at the end) will block further input from being registered.

How to reproduce:

  1. Press "ui_previous" at the start or "ui_next" at the end.
  2. Notice that you can no longer navigate back and forth at all.

Debugging:
This is due to the function display() returning before it can re-initiate input. See code below from Slides.gd

	var previous_slide = slide_current
	
	var previous_index = slide_nodes.find(slide_current)
	var new_index = clamp(previous_index + direction, 0, slide_nodes.size() - 1)
	if new_index == previous_index:
		**return**

Proposal for new presentation data structure

In the current implementation it presumes that every presentation shall have:

  • Intro
  • Health
  • Concepts
  • Features
  • Learning
  • Questions

Which are dictionaries with the given content, I'm thinking about instead allowing for the Presentation to pick up a folder (through a String exported to the editor) and from there automatically pick every .json file, which will correspond each to a single slide.

This will probably demand a way to create an order for the slides, as it is not reliable to programmatically do it from the Presentation itself.

To achieve that I think we can add

  • Previous
  • Next

Properties as addition to #28 this potentially eases #11 as well

Long titles cause misalignments

How to reproduce the issue:

  • Open Header.tscn
  • Edit Title.text to be a long string (it should contain at least 40 characters)
  • Revert Title.text to a short string (< 40 chars)

Now you can see that the label centers its content, but the rectangle dimensions are changed: this is the cause of the misalignment.

screenshot from 2018-04-26 22-44-32
screenshot from 2018-04-26 22-45-03
screenshot from 2018-04-26 22-45-14


I noticed this issue while taking a look at the Italian translation.

Enabling autowrapping could help, but it's not a perfect solution.
Probably it's better to warn translators to pay attention when writing titles.

Add a more modern visual style

Current:

image

The idea is to add some gradients and shadows, and to make it dynamic with... a shader? Using Godot's built-in gradient resource if possible

image

Still gotta tune it for readability though

Review the existing slides to plan a solid 10 minutes pitch Godot

I had to make a short presentation for an event in Osaka. As it turns out, for other events in Japan, they want 5 to 10-minute presentations as well.

I'd like a review of the itchy pixel presentation, should be loaded by default when you open the project right now. To start with, I need some brief notes and in an overview of how we could improve:

  • The structure. This presentation is meant to give a sense of what Godot is, and to make people want to follow the project and try it. It has to amaze target users in a very short timeframe. it should answer questions like: what is Godot? why should I care? How do I get it? How do I learn to use it?
  • The media: we need to show the most stunning and technically accomplished 2-D and 3-D projects in the engine
  • I also want feedback on the data structure. Right now it's all in a GDScript dictionary, but I think it should be converted to JSON, so we can build tools to manage it. One of the main issues is supporting things like coloring the text for instance. but if the data is all JSON, we can create some text edit tools that you can toggle on and off when the presentation is playing. Hopefully, someone will be interested in contributing to that!

Keep it in note-taking style, I want a condensed review/organized bullet list(s) to get the discussion started and plan the work you'll do on the pres.

I already plan to embed some gameplay demo from the Godot course/upcoming FOSS game project when it's ready, to really show the engine in action, show that the system is made in Godot and that it uses its advanced UI tools. Even in its current basic form, it impressed quite a few viewers already!

Convert the tool to an add-on

If someone wants to work on this, that would be much welcome. It is not a complicated task but it would be nice to have Godot slides as a reusable add-on for people to download on the asset library.

By making an add-on we would be able to eventually add some tools in the editor to enhance the presentation design workflow. For example having a docker to create new slides with a list of widgets (a template) instance for you, and automatically saving it for you.

Make the presentation system reusable: add-on?

The issue

It'd be great if we could reuse the presentation system for multiple presentations:

  • You can run game code in your slides
  • The layout automatically adapts to your content so it's fast to create a new presentation
  • We have access to Godot's powerful UI system, soon the new animation system to make it look and feel even better

How can we do this?

I see two options:

  • Make the presentation its own bare-bones project, and use something like git submodule to link it to different presentation projects. It's the way to manage dependency on other projects with git.
  • Make a Godot add-on so we can share it on the assets library. It would make it easier for people who don't have experience with git to use the system but I don't know how flexible the presentation would be in this case:
    • We would probably have to make at least two or three node types. E.g. Presentation, PresentationSettings, SlideTemplate so people can control many aspects of the presentation separately
    • This would allow people to create their own SlideTemplate from scratch, add their own animations etc. to create a brand new presentation look

I need some feedback from you, and I'd definitely need some help to do this. @henriiquecampos your feedback would be valuable as you're working with Godot's plugin system. Do you have an idea of the efforts it'd take to add a few node types?

Add horizontal swipe gesture detection

To do

Create a new node/script to detect horizontal swipes:
The node should emit a signal when it detects a swipe, along with the swipe direction (left or right)

Create PT-BR translation

Hey there, I'm currently working on the translation for PT-BR (Brazilian Portuguese). It will be soon available for us to use! ❤️

Activate mouse controls by default

As I am used to powerpoint and other presentation software where the mouse is the typical instrument to control the slides I would like to see mouse controls activated by default. In fact I had to read the Readme because I wasn't able to switch slides and that seems to be not very intuitive.

I know that using the arrow keys would collide with the input methods of the game you can play inside the slide about the demos (maybe switch to wasd here?). So maybe using n and p is not that bad.

My suggestion would be to at least activate the emulate_touch_from_mouse setting that mouse users are able to swipe with the mouse. Another possibility would be to implement mouse click actions (lmb next slide and rmb previous slide) but I'm not sure how this would affect actions like opening a website link with a click.

Rewrite the readme

The info is completely outdated now v2 is out:

  • Add a banner pic
  • Brief desc
  • Link to pres vids, project overview, and translators contribution guide

Call for beautiful Pictures! Editor, new features, and games made with Godot

We need crisp and rich pictures of the editor, and of beautiful games made with Godot. Please share yours with us!

Guidelines:

  • Please upload pictures in high resolution. Ideally HD: 1920x1080, very high-quality jpeg (quality > 95) or PNG
  • For the editor, please use full-screen mode (Shift F11 to toggle it on/off)
  • Make sure the FileSystem tab is not too messy, same for the Inspector's state
  • Make sure there are no errors in the input tab at the bottom: to clear it the console and remove errors, press Ctrl Shift K
  • Set the font size to 18 pixels in the Editor menu -> Editor Settings (we can't go higher unfortunately, the layout gets messed up)

image

Examples:

modern-engine

godot windows tools_2018-09-13_10-35-40

Add touch and mouse controls to navigate slides

The keyboard controls are not the most intuitive: , and . (< and > keys) or p and n to go to the previous and next slide. The reason is other demos in the presentation can use controls like the arrow keys.

To distribute the presentation and make it usable in different scenarios (e.g. html5 to promote Godot on itch.io, etc.), it'd be nice to have touch and mouse controls.

This task is only about touch support. For transitions/animation see #11.

Issues

There's already a scene with placeholder visual touch controls. I couldn't get the mouse_enter and mouse_exit signals to work on Control nodes in Godot 3 alpha/beta. The idea was to use the mouse's position to have the controls appear on either side of the screen.

Possible solution

Instead we may want to fade the controls in when:

  • The user touches the screen
  • The user clicks somewhere
  • or maybe when the user moves the mouse cursor

For now, a click/touch on one of the arrows should move the presentation to the previous/next slide.

Extra notes

If you look at #11, I also think swipe support would be great, to make the presentation even more intuitive on mobiles/tablets/touch screens.

Create a 5-10 minutes Power Pitch from the Ichi Pixel presentation

Based on your feedback on #26

In general, just take care of the things you feel comfortable with and leave the rest to me. Feel free to open issues if you find bugs or areas to improve - I'll do a call for the community to contribute + a video recording of the new presentation to give it some more visibility.

Videos: just link to the footage you would like to put in a slide (e.g. youtube link with starting time) - I'll bring it in and transcode it myself - if you don't have a lot of exp. with that it's going to take you too much time to encode it right - ffmpeg doesn't have the best docs as you know.

Please create a new power_pitch folder or something and create the presentation there! You can start with a copy of the ichi-pixel presentation.

Annotations on your feedback

Let's remove the Deponia slide. I think a list of professional games/businesses that use Godot right now would have more impact.

## All-in-One Package
 - Break into dedicated slides for each feature

This will not hold in a short pitch presentation. There's only room for 4 or 5 slides at most. I'd focus on:

  1. Extend the Engine... with Game Code!
  2. Cinematic Animation
  3. Cutting Edge realtime-GI (+principled BSDF material)

And All the Essentials (bullet point list, multiple pics packed in a GridContainer?)

The tilemap workflow isn't great at the moment, I wouldn't showcase it. There's also too much here for a short presentation.

### New All in One Breakthrough Proposal

- Code (with available languages and their features)
  - Shaders
  - Bultin API
- Visual Editor (SceneTree and Node System, basically what currently is in **Great to Learn Game Code**)
  - 2D Editor 
    - UI (**Godot is a Godot Game** + **Complex User Interface**)
    - Animation (really emphasize this :stuck_out_tongue: )
  - 3D Editor
    - Use **Modern 3D Engine** (using some of the media mentioned in previously)
## Virtual Reality

- Use footage from [Bastiaan Olij Leap Motion?](https://www.youtube.com/watch?v=vumX-Or9J5U)

## Godot 3.0 is Out!

- Cut

Let's just have a general slide for this one: "Hundreds of contributors / Fastest growing game engine on GitHub / Full-time core dev team..."

## Godot is in Great Shape

- Mention the [popularization of the engine](https://itch.io/games/tag-godot-engine)
- Update data (?)
  - Maybe design a tool to scavenger the data and always keep it up to date? 
## Overall

- Allow window scaling
- Use update media with most recent content
- Add a "Coming Soon" slide to showcase what is in the bake

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.