Omnimaga

Calculator Community => Discontinued => Major Community Projects => Correlation => Topic started by: Hot_Dog on February 25, 2011, 06:32:38 pm

Title: Correlation: Correlific Mode!
Post by: Hot_Dog on February 25, 2011, 06:32:38 pm
Beta testing for Correlation will now take at least a month instead of at least three weeks.  That is because I'm going to implement a very special mode to make Correlation the Ti-Basic Library of all Ti-Basic Libraries.

CORRELIFIC MODE!

I'll tell you what Correlific Mode is tonight (I don't want to spoil the surprise), but to give everyone a hint, you can create Mario/Pheonix/etc. like games at near Axe speed, although there will be some tiny lags (like a short pause when you ask Mario to shoot a fireball).  Correlific Mode allows you to do so much so fast, it requires a seperate instruction manual.  While it will be easy, it will not be for beginners.  I'm posting this as a topic because some people may want to offer suggestions, hints or compliments (and compliments are quite welcome ;D)

Correlific Mode will not be available in the beta version of Correlation because I will be testing it with Hover.
Title: Re: Correlation: Correlific Mode!
Post by: yunhua98 on February 25, 2011, 07:41:31 pm
hmm...  does it increase the speed or allow you to output homescreen text at any location?
Title: Re: Correlation: Correlific Mode!
Post by: program4 on February 25, 2011, 07:56:25 pm
I was thinking maybe sprites like on the graphscreen, except it is really on the homescreen, since Hot Dog mentioned Phoenix.  ;)

EDIT: Or, maybe a option to shift the screen to get the side-scrolling effect.
Title: Re: Correlation: Correlific Mode!
Post by: Michael_Lee on February 25, 2011, 07:58:34 pm
TI-Basic at almost Axe-like speed?

I can't wait to see!
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 25, 2011, 08:20:03 pm
Does it actually replaces most commands that draws on the LCD like a new interpreter? O.O
Title: Re: Correlation: Correlific Mode!
Post by: program4 on February 25, 2011, 08:31:15 pm
Does it actually replaces most commands that draws on the LCD like a new interpreter? O.O

Maybe it's an optimized version of TI-BASIC? I'm not sure how hard that would be to create, though.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 25, 2011, 08:42:08 pm
Yeah I assume it would be massive. But I think he might have just changed the few commands that displays text, lines, etc.
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 25, 2011, 09:08:17 pm
Okay, another hint: It is not optimizing or replacing any Ti-Basic commands. (Otherwise this would never get done!)
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 25, 2011, 09:14:39 pm
Hmm does it simply makes everything be drawn on the buffer and not the LCD, until the DispGraph command is encountered, like with xLIB?
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 25, 2011, 09:17:16 pm
Hmm does it simply makes everything be drawn on the buffer and not the LCD, until the DispGraph command is encountered, like with xLIB?

Nope :)  Not fast enough
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 25, 2011, 09:55:29 pm
Lol, then I don't know, sorry. X.x

If it's something really technical, I'll still have no clue what it is even when you reveal it, though, anyway. :P
Title: Re: Correlation: Correlific Mode!
Post by: AngelFish on February 25, 2011, 09:59:25 pm
Let me guess: a hooked third-party parser.

That's the only way I can imagine that you're going to get rid of overhead of the TI-BASIC parser, which is undoubtedly necessary for "Axe-like" speed.
Title: Re: Correlation: Correlific Mode!
Post by: ztrumpet on February 25, 2011, 10:02:09 pm
I have no idea.  Regardless, it sounds really cool. ;D
Title: Re: Correlation: Correlific Mode!
Post by: shmibs on February 25, 2011, 11:18:16 pm
pre-parsing, perchance?
that would make the app a bit massive as well, though...
¯\(o_o)/¯
Title: Re: Correlation: Correlific Mode!
Post by: leafy on February 25, 2011, 11:23:23 pm
Overclocking? Or something else that wouldn't affect getKey speeds
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 26, 2011, 12:19:45 am
Okay, here's the answer: A game engine with scripting.  Don't worry, I'll explain it!  But the concept is similar to Game Maker or the Starcraft Campaign Editor.

With Ti-Basic, every line has to be translated and interpreted, and as you know it makes it slow.  Even if you use an ASM library or a parser hook, you have to eventually return to Ti-Basic, after which the slow speed returns.  The idea behind Correlific Mode is to keep your Ti-Basic game in ASM as long as possible. 

To start, you get to use Str0 - Str9 to hold text that uses a custom font.  This can be map data, single characters (for sprites) or strings--anything you would normally use with Correlation.  You then create a bunch of lists of numbers, numbers that tell Correlation what to do with these strings.  The numbers make tell Correlation to "make Mario jump," "move this tilemap with smoothscrolling", "have this car bump into this one", etc.  Correlation takes this data and runs a game completely in ASM, doing what you asked it to with the scripted data.  The game will go to Ti-Basic only when it must, that is, when there is something you want to do that the Correlific Game Engine cannot do.  (This is where lags come in)

I am not going to say much more for right now because I want you to keep on thinking that this will be easy.  It WILL be easy.
Title: Re: Correlation: Correlific Mode!
Post by: AngelFish on February 26, 2011, 12:23:48 am
/me drools
Title: Re: Correlation: Correlific Mode!
Post by: shmibs on February 26, 2011, 12:28:36 am
so i was *sort of* right in my guess(at least in the analysing beforehand and doing everything via asm part)?

i am SO pumped for what this should do to the future of BASIC programming.
Title: Re: Correlation: Correlific Mode!
Post by: Freyaday on February 26, 2011, 01:22:24 am
*Candace giggle* Custom fonts.... *drools*
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 26, 2011, 01:26:54 am
*Candace giggle* Custom fonts.... *drools*

Wait, is this the first time you heard of custom fonts with Correlation?  You should read this:

http://ourl.ca/7842

This is Correlation's main purpose: Custom fonts.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 26, 2011, 02:31:24 am
Darn this seems interesting. Will it increase Correlation size greatly? This should hopefully make it much easier for BASIC coders to code fast games without having to deal with Axe tilemaps and the like.
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 26, 2011, 02:34:45 am
Darn this seems interesting. Will it increase Correlation size greatly?

Correlation is an application, so it's going to be 16 KB no matter what.  With that said, I have 12 KB of space left, more than enough. 

Unfortunately, Correlific Mode does require up to 2 KB of user RAM, but I feel that the results will be more than worth it.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 26, 2011, 02:39:26 am
Ah ok, I thought it might make Correlation 2 pages if there were a lot of games libs added. Could somebody potentially even create a GameMaker/RPGMaker type program with this, making it even easier to put games together?
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 26, 2011, 02:42:49 am
Ah ok, I thought it might make Correlation 2 pages if there were a lot of games libs added.

Ok, that makes sense

Quote
Could somebody potentially even create a GameMaker/RPGMaker type program with this, making it even easier to put games together?

You bet!  It will be that easy.  I'm hoping somebody will want to once Hover demonstrates the potential.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 26, 2011, 02:44:00 am
Nice, and another thing: will the entire data be stored into archive?
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 26, 2011, 02:45:20 am
Nice, and another thing: will the entire data be stored into archive?

Data is stored in lists.  That means you need a Ti-Basic program or something.  It may require space, but it makes things so much easier for those programming directly on a calculator
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 26, 2011, 02:52:27 am
Yeah but I mean can the lists be archived? Also for some data will it be possible, for example,  to put several data parts in one list elements such as {2,7,3,8,1,8,2,7,3,9} instead of {27381,82739} to save space? (since one list element is 9 bytes large no matter the content)
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 26, 2011, 02:54:38 am
I'm actually going to come up with some other form of storage, cause you have a point
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 26, 2011, 02:59:35 am
One thing that could be used are actual programs, but then you would need to make sure it's user-friendly enough.
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 26, 2011, 03:06:21 am
An AWESOME idea.  Then they can be archived.  However, Correlific will still need up to (but maybe less than) 2 Kb of RAM
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on February 26, 2011, 03:07:56 am
Cool, no problem I guess. I also thought about hex, but then this makes data much harder to edit.
Title: Re: Correlation: Correlific Mode!
Post by: TIfanx1999 on February 26, 2011, 08:31:20 am
This sounds really sweet. I'm looking forward to seeing this in action! =)
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on February 28, 2011, 03:52:16 am
I needed a study break, so I put a list of scripting commands I have so far (meaning more to come).  Remember, this topic is up in case anyone has ideas or thoughts.

