FAQ Search
Memberlist Usergroups
Profile
  Forum Statistics Register
 Log in to check your private messages
Log in to check your private messages
Moonpod Homepage Starscape Information Mr. Robot Information Free Game Downloads Starscape Highscore Table
May-06: The Sentinel Returns
Goto page Previous  1, 2, 3, 4  Next
Post new topic   Reply to topic    Discussion Pod Forum Index -> Developer Diary View previous topic :: View next topic  
 Author
Message
Moonpod Developer Diary RSS feed -RSS Feed
imadoki



Joined: 04 Jan 2006
Posts: 24
Location: Canada



PostPosted: Tue May 09, 2006 12:31 am    Post subject: Reply with quote

I think you misunderstood what I meant by the amazing "toy" like feel. I didn't mean it in a derogatory sense. I meant it as a compliment.

The look and feel of the Mr. Robot environments and characters indeed DO make them feel like they are really really articulate "toys" or made of expensive die cast metal and plastics. Including the bright primary colors, etc. they work extremely well to create an unified theme visually. Kudos to MoonPod's artist.

Whenever I look at any animated sequense of MR. Robot or any other robot, I feel like, "wow, I wish I had a real toy of that thing."

After looking at the Lua script, I have to say that you guys could just release it as is, and just give a txt file with the internal commands and a bunch of example files (sparsely remarked.)

I bet a ton of people would start churning out really great mods and also help out by creating detailed tutorials, etc. based on the initial stuff you guys were to hand out.

Again, great work.

EDIT:

BTW, whats the ETA for Mr. Robot? Ballpark estimates are fine. But please, don't just say, 2006. Confused
Back to top
View user's profile
Darth Dallas



Joined: 18 Oct 2003
Posts: 411



PostPosted: Tue May 09, 2006 1:57 am    Post subject: Reply with quote

Fost wrote:
Darth Dallas wrote:
Might work great hand in hand with the editor.


If the editor gets released then I'm sure you'll be able to use lua scripts. They work now - you just make a file called 'room name'.lua and it automatically uses it - all you need is a text editor Smile

