Blog update - Lua Debugging

2»

Comments

  • independentcreatorindependentcreator Join Date: 2007-05-07 Member: 60826Members
    It does seem a little silly that seemingly every game company is writing their own Lua debugger.

    You don't need much: breakpoints, data inspection and modification, break on exception, stack trace.... Hack in some script hot-reloading and you don't quite have edit and continue, but it might be close enough. You said you added code editing capabilities, which I'd be fine without (it would never match a full-fledged code editor), but I suppose it'd be good with the aforementioned hot reloading.

    There are so many other needs for a game client nowadays, that a lua debugger as a plugin to a larger game client framework would be pretty sweet, too.
  • MaxMax Technical Director, Unknown Worlds Entertainment Join Date: 2002-03-15 Member: 318Super Administrators, Retired Developer, NS1 Playtester, Forum Moderators, NS2 Developer, Constellation, Subnautica Developer, Pistachionauts, Future Perfect Developer
    edited May 2007
    <!--quoteo(post=1625594:date=May 7 2007, 11:07 PM:name=independentcreator)--><div class='quotetop'>QUOTE(independentcreator @ May 7 2007, 11:07 PM) [snapback]1625594[/snapback]</div><div class='quotemain'><!--quotec-->
    It does seem a little silly that seemingly every game company is writing their own Lua debugger.

    You don't need much: breakpoints, data inspection and modification, break on exception, stack trace.... Hack in some script hot-reloading and you don't quite have edit and continue, but it might be close enough. You said you added code editing capabilities, which I'd be fine without (it would never match a full-fledged code editor), but I suppose it'd be good with the aforementioned hot reloading.

    There are so many other needs for a game client nowadays, that a lua debugger as a plugin to a larger game client framework would be pretty sweet, too.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    I didn't think an editor would be necessary either, until I tried to use the debugger without it. It really makes a big difference in terms of work flow.

    I don't know of any other game company that's writing their own Lua debugger, but I'd be interested to hear about it if you know of any. You can e-mail me at max@unknownworlds.com.

    Max
  • FocusedWolfFocusedWolf Join Date: 2005-01-09 Member: 34258Members
    What's with the comment style your using?

    i'm pretty sure that lua comments look like:

    --one line comment

    --[[
    multiline comments
    --]]

    ...maybe this is why other debuggers failed to work? Or is this how you want lua comments done in ns <img src="style_emoticons/<#EMO_DIR#>/tounge.gif" style="vertical-align:middle" emoid=":p" border="0" alt="tounge.gif" />
  • ZRockZRock Join Date: 2003-01-06 Member: 11910Members, Constellation
    <!--quoteo(post=1625682:date=May 8 2007, 11:52 AM:name=FocusedWolf)--><div class='quotetop'>QUOTE(FocusedWolf @ May 8 2007, 11:52 AM) [snapback]1625682[/snapback]</div><div class='quotemain'><!--quotec-->
    What's with the comment style your using?

    i'm pretty sure that lua comments look like:

    --one line comment

    --[[
    multiline comments
    --]]

    ...maybe this is why other debuggers failed to work? Or is this how you want lua comments done in ns <img src="style_emoticons/<#EMO_DIR#>/tounge.gif" style="vertical-align:middle" emoid=":p" border="0" alt="tounge.gif" />
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    If you mean these:

    // Single line comment

    /* comment */

    /*
    * multiline
    * comments
    */

    Those are standard C/C++ style comments
  • Radix007Radix007 Join Date: 2007-04-21 Member: 60681Members
    If I'm seeing all the factors, that's an excellent idea for your company. I'd rather wait longer (to be honest, I'm used to waiting by now) and see a quality product at the end of the day.

    Theoretically, if you get the workflow good enough, we won't have to wait longer at all. Good luck.
  • digzdigz be still, maggot Join Date: 2002-05-07 Member: 588Members, NS1 Playtester, Forum Moderators, Constellation
    <!--quoteo(post=1625682:date=May 8 2007, 10:52 AM:name=FocusedWolf)--><div class='quotetop'>QUOTE(FocusedWolf @ May 8 2007, 10:52 AM) [snapback]1625682[/snapback]</div><div class='quotemain'><!--quotec-->
    What's with the comment style your using?

    i'm pretty sure that lua comments look like:

    --one line comment

    --[[
    multiline comments
    --]]

    ...maybe this is why other debuggers failed to work? Or is this how you want lua comments done in ns <img src="style_emoticons/<#EMO_DIR#>/tounge.gif" style="vertical-align:middle" emoid=":p" border="0" alt="tounge.gif" />
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    I was wondering the same thing... Lua does use that system of commenting. However, I've seen a few variations depending on what people prefer in house.
  • MaxMax Technical Director, Unknown Worlds Entertainment Join Date: 2002-03-15 Member: 318Super Administrators, Retired Developer, NS1 Playtester, Forum Moderators, NS2 Developer, Constellation, Subnautica Developer, Pistachionauts, Future Perfect Developer
    <!--quoteo(post=1625781:date=May 9 2007, 01:58 AM:name=digz)--><div class='quotetop'>QUOTE(digz @ May 9 2007, 01:58 AM) [snapback]1625781[/snapback]</div><div class='quotemain'><!--quotec-->I was wondering the same thing... Lua does use that system of commenting. However, I've seen a few variations depending on what people prefer in house.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    The Lua language doesn't include C++ style comments, but since we prefer them, we modified Lua to accept them (an idea we stole from <a href="http://www.garrysmod.com/" target="_blank">Garry</a>).

    Max
  • FaskaliaFaskalia Wechsellichtzeichenanlage Join Date: 2004-09-12 Member: 31651Members, Constellation
    <!--quoteo(post=1625788:date=May 9 2007, 08:25 AM:name=Max)--><div class='quotetop'>QUOTE(Max @ May 9 2007, 08:25 AM) [snapback]1625788[/snapback]</div><div class='quotemain'><!--quotec-->
    The Lua language doesn't include C++ style comments, but since we prefer them, we modified Lua to accept them (an idea we stole from <a href="http://www.garrysmod.com/" target="_blank">Garry</a>).

    Max
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    Which was a very smooth move.
    --[[ ]]-- is so annoying, compared to /* */

    btw: What will the whole structure look like?
    Will there be 1 big lua file, that covers more or less the whole game or will you split it into several dozens with each one covering a certain aspect?
  • TriggermanTriggerman Graphic Artist Join Date: 2004-11-10 Member: 32724Members, WC 2013 - Supporter
    edited May 2007
    <!--quoteo(post=1625347:date=May 6 2007, 05:33 PM:name=Max)--><div class='quotetop'>QUOTE(Max @ May 6 2007, 05:33 PM) [snapback]1625347[/snapback]</div><div class='quotemain'><!--quotec-->
    We've actually posted artwork by 3 different artists (Nate, Cory and Christian), but I agree they are all amazing. We'll probably be saving any significant outdoor stuff for a future expansion or game so that we have the time and resources to do it right

    Max
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    Good to hear, I hope you've told them they have designed everything right in the pictures you've released so far.

    Anyway, since I'm kinda into the artistic stuff and really look forward to each of the image releases you do, is there any chance that you producers have made some background for other lifeforms or stories that tells of something other than the classical marine vs alien in narrow spaces theme? Just for personal gain I'd like to know a bit more so I can have some fun designing stuff myself, bit of a hobby and much more fun if there's a reason to it.
  • locallyunscenelocallyunscene Feeder of Trolls Join Date: 2002-12-25 Member: 11528Members, Constellation
    <!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->btw: What will the whole structure look like?
    Will there be 1 big lua file, that covers more or less the whole game or will you split it into several dozens with each one covering a certain aspect? <!--QuoteEnd--></div><!--QuoteEEnd-->

    I was wondering this too. How much of an object oriented approach is being used?
  • Corporal_FortierCorporal_Fortier Join Date: 2005-03-22 Member: 46079Members, Constellation
    My guess is they'll split the structure in as many parts as possible to be able to find what they're looking for without having to scroll through hundreds/thousands of lines. In the code example they showed back in February <a href="http://www.unknownworlds.com/blog/2007/02/prosumers_and_natural_selectio_1.html" target="_blank">here</a>, the filename is "Armory.lua", so I guess every single building, weapon/item, life form etc. has its own file. Judging by the amount of code for a single building, I think it's the best way for them to proceed!
  • MaxMax Technical Director, Unknown Worlds Entertainment Join Date: 2002-03-15 Member: 318Super Administrators, Retired Developer, NS1 Playtester, Forum Moderators, NS2 Developer, Constellation, Subnautica Developer, Pistachionauts, Future Perfect Developer
    The files can be split up any way you want, but the way we're organizing things is one class per file. Our implementation of Lua is meant to be very similar to the way C++ works, which -- if you're familiar with it -- is slightly different than the way Garry's Mod does things. Because of this, the code in Lua is structurally similar to what you'd see in a C++ program and uses the same object-oriented facilities. The spawn code in the screen shot in the blog is actually one of the few bits that is just a bunch of global functions.

    Max
  • AndosAndos Join Date: 2003-10-17 Member: 21742Members
    You could alternatively throw those global functions into other classes with Java style "static" methods. That way they are all together in logical groups and you always know where to find a given function. <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" /> You are kinda already doing that by using the Java style code-separation (one class per file)

    It would be cool if the LUA parser accepted {} brackets instead of "then"/"end" which is just annoying to write all the time <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />
  • FaskaliaFaskalia Wechsellichtzeichenanlage Join Date: 2004-09-12 Member: 31651Members, Constellation
    <!--quoteo(post=1626013:date=May 10 2007, 04:13 PM:name=Andos)--><div class='quotetop'>QUOTE(Andos @ May 10 2007, 04:13 PM) [snapback]1626013[/snapback]</div><div class='quotemain'><!--quotec-->
    It would be cool if the LUA parser accepted {} brackets instead of "then"/"end" which is just annoying to write all the time <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    Translation: It would be cool if you could transform lua even further into c++ <img src="style_emoticons/<#EMO_DIR#>/tounge.gif" style="vertical-align:middle" emoid=":p" border="0" alt="tounge.gif" />
  • GoldenprizeGoldenprize Join Date: 2006-11-05 Member: 58379Members
    <!--quoteo(post=1625465:date=May 7 2007, 05:45 PM:name=Flayra)--><div class='quotetop'>QUOTE(Flayra @ May 7 2007, 05:45 PM) [snapback]1625465[/snapback]</div><div class='quotemain'><!--quotec-->

    I think there's a good chance we'll release the debugger with the game as well, so it will speed your development of mods also.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    i think you are not the only one who think that <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />
    this tool looks good for fans and its look very easy to use.
    lua is a very good language for modding.
    world of warcraft, farcry, garry mod and many other games use it.
    realy a good game
  • MuzzzyMuzzzy Join Date: 2005-07-20 Member: 56360Members
    To start, I don't mean to sound lame or anything, but, its Lua not LUA or lua. Secondly, I hope Decoda works out great and helps speed along the development process for you guys. I have been anticipating this game for a long time now. Good Luck to UWE.
Sign In or Register to comment.