Giter Club home page Giter Club logo

iji-tas-mod's Introduction

Github downloads GitHub release GitHub release date GitHub commits since latest release

Iji TAS mod

Tool-Assisted Speedrun mod for Iji 1.7

Please note that Iji was made by Daniel Remar, and these modified game and source files are modified by me (https://github.com/Kataiser). You can find the game at http://remar.se/daniel/iji.php and the source code at http://remar.se/daniel/resources.php (in "Source codes and resources 1"). iji_17_tas.gm81, the main source file, is generated by running Build folder.bat and requires a registered Game Maker 8.1 to load and compile. Music files are not included, copy them from your copy of the game or download them from here.

Discord

https://discord.gg/8P9fjRW
Please consider joining if you're at all interested!

Download and installation

Iji_TAS_mod.zip (14 MB)
Doesn't include music, copy the music from your main game installation (or from here) Also doesn't include an auto-updater, check back to https://github.com/Kataiser/Iji-TAS-mod occasionally for updates
This tool to convert between Hourglass files (.wtf or .hgm) and Iji TAS files (.itf) may also be useful: https://github.com/Kataiser/wtf-to-itf

Syntax, controls, and documentation

Keys: escape, enter, U, D, L, R, Z, X, C, S, one-nine
Line syntax: number of frames to hold the inputs, followed by the inputs to hold, all separated by commas. Ex: 8,R,U to hold right and up for eight frames
// anywhere in the line (preferably at the beginning) is a comment and won't be executed
Save: command: creates a savestate file with the name after the colon (can include spaces). These take a frame, clear current input, and are not invalidated
End command: ends the TAS playback
Skip command: skips to the clear screen of the current sector

Space: load an Iji TAS file (.itf)
Right shift: pause/unpause
Right control: advance frame while paused
/ (forward slash): stop TAS execution, or restart the game if not currently executing
, (comma): load savestate, opens a file dialog
. (period): load most recently saved savestate
' (apostrophe): toggle crude hitbox rendering
; (semicolon): toggle debug text
\ (backslash): fast-forward (8x speed, or at least as fast as the game can run)

Debug text (white if running, light gray if not):
> Current line in file / step of execution / frames since start
> Frames on current step / Held keys
> Target FPS / actual FPS / activated instance count / activated enemy count
> Current RNG seed

Modifications

Only the bare minimum of changes to the game have been made to allow the reading of the inputs from a file, along with some minor changes to make creation much easier without affecting gameplay and the final playback.

  • Reading inputs from a chosen file, with guaranteed sync
  • Saving and loading of savestates
  • Pausing and frame-advancing
  • Deterministic RNG
  • Framerate control (due to the lack of delta-time in Game Maker 8.1, this doesn't affect gameplay)
  • Debug text and a hitbox viewer, both toggleable
  • Disabled Vsync

It broke!

Sorry. This is a work-in-progress mod of a complex game that I didn't make, in a different version of an engine that's already being pushed to its limits by this game. There's a to-do page over at https://github.com/Kataiser/Iji-TAS-mod/projects/1, and any reproducible bugs specific to the mod should be added to https://github.com/Kataiser/Iji-TAS-mod/issues and/or mentioned on the Discord.

Why not just use Hourglass?

I've already done a TAS of this game using Hourglass, and it's still a totally viable option. However, there were a few frustrations I had with it that I wanted to fix with this mod: you can't make changes to an existing TAS and have them propogate forward in time, you have to replay the entire TAS so far in fast-forward after reopening the game in order to continue, playback is laggy, it crashes occasionally, and it struggles to work with Iji 1.7. The only downside I'm aware of is that this is probably not allowed on tasvideos.org, if that's a motivation for you.

Contributing

If you made changes to or added a .itf file, here are the steps for sharing them.

  1. Fork this repository (need a GitHub account of course)
  2. Make changes in your fork, use a descriptive commit title
  3. Create a pull request in this repo

Or just ask me in the Discord and I'll upload the file myself

iji-tas-mod's People

Contributors

kataiser avatar nighthawkslo avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

nighthawkslo

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.