The trouble is - how many people will be interested in that level of scripting? and what could we do to make it easier (I'd have thought the easier it is, the more likely people are to use it). There's probably not a lot, and writing some really comprehensive tutorials and example scripts is possible all we can do.


Well, I'm rather slow when it comes to mods in general, so I'd definitely need some sort of tutorial. I mean, its one thing to create, its another to just stick that file in a game folder to run it like in a case of a single room map or something you just downloaded.

I can honestly say though that I've barely ever experimented in making mods at all, but I think we're of like minds about if something is easy to use, people are likely to use it.

Still, if you do decide to go forward with the player adventures idea, I think tutorials for things like how to use the room textures, set up obstacles, link rooms you've made together etc, I have to think that will be a big help to people.

The closest I can think of (while again, having no knowledge of programming to give you an informed analysis - just a gaming opinion here) to a gaming editor I enjoyed was from the Sim City games (most recent one I have is 3000) where every function is in graphcial form...no behind the scenes text scripting to plop in (except maybe your leader name).

My point is, is that all the tools were straight forward. I can't recall if it had this (a few other games have), but tooltips might also help out in something like this example - hover the cursor over an object or menu item for a blurb about what its purpose is.

I don't envy any develper this kind of project, but as a consumer and end user of mods etc., and especially with things like editors, it helps a great deal if things are kept in context for them as they delve into it.
Back to top
View user's profile
Magnulus



Joined: 08 Nov 2005
Posts: 556
Location: Bergen, Norway



PostPosted: Tue May 09, 2006 6:36 am    Post subject: Reply with quote

imadoki wrote:
I think you misunderstood what I meant by the amazing "toy" like feel. I didn't mean it in a derogatory sense. I meant it as a compliment.


Nono, I wasn't implying that you were being derogatory. I was just stating that I thought of the graphics differently. So we're both positive, but in different ways! Very Happy

Quote:
Kudos to MoonPod's artist.

That'd be Fost (or Nick, depending on how you know him, I guess.)

Quote:
BTW, whats the ETA for Mr. Robot? Ballpark estimates are fine. But please, don't just say, 2006. Confused

I know I don't speak for them, but I'd say 2006/ 2007. The development of Mr. Robot seems to me to be a very organic one. It will twist and turn in unexpected directions as it goes along, its roots digging for new sources of sustenance as the game itself grows larger and more expansive. Wow, talk about an idiotic analogy.
Back to top
View user's profile Visit poster's website MSN Messenger
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Tue May 09, 2006 10:19 am    Post subject: Reply with quote

Sounds like a couple of people will be giving it a try if we get it out there. In theory, the editor should be pretty easy to use - building rooms out of blocks is something that I think everyone understands - it's actually a million times easier than making something like an fps level, even when using something as slick as unrealEd. Of course, the minus in our case is the editor has almost zero thought put into it from an ergonomics point of view, having been designed to be coded as fast as possible. That's something that can be worked on though.

If you just want to make a series of puzzles linked together as rooms, then that should be easy enough, but anything more complicated and there isn't really a better way than via scripting. There will be good tutorials for this though.

In the end, it will be a bit of an experiment for us - if level building is popular, then that in itself justifies additional effort supporting it as far as we are concerned. If not, then that pretty much says to us: "Don't waste your time on end user editing functionality". Of course, we don't want to conduct an experiment like that without giving it enough of a chance - hence the internal debate about whether the tools are ever going to be at our minimum quality level to release them.
Back to top
View user's profile Visit poster's website
DogBoy
Starscape Jedi
Starscape Jedi


Joined: 13 Mar 2006
Posts: 67



PostPosted: Wed May 10, 2006 9:02 am    Post subject: Reply with quote

I might also be interested in scripting Mr Robot using lua. However, I do have some general (not very useful!) thoughts on ease of scripting.

Ideally, a scripting language should match the user's cognitive model of the logic or process they are describing as closely as possible. The code you posted, which is basically a sequence of events without any branching, "ought" to look more like this: -

START
overrideAsimov(true)
messageSystem("h1r1dummy", "WANDER", "2,0,7,0,7,8")
wait(500)
launchEffectSimpleAtPos(Asimov, "asimov_brain_upload")
wait(3000)
playConversation("T01_asimov_wakeup")
overrideAsimov(false)

... i.e. 7 lines of code instead of roughly 40. Unfortunately that would require writing your own scripting language, which is probably not high on your list of priorities!

Like I said, not very useful thoughts but possibly relevant.

What's Lua's security model like? I'm sure you've already considered this, but it would be bad if downloading a malicious Mr Robot mod put you at risk of having your system files tampered with.
Back to top
View user's profile
Poo Bear
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 4121
Location: Sheffield, UK



PostPosted: Wed May 10, 2006 9:39 am    Post subject: Reply with quote

Yes, if our goal had been to develop a simple scripting system for the public to use then you're right on the money. Sadly the scripting system is designed so I can quickly get the game working. However, a lot of basic functionality doesn't even require a lua script, a lot of things like doors, switches and simple puzzles often "just work(tm)". So I'd assume people would start by just making a few rooms and then if they enjoy the results they might dip their toes into scripting, simple stuff like linking some rooms together with a bit of dialogue perhaps. Anyway, depends if we can even get everything in place to enable modding, we'll see.

LUA can't access files, it doesn't come with any code to do that, neat huh? That's what I like about it, it's tiny, you have to explicitly link in functions or "packages" to add more complex functionality i.e. file handling, network access, browsing, etc. I haven't added any. Whether someone could do something bad calling our game functions I'm not sure, I doubt it.
Back to top
View user's profile Visit poster's website
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Wed May 10, 2006 10:41 am    Post subject: Reply with quote

DogBoy wrote:
Ideally, a scripting language should match the user's cognitive model of the logic or process they are describing as closely as possible.


Yeah, what you describe is the way most people (including me) think. The first thing I had to get my head round (being a non-programmer) is that the script is called every frame. So, you end up setting up 'state' variable, and going through a loop that checks if you've reached that state yet. You also have to check how much time has passed at the beginning of each state block if you want a pause, or check if a conversation is running etc. Actually more aking to game programming.

What you describe is a script that runs across the course of time spent in a room, but gets updated every frame. I'm pretty sure there's no off the shelf language that works that way, and there's probably a lot of reasons why something like that could easily be broken, but yeah - it would make more sense to non-programmers if you could develop somehting like that.
Back to top
View user's profile Visit poster's website
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Wed May 10, 2006 12:35 pm    Post subject: Reply with quote

Here's an article written by the relic programmers about why they chose lua:

http://www.relic.com/industry/articles/scripting.php

Pretty much the same reasons as us really. I think it comes down to lua or python these days, and the reason we went for lua over python was that the syntax was really quick to pick up being more 'c++ like'. Game Monkey script is probably the nicest, with it's c++ style comments variable scope and threading, but we tend to avoid using systems that don't appear to have a big user base, and their forum isn't exactly falling over with people. Looks like one to keep an eye on though.

I'm pretty sure we will use lua again on our next project as it's quite easy for us to use. For end users - there are a lot of games already out there using lua, so there's no shortage of 'learn lua' documentation. Also, putting in runtime checks for the lua should help - this is something Mr. Robot already does - if the script fails for any reason, the game pauses and asks you if you want to fix the file and continue, rather than just crashing (well, at least, most of the time Wink )
Back to top
View user's profile Visit poster's website
Weeble
Starscape Jedi
Starscape Jedi


Joined: 25 Apr 2003
Posts: 1143
Location: Glasgow, Scotland



PostPosted: Wed May 10, 2006 1:07 pm    Post subject: Reply with quote

Lua doesn't support continuations or generators like Python, does it?

In Python you could write the action as a generator, which doesn't need another thread. I was going to write an example, but I can't remember the syntax at the moment. The idea is that a generator is a function that can return a value and then freeze itself. The code that's making use of it can unfreeze it and get the next value from it, over and over, until it finishes or the caller decides that it doesn't care about any more results.

So you could make a generator that looks much like DogBoy's example, with each call to wait being replaced with a "yield" statement, which is the way a generator returns a value in Python. The code that gets called each frame could keep track of the waiting, and whenever it's done waiting, it starts up the generator again to let it run to the next "yield", or to the end, whichever comes first.
Back to top
View user's profile Visit poster's website MSN Messenger
Weeble
Starscape Jedi
Starscape Jedi


Joined: 25 Apr 2003
Posts: 1143
Location: Glasgow, Scotland



PostPosted: Wed May 10, 2006 1:16 pm    Post subject: Reply with quote

Actually, Lua does appear to support coroutines, which are much the same thing. You may be able to create the syntax DogBoy proposed in pure Lua, without having to write extra supporting C++.
Back to top
View user's profile Visit poster's website MSN Messenger
Dove
Starscape Jedi
Starscape Jedi


Joined: 13 Dec 2003
Posts: 89



PostPosted: Wed May 10, 2006 4:44 pm    Post subject: Reply with quote

LOL - I just noticed this. All the Starscape Jedi appear to also be programmers! I know Lothar and I are--I work as a software engineer, he has a CS degree. And I see that Weeble and Dogboy are, too. I think I'm missing somebody, but that's still funny. Laughing
Back to top
View user's profile
Magnulus



Joined: 08 Nov 2005
Posts: 556
Location: Bergen, Norway



PostPosted: Wed May 10, 2006 5:57 pm    Post subject: Reply with quote

I'm a NON-programmer, I'm sad to say. I've often tried to be a programmer, but with no luck.
Back to top
View user's profile Visit poster's website MSN Messenger
icarus
Troll
Troll


Joined: 01 Mar 2004

Location: Olympia Washington



PostPosted: Wed May 10, 2006 7:42 pm    Post subject: Reply with quote

Hmmmm suspicious. OH N03S IT$ TH3 H4X0RZ

Last edited by icarus on Wed May 10, 2006 9:24 pm; edited 1 time in total
Back to top
View user's profile Visit poster's website
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Wed May 10, 2006 8:41 pm    Post subject: Reply with quote

Weeble wrote:
Actually, Lua does appear to support coroutines, which are much the same thing. You may be able to create the syntax DogBoy proposed in pure Lua, without having to write extra supporting C++.

Hmm, it would be interesting to try that at some point as an experiment. I have a feeling you'd come across other problems to do with moving between rooms - currently we have a way save data between rooms which also gets passed through to the game saving system. That all works with end user scripts, but I'd have thought relying on 'paused' coroutines instead of a state would likely break.


State driven scripts really aren't that bad - I think I should be able to put together some really easy to follow tutorials. Certainly some basic linear stuff like: play conversation-open a door-trigger an effect, should be possible for non programmers to follow. Of course, prior programming knowledge opens up lots of opportunities to do more complicated things.

I suppose we just need to see how it goes - we'll mirror the efforts of Mr. Robot adventure authors, if lots of people start to get into it, then we are happy to put the support effort in. If it really takes off, then (as mentioned to some extent in the dev diary) we aren't short of ideas to help people share and collaborate. I'd even be happy to add user adventure specific items and scenery to core game updates if it's popular enough. It's just jumping the gun to assume there will be that level of interest at this point. There's a chance that 3 years down the line, all we have is a handful of partially broken single rooms Sad What we are doing is probably right - build in all the abilities we need to expand the system in the future, and do enough work to give user created adventures a good chance of working, then sit back and see what happens. Smile
Back to top
View user's profile Visit poster's website
Flumpaphone



Joined: 18 Sep 2003
Posts: 86



PostPosted: Wed May 10, 2006 10:44 pm    Post subject: Reply with quote

We only need a few programmers to help out here I should think. Lua is powerful enough to offer any sort of flow control we might need. The important thing is Moonpod writing enough bindings between the game and lua to do what we want. A scripting language is useless for game development without these. I can already spot a few in the code above: sendMessage, launchEffectSimple, overrideAsimov, isConversationActive etc. It looks as if there is already some interesting functionality to play with.

What we probably need more of is people designing these adventures and even just the puzzles for them. Hopefully there's enough of us on this board interested enough to be able to come up with a few good adventure addons. Everyone could contribute - I foresee 'room ideas' and 'adventure ideas' threads being popular in the Mr. Robot sub-forum Smile If we can pull together a good design, then everyone could help out putting bits of it into place.


Once again - great diary, and I especially enjoyed the lua example posted afterwards.
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    Discussion Pod Forum Index -> Developer Diary All times are GMT
Goto page Previous  1, 2, 3, 4  Next
Page 2 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group