By default, the 10 strings, Str1-Str0, are treated as sprites with Correlation in Correlific Mode.  However, you can place a map (tilemap) in Str0, and use Str9 for a sprite that will be displayed several times on the screen, such as for firing a weapon.  You MUST pick ONE sprite method (XOR, OR, etc.) for each string.

During Correlific Mode, you assign a list of commands to each string.  Correlation will read each list, one element at a time for each list (and then repeating the process) to make things happen to the sprites.  Here's my list of commands so far:

Move a sprite (or a map) in one of eight directions a number of pixels
Check for Collision with the map
Check for Collision with other sprites
If Collision, Goto spot in List
If no Collision, Goto spot in List
If Certain Key pressed/held, goto spot in list
If Certain Key not pressed/held, goto spot in list
Change String (To modify a sprite or a map)
Goto Label in program.  The label must be a number, and this is done when you want to do something that the Correlific game engine cannot do

By the way, animated tiles and other stuff work normally in Correlific Mode, except that you cannot assign Word Wrap, Map Mode, Clip or Wrap.  These are done automatically.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on March 02, 2011, 01:54:25 am
Interesting. I wonder how the commands will look like, especially the ones requiring arguments?
Title: Re: Correlation: Correlific Mode!
Post by: willrandship on March 02, 2011, 02:00:45 am
So, will Correlific use the Correlation fonts for sprites, or will it have hex sprites? Also, with all that extra space in the app, any chance for an on-calc font editor? :D

BTW love the sound of this. There's a point where a project is just too big for me to remember all my pointers in axe, and I need something that's not BASIC :P will it be semi-stable, or crash if you type wrong?
Title: Re: Correlation: Correlific Mode!
Post by: AngelFish on March 02, 2011, 02:03:28 am
Perhaps they'll look like dim(29,46,3,1,54/"4C4C4F2057",23,"H./5G4870",/*/+.ABC./\4F*52_4C_44,48,69 ,45

By the way, that should print "Hello World" :P
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on March 02, 2011, 02:25:29 am
Perhaps they'll look like dim(29,46,3,1,54/"4C4C4F2057",23,"H./5G4870",/*/+.ABC./\4F*52_4C_44,48,69 ,45

By the way, that should print "Hello World" :P

I hope not O.O
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on March 02, 2011, 02:33:32 am
@willrandship All sprites will use the fonts and strings used for a normal correlation game.  The only difference is that you are limited to the 10 Strings rather than having temporary strings in quotation marks.  About the on-calc font editor, I don't have time to make one, but two other people are. 

Also, I'm pretty sure games will run quite stabely unless you try to crash the calculator on purpose.  This is because Correlific Mode runs on a should-be-stable game engine.

@DJ and Qwerty.55 I haven't finalized everything, but I know that I'm going to provide a table of values for scripting commands, using DECIMAL values from 00 to 99.  A small portion of a list (without commands as to which data goes to which sprite) might look something like this:

00050001039901020304

The Correlific Manual is going to highly recommend that you plan your game on paper (writing events in English) so that when you put the program on your calculator it will be easily to look at the table and punch in numbers.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on March 02, 2011, 02:37:09 am
I see. There will definitively be a need for a table of all commands and maybe some sort of list editor to make list editing more user-friendly.

As for planning on paper, no problem, as this is what I did with large games starting in 2003.
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on March 02, 2011, 02:46:01 am
I see. There will definitively be a need for a table of all commands and maybe some sort of list editor to make list editing more user-friendly.

A list editor will be a definite must for a program aimed at creating Correlific games, but trust me when I say it won't be necessary for making games directly on your calculator.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on March 02, 2011, 03:10:43 am
Hmm I am confused. You say it will be a must to create games, but then you say it won't be necessary. Does it means you will have to use a computer to use Correlefic mode? ???
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on March 02, 2011, 03:13:40 am
Ugh, I'm not doing a good job explaining *slaps hand into forehead*

