T-ITE v.0.0.1

T-ITE v.0.0.1

  • Tero Hannula
  • 3 weeks ago
  • 41st

Fantasy console with integrated development environment.

Basically Pico-8 clone.


In Windows you can copy project to clipboard with Ctrl+S, and load with Ctrl+O.

  • SAVE CONSTANTLY! T-ITE is prone to crash.
  • HTML5: you cannot open/save project, as GMS don't let you use clipboard.
  • HTML5: If keyboard is unresponsive, click outside game screen.

Example Game

  1. Copy text
  2. Add 5 tabs (T-ITE crashes less tabs open than in project you will load).
  3. Open in T-ITE with "CTRL + O"
  4. Press F5 to run

Add your games to this folder:

T-ITE GAMES

Putting your game in comment will break the string because of multiplier-symbols. So put your games in this Google-drive folder and I'll play them :)


When you pronounce "T-ITE" like a finn, it sounds like "tee ite" which is short from finnish "tee-se-itse" (do-it-yourself).


  • Fullscreen: F4 or Ctrl+Enter.
  • Change window size: F1-3 (+shift for more sizes).
  • F5 to run the code.
  • Escape to swap between console and editor, or exit game.
  • Ctrl+N to empty project.


Variable scope is within "{...}". Example picture

  • Variables only exists within bracket where it was defined.
  • Therefore when bracket closes, all variables defined inside this bracket will close too.
  • Variables defined outside any brackets will live indefinetly -> they are globals variables.

You must use semicolons, and therefore "var i = 0" will cause error, instead you should write like "var i = 0;".

Game can show 16 colors at given time.

  • Palette can be changed with "plte(...)" function
  • Colors are indexed 0-15.
  • You can change color of given index from larger palette of 48 colors.

Known problems

  • Game crashes when you try load project with more tabs than currently exists (add more tabs before opening).
  • Multi-line copy/pasting might not work correctly.
  • You cannot delete selections.
  • Hightlights of syntax-errors is all over the places.
  • There was "for"-loop, but it had bug+memory leak, so I didn't include it. Use "while" instead.
    • I think I forgot to add override for music, so music(1) will start new one without stopping previous


List of native functions:

  • plte(color, palette); // Changes color (0-15) to given palette color (0-48).
  • rect(x1, y1, x2, y2, color, outline); // Draw rectangle
  • circle(x, y, radius, color, outline); // Draw circle
  • text(x, y, color, string); // Draw text
  • mx(); // mouse x-pos
  • my(); // mouse y-pos
  • left(); // Arrow keys. hold.
  • right(); //
  • up(); //
  • down(); //
  • space(); // Space-key. hold
  • sound(index); // Play sound with given index
  • music(index); // Play looping music
  • Most common math functions (sin, abs, sign...)

Array functions:

  • a = array(size, value); // Creates new array with given size and value
  • set(a, i, value); // Sets value in array
  • get(a, i); // Gets value from array
  • length(a, i); // Gets length of array

Print adds text-line in console, not seen in-game.


Used music from marketplace:

You must be logged in to leave feedback
Log in Register an account
  • PizzaBandit

    This is awesome, love it

  • Jackaroo
    Jackaroo Jackaroo Level 9

    This is really impressive. Amazing you put all this together in just 48 hours. There are certainly bugs and I had it crash on me a few times. Took me a while to figure out how to even open a project too.

    I didn't manage to create anything myself but I played some of the stuff that others had created and it really is cool what can be done with it. Baku's snake game in particular was a lot of fun (I saw that being developed in the discord).

    It will be really good to see this develop further.

    • Tero Hannula Tero Hannula
      Level 44
      Developer

      Thanks for trying this out :) Bakus sneksty snekonds was brilliant, surprised me how good game can be made this thing ^^

      This whole thing is buggy mess x) Yeah, I think I'll make new version (hey, this jam entry was version 0.0.1 ;D ), and I have already rewrote text editor, and currently planning to write interpreter as extension for more speed. Though I might target this for Android app, so have to think how that too.

  • Wahoo
    Wahoo Wahoo Level 14

    Even just playing Baku's SNEKSTY SNEKONDS, this was awesome! I've impressed you fit this all into 48 hours!

    • Tero Hannula Tero Hannula
      Level 44
      Developer

      Thank you for trying it out :) I am actually surprised how good game Bake made with T-ITE :D

      This was bit overscoped, but atleast I managed to do something 'useable' :P

  • baku
    baku baku Level 53 Patron

    Relation to the theme aside (yeah, I hated it too)—wow this is incredibly cool. I never used PICO-8 but if it's like this then I honestly see the appeal lol.

    After having played with the examples and games made by others, I wanted to try and make something myself. Thought Snake would be a good one to replicate. At first I kept constantly slipping into my normal programmer habits, which include heavy use of the end key, which here makes the program crash XD So it took some getting used to, but eventually I got into the groove. After having poked at the limitations of how while loops and arrays work, and a few hours later, I got my thing to work.

    I've uploaded my game SNEKSTY SNEKONDS to the google drive for anyone to try 🐍

    • Tero Hannula Tero Hannula
      Level 44
      Developer

      Thanks for trying T-ITE and I loved your game :D Didn't think you could game this good with it ^^

      Score I managed to get 40 points, it got pretty fast eventually and couldn't keep up x)

      Themewise, yeah this doesn't relate to it any way. I wanted to include base-game with T-ITE, which was about 60sec. But that I made after jam, so it can't be taken as part of entry.

      Actually I had never used Pico-8 program myself either, just read and watched videos and got inspired to do fantasy console. But just before jam I remembered I had bought Itchio's "Bundle for Racial Justice and Equality", which included Pico-8! So it's quite funny that I made bootleg Pico-8, when I have only used it for 10 minutes ^^

  • Jupiter Hadley
    Jupiter Hadley Jupiter Hadley Level 12

    Really interesting console! I included it in my GM48: Sixty Seconds compilation video series, if you’d like to take a look. :) https://youtu.be/nuQFkyHHiV8

  • Veralos
    Veralos Veralos Level 37

    This seems very impressive for something created within a jam time span! Unfortunately I couldn't get drawing to work. Even the basic "hello world" code doesn't seem to do anything. I could play sounds though, and managed to rig some up to play with key presses and on a timer.

    The example game you linked in the description has restricted access. I'd like to see what this system is capable of, so I'd prefer to check it out the example before giving a rating.

    • Tero Hannula Tero Hannula
      Level 44
      Developer

      Hi, well thanks for trying :) I had hard time to get this working in any way and you can put blame on me making it unintuitive ^^" First "print" doesn't do anything in the game, but prints line in the console, so it is moreof debugging. Console can be accessed by pressing ESC in editor, and return to editor by pressing ESC again.

      The link shouldn't have restricted access, I'll fix that.

      Also remember to add tabs 0-5, as opening project with less tabs than file you are opening will cause crash ^^"

      Edit. Can't put the thing in the comments as markup does strange things to it ^^"

      Edit2. Updating game description to be more clear. (For example there was typo, "rect()" draws rectangle, not "rext()".

      • Veralos Veralos
        Level 37

        Thanks for the updates. Yeah, I think the rext/rect thing was one the major issues I was having.

        Anyway, I managed to give it a proper go and was impressed by how powerful it is! After some experimentation I was able to make a simple pong game (I added it to the drive folder). It's amazing how you managed to make such a functional tool in such a short time. It's bit sneaky how only the demo game uses the theme, but I'll let it slide.

  • C0DERP1GLET
    C0DERP1GLET C0DERP1GLET Level 33

    You certainly know your audience. I have no idea now this program fits the theme but I made I game I'm quite proud of. Check it out:

    [ [ "hs = 1;", "y = 0;", "vv = 0;", "vol = 400;", "str = 20;", "gr = 0.5;", "sv = 0;", "s = 0;", "ex = 138;", "music(1);" ], [ "fn update() {", " ex = ex-2;", " if (ex<-10)", " {", " ex = 318+sin(s100)200;", " s++;", " sound(0);", " }", " if (y <= 0)", " {", " y = 0;", " sv = 0.7;", " sv += -(str - vol\/str) 0.1;", " str += sv;", " if (space())", " {", " vv = 10;", " y += vv;", " }", " }", " else", " {", " vv = vv -gr;", " str = 3*abs(vv) + 20;", " y += vv;", " sv =-5;", " }", " if (ex < 84 and ex>44 and y == 0)", " {", " if (s > hs)", " hs = s;", " s = 0;", " ex=200;", " sound(1);", " }", "}", "" ], [ "fn draw() {", " f = 100-y;", " text(64,10, s,s);", " if (y <= str\/2)", " {", " f = 100-str\/2;", " }", " rect(0,100,128,128,1,false);", " rect(64-vol\/str\/2,f-str\/2,", " 64+vol\/str\/2,f+str\/2,2,false);", " i = 0;", " while (i<20)", " {", " i++;", " rect(ex-i\/2, 80+i,ex+i\/2,", "100,6,0);", " }", " text(62,108, hs,\"HS:\");", " text(64,114, hs,hs);", " ", "}", "", "" ] ]

    I had the program crash a few times, which was a bit sad but expected with a project this advanced. I quickly learned to save before I played and then everything became frictionless.

    Awesome.

    • Tero Hannula Tero Hannula
      Level 44
      Developer

      Thanks for trying T-ITE :) Could you put your game in this Folder as GM48-sites markup breaks the code.

      Sorry about crashes, there are lot of places where it can crash, so yeah, you should use Ctrl+S constantly^^"

      Edit. I liked your game :D I was suprised to see triangles, as I didn't include commands for them ^^

      • C0DERP1GLET C0DERP1GLET
        Level 33

        Thank you and sorry for my terribly explained code. And just a random thought: Do you think it would be allowed to submit a T-ITE game in the next round of GM48?

        • Tero Hannula Tero Hannula
          Level 44
          Developer

          I don't think you can, as GMS should be used. Although technically rules says "Games must be compiled using GameMaker", you could stretch interpretation? Although it woud clash with the spirit of GM48.

  • Junction Games

    Cool idea! Wasn't fully sure how to make it all work though. With some more instructions and polish, you've got yourself a solid game right there!

    • Tero Hannula Tero Hannula
      Level 44
      Developer

      Thanks for trying :) Yeah, but it was hard to get this thing work alltogether ^^" I did really want to make sprite-editor, but just couldn't even start doing it, code editor took surprisingly long time.

      If you want to retry, here is example game: example game

      In T-ITE open 5 new tabs, and then press Ctrl+O, and it will open this project. Pressing F5 will run it. (example uses 6 tabs, and if T-ITE has less open than project you try load in, it crashes :s )

      I'll make more instructions to page description, look for them later

  • scottgoldsmith

    Super cool that you made a game development tool.

  • thinker227
    thinker227 thinker227 Level 6

    This is a really impressive game, developing a (albeit not very developed but still fully functional) programming language in GM. Although it doesn't really have anything to do with the theme.

    • Tero Hannula Tero Hannula
      Level 44
      Developer

      Thanks for trying :) It doesn't directly have anything to do with theme, but I wanted to make this, and then inside it a game which is related to the theme ^^

      Here is example game you can load in: example game

      In T-ITE open 5 new tabs, and then press Ctrl+O, and it will open this project. Pressing F5 will run it.