Omnimaga
Calculator Community => Discontinued => Major Community Projects => Correlation => Topic started 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.
-
hmm... does it increase the speed or allow you to output homescreen text at any location?
-
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.
-
TI-Basic at almost Axe-like speed?
I can't wait to see!
-
Does it actually replaces most commands that draws on the LCD like a new interpreter? O.O
-
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.
-
Yeah I assume it would be massive. But I think he might have just changed the few commands that displays text, lines, etc.
-
Okay, another hint: It is not optimizing or replacing any Ti-Basic commands. (Otherwise this would never get done!)
-
Hmm does it simply makes everything be drawn on the buffer and not the LCD, until the DispGraph command is encountered, like with xLIB?
-
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
-
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
-
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.
-
I have no idea. Regardless, it sounds really cool. ;D
-
pre-parsing, perchance?
that would make the app a bit massive as well, though...
¯\(o_o)/¯
-
Overclocking? Or something else that wouldn't affect getKey speeds
-
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.
-
/me drools
-
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.
-
*Candace giggle* Custom fonts.... *drools*
-
*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.
-
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.
-
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.
-
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?
-
Ah ok, I thought it might make Correlation 2 pages if there were a lot of games libs added.
Ok, that makes sense
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.
-
Nice, and another thing: will the entire data be stored into archive?
-
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
-
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)
-
I'm actually going to come up with some other form of storage, cause you have a point
-
One thing that could be used are actual programs, but then you would need to make sure it's user-friendly enough.
-
An AWESOME idea. Then they can be archived. However, Correlific will still need up to (but maybe less than) 2 Kb of RAM
-
Cool, no problem I guess. I also thought about hex, but then this makes data much harder to edit.
-
This sounds really sweet. I'm looking forward to seeing this in action! =)
-
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.
-
Interesting. I wonder how the commands will look like, especially the ones requiring arguments?
-
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?
-
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
-
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
-
@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.
-
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.
-
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.
-
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? ???
-
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.
-
No problem. :D There's also the fact english is not my native language :P
And I see now. :D
-
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.
-
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.
-
As in an array of data?
-
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
-
I always get confused when I hear about lists. X.x
-
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.
-
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
-
/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.
-
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).
-
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 ^_^
-
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. :)
-
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.
-
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?
-
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.
-
Cool to hear :D