Skip to content
View nkrapivin's full-sized avatar
🐱
exactly.
🐱
exactly.

Highlights

  • Pro

Organizations

@OpenOrbis @ZeusPlugins @USPAssets

Block or report nkrapivin

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
nkrapivin/README.md

Hello 👋!

I don't really like emotes so that wave will be the first and the last.

My name's Nik, or Nikita Krapivin if you prefer boring legal names, I speak English and Russian, my timezone is UTC+05 or MSK+02.

I'm 19 years old, my current occupation is doing console ports. I (currently) study at PMK

How to reach me

  • Discord: nik5351
  • E-Mail: basically the email I use for my git commits, well, alienoom (the at symbol) yandex (dot) ru
  • Twitter: (at) nkrapivindev
  • GitHub: you're here!
  • VK (Russian only please): (at) nkrapivindev

I'm also present at some Discord servers related to GameMaker research like Underminers and the GameMaker Kitchen.

Oh, right, here's a list of my activities, boring adults call this a CV:

Console Ports!

  • Wally and the FANTASTIC PREDATORS

    My first ever commercial console port! Out on Xbox One/Series (back compat), PlayStation 4/5 (back compat) and the Nintendo Switch.

    Uses Kotfile for saving and NekoPresence for Discord Rich Presence.

    The leaderboards and cloud save servers for the VK Play version are powered by Kotodoski and Deta Space.

    Made with GameMaker.

  • Space Scavengers

    A pretty simple game that I ported to PlayStation 4/5 (back compat) in a few weeks, has PSN leaderboards and trophies.

    Uses Kotfile for saving.

    Can't say much else about it, it's just a simple game.

    Made with GameMaker.

  • Deep Space Shooter

    Ported for Valkyrie Initiative to the Nintendo Switch.

    Made with GameMaker.

  • Hunahpu Quest. Mechanoid

    Ported for Valkyrie Initiative to the Nintendo Switch.

    Made with Unity. My first ever experience with this engine, actually.

  • Stones Keeper

    Ported for Valkyrie Initiative to the Nintendo Switch (Xbox One planned in the far future).

    (Was?) Made with a custom engine in C++ and Windows's OpenGL (WGL), also Audiere as the audio backend.

    I integrated the SDL2 library for controls, saving and pretty much everything. This worked well on the Switch.

    (Thanks to Ryan "icculus" C. Gordon, Ethan "flibitijibibo" Lee and many others for maintaining the Nintendo Switch port of SDL2!!)

    Then I replaced the Audiere backend with mojoAL since Audiere is licensed under LGPL and I couldn't use it on the Switch.

    After all of my changes I was also able to run this game on the Xbox One with relative ease,

    however, some things in SDL2 for GDK were not implemented, so I implemented them and contributed my code back.

    Overall this was the coolest projet to work on, looking forward to more Xbox/GDKX stuff.

  • The Excrawlers

    Ported for Valkyrie Initiative to the Nintendo Switch.

    Had to tweak the controls a little, and also saving.

    Made with GameMaker.

  • The Sin

    Ported for Valkyrie Initiative to the Nintendo Switch.

    My first ever Ren'Py port!

    This is a kinetic visual novel with no interactions and the default Ren'Py UI,

    so it was a good first candidate for porting, which also proved that my port passes Lotcheck.

  • Athanasy

    Ported for Valkyrie Initiative to the Nintendo Switch.

    My second Ren'Py port! This time a more complex VN.

    Thanks to the original dev team for helping out with art assets.

  • OMNIMUS

    Ported for Valkyrie Initiative to the Nintendo Switch.

    My third Ren'Py port! This time with video playback and system on-screen keyboard integration.

    Thanks to the developer for providing all the art assets to our team and being very helpful in general.

  • Mondealy

    Ported for Valkyrie Initiative to the Nintendo Switch, Xbox One + Series X|S + PC (Xbox Live), PlayStation 4, GOG (Galaxy SDK), VK Play (Fume) and Linux (Steam Deck)!

    The biggest porting project so far! Also uses NekoPresence for Discord Rich Presence on PC.

    Denis is very cool I hope you have a very awesome life!!!

  • Skelethrone: The Chronicles of Ericona

    Ported for Valkyrie Initiative to the Nintendo Switch, Xbox One + Series X|S + PC (Xbox Live), PlayStation 4, GOG (Galaxy SDK), VK Play (Fume) and Linux (Steam Deck)!

    This is Valkyrie Initiative's first PlayStation 4 release, Mondealy was the second release due to sudden release date changes.

Native extensions for GameMaker

  • NekoPresence

    This is an open source wrapper around Discord's rich presence library for GameMaker.

    It's used in many games, for example Mondealy: Day One, Vividerie, MAKE ME REAL or Wally and the FANTASTIC PREDATORS.

  • GMESCAPI

    This is a fork of the ESCAPI webcam library that adds GameMaker support, so yeah, this is a webcam extension for GameMaker.

    Sadly I don't know of any public games that actually use it, maybe because it's kinda spooky to take pictures from the webcam nowadays? Who knows.

  • libmulti

    This is a library to create and manage multiple windows from GameMaker, very useful for in-game tools like level editors or whatnot.

    It's using Direct2D for rendering and accepts GML surfaces as canvases.

GML libraries for GameMaker

  • Kotfile

    This is a callback-driven library for easy asynchronous file operations in GameMaker.

    Very important if you're porting a game to consoles and want to pass certification.

    Right now Kotfile is used in Wally and the FANTASTIC PREDATORS

  • BnvibCrap

    A small 'audio player'-like class for Nintendo Switch HD Rumble files (aka .bnvib).

    It has the ability to play, stop, pause and rewind bnvibs, it also allows to play looping bnvibs that have loop points assigned in them.

    It's also used in Wally and the FANTASTIC PREDATORS.

  • gmlUPnP

    A pure-GML implementation of the UPnP protocol, very useful if you want to do automatic port forwarding in a multiplayer game on a compatible router.

  • I also made workarounds for some issues with the new Steamworks extension on Linux, but nowadays they're obsolete due to the Steam Runtime migration on YoYo's side.

...and basically doing what YoYon't (I'm sorry)

  • kvAberrationFilter

    A port of Keevee's aberration shader as an IDE layer filter, yes, not approved by YYG.

  • bktGlitchFilter

    Same thing except it's a port of odditica's bktGlitch shader.

Reverse engineering work that's not related to YoYoGames

  • epos.py

    A Python library to communicate with the EPOS web diary used in Russia, Permskiy krai.

  • I'd list more but I probably shouldn't... :|

Making software

  • Undertale Spaghetti Project installer

    I made an installer for a fan italian translation of Undertale, called the Undertale Spaghetti Project.

    It's written in C#, the UI is written in Avalonia, and compiled with .NET 5 for Windows, Linux and even macOS!

  • JniGen

    This is a tool to generate glue JNI->C code for native C/C++ Android GameMaker extensions.

    Since GameMaker's Android module doesn't allow you to call into C/C++ native libraries directly, you need to go through the awful chain:

    GML -> C++ (engine) -> JNI -> Java (engine java code) -> JNI -> C/C++ (your extension)

    And JniGen allows to automate this process a little.

See ya~

Pinned Loading

  1. ZeusPlugins/ZeusPluginLoader Public

    Please YoYo don't patch this.

    Batchfile 9

  2. libmulti Public

    Create and manage your own windows from GameMaker!

    C++ 14

  3. libLassebq Public

    A WIP YYC modding library for various games.

    C 17 2

  4. NekoPresence Public

    An open source alternative to rousr's Dissonance.

    C++ 44 2

  5. Pingo-GMS2 Public

    A rewrite of @Grzybojad's Pingo on GMS2.

    Game Maker Language 7

  6. wavload Public

    A small example that demonstrates how to externally load .wav files.

    NSIS 6