mirror of
https://github.com/luau-lang/luau.git
synced 2025-04-04 10:50:54 +01:00
Added even more HATRA intro
This commit is contained in:
parent
c1665b0811
commit
73738c1504
2 changed files with 58 additions and 3 deletions
Binary file not shown.
|
@ -42,9 +42,64 @@ including a type inference engine.
|
|||
This paper will discuss some of the goals of the Luau type system, and
|
||||
why those goals are slightly different from other type systems.
|
||||
|
||||
\section{Infallible types}
|
||||
\section{Strict types}
|
||||
\section{Nonstrict types}
|
||||
\section{Human Aspects}
|
||||
\subsection{Heterogenous developer community}
|
||||
|
||||
Quoting a 2020 report \cite{RobloxDevelopers}:
|
||||
\begin{itemize}
|
||||
\item Adopt Me! now has over 10 billion plays and surpassed 1.6 million concurrent users in game earlier this year.
|
||||
\item Piggy, launched in January 2020, has close to 5 billion visits in just over six months.
|
||||
\item There are now 345,000 developers on the platform who are monetizing their games.
|
||||
\end{itemize}
|
||||
This demonstrates how heterogenous the Roblox developer community is:
|
||||
developers of experiences with plays measured in billions on the same
|
||||
platform as children first learning to code. Moreover, \emph{both of
|
||||
these groups are important}, as the professional development studios
|
||||
bring high-quality experiences to the platform, and the beginning creators
|
||||
contribute to the energetic creative community.
|
||||
|
||||
\subsection{Goal-driven learning}
|
||||
|
||||
All developers are goal-driven, but this is especially true for
|
||||
learners. A learner will download Roblox Studio (the IDE) with an
|
||||
experience in mind, often designing an obstacle course (an ``obby'')
|
||||
to play in with their friends.
|
||||
|
||||
The user experience of developing a Roblox experience is
|
||||
primarily a 3D interactive one, where the user designs and deploys 3D
|
||||
assets such as terrain, parts and joints, and provides them with
|
||||
physics attributes such as mass and orientation. The user can interact
|
||||
with the experience in Studio, and deploy it to a Roblox server so anyone with
|
||||
the Roblox app can play it.
|
||||
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.48\textwidth]{studio-mow.png}
|
||||
\includegraphics[width=0.48\textwidth]{studio-script-editor.png}
|
||||
\caption{Roblox Studio's 3D environment editor, and script editor}
|
||||
\end{figure}
|
||||
|
||||
At some point during experience design, the user of Studio has a need
|
||||
which can't be met by the physics engine alone. ``The stairs should
|
||||
light up when a player walks on them'' or ``the bomb should explode
|
||||
when it hits the ground.'' At this point they will discover the script
|
||||
editor, and the Luau programming language.
|
||||
|
||||
This workflow is different from many initial exposures to programming,
|
||||
in that by the time the user first opens the script editor, they have
|
||||
already built much of their creation, and have a very specific
|
||||
concrete aim.
|
||||
|
||||
This workflow suggests a Luau goal for helping the majority of
|
||||
creators: \emph{support learning how to perform specific tasks} (for
|
||||
example through autocomplete suggestions and documentation).
|
||||
|
||||
\subsection{Type-driven development}
|
||||
|
||||
\section{Types}
|
||||
\subsection{Infallible types}
|
||||
\subsection{Strict types}
|
||||
\subsection{Nonstrict types}
|
||||
|
||||
\section{Conclusions}
|
||||
|
||||
\bibliographystyle{ACM-Reference-Format} \bibliography{bibliography}
|
||||
|
|
Loading…
Add table
Reference in a new issue