Okay, if you want to make Correlific games using nothing except for a calculator, you will not need a list editor, it will be very easy to enter lists in the program editor.  If you want to make Correlific games using a potential computer aid, list editors are a big help.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on March 02, 2011, 03:14:53 am
No problem. :D There's also the fact english is not my native language :P

And I see now. :D
Title: Re: Correlation: Correlific Mode!
Post by: willrandship on March 03, 2011, 09:15:04 pm
Is there any chance matrices could be used as well? lists are great, but adding matrices gives you 6-7 (can't remember :P) more vars to use.
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on March 03, 2011, 10:04:12 pm
Is there any chance matrices could be used as well? lists are great, but adding matrices gives you 6-7 (can't remember :P) more vars to use.

We're not talking standard Ti-83+ lists.  We're talking another kind of list.
Title: Re: Correlation: Correlific Mode!
Post by: Xeda112358 on March 03, 2011, 10:06:58 pm
As in an array of data?
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on March 04, 2011, 12:33:58 am
As in strings.  Data consists of a bunch of 2-digit numbers put together into a string.  Like "013918402831."  The manual for Correlific Mode will help readers understand why I refer to them as "lists."

And by the way, this is not sprite data.  Remember that graphics are stored as text with custom fonts, same as with normal Correlation
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on March 04, 2011, 12:45:40 am
I always get confused when I hear about lists. X.x
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on March 27, 2011, 10:37:23 am
Guys, I'm just as sad as you are.  However, there's a lot of pressure in my life right now, and I'm afraid that I'm going to have to cancel Correlific Mode.

I am so sorry to everyone who was looking forward to it, including myself.  As always, though, please keep your comments constructive.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on March 27, 2011, 04:22:15 pm
Sorry to hear. I hope this is nothing too bad, though. Maybe someone could implement Correlific mode later?
/me hopes this doesn't mean Hot Dog is done with calc stuff afterward x.x
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on March 27, 2011, 04:23:59 pm
/me hopes this doesn't mean Hot Dog is done with calc stuff afterward x.x

Don't worry.  Part of my reasoning is I want to get back to S.A.D.  With all the new stuff I have to worry about, Correlific Mode would take longer than I hoped and make the waiting time even longer.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on March 27, 2011, 05:25:59 pm
Ah ok. Also it seemed it would be kinda complex to add and Correlation might lose its focus (being an ASM lib for BASIC coders).
Title: Re: Correlation: Correlific Mode!
Post by: Geekboy1011 on March 27, 2011, 10:52:43 pm
awr tis saddening maybe you can pick it up again after you get farther in sad who knows but thanks for the effort and god luck irl ^_^
Title: Re: Correlation: Correlific Mode!
Post by: TIfanx1999 on March 28, 2011, 11:04:42 am
Guys, I'm just as sad as you are.  However, there's a lot of pressure in my life right now, and I'm afraid that I'm going to have to cancel Correlific Mode.

I am so sorry to everyone who was looking forward to it, including myself.  As always, though, please keep your comments constructive.

Hey, it's all good! ^^ Shit happens. :) I'm going to be more than happy playing around with correlation as is. :)
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on April 18, 2011, 03:19:02 pm
There's a very strong possibility that Correlific Mode will be included again.  However, it won't be nearly as complicated, and thus Correlation will not lose its focus.

Ti-Basic games will continue to run normally, but in a timely manner (like 10 times per second), Correlation will take time to draw a tilemap and up to 9 sprites.  The programmer need only put the X and Y coordinates of the sprites/tilemap in L1 (List 1), which will give L1 20 elements.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on May 26, 2011, 12:37:52 am
Hmm interesting, I am curious how this will turn out. It would be nice to have real-time tilemap refreshing. Would it be possible to have animated tiles that way?
Title: Re: Correlation: Correlific Mode!
Post by: Hot_Dog on May 30, 2011, 10:37:52 am
Hmm interesting, I am curious how this will turn out. It would be nice to have real-time tilemap refreshing. Would it be possible to have animated tiles that way?

I'm at least planning on the animated tiles.
Title: Re: Correlation: Correlific Mode!
Post by: DJ Omnimaga on June 12, 2011, 02:18:58 am
Cool to hear :D