Dev Kit Pokémon SDK

Nuri Yuri

Novice
Member
Posts
17
#1
Hi everyone! Recently I saw that Pokémon SDK is getting more and more intention in the English speaking community so I decided to officially introduce PSDK in English :)

What is PSDK?

PSDK is a French Pokémon Fangame Making Engine created by Nuri Yuri after getting tired of the Pokémon Script Project issues.
This engine (PSDK) is born during the development of Pokémon Gemme, I (Nuri Yuri) basically wanted to rewrite the old engine (PSP) to allow stuff like double battle, online interactions etc… I somehow achieved to get those features but they’ll evolve because unlike all the actual starter kit, PSDK is constantly evolving and getting fixes (PSDK got more update in 2 year than Essentials or PSP in their whole life).

Note: I never really used Pokémon Essentials; the only time I had to use Essentials was when I worked on the Encryption & the Audio module of Phoenix Rising.

Technical specifications of PSDK

  • Ruby Version : 2.5.0 (Windows)
  • Supported OS : Windows 10, Debian, Ubuntu
  • SFML Version : 2.5.x
  • FMOD Version : 1.10.02
  • Framerate : Using Vsync by default (40, 60, 144, 240Hz)
  • InGame Framerate : 60FPS
  • Ruby Gems support : Yes (Game gem <command>)
  • Bundle support : Yes (Game bundle <command>)
  • Socket support : Yes
  • yaml, json, csv support : Yes
  • OpenSSL support : Yes
  • HTTPS support : Yes
  • Thread support : Yes
  • Fiber support : Yes
  • Mutex support : Yes
  • Win32API support : No, use open sourced library instead (gems or build them using rake).

What are the features of PSDK?

- Native Ruby 2.5: Unlike Essentials that still use Ruby 1.8.x (very slow version of Ruby) or MKXP that is built like the RGSS (statically). PSDK uses a native version of Ruby; its dependencies can be built and used in a native Ruby distribution. This allows you to use stuff like Net::HTTP, use HTTPS for your game or use some Ruby gems if you don’t want to reinvent the wheel.

- LiteRGSS: This feature is in fact the Graphic render engine of PSDK, it’s based on SFML and allows you to use fancy stuff like shaders. It also suppress the screen size limit of the RGSS (640x480); displaying the game in x4 (1280x960 in native res) won’t lag/glitch more than displaying in x1 (320x240 in native res).

- FMOD: This feature is the Audio engine of PSDK, it’s using the FMOD v5 that allows reading sound file tags, fading audio, pausing audio for a certain amount of time etc… It’s already implemented in the Audio module of PSDK so you don’t have to worry about the compatibility (unlike using the RGSS FmodEx script or the utra-gliched old FmodEx script).

- A basic day/night time system. This system can be stopped; can use the computer clock or an internal clock. It uses Zone information to display the tone or not.

- A basic MAP-LINKER. The map-connection of Essentials is a laggy as hell, probably because it’s too complicated and because it uses more resources than necessary. The PSDK Map-Linker is basic, you can link only 4 map (but you can split your maps since the zones can include various maps) and the current two drawback are that your linked map should share tiles at the same position in the tilesets and the system does a lot of calculation between warp (~40ms).

- A Follower System. You can be followed by your Pokemon, the other party Pokemon (friend) and the other actors of the RMXP database. There’s no limit in the number of character that can follow you.

- Shadow on character. Since character can jump and does stuff like that, it’s not conceivable to have the shadow integrated on the character graphic.

- Double battle, it’s expected but it cost nothing to say it’s here.

- P2P battle. I made some experiment that can allow two players to battler without using a server, if one of the player is able to open a port (thanks to LiteIGD), the two players will be able to communicate in order to battle.

- Ruby Host: this is the database editor of PSDK. (Currently it’s a serialized database so it requires an editor).

- Official X/Y translations. PSDK includes some of the official translations from Pokémon X/Y, ORAS, SUMO to automatically translate some game functionality (like battle). This will help you to focus on your game contents instead of everything around.

- CSV dialog translation system. This system is a translation system that relies on CSV files. This allows you to use Google Sheet to manage your translation (more efficient that sharing a text file). All you’ll have to do is to export your translation in CSV.

- An efficient UI system that reduce the amount of computational code and increase descriptive code. (SpriteStack and the UI module).

- The system tags. Instead of increasing the number of terrain tag, PSDK adds the SystemTags that can be combined with terrain tags. The system tags can define sliding tiles, tall grass tiles, tiles that requires you to be on the Acrobike to walk on them and so on.

- A particle system. This allows you to show animations on the player when he walks on tiles (using the system tags) and this also allows you to display emotions.

Note: The Ruby version can change, if you’re under Ubuntu it’ll be Ruby 2.3, if you’re under Windows, you’ll be able to use the new Ruby Version.

What are the incoming features of PSDK?

In the last days of December 2018, PSDK Alpha 24 will be released. It adds a lot of functions to the map system (animations & interactions).
The next year (2019) will be focused on the new Battle engine (sub-project of Pokémon Gemme).
We also add more text data to help the project to be versioned on git. Data will be using JSON; event will be described with YAML and pure Ruby (instead of clicking buttons in RMXP). Tiled2RXDATA will be enhanced. Obviously, you’ll still be able to use the old method (RMXP) but that’s not what we recommend.

Screenshots

SystemTag editor

WorldMap editor

PSDK Systems

Non Critical Error during an event

Multi-Language support

Downloads

You can download a demo PSDK project on this MEGA Link: https://mega.nz/#!hB0CHQoL!jjVReEvIrlkwsAxBb35PjIni3B_Kw7PLJ3gE_crW3BE
Or you can get to the Pokémon Workshop Discord in order to get the last demo PSDK project and get notified when a new update gets released: https://discordapp.com/invite/0noB0gBDd91B8pMk

Documentation

There are two documentations for PSDK.
The liteRGSS documentation (Game Engine): https://psdk.pokemonworkshop.fr/litergss/
The Pokemon SDK documentation (Pokemon Engine): https://psdk.pokemonworkshop.fr/yard/


PSDK also has a wiki with few pages documented in English: https://psdk.pokemonworkshop.fr/index.php/Accueil/en
How to get support / help

We made english channels for PSDK on the Pokémon Workshop discord. Most of the maker on this discord use Pokémon SDK so they can help.

You can also mention Nuri Yuri in the help channel of PokéCommunity or RelicCastle. (People on RC/PC don't know well PSDK so don't forget the mention.)

Credits

All the credits are maintened up to date on this page : PSDK Credits
 
Last edited:

Simeo

Super Duper Highschool Miltank
Member
Posts
13
#4
Fautes d'orthographe et fautes de frappe, ca fait vraiment cloche sur une présentation pour vendre un produit

Sorry I didn't know how to explain in english :3
 

Dragonite

Have they found the One Piece yet
Member
Posts
207
#5
I've seen you talking about this in dev-discussion. Should be interesting to see what people make of it!

You could have chosen literally any language and yet you still chose Ruby though.
 

Nuri Yuri

Novice
Member
Posts
17
#6
@Simeo : Si tu peux me transmettre les fautes ça m'intéresse ^^'

@Dragonite : I'll try to gather screenshot of project on PSDK :)

For the language, I have choosen the one I was fine with it and the one that isn't really hard to learn/use. I could've made everything in C++ (the LiteRGSS is written in C++) but everytime you want to change something, you have to build everything (which is very slow under Windows) and some user could get Segmentation Fault and won't be able to fix them. The other problem is adding stuff, with Ruby if I want HTTP I just write "require 'net/http'" and I can perform HTTP request, in C/C++ you have to find a good library that isn't painfull to use.

(I could also choose python, perl or lua but I don't like those x))
 

Ruler

Dreamer
Member
Posts
3
#7
This looks really interesting, and I'm looking forward to messing around with it in the near future.
Just one question though (and I feel like I already know what the answer is, but I'll ask anyways): considering how different the code is, I'm assuming that established Essentials scripts would have to be redone for SDK right?
 

Nuri Yuri

Novice
Member
Posts
17
#8
Most of them yes.
And all the scripts that requires text display cannot be imported since in PSDK it's forbidden to draw stuff using bitmaps (for obvious performances reasons). We display text in a completely different way. A good example can be this : https://gitlab.com/NuriYuri/pokemon... Elements_d'interface/02000 UI__TeamButton.rb (it's one of the status bar shown in the party menu).

Some script probably has equivalent feature in PSDK, otherwise it should be requested as a feature so we would add this in futur update ^^ (I just need a lot of time to implement the thing)
 
Top