Posted: 15th Nov 2014 0:15
@Native Tech - To achieve high-performance in a byte-code interpreter for this kind of operation is unrealistic. Using T2 C++ or Pascal will compile to native code which will do it as fast as the processor core(s) will allow.

Things need to play to their strengths.
Posted: 15th Nov 2014 2:00
Of course JimHawkins , dont assume that I do not know that already ,its kinda beside the point that I am making which is that the core could do with optimizing on speed , also if the functions arent able to be used effeciently than why are they there in the first place Jim???, my point is not about reading bytes , its about "speed" on a general basis with the byte reading as a given example
Posted: 15th Nov 2014 5:41
I have done some comparison tests with other frameworks using Tier 2 (testing physics, rendering, and straight up data manipulation (which is not really testing the engine core) and from my perspective, AppGameKit is right on par or better than most out there (I have of course not exhaustively run tests of every use case, nor compared against every alternative solution out there!)

As Jim says, expecting super impressive speeds out of a byte code interpreter for what you're describing is a bit unrealistic, and IMHO Tier 1 is pretty reasonably fast for a lot of things as is!

I just personally don't see the interpreter speed as a huge concern at the moment with the big list of other potential improvements that could be looked at.

*Of course* optimization is always welcomed in any case!
Posted: 15th Nov 2014 6:06
@Native Tech - Something sounds very wrong there. Wordspionage uses data files to store up to 30 active games. Files get up to ~120kb and don't take anywhere near 20 seconds to open the file, read the bytes, xor them, and set the bytes to memblocks, they aren't all bytes though, many are integers so maybe that's the issue, but even then...

So I'm terribly curious. Can you start a new thread so we can discuss outside of this? Maybe there's some optimization we can assist you with.

EDIT
Just ran a basic test on on Windows 7 - mid-high end machine
memblock size = 100,000,000 bytes (95.3MB)
make memblock time (fill with random bytes) = 13.07 sec
write block to file = 18.69 sec
clear memblock time (set to all 0) = 10.0 sec
load file into memblock time = 29.13 sec

So that's 95.3MB / 29.13 sec = 3.27 MB/s
Just for S&G I copied the file from my one HDD to another (both are somewhat fast) and it copied at 3.8MB/s
I'd say AGK's doing a pretty fine job and is really just slowed by the disk speed. I'm sure on Android or iOS it is a bit slower. If I have time I'll test, but here's my code:
+ Code Snippet
SetPrintSize(2)
//kilobyte
memblockSize = 1024
//megabyte
memblockSize = 1024 * 1024
//max size
memblockSize = 100000000

myMemblock = CreateMemblock(memblockSize)

//fill memblock
t# = timer()
for i = 1 to memblockSize
    SetMemblockByte(myMemblock , i - 1 , random(0,255))
next i

t1# = timer()
t_makememblock# = t1# - t#

//write to file
fileID = OpenToWrite("memblockdump.dat" , 0)
for i = 1 to memblockSize
    b = GetMemblockByte(myMemblock , i - 1)
    WriteByte(fileID , b)
next i
CloseFile(fileID)

t# = timer()
t_memblockToFile# = t# - t1#


//clear the memblock
for i = 1 to memblockSize
    SetMemblockByte(myMemblock , i - 1 , 0)
next i
t1# = timer()
t_memblockClear# = t1# - t#


//read a file into memblock
fileID = OpenToRead("memblockdump.dat")
for i = 1 to memblockSize
    if FileEOF(fileID) = 0
        b = ReadByte(fileID)
        SetMemblockByte(myMemblock , i - 1 , b)
    endif
next i
CloseFile(fileID)
t# = timer()
t_fileToMemblock# = t# - t1#




rem A Wizard Did It!
do
    Print("memblock size = " + str(memblockSize))
    Print("make memblock time = " + str(t_makememblock#))
    Print("block to file time = " + str(t_memblockToFile#))
    Print("clear block time = " + str(t_memblockClear#))
    Print("file to memblock time = " + str(t_fileToMemblock#))
    Sync()
loop
Posted: 15th Nov 2014 22:53
Naphier thank u for ur constructive testing i may post u sum source in comparison because ur speeds are more on point with what im expecting.i may start a new thread
Posted: 16th Nov 2014 23:18
More Spine commands - Texture and mesh deformations - I need more to list specifically.


After I got my SetSpriteAdditionalImage() command I would like to have the same ability for spine... so we can add normalmapping/lighting to our characters.

For example: SetSkeleton2DTexture(SkeletonID,ImageID,StageID) ?
Or can we change the textures in the json file ?
Posted: 17th Nov 2014 5:51
Surprised this hasn't already been asked for...

I'd really really really really really really like Function in Types
ie.
+ Code Snippet
function updatePosition()
   setSpritePosition(id,x,y)
endfunction 

function update()
   vy=vy+0.0098
   x=x+vx
   y=y+vy
   updatePosition()
endfunction

type tBall
   id   
   x as float
   y as float
   vx as float
   vy as float
   updatePosition as function
   update as function
endtype

ball as tBall

ball.x=123
ball.y=321
do
   ball.update()
   sync()
loop


or maybe like this:

+ Code Snippet
type tBall
   id   
   x as float
   y as float
   vx as float
   vy as float
   function updatePosition()
      setSpritePosition(id,x,y)
   endfunction
   function update()
      vy=vy+0.0098
      x=x+vx
      y=y+vy
      updatePosition()
   endfunction
endtype
Posted: 17th Nov 2014 17:31
@ easter bunny

I agree that'd be a nice first step towards OO abilities, without forcing you into that if you don't like it. (And i think that second version is clearer / has less potential issues.)
Posted: 17th Nov 2014 22:19
I've got additions i would like to see

when i click on command that i have it would be nice that it show me
it's rule as to what i need to put in

the help menu when pressing f1
would be nice in the editor instead of the web browser

or the option to set ware that would be shown

every things work fine
even building apk files works fine

it was a tiny bit confusing since i had not used it before
but i understand what to be dun
Posted: 17th Nov 2014 22:30
OUYA Community Content link.



easter bunny:
We can now send arrays to functions by reference. So this has become less relevant. That's two ways to do the same thing.
Posted: 18th Nov 2014 3:09
We can now send arrays to functions by reference. So this has become less relevant. That's two ways to do the same thing.

yes, I noticed that you can do that. Lol it was one of the first things I checked for in the help docs
Posted: 23rd Nov 2014 4:43
I don't know if this was requested before, but I really would like to pin the "Scribble" area so that it doesn't hide when I move the mouse elsewhere or writing code.

Additionally it would be nice to move the "Scribble" area to another place. I would like it to stick at the right side of the IDE.

Here is a screenshot of how I usually work. I have Notepad++ sticked right hand side near the IDE.
That way I have lots of space to scribble and can always take a look while coding.

Posted: 23rd Nov 2014 6:17
+1 to Bluetooth support!

Requests:

- Autohide support for all IDE panels! Since DBPro I've always had all panels autohide when you click in the code, but AGK2 doesn't allow this.
- Delegates! Let us make a variable that contains a reference to a function that can be changed at runtime! This is exceptionally useful (even necessary) for callback systems.
Posted: 23rd Nov 2014 13:39
Edit: Deleted. Sorry. wrong thread.
Posted: 23rd Nov 2014 21:44
I donated to the V2 kickstarter early on and just downloaded it, but haven't been closely keeping track of new features so I'm not sure if these have been added or not; I don't see them in the current documentation:

- The ability to play OGG files and seamlessly loop them (MP3 doesn't really support seamless looping, OGG does).

- Start playing OGG files at a specified location (frame accurate).

- Change speed/pitch of OGG file that is currently playing (in order to simulate the effect of a turntable being stopped for instance, or give a negative value to play the song in reverse).
Posted: 24th Nov 2014 0:35
Unfortunately, Apple blocked Ogg Vorbis as a web and general standard. I will say no more!
Posted: 24th Nov 2014 21:30
Multicoder:
This will affect the entire message window but you can change it's location in Preferences > Interface > Interface > Message window.
Posted: 24th Nov 2014 22:57
need something like BFXR, a way to generate and play sounds in game without having to load sound files, eg:
Play Sound(tone,volume,duration, wave form, adsr, attack, decay , etc)

I've been looking for something like this in a programming language for years

like we used to be able to do on the old C64
Posted: 24th Nov 2014 23:36
Blue Steel - Mobile devices are not really up to it, and certainly not using a byte-code system. And actually, people expect something that sounds better than what the C64 could produce!
Posted: 25th Nov 2014 0:04
Digital Awakening:
Damn! How could I entirely miss this all the times I was in the preferences menu? There is even a checkbox to disable the autohide! Thank you SOOO much!


Nice to have would be:
- mark text, cut, copy and paste for input fields created with StartTextInput() or CreateEditBox().

- some kind of collaboration tool / option. Regarding steam it would be cool if we could "invite" friends to a coding session using steams "invite to game" mechanics.

- Scribble saved and loaded for each project separately, so every project could have it's own notes.