Giter VIP home page Giter VIP logo

rpg-paper-maker / rpg-paper-maker Goto Github PK

View Code? Open in Web Editor NEW
589.0 30.0 65.0 110.22 MB

RPG Paper Maker is a game making engine, free for non commercial use, allowing you to create a 3D universe with many 2D sprites and even 3D objects using a simple interface for all available platforms: Windows, Linux, and MacOS.

Home Page: http://rpg-paper-maker.com

License: Other

C++ 94.35% QMake 1.17% GLSL 0.38% Shell 0.05% C 0.84% Batchfile 0.03% JavaScript 3.18%

rpg-paper-maker's Introduction

RPG Paper Maker

Build Build Join to the community at https://discordapp.com/invite/QncEnCE

Overview

RPG Paper Maker is a game making engine, free for non commercial use, allowing you to create a 3D universe with many 2D sprites and even 3D objects using a simple interface for all available platforms: Windows, Linux, and MacOS.

📂 Project organization

The organization contains some independent repositories. If you want to fork several repositories, you should put them all in the same parent root. Example:

--- RPM                    <- A parent folder containing all your repos
    |--- RPG-Paper-Maker   <- The engine repo that will use infos from your local Game-Scripts repo
    |--- Game-Scripts      <- The repo editing game scripts
    |--- ... (other repos)
  • RPG-Paper-Maker is the game editor software (RPG Paper Maker). It is entirely written in C++ and is managing all the json files linked to a project such as maps, statistics...
  • Game-Scripts is all the stuff needed for building a game (mainly Javascript scripts). We are using the executable and scripts in order to create a fresh new project in the software. This program is using QML and Javascript. It is also interpreting all the json files that are generated by the RPG Paper Maker engine.
  • Game-documentation contains all the stuff for generating javascript game documentation for users.
  • Basic-Ressources contains all the basic ressources that the users can use for there projects (pictures, musics...).
  • Updater is the updater that installs and check for RPG Paper Maker updates.
  • Dependencies contains all the dynamic libraries needed for games and the engine for working in standalone. It also contains all the binaries executable.

How to build the project

  • Install Qt on your OS with the Open Source installation. During the installation, you should select Qt version 5.x (/!\ Linux users should use Qt5.8 for having musics working). We recommend you to use the QtCreator IDE too. You should also install gcc compiler if it is not already done.
  • Clone and go to this repo
  • Update the modules with the command:

Linux:

./update-mods

Windows:

./update-mods.bat

NOTE: You should run this script when you want to update the recent dev changes for Basic Ressources and Game Scripts. This will first search your local changes, and then module github repo if you didn't clone it.

  • Open QtCreator
  • Open the RPG-Paper-Maker.pro file.
  • Run qmake (right click on project root).
  • Select the project to run (EditorApp or Test) in the bottom-left configuration pop-up
  • Build and run the project

If you are having any error that means that you are missing a package. Check the error and try to find out what's missing. Please report any kind of error at [email protected] to help other contributors.

🎓 Project structure

Folder Tree

--- RPG-Paper-Maker
    |--- RPG-Paper-Maker.pro            <- The .pro for opening the project with Qt Creator
    |--- update-mods / update-mods.bat  <- Script for copying dev changes done in other git repos
    |--- versions.json / trees.json     <- Json used by the updater for checking files to update
    |--- .appveyor.yml / .travis.yml    <- Automated build tests
    |--- Editor
    |--- Editor.pro                     <- The sub-project to build the editor library
    |--- ressources.qrc                 <- Linking all the ressources (shaders, images...) used in the editor
    |--- Content                        <- Content is a folder that will contain all the stuff that needs to be copied in the build folder
        |--- basic                      <- The basic Content folder to copy when creating a new project
    |--- Controls                       <- Controllers used for complex dialog boxes or widgets / panels. Should contain all the actions to do on the dialog model
        |--- MapEditor                  <- The map editor controller separated in several files
    |--- CustomWidgets                  <- All the common custom widgets that can be re-used often are here. These components inherit from QWidget classes.
    |--- Dialogs                        <- All the dialog boxes
        |--- Commands                   <- All the dialog boxes used for object event commands
        |--- SpecialElements            <- All the dialog boxes used for special elements (autotiles, walls, 3D objects)
        |--- Systems                    <- All the dialog boxes used for system elements (SuperListItem classes)
    |--- Enums                          <- All the enumerations
    |--- MapEditor                      <- All the map editor models (sprite, floor, etc.)
        |--- Map                        <- The map model (separated in several files)
    |--- MathUtils                      <- Copy of math utils from an old Qt version for 3D drawings
    |--- Models                         <- All the models used for the database
        |--- GameDatas                  <- All the gamedata files models
        |--- System                     <- All the models used for system elements (SuperListItem classes)
    |--- Ressources                     <- All the images (icons) used for the editor
    |--- Shaders                        <- All the shaders programs
    |--- Singletons                     <- Contains RPM singleton
    |--- Themes                         <- All the themes of the editor
    |--- EditorApp
    |--- EditorApp.pro                  <- The sub-project to build the editor executable
    |--- main.cpp                       <- The main function instructions
    |--- Test
    |--- Test.pro                       <- The sub-project to build the test executable

