I've implemented the Get/SetInd for tables which is working nicely... however in doing so i've noticed a subtle bug - functions cannot return values! Or rather, they can, but they're somehow lost on the stack - I think it'll be a problem with the popping of a stackframe, rather irritating but at le…
I've added basic operators (Add,Sub,Mul,Div) for the Integer type, it seems to be working very nicely. Local assignments using the operators are working well, which makes me happy :) Now I need to actually register float, string, function and table as a type in the machine and wire up these simple …
I've successfully implemented script calls, which involve the pushing and popping of stack frames. I can now run bytecode compiled from the script:
It now prints:
Which is exactly correct an…
pf = function(v)
{
print(v);
};
pf( \"hello, gamemonkey\" );
print( \"done\" );
It now prints:
hello, gamemonkey
done
Which is exactly correct an…
I found a small bug in thread (coroutine) creation; I wasn't pushing the 'this' variable and the function of the thread after I created it, thus not creating the first stackframe. Function calls are working to an extent; I now need to do the following:
* replace references to the function offset wit…
* replace references to the function offset wit…
I've got a very basic C# implementation of the GameMonkey VM working which can run the compiled bytecode:
Which was originally:
I compiled the script in the vanilla GameMonkey Script b…
0000 push null
0004 get global 0
0012 push str 6
0020 call 1
0028 pop
0032 ret
Which was originally:
print( "hello, gamemonkey!" );
I compiled the script in the vanilla GameMonkey Script b…
I've decided that I'm going to maintain a strongly typed set of instructions for the bytecode; that is the instructions themselves are objects, rather than a list of ints encoded from the instruction and the operands. I feel this way will be more intuitive to deal with, but it could come at the cos…
Well I finally finished and released my patch for adding in switch to GameMonkey script version 1.25l. I'm pretty pleased with it as it involved making some fairly hefty mods to the YACC file and generating the correct bytecode for the GameMonkey VM. For someone that's interested in compilers and v…
I've been sifting through the wreckage of some of my old projects to see what I can salvage for the next game project I'm going to tinker with. Turns out there's some semi useful stuff out there in the form of core classes and a couple of texture/model loaders. All of which are coded in different s…
I've decided to change the keywords used to case/when/default because it seems more intuitive. Because the case statements themselves are of variable types, can actually be full expressions and don't drop through or need breaking, the switch() term seemed a bit misleading as it almost implied it wo…
I've been messing around and have added an experimental switch/case statement to my current local build of GameMonkey Script.
Due to how this:syntax works, the switch syntax is modified slightly from C/C++. Here's how it looks...
Due to how this:syntax works, the switch syntax is modified slightly from C/C++. Here's how it looks...
switch( const_expression )
{
case const_expression { statements }
case…
Greg's put out his beta of GameMonkey Script 1.25l, it features a couple of tweaks over 1.25j. The first is my usertype foreach iterator and the second is the fork() functionality. Fork looks particularly cool as it lets you fork the current thread into two; the new one being an exact copy of the c…
I got annoyed that it was impossible to iterate over any type other than the in-built table type in GameMonkey Script, so I turned my hand to modifying the source. It was surprisingly easy to add this functionality; a quick callback definition, a modification to the Type structure, a method to regi…
Originally posted on the GameMonkey Script Forums
I've just released version 1.0.0 of the gmMulticastFunction library binding for GameMonkey Script 1.25j (may work with older versions).
This binding provides a multicast function type and supporting functions to the GameMonkey Script environment. Mult…
I've just released version 1.0.0 of the gmMulticastFunction library binding for GameMonkey Script 1.25j (may work with older versions).
This binding provides a multicast function type and supporting functions to the GameMonkey Script environment. Mult…
I'm not sure how many people out there know this, but I'll talk about my professional status for a little. I've been a 95% Sql Server developer for the past 5 years, the rest is a little C# and VB6 coding to leverage what I needed to happpen in Sql. I'm a Microsoft Technology Specialist in Sql Serv…
I got my sample copy of the Beginning Game Programming: A GameDev.net Collection from the publishers. I've got 2 articles credited to me in it, the main one being an updated version of the GameMonkey Script articles on this site; the second is the XML Log file collaboration with Jack Hoxley. I thin…
Been really plugging away at the GameMonkey Script article (Part 3). It's pretty insane as I'm writing some code to use as a descriptive vehicle, but am not going through it in HUGE detail in the actual article - only the scripting parts are covered.
So far the article covers:
Threads (GameMonkey's c…
So far the article covers:
Ack, now that everything (sever and client) are non-blocking, I've come to a point in which the project can't be real-time unless I move away from the console (cin/cout). An upcoming version will need to factor in use of SDL to draw the basic graphics and pick up inputs from the client. So I'm back…
Just randomly thinking here, but one thing that always astounded me was the linear nature of the quests in MMORPG games (WoW, AoC, WAR, etc). The quests themselves are often non-class or race specific and will always have the same outcome and reward (eg: kill X of Y and get Z gold and R rep). One t…
Work on project 6 has resumed after a brief hiatus on playing around with virtual machines in C# (the talk of language creation has sparked off my desire to get GameMonkey working in C# again). Compiler theory has always fascinated me.
I've implemented a form of messaging on the server side which us…
I've implemented a form of messaging on the server side which us…
Project 6 is underway and going well. The server is now running on non-blocking sockets - I have still yet to implement the messaging system - that's next. What the server (and client) will do is pull off any data messages from the network and post them on an internal message queue. These messages …
Project 5 at a point where I'd say it was "done". There's a couple of nice new things. First I added a Database class to handle the authentication system. For now this just checks against a hardcoded list of users and passwords and returns a hardcoded user id and permissions tag. I've added the aut…
I've made good headway on the 4th increment of my network test projects. I've implemented a really (really) simple session mechanism and a few more messages to handle new functionality. The single biggest change I've made to the interface of the project is that it's now interactive via a very simpl…
I finally got around to finishing up Project #3, the binary formatted messages. The message format is currently set to:
u_long MessageType
char MessageLength (Optional)
char MessageData[MessageLength] (Optional)
I'm aware of the inefficiency in using the u_long type here, I'm not worried about it at th…
u_long MessageType
char MessageLength (Optional)
char MessageData[MessageLength] (Optional)
I'm aware of the inefficiency in using the u_long type here, I'm not worried about it at th…
No progress on the projects tonight as I'm installing my dev environments (VS Express 2008) on my new HP Laptop!
I crumbled and did my bit for the economy. A core 2 duo HP laptop with 3GB ram and a Geforce 9200M for GBP460. Pretty reasonable... It's got a good sized keyboard which means it'll be per…
I crumbled and did my bit for the economy. A core 2 duo HP laptop with 3GB ram and a Geforce 9200M for GBP460. Pretty reasonable... It's got a good sized keyboard which means it'll be per…
Almost done with Network learning Project #3. It's been interesting actually, as when I started I decided to design a "message" structure and have this serialise to the network. Being that I'm approaching this with doing just what I need for each project, designing a messaging structure without kno…
Network Project 2 is done (I was lazy for a couple of days). The server understands 3 commands "hello", "ping?" and "goodbye", each of which yields a different reply to the client. "goodbye" also tells the server to terminate, which is useful.
Although I've updated project 2's code to be more OO, I'…
The network project #2 is about 95% done. The interesting side effect of this process is that as you're working to fulfil a brief, you can, nay, HAVE, to stop at the brief. This leads to a great deal of restraint being needed to prevent the whole "oh I'll just add this, tweak that" mentality of the…
So, here's the path I'm setting for myself to bring up my network skills again. I'm looking soley at UDP as that's most applicable to games and what I might do with it in the future.
I have 8 assignments planned so far, here they are. I have no idea if this is the right way or anything, it's just ho…
I have 8 assignments planned so far, here they are. I have no idea if this is the right way or anything, it's just ho…
So the first day back coding, I set myself an action plan into the sort of stuff I want to learn over the next week, month and year to come. It's fairly high level and treats myself like an idiot (not hard... heh).
So the first thing to pick up again is network programming in C++. I've not done this…
So the first thing to pick up again is network programming in C++. I've not done this…
Fucking WoW. Fucking addictive WoW.
I've spent 15 months of my life paying for and paying for that damn game. I had 9 months off and then feel back into it for Lich king.
Well now I'm 80 and realised that YET AGAIN I hate the gear/rep grind of the endgame, I'm off it again.
Time to dust myself off and…
I've spent 15 months of my life paying for and paying for that damn game. I had 9 months off and then feel back into it for Lich king.
Well now I'm 80 and realised that YET AGAIN I hate the gear/rep grind of the endgame, I'm off it again.
Time to dust myself off and…
Advertisement
Popular Blogs
Advertisement