Metaplace update
(Visited 6594 times)I realized that it has been a while since I posted anything about how it is going — so here’s a bit about recent happenings.
The big thing first — yes, more alpha testers are getting in this week. 🙂 So if you’re not in yet, well, time to start calculating the odds again. Remember, there were 10,000 people in line alongside you.
Naturally enough, we are paying close attention to participation on the forums — lots of great discussions there, and a great pool of potential folks to let in early. Of course, the gang there is near and dear to my heart because they have embraced the sqronk (you’ll just have to visit to find out what that means…!)
We’ve also been doing a weekly blog post with info — the latest one just went up. These are pretty detailed posts, too, sometimes with code samples. Among the topics covered:
- An architectural overview
- A discussion of our philosophy on scripting (relevant given recent discussions!)
- Plenty of info on our business model
- A guide to creating art for the platform (inlcuding some wallpaper downloads)
- An explanation of modules and stylesheets (these are the bits that let non-techie people create games and worlds easily)
- And just yesterday, a bit on the event system, which ties into the whole “how we make this platform agnostic” bit, since it covers commands and keymappings and all that jazz.
For example:
So to summarize it all, Metaplace uses a data-driven event system that includes dynamically configurable keyboard inputs, commands with built-in security, and triggers for communicating between game objects and the engine. Let’s look at the full example:
function def_commands() MakeInput(‘Fire', ‘space’, 'down', 'none', 'fire') MakeInput('Begin thrust', 'up', 'down', 'none', 'thrust 1') MakeInput('End Thrust', 'up', 'up', 'none', 'thrust 0') MakeInput('Start rotating left', 'left', 'down', 'none', 'rotate 1') MakeInput('Stop rotating left', 'left', 'up', 'none', 'rotate 0') MakeInput('Start rotating right', 'right', 'down', 'none', 'rotate -1') MakeInput('Stop rotating right', 'right', 'up', 'none', 'rotate 0') MakeCommand('thrust', 'Thrust Forward', 'thrustFlag:int’) MakeCommand(‘fire’, ‘Fire Weapon’) MakeCommand('rotate', 'Rotate Ship', 'direction:int’) end function cmd_thrust(thrustFlag) self.thrust = thrustFlag end function cmd_fire() -- fire weapon code end function cmd_rotate(direction) self.rotation = direction endThis is the input system for a space shooter game, but it could easily be used in top-down tank game, or even simple action RPG like the old Gauntlet arcade game. Adding it to your own game is as simple as pasting the code into one of your scripts and attaching that script to your player template.
15 Responses to “Metaplace update”
Sorry, the comment form is closed at this time.
[…] There’s a new post out on Raph’s blog about how Metaplace works. Check it out here. […]
So the people who post at the Metaplace forums (and not just lurk) are the ones more likely to get into the alpha?
I suppose that means that if I calculate the odds of being one of the handful of 10,000 who get invites that I’m more likely to get struck by lightning.
There’s a part of me that’s regretting not posting more, but I’m also pretty sure that most of what I’d post would be great ideas someone else would take or would only be a mixture of echoed sentiments with a touch of jaded MMO player infused in them.
Still watching with extreme interest though, and waiting to hear about “Raph’s game” based on Metaplace.
I’m just glad that you cleared up some of my lingering questions on the logistics of how that thing intakes nourishment.
taolurker: what a pointless thing to be afraid of…
I’ll be happy to see this when it comes out, but I’m basically giving up on being in the alpha. I’m not a forum sort of person these days, and I’m not interested in inside jokes.
I am interested in an easy, in-browser dev platform, but I’ve found Rails seems to serve the purposes I was going to use Metaplace for, anyway.
If you are afraid folks will take your ideas, how much more will you fret about folks taking your code? I think that for every 100 ideas, perhaps 1 or 2 will actually get implemented. Plus you might discover someone else’s idea that inspires you and vice versa 🙂
One attitude to take perhaps is the idea similar to the early days of HTML. Everyone viewed everyone else’s source code and everyone benefited from each other’s ideas and innovations. Posting in the forum to me is like chatting in line to see the next great blockbuster movie. It’s fun to talk to like minded folks in a sort of mindless way to pass the time.
“…I’m basically giving up on being in the alpha.” I never had any illusions to begin with. Maybe a late beta when they want non-technical n00bs; I’m a player, not a potential developer 😉
I’ve never used Lua, so I don’t know how possible this is, but rather than using the somewhat obtuse syntax
function cmd_thrust(thrustFlag)
function trg_hit(obstacle)
wouldn’t make much more sense to use a syntax like
command thrust(flag)
trigger hit(obstacle)
This of course a minor nitpick, but the latter seems like it will be easier for non-programmers. Even programmers are usually discouraged from using unnecessary abbreviations, since the full word isn’t usually that much longer and is always clearer.
I guess this is the same debate as you’d have between C++ and Java over using “:” vs “extends” and “implements”. And of course, it’s very likely a limitation of the lua syntax.
Just something that occurred to me.
James, we actually intended to do exactly what you suggest. But then we realized that do that would mean that the language was no longer Lua according to the Lua license and docs. You wouldn’t be able to cut and paste scripts into a different system with similar API and get them to work. And we didn’t want to go that far.
could typing: command thrust(flag)
be automatically converted by the Metapalce IDE into:
function cmd_thrust(thrustFlag)
This way it’s easier to remember, and you can do it both ways…
it also solves the porblem of it ‘not being lua anymore’
if the simpler, easier version was the only accepted code.
and typing ‘ cmdtf ‘ would be be instantly converted to: function cmd_thrust(thrustFlag) as well,
if you wanted an -extremely- quick to type version in addition to the easy to remember-longform.
-ledo
I have been lurking the Metaplace forums, and many of the ideas I’ve been having would be ones that would improve upon the systems some people are proposing. I also have ideas for what I want to create as well, so I would rather be able to experiment with them myself before someone else begins cloning my ideas and eliminating me from the process.
I definitely am not afraid of someone taking my code, because Raph is attempting to make it “Open Source” (along with me not being a coder), but if I was to give advice on how to implement/refine every idea (or post from a jaded MMO player’s perspective saying how things wouldn’t work) I’d likely regret having posted anything at all.
It’s a bit late here to check, but with loadstring you should be able to do something like this:
MakeCommand('thrust', 'Thrust Forward', 'thrustFlag:int’, "self.thrust = thrustFlag" )
Lua is normally flexible enough that people can do this themselves even if metaplace doesn’t support it. But obviously it would be easier if they did, although probably slightly slower as I would hope all scripts are precompiled normally and it’ll have to compile the string at runtime.
[…] Metaplace update […]
Heh, shame I was traveling and settling in here in Japan while the Alpha signup was open. 🙂
Regardless, a lot of great stuff. I’m most assuredly watching this very closely. The updates so far have all been great reads, very informative and very useful as well.
Well, this all sounds thrilling! However, I’m not going to butter you up and be a fanboy and go on the forums. I just can’t add one more thing. I happy to wait, and then come try and build the worldlets when you get the templates for dummies up and running. I have lots of ideas!
[…] Free-to-play, Browser, CasualLast week MMOG development veteran Raph Koster updated his site with some insights about his newest project, Metaplace. The extraordinarily unique mmo-in-a-website concept is proceeding apace, with their […]