TIBiC/GO (TI Basic in C with Gaming Orientation) is a C library that provides a TI-BASIC style "API" for game programmers. TIBiC/GO creates a setting that most BASIC programmers will find quite familiar, and includes facsimiles of both BASIC functions and powerful graphical functions found in xLIB and Celtic. However, it's not just straight up BASIC-on-PC. TIBiC/GO adds a little extra "oomph" to the mix by allowing richly multi-color graphics, "permanent" data storage, the brilliance of sound, and much more.

There's actually a really good reason for this. As you know, working with TI-BASIC is a *great* way to get your feet wet in the programming pool. However, BASIC is exactly that: basic. Real-world applicable programming languages are, quite honestly, nothing like BASIC. They may share the same general procedural structure but BASIC and languages like C or Java are worlds apart. Suffice it to say, it wouldn't be strange for somebody transitioning from calculator to computer programming to have a bit of a struggle adjusting. TIBiC/GO is designed to provide a sort of "training wheel" layer between BASIC and ANSI C that gives programmers the comfort of BASIC, a good taste of C, and the ability to go beyond BASIC and into the world of true C programming whenever they want.

Of course, this isn't the only reason for TIBiC/GO's conception. There is another: GECGEAR

GECGEAR (Graphically Enhanced Calculator Game Emulating Application for Retrogaming) is an arcade/Steam analogue for TIBiC/GO games. Programmers can submit their written games to a repository. If approved, users worldwide can browse through, download, and play them.

Why? Well, no particularly good reason. I just thought it'd be cool to see games like Invalid Tangram DE or Phoenix or even my Yumé 84+ be able to get a few graphical and/or audio upgrades and be more easily playable (both in the sense of on a computer and in the sense of "I can't always carry a calculator, etc").

Of course, this is all concept. I might work on these things over the summer, might let the ideas rot. I just thought I'd share them.
Also, if you're wondering "why C?" well I see it thusly: Any engineering-type major is going to learn C, C#, and/or Java in college. At least around here. If you can learn C, you can learn anything. Why not head into it with a little extra advantage?


[edit] To clarify, I mostly intended GECGEAR's library to be TIBiC/GO ports of existing TI-8x+ games but original content is welcome too Razz

[edit] To FURTHER clarify, by "BASIC" I am referencing solely TI-BASIC. So.. uh... #define BASIC TI-BASIC Wink
I've had this thread open waiting for me to reply for at least three days, so I apologize greatly for my tardiness (hehe TARDInesS?). Anyway, let me see what I can do as far as expressing my thoughts on your ideas. (1) GECGEAR is a way to run calculator games on computer, except not quite, because the games are a little bit more powerful. I think a particularly cool bit of jiggery-pokery would be if it could run unmodified calculator games as well, without actually being a direct calculator emulator. I definitely support your "why not?" attitude; that's exactly what we go for here, because calculator programs and games are definitely not breaking world records of game speed or realism. Razz (2) TIBic/GO is a way to write C games, but sort of as if they were TI-BASIC, which nullifies some of my points in the preceding section. I was thinking of TI-BASIC with extra commands thrown in, but you're talking more about C with a library taken from the concepts of TI-BASIC. I'm wondering if TIBic/GO could be directly compiled for Prizm calculators! You certainly didn't mention anything that the Prizm couldn't handle with ease given a decently-written library.
I don't really have any fleshed out plans for GECGEAR so I can't say how it'd work. Personally, I was just thinking it would download and launch the external game programs so the games themselves would have to be compiled EXEs or something. I honestly have no clue how to make it run unmodified calculator games unless I port the entire TI-BASIC catalog to TIBiC/GO and have users compile their programs into executables but that just sounds painful.

In a way, TIBiC/GO sort of is TI-BASIC with extra commands thrown in. It's (however much of )TI-BASIC with all of ANSI C thrown in, heh.

Pretty much it's just dumbing down C (and Allegro, which the GO part of TIBiC/GO is going to employ so as not to spend 9001 years making it) so that people with TI-BASIC experience can ease into making computer games, but still leaving pure C accessible so you can slowly step out of your comfort zone into real programming.

The way I see it is TIBiC/GO is to 2D programming as Alice is to 3D programming.
This all make great sense to me, especially the dumbing-down of Allegra/C to make it more understandable to TI-BASIC programmers, and presenting this as a way to bring "toy" languages like TI-BASIC and full computer languages like C. Have you made any further progress on this as far as planning and conceptualizing?
For one, it's "Allegro" Wink

For two,

Except from Omnimaga Thread wrote:
Gonna start listing (confirmed?) graphical functions for the sake of my own memory and to enlighten any curious folks. At this point, color related arguments are purely speculative. I'm not sure if I want to have a single hex argument or 3 RGB arguments, hence the color argument's lack of type.

Horizontal ( int y_pixel [, line_color] ) :: draws a horizontal line at the specified pixel on the y axis in the specified color (or black if unspecified)
Vertical ( int x_pixel [, line_color] ) :: draws a vertical line at the specified pixel on the x axis in the specified color (or black if unspecified)
Line (int x_start , int y_start , int x_end , int y_end [, line_color] ) :: draws a line from (x_start, y_start) to (x_end, y_end) in the specified color (or black if unspecified)

Tilemap ( int matrix[][] , int size , source [, TBD extra arguments?] ) :: essentially a clone of the xLIB tilemapping routine. Gonna have to fudge with passing arguments from a parent function to Allegro child functions or something to see how it will work. The 'size' argument is the size of each tile side so you could put 8 for an 8x8 or 100 for a 100x100 if you so desired it.


Since the above post, I have confirmed that the color argument will be "char hex_color_value" but users can implement predefined color names such as "red" for #FF0000.

Currently, I've decided that users can set the window size to one of two defaults, COMPACT (384x256 pixels) and NORMAL (768x512 pixels), or a custom pixel size. Note that both defaults are multiples of the 96x64 pixel resolution of the TI-8x+ calculators Wink


[edit]
At one point, I thought about using "larger pixels" to better mimic the TI graphical interface but I threw that away because this isn't supposed to be a 100% conformist port of TI-BASIC, heheh.

Also, the TI large and small fonts will be replicated and made available as the default fonts. Can't beat the classic fonts Wink
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement