Author Topic: Features Wishlist  (Read 612005 times)

0 Members and 1 Guest are viewing this topic.

Offline Spyro543

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1189
  • Rating: +74/-3
    • View Profile
Re: Features Wishlist
« Reply #3180 on: February 27, 2013, 09:18:10 am »
Pt-Get? What's that?

Offline Streetwalrus

  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3821
  • Rating: +80/-8
    • View Profile
Re: Features Wishlist
« Reply #3181 on: February 27, 2013, 09:52:04 am »
A command that gets a sprite off a buffer.

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #3182 on: March 03, 2013, 07:26:38 pm »
In regard to MathPrint causing weird display issues, I was recently in the process of trying to make a command to disable MathPrint for the duration of the program to combat this issue. But after I had mostly finished it, it appears that it may not even have been necessary. It seems that a simple ClrHome once in the program makes all homescreen text operations following it work just fine with MathPrint enabled. Can someone confirm that I'm not just crazy and that this actually works? In this case I can just cut out what I was working on and advice people to make sure they use ClrHome before any homescreen text operations if they're worried about compatibility with MathPrint.
« Last Edit: March 03, 2013, 07:27:15 pm by Runer112 »

Offline Dapianokid

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 539
  • Rating: +46/-27
  • That one dude
    • View Profile
Re: Features Wishlist
« Reply #3183 on: April 27, 2013, 01:59:39 pm »
I honestly don't think this will be included... Because it's not really about Axe.. But you already have an amazing compiler right here. I think it may take an entire extra App Page, but...
Do you think one type of compile could be made for Axe code (traditional) and then have another feature to compile pure Ti-Basic or library'd Basic into pure ASM, so it runs faster (not interpreted) and it can still be.. ya know.. Basic..?
Keep trying.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Features Wishlist
« Reply #3184 on: April 27, 2013, 02:52:27 pm »
I honestly don't think this will be included... Because it's not really about Axe.. But you already have an amazing compiler right here. I think it may take an entire extra App Page, but...
Do you think one type of compile could be made for Axe code (traditional) and then have another feature to compile pure Ti-Basic or library'd Basic into pure ASM, so it runs faster (not interpreted) and it can still be.. ya know.. Basic..?
As you said, this has nothing to do with Axe, and that entire app page you are talking about will most likely be a separate app, rather than part of the Axe Parser.

Also, that is not the fact that it is interpreted that makes TI Basic slow. Look at Grammer, it is interpreted and still very fast.
« Last Edit: April 27, 2013, 02:53:11 pm by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline Dapianokid

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 539
  • Rating: +46/-27
  • That one dude
    • View Profile
Re: Features Wishlist
« Reply #3185 on: April 27, 2013, 03:57:16 pm »
I honestly don't think this will be included... Because it's not really about Axe.. But you already have an amazing compiler right here. I think it may take an entire extra App Page, but...
Do you think one type of compile could be made for Axe code (traditional) and then have another feature to compile pure Ti-Basic or library'd Basic into pure ASM, so it runs faster (not interpreted) and it can still be.. ya know.. Basic..?
As you said, this has nothing to do with Axe, and that entire app page you are talking about will most likely be a separate app, rather than part of the Axe Parser.

Also, that is not the fact that it is interpreted that makes TI Basic slow. Look at Grammer, it is interpreted and still very fast.

I just thought Basic could be faster. I'm just nowhere near skilled enough to do it, and those that work on Axe are exactly the people who could.
Meh, it was a request none the less.
Keep trying.

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Features Wishlist
« Reply #3186 on: April 27, 2013, 10:38:50 pm »
The problem with making Basic fast, is that you would have to actually change the way the language works in order to get any good amount of speed.  Basic is slow for 2 main reasons, the first being that every single graphics command updates the screen.  Even asm games are slow if they are forced to update the screen after every drawing command.  The second reason is that all the math is in floating point, which is inherently slow.  That is why all attempts to make a fast version of basic have gone on to design their own languages like Axe or Grammar

Offline Piguy-3.14

  • LV3 Member (Next: 100)
  • ***
  • Posts: 41
  • Rating: +1/-0
    • View Profile
Re: Features Wishlist
« Reply #3187 on: June 18, 2013, 03:07:07 pm »
A menu command!!!! So you can quickly create a menu without going through all the hassle; this would be extremely useful!!!! Please do consider this Runer112!!!
Also some other features that are not as neccesary, but would make this language even better are:
-a tutorial!!!! Axe REALLY, REALLY needs a tutorial that is made for beginners, as there are not to many GOOD tutorials for axe at the moment, which is pretty rediculous considering what a popular language it's become...
-a command for sprites such as Gif(X,Y,[],[],[],[],[] it would allow you to have up to maybe around ten sprites(of which you write in hexadecimal in the brackets and the command annimates the sprites from left to right at the X Y coordinates specified. Along with this there should be a command like GifRepeat(X,Y,[],[],[],[],[] that will do exactly the same as Gif( but instead of stoping after the animation is over it should loop around and repeat the animation forever. You could also have ones that repeat it a certain amount of times, execute it until its False and one until its true. Do consider this as it would be pretty cool in my opinion.
-an easier alternative to tilemapping(tilemapps are extremely hard)
-an on-calc bitmap creator; they are not worth the time to make manually
-there are plenty more features, but ill start with these; please do consider these Runer112 and whoever else is working on axe!!!

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Features Wishlist
« Reply #3188 on: June 18, 2013, 03:59:54 pm »
A menu command!!!! So you can quickly create a menu without going through all the hassle; this would be extremely useful!!!! Please do consider this Runer112!!!
A menu is not a hassle to do, on the contrary, it is a great training for beginners to try designing their own menus of course simple at the beginning. And when they become expereinced enough to actually be able to do beautiful menus, the Menu command would become useless again. So not a good idea in my opinion.

-a tutorial!!!! Axe REALLY, REALLY needs a tutorial that is made for beginners, as there are not to many GOOD tutorials for axe at the moment, which is pretty rediculous considering what a popular language it's become...
There was a tutorial in French on the Site du zéro but since the website went crazy, I don't know if it is still available. Anyways, that surely doesn't interest you since it is in French.
Now, there are "not any" general tutorial for Axe, but there are a lot of specific tutorial out there, especially on Omnimaga, like FinaleTI's "External Vars Tutorial" for example.
But yeah, a tutorial for starters would be great too I guess.

-a command for sprites such as Gif(X,Y,[],[],[],[],[] it would allow you to have up to maybe around ten sprites(of which you write in hexadecimal in the brackets and the command annimates the sprites from left to right at the X Y coordinates specified. Along with this there should be a command like GifRepeat(X,Y,[],[],[],[],[] that will do exactly the same as Gif( but instead of stoping after the animation is over it should loop around and repeat the animation forever. You could also have ones that repeat it a certain amount of times, execute it until its False and one until its true. Do consider this as it would be pretty cool in my opinion.
Would eat too much RAM if one counter should be kept for every "gif". Or if you have a counter for everyone, then just do it manually with a Pt-On(X,Y,C++*8+Pointer). As for looping, just do Pt-On(X,Y,C+1^10→C*8+Pointer) if you have 10 frames.

-an easier alternative to tilemapping(tilemapps are extremely hard)
Same as with menus, tilemaps are a good training for beginners. I started Pokemon with no experience and spent one afternoon writing a non-smooth-scrolling tilemapper. Now I just do them in 5 minutes.
Basically, you know how to draw one sprite ? You know how to make a loop ? Then you know how to draw a tilemap with two loops and a sprite drawing command. And if you don't know it, then write down how to draw the first sprite, then how to draw the second, etc, then you should see the formula appear on your paper.

-an on-calc bitmap creator; they are not worth the time to make manually
I don't know what you mean with "BitMap" but there are sprite editors out there, like AxePaint or other editor that are less outdated (I still use that one because I am used to it though).

As a general thought to your post, I would say that, in opposition with the thought people have, Axe is closer to ASM than to Basic because it gives you more freedom. For now, you saw it as "less features", but when you get used to it, it is really a good language as it is in my opinion. Some would say "meh it still gives a lot of routines, so you don't code everything like ins ASM", but yeah, don't tell me the sprite drawing routine a beginner uses is not "recycled" from someone else's code. So there, Axe is like ASM, gives you "basic" commands but the rest is up to you.

(And of course, this is only my opinion, you are free to disagree and to add your aguments).
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #3189 on: June 18, 2013, 04:01:42 pm »
A menu command!!!! So you can quickly create a menu without going through all the hassle; this would be extremely useful!!!! Please do consider this Runer112!!!

I will likely eventually want to create a command that creates OS-style menus. I've added this to my todo list for Axe, which is unfortunately very massive already, though. But for any different or more graphical menus, you'll have to write the code for them yourself. There is no one universal code that could render and control any menu a programmer could want.

-a tutorial!!!! Axe REALLY, REALLY needs a tutorial that is made for beginners, as there are not to many GOOD tutorials for axe at the moment, which is pretty rediculous considering what a popular language it's become...

Have you fully read through the Documentation.pdf file included with Axe? It's a little outdated and only covers the basics, but it does so fairly well. To help with the outdated-ness, I'd also recommend reading the attached Changes.pdf, which details some of the big changes that were introduced in Axe 1.0.0 and haven't found their way into the main documentation yet. After that, you should have enough basic knowledge of Axe to begin reading through the Commands.html file and learning/trying any commands which seem useful for you and your projects. And if you have any questions about how perform specific tasks or how commands work, just ask!

As for an actual tutorial, I'm not sure if it's really possible to make a complete "tutorial" that will teach you how to do everything with a whole programming language. I think the closest approximation would be learning the dictionary and grammar of the language and learning how many regular tasks and algorithms would be handled with the language.

By far the most complete tutorial I know of for Axe, by kindermoumoute (where'd you go? :(), can be found here. It goes very in depth on an amazing breadth of topics, has tons of examples, and even has quizzes. I am extremely pleased with the work he put into it, and I think it's far better than I could ever do. There's a catch, though: it's written in French. For now, the best solution is to use something like google to translate each page (Chrome should offer to translate it automatically when you visit pages). The translation is mediocre, so take it with a grain of salt. And I've found it can mess with example code, so I usually keep an untranslated view of the page in another tab for looking at code.

-a command for sprites such as Gif(X,Y,[],[],[],[],[] it would allow you to have up to maybe around ten sprites(of which you write in hexadecimal in the brackets and the command annimates the sprites from left to right at the X Y coordinates specified. Along with this there should be a command like GifRepeat(X,Y,[],[],[],[],[] that will do exactly the same as Gif( but instead of stoping after the animation is over it should loop around and repeat the animation forever. You could also have ones that repeat it a certain amount of times, execute it until its False and one until its true. Do consider this as it would be pretty cool in my opinion.

It sounds like you believe that the calculator/Axe has some sort of underlying rendering engine, but unfortunately there isn't one. Every ounce of rendering logic has to be provided by the programmer/user. Drawing commands simply draw the one thing you tell them to draw, and that's it. They don't have memory areas that can keep track of animation progress for arbitrary sprites; they're stupid. The programmer is what makes programs smart, providing logic about how to act and what different things to display. :P

-an easier alternative to tilemapping(tilemapps are extremely hard)

For drawing 2D maps of tiles, there really is no other way than tilemapping. Tilemapping is, by definition, the method of rendering a map composed of tiles.

-an on-calc bitmap creator; they are not worth the time to make manually

This is the kind of thing that would be a completely separate program/application for image editing, or perhaps integrated into an IDE. It wouldn't be part of the Axe compiler, and the Axe bitmap format is publicly available so such a tool doesn't have to be made by an Axe developer (me). Anyone can make such a tool, even you! :)

-there are plenty more features, but ill start with these; please do consider these Runer112 and whoever else is working on axe!!!

Feel free to keep suggesting!



EDIT: Why didn't anybody tell me I forgot to attach Changes.pdf? x.x
« Last Edit: June 19, 2013, 12:06:42 pm by Runer112 »

Offline Keoni29

  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2466
  • Rating: +291/-16
    • View Profile
    • My electronics projects at 8times8
Re: Features Wishlist
« Reply #3190 on: June 18, 2013, 04:07:18 pm »
Tables, structures and other object oriented stuff would come in really handy. As of right now making the data structures for enemies, bullets etc. are pretty much hardcoded. If I want to add an extra variable to an object I'd have to change around a lot of code just to be able to do that. For my game HeroCore I simply forgot to increase the amount of bullets that can be drawn on screen and now I'm stuck with 6. If I want to increase it I have to increase 6 to x every time it occurs in the code.
If you like my work: why not give me an internet?








Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #3191 on: June 18, 2013, 04:10:54 pm »
Tables, structures and other object oriented stuff would come in really handy. As of right now making the data structures for enemies, bullets etc. are pretty much hardcoded. If I want to add an extra variable to an object I'd have to change around a lot of code just to be able to do that. For my game HeroCore I simply forgot to increase the amount of bullets that can be drawn on screen and now I'm stuck with 6. If I want to increase it I have to increase 6 to x every time it occurs in the code.

Tables and structures are big asks. However, I completely agree that they would be very useful. I'll certainly be investigating the possibility of implementing such language features for the next major revision of Axe. But that may be (read: is) a long way off!

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: Features Wishlist
« Reply #3192 on: June 18, 2013, 04:16:56 pm »
In fact, a non-smooth tilemapper is such a simple thing that it can be expressed in one line of code. Assuming that each image is 8*8 (thus 8 bytes long) and that x and y go from 0 to tilemap_width-1 and tilemap_height-1 respectively (in number of sprites, not pixels) and X and Y go from 0 to 11 and 7 respectively :

Pt-On(X*8,Y*8,{y*tilemap_width+x+tilemap_pointer}*8+tiles_images_pointer)

Of course, I just did all the work for you, but it's just to show that tilemappers are not "extremely hard" as you said :)

Offline Keoni29

  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2466
  • Rating: +291/-16
    • View Profile
    • My electronics projects at 8times8
Re: Features Wishlist
« Reply #3193 on: June 18, 2013, 04:31:51 pm »
Example for possible implementation of very basic structures:
Code: [Select]
[A,B,C,D]->structureToken1    // preprocessor returns the pointer to the first element in the structure (structureToken1.A)
10->{structureToken1.A}          // store 10 in memory location structureToken1.A (same as pointer structureToken1)
{structureToken.A}++           // increase value at memory location structureToken1.A
disp >dec                   // display result: 11

If you like my work: why not give me an internet?








Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Features Wishlist
« Reply #3194 on: June 18, 2013, 04:42:29 pm »
In fact, a non-smooth tilemapper is such a simple thing that it can be expressed in one line of code. Assuming that each image is 8*8 (thus 8 bytes long) and that x and y go from 0 to tilemap_width-1 and tilemap_height-1 respectively (in number of sprites, not pixels) and X and Y go from 0 to 11 and 7 respectively :

Pt-On(X*8,Y*8,{y*tilemap_width+x+tilemap_pointer}*8+tiles_images_pointer)

Of course, I just did all the work for you, but it's just to show that tilemappers are not "extremely hard" as you said :)
You forgot about the "For" command(s) but yeah, the core of it is quite simple, hence why I could write one without any experience in Axe. Maybe ahving already written a tilemapper in ASM helped me write one in Axe, but eh, how did I write one in ASM then ? Because it still was easy to deal with as long as you try. As I said, if you don't know the formula, try drawing the first sprite, then try drawing the second one, then etc, then see the formula to get all those drawing commands in a loop or two.
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s