General Category > General Anim8or Forum
WEEHEEEE oh, oh wait its dead, I thought it was dancing (CRE8OR NOTICE)
cooldude234:
So a little update to the scripts.
I got basic variable functionality working; you can now define and use variables as such...
--- Code: ---New_Texture Mytexture;
Mytexture = LoadTexture Textures/blahblah.png
--- End code ---
Note: I still have yet to implement more operators than the simple equivalent symbol but I plan on making a better way to handle such things so when I do, I will make sure to add the rest.
As of right now I truly only have the texture variables working, but I have the structure ready to implement integers and more. How it works on the engine side (variables that is) is I have a predefined variable structure that holds all the variables defined in the script. And when something is defined in the script, it is added onto that predefined one in the engine; meaning only what you define is actually whats in the ram (besides the engines dependencies). So the engine and scripts could only use a couple MB of ram, or you could soar wide into the Gigs if you so wished (although 32 applications are limited by 2 gigs of ram by default, but I will be compiling a 64 bit version which will be fully compatible with all the same scripts).
So far making a parser and scripting language, tokenizer etc. all from scratch is proving to be easier than checking if a line intersects a triangle.... I'm not sure if that's a good thing or not.
cooldude234:
A little off topic but I'm finally moving from xp (well for my main machine at least). Good bye good friend, it's been a good 11 years or so, but I will always see you on my laptop. Now once 7 is installed I will put on the windows 7 xp theme ;)
Now back to topic I forgot to mention that using my tokenizer function, you can parse a line from a file that is longer than 256 characters (which is how I had it set up before). Now you can pretty much parse a line that is in any size (so as long it fits in your computers memory).
Also for the first release I'm going to use Audiere simply because port-audio is taking a lot longer to figure out how to use than expected.
Another thing to mention is that even though the engine and the editor are two completely separate things I will be releasing them both under the same versions (EG V0.5 of the editor will use V0.5 of the engine) but if any fixes or small revisions are made to either or then there will be a sub version to that version which will be specific to it's self (EG V0.5.1 of the editor could use V0.5 of the engine, visa-verse).
Now I'm obviously not very good at estimating time with this project, but I think I will have the first release finished before the beginning of summer! WOOT! (it's just the script engine I got to get finished!)
cooldude234:
Ocuclus rift integration was going smoothly until facebook decided to buy out the oculus rift.
Now I'm unsure if I want to add it to the engine or not, I feel like facebook would then start stealing my identity or something, or change the licensing to something horrible :S
*BLEEP* facebook!
cooldude234:
NOTE: Boring stuff in Red.
NOTE: FUN stuff in Green.
I HAVE PUT THE ENGINE ON HOLD
well sort of...
I decided that instead of shipping the first release to the public in mid to late June I would use the engine in a game for a friendly Just-for-fun competition (similar to the ones on this forum but for you know... games and programing stuff) and hold off the release for a couple months. I decided to do this because competitions usually are good way to get productivity going and results in a good learning of stuff (and apparently bad grammar too! XD).
More to benefit from this, using the engine for an actual game can not only show its flaws ahead of time, but also show it's strengths. Meaning I can make things a lot more functional and intuitive towards the goal of having a flexible engine that is both easy to use and learn and not limiting to any means.
This has also proven to be a good choice considering in the last week of constant programing for this competition I had finally gotten portaudio (the sound library I tried to use before) to work. MEANING THE ENGINE NOW HAS SOUND WOOT! Also meaning full surround sound support will be soon available.
Using portaudio brings many benefits, mainly the one that I (the programmer) has full control over the sound processing (portaudio only manages the sound devices, you deal with all the sound data your self). So if I wanted to make a function that adds an echo effect to the sound than I can (and I probably will); and once I figure out the best way to go about this I will probably add some way for the user to have full control over the sound besides a few VERY TECHNICAL stuff, which mostly has to do with buffers. Which is unfortunately the downside to portaudio, it leaves me to do EVERYTHING myself (but I don't care, it's just that making my own Ring buffer and constant read write functions with a sound manager is going to be a pain in my bum cheek).
So about the game competition, I will be posting anything new the engine, or anything engine related here as I progress through that and I will be posting anything about the game on the other forum (once I have it up over there which will probably be in a week or two). I will post a link to it when it's available.
NOTE: I got bored with the COLOURS!!!
cooldude234:
Alrighty again not very much exciting stuff to tell, but no matter (maybe ???)
I have been working on the sound and I now have the engine set up so it chooses the lowest latency possible on a system. This is important because I, (and probably) the user and player don't want to have a 2 second delay between when the sound is processed and when it is actually heard.
Also I was able to make a function (using libsndfile) to simply load pretty much any audio file like so...
SoundVar = LoadSound ("filename");
I will probably make a wrapper for this first thing when I get back to working on the scripting language. I am hoping in the end that I will have simple functions like PlaySound (SoundVar); more on that below.
Right now I am trying to implement a FIFO ring buffer for the audio stream so it can have data being read and updated in such a way that makes it consistent (more importantly no artifacts in the sound!), however this has brought up a whole new world of issues regrading memory data sharing over multiple threads :S amongst other problems like locking (I can't have one thread hold up another just because it's running temporarily slower).
And I figure to solve a portion of these problems I'll have to work on a sound manager for the main thread. Something that handles all the sound data until the audio thread can handle it. For instance if the sound you were playing was a music track that was minutes long you wouldn't be able to fit all of that data into the buffer (which can only hold about 100 milliseconds worth right now, and that is HUGE for an audio buffer as is). So what needs to be done is store the unplayed data on the main thread temporary on a copy sending small bits at a time when the buffer is "freed" up (but I don't want to constantly create and destroy variables).
Having one copy of each sound on RAM would be most preferred but I am having troubles coming up with a way to store 'copies' of it (maybe virtual copies or simple variables like copies = 5; and other stuff related like the position in each sound copy).
The latter is probably what will be best suited but still leaves many issues to be solved.
When I call PlaySound(file); I what I want is the sound manager to take play that until it finishes, meaning you only have to call the play function once. The sound manager will have to remember what is called to it, what is left to play of each sound, and to free up the memory when it's done.
Effect's (like a simple echo) will be calculated when the sound manager processes the audio into the buffer on the main thread.
okay I think I'm rambling on now, I need sleep anyways I worked 8 1/2 hours then programmed for 6 and I was awake for about 3-4 hours before all that and oh I'm rambling on again.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version