News for hackers. Stuff that matters.
Re:I open sourced my game along with a tutorial on how to ma... by kirillzubovsky on Sunday July 05, 2020 @07:47PM (#23743232)
I've never heard of Lua, but now that I am looking at it, it seems very friendly. Love how they call things what they are, for example `local` is just a local variable, or `repeat X until Y` for a loop. It's a joy to see, to be honest.
Re:I open sourced my game along with a tutorial on how to ma... by Descartes1 on Sunday July 05, 2020 @08:49PM (#23743630)
Check out (the now unfortunately named) CoronaSDK from (the also unfortunately named) Corona Labs. It's all Lua based and is now entirely MIT open sourced.

One of the easiest to code cross platform development languages there is.

Re:I open sourced my game along with a tutorial on how to ma... by andai on Sunday July 05, 2020 @11:33PM (#23744441)
Renamed to Solar2D.
Re:I open sourced my game along with a tutorial on how to ma... by lioeters on Monday July 06, 2020 @01:55AM (#23745095)
To save someone a search, here it is:

https://github.com/coronalabs/corona

Re:I open sourced my game along with a tutorial on how to ma... by grijul on Sunday July 05, 2020 @09:58PM (#23743962)
I was introduced to game development (and my first "real" project) through CoronaSDK 3-4 years ago. Wrote a very simple android game. Ah it was fun! :-)
Re:I open sourced my game along with a tutorial on how to ma... by choicenotchance on Monday July 06, 2020 @12:37AM (#23744736)
Whoa! CoronaSDK got opensourced?! It was the hype back in 2012-15ish era. It and Ionic etc. Always wanted to learn something like that but never got beyond backend dev thanks to overloading office work by my jerk employer back then. Will definitely check it out now, now that I'm in a better place and have weekdays to myself purely.
Re:I open sourced my game along with a tutorial on how to ma... by greggman3 on Monday July 06, 2020 @03:36AM (#23745575)
A popular fantasy game console based around Lua

https://www.lexaloffle.com/pico-8.php

Celeste, a successful commercial game, was prototyped in Pico-8

https://www.lexaloffle.com/bbs/?pid=11722#p

Re:I open sourced my game along with a tutorial on how to ma... by ericcholis on Sunday July 05, 2020 @10:42PM (#23744182)
I was first introduced to Lua via World of Warcraft. It's the scripting language used for Interface Customization.

https://www.wowhead.com/guide=5338/comprehensive-beginners-g...

Re:I open sourced my game along with a tutorial on how to ma... by JayPeaEm on Sunday July 05, 2020 @10:58PM (#23744263)
Same here!

SQL, Lua, C++, and HTML all around 2006 to host private World of WarCraft servers.

Great talking point at my previous interviews.

Re:I open sourced my game along with a tutorial on how to ma... by gauchojs on Monday July 06, 2020 @05:24AM (#23746078)
A decade ago, I thought Lua would be where JS is today. But JS won...

A new text editor in Lua, why not: https://github.com/rxi/lite

(Rxi is awesome, see https://rxi.itch.io/)

Re:I open sourced my game along with a tutorial on how to ma... by cl3misch on Monday July 06, 2020 @05:44AM (#23746163)
rxi indeed is awesome! Do you know in what language/engine his (her?) tools on itch.io are written? They all have an awesome pixelart look to them and I wonder if (s)he uses lua for them too.
Re:I open sourced my game along with a tutorial on how to ma... by rxi on Monday July 06, 2020 @11:03AM (#23748670)
The tools are all written in C and use microui[1] for the UI. The games are typically written in LÖVE with the exception of SCANLINE which uses Nim

[1] https://github.com/rxi/microui

Re:I open sourced my game along with a tutorial on how to ma... by felixr on Monday July 06, 2020 @12:44PM (#23749707)
First time I heard about 'lite'. I have to say the first impression is really great. Fast and smooth. Nice work!
Re:I open sourced my game along with a tutorial on how to ma... by rxi on Tuesday July 07, 2020 @03:14AM (#23756558)
Thanks!
Re:I open sourced my game along with a tutorial on how to ma... by soapdog on Monday July 06, 2020 @09:25AM (#23747602)
also, just a sidenote which you might already be aware of, a lot of itch.io used to be written in Lua. Check out Moonscript, A language that is like the coffeescript of Lua (https://moonscript.org), and Lapis which is a web framework (https://leafo.net/lapis/) that can use Lua or Moonscript. Itch.io used to be built with both, I don't know if that remains true today.
Re:I open sourced my game along with a tutorial on how to ma... by metroholografix on Monday July 06, 2020 @12:02PM (#23749270)

    curl -sI https://itch.io | grep -i server
    Server: lapis
Re:I open sourced my game along with a tutorial on how to ma... by backpropaganda on Monday July 06, 2020 @06:15AM (#23746312)
It's Lua. They use Love2D.
Re:I open sourced my game along with a tutorial on how to ma... by umvi on Sunday July 05, 2020 @08:35PM (#23743549)
1-index kept throwing me off though
Re:I open sourced my game along with a tutorial on how to ma... by joan_kode on Sunday July 05, 2020 @10:57PM (#23744251)
The main problem with that decision is that every discussion having anything to do with Lua always devolves into repetitive bikeshedding about the 1-indexing.
Re:I open sourced my game along with a tutorial on how to ma... by catblast on Sunday July 05, 2020 @11:12PM (#23744332)
In the context of language design, the arguments for 0-based indexing rise above bikeshedding. https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/E...

Sure it may not be the most critical point about language design, but it's not just bikeshedding either. For one thing, it is a language semantics issue rather than plainly syntax issue.

I still like Lua, and maybe you don't even agree with Dijkstra's argument, which is also possible to make, but doesn't mean its bikeshedding - which seems to be a totally overused term to basically mean any argument I don't want to have.

Re:I open sourced my game along with a tutorial on how to ma... by pull_my_finger on Monday July 06, 2020 @03:06AM (#23745429)
Roberto Ierusalimschy makes an interesting point on this in an interview[1] last year.

> When we started Lua, the world was different, not everything was C-like. Java and JavaScript did not exist, Python was in an infancy and had a lower than 1.0 version. So there was not this thing when all the languages are supposed to be C-like. C was just one of many syntaxes around.

> And the arrays were exactly the same. It’s very funny that most people don’t realize that. There are good things about zero-based arrays as well as one-based arrays.

> The fact is that most popular languages today are zero-based because of C. They were kind of inspired by C. And the funny thing is that C doesn’t have indexing. So you can’t say that C indexes arrays from zero, because there is no indexing operation. C has pointer arithmetic, so zero in C is not an index, it’s an offset. And as an offset, it must be a zero — not because it has better mathematical properties or because it’s more natural, whatever.

> And all those languages that copied C, they do have indexes and don’t have pointer arithmetic. Java, JavaScript, etc., etc. — none of them have pointer arithmetic. So they just copied the zero, but it’s a completely different operation. They put zero for no reason at all — it’s like a cargo cult.

[1] - https://habr.com/en/company/mailru/blog/459466/

Re:I open sourced my game along with a tutorial on how to ma... by Feolkin on Monday July 06, 2020 @05:15AM (#23746027)
I'm confused. Lisp does 0-based indexing. Lisp predates C and C-like languages by decades.
Re:I open sourced my game along with a tutorial on how to ma... by groovy2shoes on Monday July 06, 2020 @07:02AM (#23746573)
They don't say that C was the first. The claim is that C's influence was responsible for the proliferation.

(Bit of a tangent: Lisp predates C by at most 2 years if you count McCarthy's original 1960 paper, but afaict their respective implementations both got their first public distribution in 1962. Of course, Lisp was set to gain momentum from that time until the AI winter, while C was practically confined to UNIX until the 80s...)

Re:I open sourced my game along with a tutorial on how to ma... by kazinator on Monday July 06, 2020 @12:01PM (#23749263)
Historically, everyone who studied computing seriously learned assembly language, and it was much more widely used.

In early computing, assembly language saw a lot of use. The navigation program that sent the Apollo mission to the Moon was written in assembly language. During the micro-computer boom, which echoed the history of big iron boom, a lot of applications and systems were written in assembly language again. Most commercial video games for 8 bit micros were written in assembly language. The famous WordPerfect word processor for the IBM PC was assembly language. The VMS operating system: assembly language.

C became easily popular because it gave a nice notation, and a sprinkling of type, to assembly language memory manipulation concepts that most professional programmers already knew how to use.

Re:I open sourced my game along with a tutorial on how to ma... by lispm on Monday July 06, 2020 @08:08AM (#23747024)
C wasn't from 1972? Basically a decade later?
Re:I open sourced my game along with a tutorial on how to ma... by groovy2shoes on Monday July 06, 2020 @09:40AM (#23747735)
Oof yes, that's correct. The manual is dated 12 June 1972, which seems to be the release date.
Re:I open sourced my game along with a tutorial on how to ma... by DarkWiiPlayer on Monday July 06, 2020 @07:04AM (#23746577)
Lisp isn't the reason modern-day languages are all offset-indexed though; that's Cs fault
Re:I open sourced my game along with a tutorial on how to ma... by soneca on Sunday July 05, 2020 @11:27PM (#23744410)
Are you bikeshedding bikeshedding??

Just kidding, I actually agree with your point that the term is just demonstrate that you don’t want to have a conversation by diminishing the value of anybody having it.

Re:I open sourced my game along with a tutorial on how to ma... by skrebbel on Monday July 06, 2020 @01:40AM (#23745041)
Fwiw Dijkstra practically invented bikeshedding
Re:I open sourced my game along with a tutorial on how to ma... by andi999 on Monday July 06, 2020 @02:31AM (#23745248)
bikeshedding considered harmful
Re:I open sourced my game along with a tutorial on how to ma... by philipov on Monday July 06, 2020 @12:18AM (#23744651)
I think the main problem with 1-indexing is that it makes some formulas that depend on the length of an array more complicated. Not a huge problem, but it's kind of annoying.
Re:I open sourced my game along with a tutorial on how to ma... by OkayPhysicist on Monday July 06, 2020 @04:19AM (#23745763)
It replaces the standard [0,len()) with an [1,len()], though, which correspondingly makes other tasks easier. Plus it matches normal mathematical vector indexing.

In the end, in a language where you aren't doing pointer arithmetic, the sides are pretty even. We just tend to side with tradition, because it's easier to.

Re:I open sourced my game along with a tutorial on how to ma... by sergeykish on Monday July 06, 2020 @05:46PM (#23753169)
I found it uncomfortable when drawing on screen:

   y = margin + (i - 1) * lineheight
Re:I open sourced my game along with a tutorial on how to ma... by wruza on Tuesday July 07, 2020 @09:14AM (#23758845)

  y = 1 + ...
if y is 1-based too (which feels even more uncomfortable). But it would be nice to have such functions out if the box:

  canvas.linear_index(x, y, stride)
  vbox.y1_for(margin, spacing, height, i)
  vbox.y2_for(margin, spacing, height, i)
And then you have "integer at the center of a pixel" vs "integer at the top-left of a pixel" differences, which should be taken into account by these functions too. Stroke 1: y+0.5, y+height-1. Stroke 2: y+1, y+height-2. Fill: y, y+height.

Pixel geometry is hard on its own.

Re:I open sourced my game along with a tutorial on how to ma... by wruza on Tuesday July 07, 2020 @08:43AM (#23758592)
Off by ones happen with 0-based too (to me at least, at "write the new codez" stage). What languages are really missing is some stdlib for hiding these calculations under easily understandable names like nthfromend, nfromto, revidx, last, etc. Too much of n-1, n-i-1, -i-1, b-a+1, <, <= to maintain in correct ranges either way.

0/1-based are simply two degenerate around-off-by-one cases of working at general n-based offset, since both 0 and 1 are the most common results of off-by-one.

Re:I open sourced my game along with a tutorial on how to ma... by shakna on Sunday July 05, 2020 @09:15PM (#23743754)
Once you get used to it, it does help prevent a whole bunch of off by one errors though, as you don't need math when grabbing a range.

Like a string will always be:

    s:sub(1, #s)
And a sequence table will always be:

    for i = 1, #t do
      t[i]
    end
Re:I open sourced my game along with a tutorial on how to ma... by anonymoushn on Sunday July 05, 2020 @09:48PM (#23743908)
I disagree. Particularly when parsing strings, it's useful if the upper bound of one substring is the lower bound of a nonoverlapping substring immediately after. For example, here's a routine to split a string into the part before the first dot and the part after:

  function split_dot(s)
    local idx = s:find(".", 1, true)
    if not idx then return s end
    return s:sub(1,idx-1), s:sub(idx+1)
  end
It may come as a surprise that one should use a difference of 2 to skip over one character!

In a language that used the half-open interval convention we would end up with:

  s:sub(0, #s)
and

  for i = 0, #t do
    t[i]
  end
which seem just as good to me.
Re:I open sourced my game along with a tutorial on how to ma... by DarkWiiPlayer on Monday July 06, 2020 @07:14AM (#23746646)
> It may come as a surprise that one should use a difference of 2 to skip over one character!

On the contrary; unless you're very used to offset-indexing, it seems more natural to start at the next element for the next substring, or the 2nd next element when skipping one.

Re:I open sourced my game along with a tutorial on how to ma... by shakna on Sunday July 05, 2020 @10:57PM (#23744249)
You wouldn't end up with this:

     s:sub(0, #s)
You would end up with:

     s:sub(0, #s - 1)
Which demonstrates the off-by-one error.
Re:I open sourced my game along with a tutorial on how to ma... by anonymoushn on Monday July 06, 2020 @12:13AM (#23744630)
Can you explain what the intent of the code is and what the error is? It looks like the original code just grabs a substring containing the entire string. If the language used half-open intervals with an exclusive upper bound, the code I posted would also do that.

In python, for example, the operation of copying a list can be correctly written l[0:len(l)]. You're more likely to see l[::] or list(l) though.

Edit: I think maybe the proposed error that's being avoided is "a user tries to use a closed interval when sub takes a half-open interval." It seems like the opposite error is similarly likely though. Some areas where it's nice to have half-open intervals like using a modulus to restrict a value to an interval or parsing strings don't have such a symmetry.

Notably if you're making a binary heap the formulas come out much nicer with 1-indexing than with 0-indexing, but I haven't met any other examples where this is the case.

Re:I open sourced my game along with a tutorial on how to ma... by shakna on Monday July 06, 2020 @01:18AM (#23744941)
If the language is using an exclusive upper bound, then it is correcting the mistake of the programmer for specifying a length beyond what the string contains.

Lua does do that, so in this theoretical world with 0-indexed strings, it would still work as expected.

But it doesn't change the fact that you're not actually specifying the right length - the language is correcting an off-by-one error, which means that the programmer's mental model is probably going to be wrong, and it will bite them when they don't expect it to.

That's what off-by-one errors are - a place where the programmer's mental model doesn't actually fit the real world. It is better to not introduce places where they can happen in the first place, rather than to complicate things with edge cases where sometimes it works and sometimes it doesn't.

Re:I open sourced my game along with a tutorial on how to ma... by dragonwriter on Monday July 06, 2020 @01:48AM (#23745075)
> If the language is using an exclusive upper bound, then it is correcting the mistake of the programmer for specifying a length beyond what the string contains.

No, it's not-correcting the not-error of the programmer specifying the correct upper bound using the half-open-interval model, a common mathematical model of range specification that has lots of useful properties.

Re:I open sourced my game along with a tutorial on how to ma... by anonymoushn on Monday July 06, 2020 @02:44AM (#23745319)
It's useful, if you are writing ternary search (over integers) or some such thing concerned with intervals, to be able to compute the length as hi-lo, and to be able to use hi<lo to check whether an interval is malformed, rather than writing hi-lo+1 and hi+1<lo. In the example about using modulo to place all integers into some interval upthread, most programming languages let you write (n-lo)%(hi-lo)+lo, but in Lua you should maybe write (n-lo)%(hi+1-lo)+lo. It doesn't seem like I am getting less likely to make errors here!
Re:I open sourced my game along with a tutorial on how to ma... by sergeykish on Monday July 06, 2020 @09:58AM (#23747887)
That would be strange, in Ruby

    s = "foo"
    s.length
    #=> 3
    s[0, s.length]
    #=> "foo"
Same in JavaScript

    s.slice(0, s.length)
and Python

    s[0:len(s)]
Re:I open sourced my game along with a tutorial on how to ma... by shakna on Monday July 06, 2020 @01:40PM (#23750435)
Yet, none of those are consistent with that on non-string objects:

To get the last object of an array in JS is:

    arr = [1, 2, 3]
    arr[arr.length - 1]
To get the last object of an array in Python is:

    arr = [1, 2, 3]
    arr[len(arr) - 1]
To get the last object of an array in Lua is:

    arr = {1, 2, 3}
    arr[#arr]
Re:I open sourced my game along with a tutorial on how to ma... by sergeykish on Monday July 06, 2020 @05:34PM (#23753045)
There is a difference between order and offset, both consistent and makes sense. We use both models in everyday life. Examples of offset are ruler (marks 0, 1, ...), time offset (this hour, next hour, ..), age (newborn, one year, two years), count (last, last but one). That's reflected in our languages [1].

> non-string objects

There is no difference between array and string access in ruby, python, js.

There are better ways to access last element (python, ruby):

    >>> arr[-1] # meaning first element from back (1-indexing!)
    3
I mentioned your comment is wrong. I do not know why you are turning it into 0-indexing vs 1-indexing, looks like changing topic for me.

[1] https://en.wikipedia.org/wiki/Comparison_of_programming_lang...

Re:I open sourced my game along with a tutorial on how to ma... by shakna on Tuesday July 07, 2020 @03:32AM (#23756619)
> I mentioned your comment is wrong. I do not know why you are turning it into 0-indexing vs 1-indexing, looks like changing topic for me.

... That's exactly where this topic started:

> 1-index kept throwing me off though

---

> There is no difference between array and string access in ruby, python, js.

There's no difference in Lua either:

    s:sub(1, 1)
    tbl:select(1, 1)
But it doesn't use offset, and I find that more useful for preventing off-by-one errors.
Re:I open sourced my game along with a tutorial on how to ma... by sergeykish on Tuesday July 07, 2020 @05:21AM (#23757235)
I am to used to 0-indexing to judge. If it is not clear already - I am not going to participate in who is better. My thread is

>>>> a string will always be:

    s:sub(1, #s)
>>> In a language that used the half-open interval convention we would end up with:

    s:sub(0, #s)
>> You would end up with:

     s:sub(0, #s - 1)
> That would be strange, in Ruby

    s[0, s.length]
Your argument against 0-index is just plain wrong. No one creates such API. It would be to awkward - either #s should be `length + 1` or `sub` should expect `length + 1`.

----

>>>> Once you get used to it, ... you don't need math when grabbing a range.

I assure you once you get used to 0-indexing there is no need for math when grabbing a range

    s[0..s.length] # that is identity through range in ruby 
----

>>>>> 1-index kept throwing me off though

>>>> it does help prevent a whole bunch of off by one errors

You claim superiority, it is not. I can't remember such errors in my life. It may be easier to describe to children but I doubt it. My first encounter with 0-indexing was with ruler - "why it starts with 0?" - pre-school. I can claim 0-index is natural. I would not.

There is no better model just "happy accidents".

Re:I open sourced my game along with a tutorial on how to ma... by DarkWiiPlayer on Monday July 06, 2020 @07:15AM (#23746654)
unless the fantasy-lua went all the way and `#` returned the offset of the last element, that is, the length minus one
Re:I open sourced my game along with a tutorial on how to ma... by pansa2 on Monday July 06, 2020 @03:50AM (#23745629)
Yes. There are pros-and-cons of 1-based indexing when considered in isolation. But for Lua, a language that’s commonly used tightly-coupled to C, 1-based indexing is extremely awkward.
Re:I open sourced my game along with a tutorial on how to ma... by snazz on Sunday July 05, 2020 @09:00PM (#23743678)
It’s unfortunate that Lua makes some strange decisions, but the powerful functionality totally outweighs the weirdness (metatables are especially cool). I really like Lua, especially for game programming with LÖVE.
Re:I open sourced my game along with a tutorial on how to ma... by DarkWiiPlayer on Monday July 06, 2020 @07:12AM (#23746627)
"strange" in the sense of different from other languages in 2020, yes, but not strange from the perspective of its developers.

Lua is a language for both hardcore C programmers and complete n00bs wanting to configure their C programs. In that context, position-based indexing makes much more sense, as it's how most non-programmers think.

Re:I open sourced my game along with a tutorial on how to ma... by anonymoushn on Monday July 06, 2020 @08:18AM (#23747089)
I find it strange that you choose to use terminology that does not uniquely identify what you are talking about when the rest of the thread uses terminology that does uniquely identify what they are talking about
Re:I open sourced my game along with a tutorial on how to ma... by TedDoesntTalk on Monday July 06, 2020 @12:46AM (#23744781)
How about this: The empty string and 0 are truthy. Why?
Re:I open sourced my game along with a tutorial on how to ma... by DarkWiiPlayer on Monday July 06, 2020 @03:36AM (#23745574)
0? Because Lua isn't C. It makes sense for C to treat 0 as falsey, because (void*)0 is Cs way of expressing a nil-value, as well as not having a dedicated boolean value to keep the language simpler.

Lua, both has a dedicated nil value and a boolean type, so there's no reason whatsoever to treat zero as falsey, other than the C cargocult.

As for empty strings, I really don't see the rationale behind it. An empty string is not nothing. At the very least, it still holds the length-data of 0, so it's conceptually more than just nil and should thus still be truthy.

Re:I open sourced my game along with a tutorial on how to ma... by cl3misch on Monday July 06, 2020 @01:39AM (#23745036)
Maybe because all variables are `nil` by default, and checking on undeclared variables does not raise an error. So `if foo then ... end` is often used as an existence check, where `foo = 0` should be truthy.
Re:I open sourced my game along with a tutorial on how to ma... by pansa2 on Monday July 06, 2020 @03:43AM (#23745606)
If you make the empty string falsy, surely you need to make all empty collections falsy?

Python does this, which leads to people checking whether a list is empty using `if l` rather than `if len(l) > 0`. I‘d rather they stuck with “explicit is better than implicit”.

Re:I open sourced my game along with a tutorial on how to ma... by anonymoushn on Monday July 06, 2020 @02:50AM (#23745345)
This is probably a good thing, if you don't want to have tickets filed about whether midnight (time of day) is truthy, whether Jan 1, 1970 is truthy, why some type of empty collection is truthy but others are not, etc.
Re:I open sourced my game along with a tutorial on how to ma... by pansa2 on Monday July 06, 2020 @03:38AM (#23745582)
> This is probably a good thing, if you don't want to have tickets filed about whether midnight (time of day) is truthy

Agreed. Here is an example of exactly that in Python:

https://bugs.python.org/issue13936

Re:I open sourced my game along with a tutorial on how to ma... by wafn on Sunday July 05, 2020 @09:10PM (#23743728)
I think 0-index causes a lot of new programmers (and non-programmers) confusion because they aren't used to treating 0 as a counting instance. For example, A.D. 2020 suggests that (allowing for the various changes and debates) Jesus was born 2020 years ago, instead of counting the first year which would make (2021-1 day) years ago. I see this every year around New Year, headlines saying "Actually, it will be [year + 1]"
Re:I open sourced my game along with a tutorial on how to ma... by wastedhours on Monday July 06, 2020 @03:59AM (#23745673)
The Defold game engine (recently spun back out of King) uses Lua as the main language [0]

[0] https://defold.com/manuals/lua/

Re:I open sourced my game along with a tutorial on how to ma... by brainbag on Monday July 06, 2020 @08:24AM (#23747130)
They also open sourced it and created a new organization, the Defold Foundation, to own it. I have built commercial games but only some incomplete side projects with Defold, Corona, and Love2D.

Of the three I thought Defold was the best and was supported by a company of commercial game developers. If I were going to start today it would be my top one to consider.

Re:I open sourced my game along with a tutorial on how to ma... by xorcist on Monday July 06, 2020 @08:39AM (#23747240)
They didn't open source it. There was a (righteous) flamefest among the HN comments upon the announcement and they had to retract that part.

Don't let that stop you using the software of course, as long as you have knowledge of the actual license being used.

Re:I open sourced my game along with a tutorial on how to ma... by andrewmcwatters on Monday July 06, 2020 @05:02PM (#23752732)
Planimeter's Grid Engine[1] was posted to HN recently, which is entirely built in Lua and the largest pure-Lua game engine![2]

[1]: https://www.planimeter.org/grid-sdk/ [2]: https://github.com/topics/love2d

Additionally, adnzzzzZ and I are both from the Facepunch/Knockout community, where a lot of Lua developers have come from due to its popularity in Garry's Mod. It also had a wonderful web dev community.

There are a lot of cool developers from that community, like Gran PC who works at itch.io and worked on The Stanley Parable, and TheBerkin who designed rant, among many other highly skilled individuals, though most people at HN are probably more familiar with developers like sebmck who wrote 6to5, which later became Babel, and Gabriele Cirulli who wrote 2048.

Re:I open sourced my game along with a tutorial on how to ma... by erlend_sh on Monday July 06, 2020 @05:44PM (#23753155)
There’s a successor to Lua in the works called Mun: https://mun-lang.org/

It is written in Rust and aims to be 100% hot-reloadable.

Re:I open sourced my game along with a tutorial on how to ma... by andrewmcwatters on Monday July 06, 2020 @05:49PM (#23753194)
To be fair, Lua is already "100% hot-reloadable." Module definitions are just tables, so references can be redefined during runtime.
Re:I open sourced my game along with a tutorial on how to ma... by anonymoushn on Tuesday July 07, 2020 @11:54AM (#23760485)
I'm not sure if a statically typed AOT compiled language with no fibers can be a successor to Lua.
Re:I open sourced my game along with a tutorial on how to ma... by chrisweekly on Monday July 06, 2020 @11:13AM (#23748765)
I first became aware of Lua in 2007, playing World of Warcraft. Really cool scripting language. Kinda wish it'd taken off the way it might've.