RPM Singleton

RPM singleton is used for storing constants such as fix paths, integer values, etc. It also stores pointers to the current opened project and engine settings in order to have an access to it at any time in the program. Common functions are also available. For example, a function to write a Serializable class in a .json file is available.

✨ UI design

We are using the Qt creator designer for generating XML files for all the widgets. These files have a .ui extension.

SuperListItem

The SuperListItem class is used for being displayed with PanelSuperList or WidgetSuperTree, and stored easily in .json files. It has at least an ID and a name. For example, a monster in a game is a SuperListItem (SystemMonster class).

A list of SuperListItem will be stored in a QStandardItemModel model class. Here is a common way to add a SuperListItem to a model list:

    QStandardItem * item = new QStandardItem();
    SuperListItem* super = new SuperListItem(i, "My item"); // COuld be SystemItem class for example
    item->setData(QVariant::fromValue(reinterpret_cast<quintptr>(super)));
    item->setFlags(item->flags() ^ (Qt::ItemIsDropEnabled));
    item->setText(super->toString());
    model->invisibleRootItem()->appendRow(item);

👷 Contributing

Thank you for considering contributing to the RPM! Just see our Contributing Guide.

😇 Code of Conduct

In order to ensure that the RPM community is welcoming to all, please review and abide by the Code of Conduct.

📣 Feature requests

Check out the feathub for voting for your favorite next coming soon feature or even proposing your own one!

Feature Requests

rpg-paper-maker's People

Contributors

afaur avatar danilolutz avatar dependabot[bot] avatar edwinrodger avatar gitter-badger avatar hsandt avatar jollychristopher avatar malsubmal avatar monseneor avatar niokasgami avatar reptiie avatar rohkea avatar sarisarinyama avatar thecrafters001 avatar wano-k 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  avatar

rpg-paper-maker's Issues

[Bug] 0.5.3 : Text Box doesn't Respect New Line Characters.

Hello @Wano-k .

@ rave in the forum said, when he/she used show text command to add a multiline message, the in-game it doesn't respect new line characters.

I test this bug too on my Linux RPM, I have this bug too. I try add this code "\n" or the html br code "< br >" to the text, but not work. This is my screenshot:
screenshot from 2018-09-18 19-23-08

This is the original post: http://rpg-paper-maker.com/index.php/forum/bug-report/65-text-box-doesn-t-respect-new-line-characters

RPM 0.4.0 Beta Build Error (OSX 10.12.6)

Steps to recreate...

  • Download RPG Paper Maker source zip from releases tab (v0.4.0)
  • Extract contents to folder on a computer running OSX 10.12.6
  • Run qmake . inside the folder
  • Run make
  • You should get two errors about std::isnan...
Singletons/wanok.cpp:371:14: error: expected unqualified-id
    if (std::isnan(finalDistance))
             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/math.h:179:5: note:
      expanded from macro 'isnan'
    ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
    ^
Singletons/wanok.cpp:373:14: error: expected unqualified-id
    if (std::isnan(newDistance))
             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/math.h:179:5: note:
      expanded from macro 'isnan'
    ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
    ^
15 warnings and 2 errors generated.
make: *** [wanok.o] Error 1

Searching on google it sounds like the std:: namespace should be removed from isnan.

After altering Singletons/wanok.cpp to fix the errors then run...

  make clean && make

You should now be able to get past the previous errors, but this same code occurs in one other file as well and will cause two more errors...

In file included from Controls/MapEditor/controlmapeditor.cpp:28:
Controls/MapEditor/controlmapeditor-raycasting.cpp:119:18: error: expected unqualified-id
        if (std::isnan(distance))
                 ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/math.h:179:5: note:
      expanded from macro 'isnan'
    ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
    ^
In file included from Controls/MapEditor/controlmapeditor.cpp:28:
Controls/MapEditor/controlmapeditor-raycasting.cpp:178:23: error: expected unqualified-id
            if (!std::isnan(distance)) {
                      ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/math.h:179:5: note:
      expanded from macro 'isnan'
    ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
    ^
15 warnings and 2 errors generated.
make: *** [controlmapeditor.o] Error 1

After fixing those errors (removing std:: from the std::isnan calls) then run make clean && make

Build should now successfully build with no errors...

4 warnings generated.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names  -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.10 -Wl,-rpath,@executable_path/Frameworks -o RPG-Paper-Maker.app/Contents/MacOS/RPG-Paper-Maker main.o mainwindow.o dialognewproject.o panelmainmenu.o controlnewproject.o wanok.o widgetmapeditor.o panelproject.o map.o controlmainwindow.o project.o dialogdatas.o dialogcommands.o eventcommand.o widgettreecommands.o dialogcommandshowtext.o dialogcommand.o gamedatas.o commoneventsdatas.o dialogvariables.o superlistitem.o widgetsuperlist.o panelsuperlist.o dialogcommandchangevariables.o dialogcommandinputnumber.o dialogcommandconditions.o widgetcomboboxoperation.o widgettextlang.o widgetmenubarmapeditor.o mapportion.o floors.o camera.o grid.o position.o systemdatas.o controlmapeditor.o widgetconditionslist.o contextmenulist.o itemsdatas.o systemitem.o skillsdatas.o armorsdatas.o weaponsdatas.o heroesdatas.o systemarmor.o systemhero.o systemskill.o systemweapon.o dialogcommandmodifyinventory.o classesdatas.o systemclass.o dialogcommandmodifyteam.o widgetcomboboxteam.o battlesystemdatas.o systemlang.o systemelement.o dialogsystemelement.o systemweaponarmorkind.o dialogsystemweaponarmorkind.o dialogsystemstatistic.o systemstatistic.o dialogsystembattlecommand.o systembattlecommand.o dialogsystems.o dialogsystemstatisticprogression.o systemstatisticprogression.o widgetsupertree.o monstersdatas.o systemmonster.o troopsdatas.o systemtroop.o systemmonstertroop.o dialogsystemmonstertroop.o dialogcommandstartbattle.o dialogdatasmonsterrewards.o systemicon.o systemcurrency.o dialogsystemcurrency.o panelobject.o systemevent.o systemclassskill.o dialogsystemclassskill.o systemloot.o dialogsystemloot.o systemcreateparameter.o primitivevalue.o panelprimitivevalue.o dialogsystemcreateparameter.o systemcommonreaction.o systemcommonobject.o dialogsystemname.o dialogsetmaximum.o dialogsystemobjectevent.o systemparameter.o systemobjectevent.o systemstate.o dialogcommandchangestate.o dialogobject.o mapobjects.o systemreaction.o panelobjectevent.o dialogcommandsendevent.o widgettreelocalmaps.o treemaptag.o treemapdatas.o dialogmapproperties.o langsdatas.o mapproperties.o langstranslation.o portion.o cursor.o enginesettings.o dialogkeyboardcontrols.o position3d.o height.o sprites.o vertex.o dialogcommandteleportobject.o dialogcommandteleportobjectselect.o dialogexport.o controlexport.o scriptsdatas.o keyboarddatas.o systemkeyboard.o systemmapobject.o dialogsystemparameter.o dialogcommandmoveobject.o systemcommandmove.o dialogsystemkeyboard.o dialogsystemkeyboardgeneral.o widgettilesetselector.o widgetselectionrectangle.o dialogpictures.o panelpicturepreview.o systempicture.o picturesdatas.o widgetpicturepreview.o paneltextures.o widgetvariable.o variablesdatas.o systemvariables.o tilesetsdatas.o systemtileset.o widgetpicture.o dialogpicturespreview.o widgettilesetsettings.o widgettilesetpraticable.o dialogsystemstate.o dialoglocation.o dialogcommandwait.o widgetgraphics.o dialogsystemlang.o lands.o vertexbillboard.o threadmapportionloader.o dialogcommandmovecamera.o projectupdater.o dialogprogress.o engineupdater.o dialogengineupdate.o widgetreleasenotes.o mapelement.o wallindicator.o sprite.o dialogspritewalls.o panelspritewalls.o systemspritewall.o specialelementsdatas.o dialogtilesetspritewalls.o systemspecialelement.o qplane3d.o qray3d.o qbox3d.o land.o floor.o controlundoredo.o qrc_ressources.o moc_mainwindow.o moc_dialognewproject.o moc_panelmainmenu.o moc_widgetmapeditor.o moc_panelproject.o moc_dialogdatas.o moc_dialogcommands.o moc_widgettreecommands.o moc_dialogcommandshowtext.o moc_dialogvariables.o moc_widgetsuperlist.o moc_panelsuperlist.o moc_dialogcommandchangevariables.o moc_dialogcommandinputnumber.o moc_dialogcommandconditions.o moc_widgetcomboboxoperation.o moc_widgettextlang.o moc_widgetmenubarmapeditor.o moc_widgetconditionslist.o moc_contextmenulist.o moc_dialogcommandmodifyinventory.o moc_dialogcommandmodifyteam.o moc_widgetcomboboxteam.o moc_dialogsystemelement.o moc_dialogsystemweaponarmorkind.o moc_dialogsystemstatistic.o moc_dialogsystembattlecommand.o moc_dialogsystems.o moc_dialogsystemstatisticprogression.o moc_widgetsupertree.o moc_dialogsystemmonstertroop.o moc_dialogcommandstartbattle.o moc_dialogdatasmonsterrewards.o moc_dialogsystemcurrency.o moc_panelobject.o moc_dialogsystemclassskill.o moc_dialogsystemloot.o moc_panelprimitivevalue.o moc_dialogsystemcreateparameter.o moc_dialogsystemname.o moc_dialogsetmaximum.o moc_dialogsystemobjectevent.o moc_dialogcommandchangestate.o moc_dialogobject.o moc_panelobjectevent.o moc_dialogcommandsendevent.o moc_widgettreelocalmaps.o moc_dialogmapproperties.o moc_dialogkeyboardcontrols.o moc_dialogcommandteleportobject.o moc_dialogcommandteleportobjectselect.o moc_dialogexport.o moc_dialogsystemparameter.o moc_dialogcommandmoveobject.o moc_dialogsystemkeyboard.o moc_dialogsystemkeyboardgeneral.o moc_widgettilesetselector.o moc_widgetselectionrectangle.o moc_dialogpictures.o moc_panelpicturepreview.o moc_widgetpicturepreview.o moc_paneltextures.o moc_widgetvariable.o moc_widgetpicture.o moc_dialogpicturespreview.o moc_widgettilesetsettings.o moc_widgettilesetpraticable.o moc_dialogsystemstate.o moc_dialoglocation.o moc_dialogcommandwait.o moc_widgetgraphics.o moc_dialogsystemlang.o moc_threadmapportionloader.o moc_dialogcommandmovecamera.o moc_projectupdater.o moc_dialogprogress.o moc_engineupdater.o moc_dialogengineupdate.o moc_widgetreleasenotes.o moc_dialogspritewalls.o moc_panelspritewalls.o moc_dialogtilesetspritewalls.o   -F/usr/local/Cellar/qt/5.9.1/lib -framework QtOpenGL -framework QtWidgets -framework QtGui -framework QtCore -framework DiskArbitration -framework IOKit -framework QtNetwork -framework OpenGL -framework AGL

@Wano-k Would you like me to commit these changes in a PR?
Should I compress the build for OSX and include it with your latest releases for Linux and Windows?

[Help] Please Help Fixing my Map (v0.5.0)

Hello, yesterday (29 May 2018) I converted map from v0.4.3 and make map in it. Then I add teleport event and collisions to trees and character. But I always have this error message pop-up when try start the game when the teleportation event on map. After I deleted teleportation event, the game start normal.

Then I try other project from v0.4.3 it runs normal, no error message show. Please help, I don't know this is bug or not and I don't know how to fix this.

This is the error message:
screenshot from 2018-05-29 22-51-02

This is the project file:
https://drive.google.com/file/d/13gfd7K71l_7omK7_5wf_FxSacghOVb1y/view?usp=sharing


My System Specs:

OS: Linux Ubuntu 16.04 LTS 64-Bit (On Asus Laptop)
Memory: 1.9 GiB
Processor: Intel® Core™ i3-2330M CPU @ 2.20GHz × 4
Graphics: Intel® Sandybridge Mobile

[Bugs] 3 Bugs on v0.5.0 Linux

Hello @Wano-k , sorry for late posting. I think you already know this bugs, but I want report it.

The video:
https://youtu.be/DBgzdIfyTPk


RPG Paper Maker v0.5.0 Error Message on Terminal:

1st Bug: Segmentation fault (core dumped)
2nd Bug: -
3rd Bug:
QFSFileEngine::open: No file name specified
QFSFileEngine::open: No file name specified
QFSFileEngine::open: No file name specified
QFSFileEngine::open: No file name specified


My System Specs:

OS: Linux Ubuntu 16.04 LTS 64-Bit (On Asus Laptop)
Memory: 1.9 GiB
Processor: Intel® Core™ i3-2330M CPU @ 2.20GHz × 4
Graphics: Intel® Sandybridge Mobile

[Bug] 0.5.3 : Collision Bug After Teleporting Object

Hello @Wano-k .

@ rave in the forum said, that, when he/she configure the collision box for character named Kate and make that character teleport using teleport object command, the collision data is left behind, so @ rave is colliding with thin air.

But after I test this bug too, I have slightly different issue. I test the bug using character named Shana, and after the character teleport, I'm not colliding with thin air, I can walk through her body. I'm using the Linux version. This is my screenshot after the character teleport:
screenshot from 2018-09-18 19-26-49

This is the original post : http://rpg-paper-maker.com/index.php/forum/bug-report/64-when-you-teleport-the-object-it-leaves-its-collision-behind#191

[Help] Please Help Fixing my Map (v0.5.2)

Hello, today I converted map from v0.5.1 then I add a new event in the map. The event is play music. When I hit play button (Edit: play button to play the game), the error message appear. The error message is slightly different from my last help (http://rpg-paper-maker.com/index.php/forum/general-discuss/45-help-please-help-fixing-my-map-v0-5-0#114).
screenshot from 2018-08-18 22-12-07_rpm_052_bug

Then I try copy the file you send in the link above. But it make other error message appear. Now I confuse how to fix this.
screenshot from 2018-08-18 22-21-36_rpm_052_bug_02

This is the project file:
https://drive.google.com/open?id=1AK-mPKImWgCRfxeGmWqQp350ItMVky9f


My System Specs:

OS: Linux Ubuntu 16.04 LTS 64-Bit (On Asus Laptop)
Memory: 1.9 GiB
Processor: Intel® Core™ i3-2330M CPU @ 2.20GHz × 4
Graphics: Intel® Sandybridge Mobile

please help start failed

In file included from moc_dialogcollisions.cpp:9:
In file included from ./../RPG-Paper-Maker/Dialogs/dialogcollisions.h:24:
In file included from ../RPG-Paper-Maker/Models/System/systemtileset.h:24:
../RPG-Paper-Maker/Models/System/systempicture.h:52:18: warning: 'SystemPicture::setCopy' hides overloaded virtual function [-Woverloaded-virtual]
virtual void setCopy(const SystemPicture &super);
^
../RPG-Paper-Maker/Models/superlistitem.h:56:18: note: hidden overloaded virtual function 'SuperListItem::setCopy' declared here: type mismatch at 1st parameter ('const SuperListItem &' vs 'const SystemPicture &')
virtual void setCopy(const SuperListItem& item);
^
In file included from moc_dialogcollisions.cpp:9:
In file included from ./../RPG-Paper-Maker/Dialogs/dialogcollisions.h:24:
../RPG-Paper-Maker/Models/System/systemtileset.h:63:18: warning: 'SystemTileset::setCopy' hides overloaded virtual function [-Woverloaded-virtual]
virtual void setCopy(const SystemTileset &super);
^
../RPG-Paper-Maker/Models/superlistitem.h:56:18: note: hidden overloaded virtual function 'SuperListItem::setCopy' declared here: type mismatch at 1st parameter ('const SuperListItem &' vs 'const SystemTileset &')
virtual void setCopy(const SuperListItem& item);
^
2 warnings generated.
In file included from moc_widgettilesetdirection.cpp:9:
In file included from ./../RPG-Paper-Maker/CustomWidgets/widgettilesetdirection.h:25:
../RPG-Paper-Maker/Models/System/systempicture.h:52:18: warning: 'SystemPicture::setCopy' hides overloaded virtual function [-Woverloaded-virtual]
virtual void setCopy(const SystemPicture &super);
^
../RPG-Paper-Maker/Models/superlistitem.h:56:18: note: hidden overloaded virtual function 'SuperListItem::setCopy' declared here: type mismatch at 1st parameter ('const SuperListItem &' vs 'const SystemPicture &')
virtual void setCopy(const SuperListItem& item);
^
1 warning generated.

[Bugs] 0.5.1 Linux

Hello, I'm back again. I found 2 old bugs from previous version. This is the link: #14 . I just remembering you. The bugs is model bugs and armor bugs. And if that video is not too clear I can record it again.


My System Specs:

OS: Linux Ubuntu 16.04 LTS 64-Bit (On Asus Laptop)
Memory: 1.9 GiB
Processor: Intel® Core™ i3-2330M CPU @ 2.20GHz × 4
Graphics: Intel® Sandybridge Mobile

[WINDOWS] RPG Paper Maker app cannot be focused by clicking outside active popup

Possibly related to the bug on Linux: #37

OS: Windows 10
Version: 0.5.3

Repro

  1. Open a popup window such as Datas Manager
  2. Bring a completely different app to the front, such as File Explorer, but leave some space around to see the RPG Paper Maker app in the background
  3. Click on the RPG Paper Maker top-bar or any area outside the active popup itself

Result

Windows will play an Invalid operation SFX and not put RPG Paper Maker and its popup window to the front at all.

Expected

Focus on RPG Paper Maker, specifically the popup window even if it was not clicked directly. Following Windows convention, it may possibly notify the refocus on the popup itself by a small blinking of the popup topbar color. (but don't overdo it with blinking or it will look like the bug on Linux; and I think the blinking hint was from Windows 7, I'm not sure they do that anymore)

To focus on the app again, you need to either click on the popup area or on the app icon in the tray (or do the keyboard shortcut equivalent).

Add build status indicators to `README.md`

For visibility of the status of automated builds it may be helpful to add status badges to the README.md file.

The badge for Travis-CI
Travis Build Status

The Badge code for AppVeyor should be something like:
AppVeyor Build Status
after AppVeyor is setup for this repository.

Ship `Contents` folder as a resource pack separate from binary releases

Since the Contents folder is a resource pack that is used by the Engine binary, but may not have changed since a previous release of the program it might be best to create a git hook that will publish the Contents folder separately from the tag based releases.

  • I don't know if it's really necessary here, but why not. How would it work for the contributors? How could we organize that?

Anytime modifications are made to Engine/Contents and they are merged in by Pull Request the individual would also update a file Engine/Contents/CHANGELOG.md in that same Pull Request.

When a Developer creates a new tag locally and pushes that tag up to github a githook script would execute locally. It would grep the Engine/Contents/CHANGELOG.md file looking for a semver entry (example: v0.1.1 - Added a 2D character texture) to that matches the current tag that is being pushed. If it finds an exact match then that means we need to add a new version of the Engine/Contents folder along with the binaries for this new tag.

We can get access to the current tag being pushed based on this

Mac excecutable and dependencies

We need the help of someone having mac OSX to make the engine available for this platform. First, you should build the project on a mac OSX machine (see README.md). Open the game.pro with QtCreator and build it in release mode if all is already OK in debug mode. Go get the Game.app generated in the released build and put it in Engine/Content/mac folder.

After that, create a new project, go to its folder and try to launch the app from here. This should not work (if it is, you should try to hide Qt by any way, like temporary renaming the Qt installation folder). We need this app to work for any user from mac that don't have Qt installed. You should check what are the dependencies for mac to deploy the app in standalone. Once you figure it out, put all the stuff needed in the folder Engine/Content/mac.

Do the same thing with release build of engine.pro and put the dependencies in a folder Engine/Dependencies/mac.

[Question] Why I Have This Error Message When Opening RPM After Upgrading to Ubuntu 18.04.1 from Ubuntu 16.04 LTS?

After I upgrade my laptop from Ubuntu 16.04 LTS to 18.04.1 LTS, I'm not trying or opening RPG Paper Maker at all. And then after a few months after upgrading and updating system, today, I'm opening RPG Paper Maker and I have this error message in the terminal. The app is running normal. I don't understand the error message, please explain it to me if you not busy.

This is the error message:
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
qt.network.ssl: QSslSocket: cannot resolve sk_new_null
qt.network.ssl: QSslSocket: cannot resolve sk_push
qt.network.ssl: QSslSocket: cannot resolve sk_free
qt.network.ssl: QSslSocket: cannot resolve sk_num
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free
qt.network.ssl: QSslSocket: cannot resolve sk_value
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
qt.network.ssl: QSslSocket: cannot resolve SSLeay
qt.network.ssl: Incompatible version of OpenSSL
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error

My system specs:
OS : Ubuntu 18.04 LTS 64-Bit
Graphics : Intel SandyBridge Mobile

Thank you very much for reading and answering my question.

[Bug] Version 1.0.1 Mapproperties - change squaresize

Menu: Managment -> Systemsmanager -> change squaresize in mapproperties from16px to 32px or 64px

Error 32px square size:
file:Content/Datas/Scripts/System/system-picture.js - line:144 -> 4.5 out of range

Error 64px square size:
file:Content/Datas/Scripts/System/system-picture.js - line: 247 -> 0.25 out of range

[Linux Bug] 0.5.1 : Broken Collisions on Exported Standalone Game

Hello, today (12 July 2018) I try to export my test game as standalone game, I export it to Linux and Windows. When I open the Linux version the collisions is broken, so I can walk through tree, character,etc. Then I try the Windows version using Wine, but I can't open it, the error message is pop-up, but I think this is Wine error.

So, if you not busy please try this bug. And thank you for reading this.


My System Specs:
OS: Ubuntu 16.04 LTS 64-Bit (on Asus Laptop)
Memory: 2 Gb RAM
Processor: Intel® Core™ i3-2330M CPU @ 2.20GHz × 4
Graphics: Intel® Sandybridge Mobile

[Ubuntu] RPG Paper Maker crashing after a few seconds of opening a project

I've been using rpg paper maker for a little while now, and a week ago my computer crashed while i was using rpg paper maker. Now, after opening any project, and waiting a few seconds, it crashes. i had some good progress on a game so its really frustrating me. the command line always just says "segmentation fault"

Add options Script refresh to the plugin Manager

Right now while working with an external tool such as Visual studio code,
It's impossible to refresh the Script from the editor without having to restart RPM.

Adding a context menu by right click on the script and clicking 'Refresh script' to refresh the current Script code.js should fix that.

[Proposal] Keyboard Shortcuts

Hello @Wano-k , I make this proposal because I care and love this program and in other programs have to many click and only have little keyboard shortcuts, so user can’t work faster to make RPG game. And you can make this faster workflow as advantage to other RPG programs out there, so your RPG program can be more popular.

Because this proposal is long, I attach the file (.odt in zip archive and .pdf).

Thank you very much for reading this proposal.
RPG-Paper-Maker-Keyboard-Shortcuts-Proposal.odt.zip
RPG-Paper-Maker-Keyboard-Shortcuts-Proposal.pdf

Edit:
In the proposal file I mention about pie menu, if you don't know pie menu, this is the screenshot:
screenshot from 2018-08-18 21-23-48_blender-pie-menu
screenshot from 2018-08-18 21-25-01_blender-pie-menu-02
screenshot from 2018-08-18 21-26-46_krita

[LINUX] RPG Paper Maker editor shows notification when clicking outside active popup

OS: Linux Ubuntu
Desktop: Gnome
Version: 0.5.3

Repro

  1. Open a popup window in RPG Paper Maker, such as Datas Manager
  2. Click on any area outside the popup

Result

The popup blinks and reappears immediately with the notification:

RPG-Paper-Maker
"[popup title]" is ready

Expected

The app should get focus, with the popup getting localized focus, without blinking.

Notes

The bug may come from Qt on Linux itself, need to test a minimal app with a popup on Gnome.

linux ubuntu gnome - clicking outside popup will show notification popup title is ready develop 2018-09-07

Collision Crashes

So I put collision on an object and set the object to follow the player, but every time the collision box of the object touches the collision box of the player it crashes.
This issue also happens when The object collides with anything else with a collision box (a mountain for example).
the only work around for this that I know currently is Disabling collision boxes with though as soon as the player interacts with the object, but the it can go though walls and that's not what I'm going for...

Is there a way to solve this? because it would be cool for objects to follow the player like in deltarune (just an example because I really love that game)

Also is there a way to make loop music better?

[Bug][Windows] When try to load an Empty save, There's an error dialog came out.

When I try to load an empty save in 【Load Game】, an error dialog like the image down below jump out. And when I click the OK button on the error dialog, the entire game flashed back (the editor is fine).
image
BTW, I encountered tons of issues with the translations file. Such as I can't find the entry of most of the word in the Inventory page, like [Inventory],[Consumables]. Some of those even if they can be found, it does not work, like [All] (line 387),[Ingredient] (line 919),[Weapons] (line 130),[Armors] (line 131). I'm not sure should I open a new issue for those or not if I find more about that translate thing.
image

Occasional crash when using Datas Manager > Tilesets

RPG Paper Maker editor sometimes crashes when using the Datas Manager > Tilesets.

I have yet to find a perfect repro.

Version: v0.5.3

Crash occurrences: 2

  • after playing with the main view (edit tile coordinates, select another, zoom, try to pane with shift+scroll…)
  • after opening the tile collection view (Auto-tiles, etc.), opening the tile file browser, trying to select a file (but none was available), and clicking Cancel

Crash when clicking "Change maximum…" in Systems Manager > Battle maps

OS: Windows 10
Version: v0.5.3

Repro

  1. Open Management > Systems Manager > Battle maps
  2. In the Currencies section, click Change maximum...

Result

100% crash

Expected

Open the popup that allows to to change the number of Currencies defined.

Notes

No crash on Linux also for v0.5.3, expected behavior happens.
100% crash when clicking Change maximum… in Systems Manager > Battle maps

RPM 0.4.0 Beta Hangs On Run (OSX 10.12.6)

After building the application from source on OSX 10.12.6 the application hangs on startup.
After running dtruss to diagnose I get the following information...

-> % sudo dtruss -n RPG-Paper-Maker
...
11074/0x296ce:  workq_kernreturn(0x4, 0x0, 0x0)		 = 0 Err#-2
11074/0x296ec:  workq_kernreturn(0x40, 0x70000EF24B80, 0x1)		 = 0 Err#-2

# This line repeats infinitely and is where the program hangs...
11074/0x296bc:  unlink("/Users/user/RPG-Paper-Maker-v-0.4.0-beta/RPG-Paper-Maker.app\0", 0x7FFF5B050F88, 0x7FFF5B050BC0)		 = -1 Err#1
11074/0x296bc:  ...
11074/0x296bc:  ...

dtrace: error on enabled probe ID 2129 (ID 332: syscall::unlink:return): invalid address (0x0) in action #12 at DIF offset 24
dtrace: 4969 dynamic variable drops with non-empty dirty list

I can only guess that the addresses (0x7FFF5B050F88, 0x7FFF5B050BC0) have
something to do with this that I don't fully understand. Could it maybe mean that
it is trying to remove something that should reside inside the application bundle?

Since osx builds an app bundle that holds the binary inside of it (inside of
some nested folders) as opposed to linux (only produces a binary) and windows
(produces an exe) perhaps this is causing an issue?

[WINDOWS] ERROR: The repo ... doesn't exist. Clone it (supported only on linux) + Does ..\RPG-Paper-Maker\mods\Game specify a file name or directory name on the target

OS: Windows
Version: Git branch develop 2018-11-17

Sorry for the long title, this issue contains 2 errors that must be fixed in order to use update-mods.bat on Windows.

If you run directly:
RPG-Paper-Maker-repo>update-mods

you get:

The directory or file cannot be created.
"ERROR: The repo Game-Scripts doesn't exists. Clone it (supported only on linux)."
The directory or file cannot be created.
"ERROR: The repo Basic-Ressources doesn't exists. Clone it (supported only on linux)."
"ERROR: The repo Dependencies doesn't exists. Clone it (supported only on linux)."

The error message actually means that dependency cloning is only integrated in the update-mods script for Linux, not in update-mods.bat. On Windows, you need to clone them manually. However, you need to setup the path of the directory containing the dependency repos in update-mods.bat:
set pathRepos=[choose a path relative to the main RPG-Paper-Maker repository, e.g. .. for the parent directory]

Currently, it is hardcoded and won't work on your computer, but if you replace it with .. you should get the same behavior as on Linux: the dependency repositories will be located in the same directory as the main one.

Once you have cloned the repositories at the appropriate location, if you try again:

RPG-Paper-Maker-repo>update-mods

"Local copy: ..\Dependencies\Game -> ..\RPG-Paper-Maker\mods\Game"
Does ..\RPG-Paper-Maker\mods\Game specify a file name
or directory name on the target
(F = file, D = directory)? r
Does ..\RPG-Paper-Maker\mods\Game specify a file name
or directory name on the target
(F = file, D = directory)?
etc.

This is because R for "Répertoire" in French becomes D for "Directory" in English
(source: https://stackoverflow.com/a/14488464/3256073)

To avoid localization issues, we can use the /I flag
(source: https://stackoverflow.com/a/33770152/3256073)
C:\Windows\System32\xcopy.exe %path% %pathModsGame% /E /I

It now works:

RPG-Paper-Maker-repo>update-mods

...
"Local copy: ..\Basic-Ressources\Content -> ..\RPG-Paper-Maker\mods\BR\Content"
..\Basic-Ressources\Content\Pictures\HUD\Bars\hpBar.png
..\Basic-Ressources\Content\Pictures\HUD\Bars\mpBar.png
..\Basic-Ressources\Content\Pictures\HUD\Bars\spBar.png
...

I will send a PR with the fixes and improve the error messages.

[Export] Allow exporting to new and existing directory

Current behavior

When exporting to a folder $ExportPath already containing ${ProjectName}-Test${PLATFORM}, exporting fails with Error:

The directory ${ProjectName}-Test${PLATFORM} already exists.

However, exporting the first time to $ExportPath will create such a folder. In other words, the second time you export in the same folder, the UI simply block you.

rpg paper maker v0 5 3 - export directory already exists

I have also tried to target another folder such as ${ExportPath}2, but then export fails with Error:

The path location doesn't exist.

rpg paper maker v0 5 3 - export on new directory fails as location doesnt exist

Suggested behavior

When trying to export to an existing folder:

  • it would prompt you to overwrite the existing folder
  • you can check an option "don't ask again" so you automatically overwrite next time (you could toggle this off in the Options)

When trying to export to a new folder:

  • the new folder is created, so the subfolder ${ProjectName}-Test${PLATFORM} can be created inside

Bonus:

  • allow to prefix export subfolder with current version so you can keep the previous build versions, and you only overwrite the current version for smaller iterations (e.g. ${ProjectName}-Test${PLATFORM}-v${MAJOR}.${MINOR})

Behavior of similar apps

  • Unity will simply overwrite any existing folder with the same name.

Automated tests and releases

Automated test runs, and release builds using travis-ci and appveyor could assist with development and maintaining the project as it grows.

Travis CI

  • http://www.travis-ci.org
  • Travis-CI will:
    • When a Pull Request is made by a developer,
      • Set up virtual machines (Linux and OSX)
      • Pull down down the source from the branch
      • Compile, build, and test the code
      • Indicate on the PR if it would introduce breaking changes
    • When a Tag is created and pushed to the repository
      • Set up virtual machines (Linux and OSX)
      • Pull down the source from the tag
      • Compile, build, test, and publish a release to github

Appveyor

  • https://www.appveyor.com/
  • AppVeyor will:
    • When a Pull Request is made by a developer,
      • Set up a virtual machine (Windows)
      • Pull down down the source from the branch
      • Compile, build, and test the code
      • Indicate on the PR if it would introduce breaking changes
    • When a Tag is created and pushed to the repository
      • Set up a virtual machine (Windows)
      • Pull down the source from the tag
      • Compile, build, test, and publish a release to github

[Bug] v1.0.1 Mapproperties Squaresize bigger 32px

If I set the square size larger than 32px in mapproperties, then I get an out of range error despite removing the default autotiles. 32px works. I tried 48px and 64px.

The default hero sprite is then no longer displayed in the level. At 32px it is.
Are 48px square size also supported or 16px/32px/64px/etc.?

Is it a bug or a user error? I do not add anything to the level.

UI Name

Hello. I'm making tutorial about RPM, the tutorial in on text format not in video format because I can't record video with stable fps on my potato laptop, and I want to explain about the UI. But I don't understand some of the name of the UI.

So, if you don't busy, can you explain it to me?

And thank you for reading this request. Bye...

[Bug] <Enter> does not always add new command if no selection in Object editor

When there is no selection, will not crash but it won't always try to add a new command.

More exactly, pressing will do nothing unless the last selected node was a None (empty) command at the end of a block (root or sub-block like If condition).

The issue lies in WidgetTreeCommands::keyPressEvent which doesn't check if methods like contextEdit actually consume the event before returning.
In addition, actions are not enabled exactly when they should (it seems that clicking on a None node enables the New command action and disables the Edit command action, but clicking in the empty area after selecting a true node does not, although it clears the selection).

Fixing one of these two issues will fix this bug. I recommend fixing both to be sure.

  1. Make actions return a success/consume bool. Check consumption in keyPressEvent and if the event is not consumed, do not return and continue checking the other actions by priority.
  2. Make sure you disable the Edit command when selection is cleared, enabling the New command at the same time.

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.