Cел и быстро написал
кроссплатформенную игру!
@SergeyLerg
http://spiralcodestudio.com
История
●
Основан в 1993
●
Создатель Роберто Иерусалимский
●
Получает известность в 1996
●
Используется в играх
Lua
●
Скриптовый язык
●
Простота как одна из основных целей
●
В том числе малый размер
●
Язык для людей, не инженеров
●
“Как можно проще, но не проще”
●
Динамически типизированный
●
Переносимый
●
Весь язык - библиотека на C
Использование Lua
●
Игры
●
Встраиваемые устройства
●
Камеры (Canon), клавиатуры (Logitech), принтеры (Olivetty &
Oce), микроконтроллеры
●
Встраивание в другие приложения
●
Wireshark, nginx, nmap, вирусы, Photoshop, Lightroom
Типы данных
●
number (doubles & integers)
●
string
●
boolean
●
nil
●
table (associative array)
●
function
●
userdata
●
thread
Факториал
function fact(n)
local f = 1
for i = 2, n do
f = f * i
end
return f
end
Table
array = {1, 23, 56, “yay”, -3.14, {“wat”}, 69}
array[1] == 1, array[2] == 23, array[0] == nil
dict = {name = “Sergey”, age = 29, isHandsome = true}
dict.name == “Sergey”
dict[“age”] == 29
map2d = {{1, 2}, {3, 4}}
map2d[1][2] == 2
set = {}
set[object1] =
true
set[object2] =
true
Table
object = {}
object.name = “Enemy”
object.damage = 20
function object:attack(player)
player:hit(self.damage)
end
Table - metatable
Vector = {}
Vector.__index = Vector
function Vector.__add(a, b)
return Vector.new(a.x + b.x, a.y + b.y)
end
function Vector.new(x, y)
return setmetatable({x = x or 0, y = y or 0}, Vector)
end
setmetatable(Vector, {
__call = function(_, ...)
return Vector.new(...)
end
})
Синтаксический сахар
t.prop ⇒ t[“prop”]
function f() end ⇒ f = function() end
object:method(arg) ⇒ object.method(self, arg)
method({1, 2, 3}) ⇒ method{1, 2, 3}
Corona SDK
●
Android, iOS, Windows Phone, Windows, OS X
●
Разработка на Windows и OS X
●
Только 2D (2.5D)
●
Lua
●
Быстрый и удобный симулятор
●
Без запуска Xcode
Corona SDK
●
Ядро на С++ и OpenGL
●
Objective-C и Java обёртки
●
Lua только на высоком уровне
Быстрая разработка
●
Одновременная разработка для iOS и Android
●
Быстрая разработка
●
Симулятор
●
Компиляция
●
Нерушимость
●
Мини фреймворк
Время Программировать!
Спасибо
@SergeyLerg
spiralcodestudio.com
spiralcodestudio@gmail.com
Lua
lua.org
Corona SDK
coronalabs.com
github.com/coronalabs-samples
Learn Lua in 15 minutes
tylerneylon.com/a/learn-lua/

More Related Content

PDF
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
ODP
Introduction to Lua Luajit Openresty Luvit
PDF
Алексей Рагозин
PPTX
The art of small steps, or how to make sound for games in conditions of war /...
PPTX
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
PPTX
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
PPTX
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
PPTX
AI / ML for Indies / Tyler Coleman (Retora Games)
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
Introduction to Lua Luajit Openresty Luvit
Алексей Рагозин
The art of small steps, or how to make sound for games in conditions of war /...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
AI / ML for Indies / Tyler Coleman (Retora Games)

More from DevGAMM Conference (20)

PDF
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
PPTX
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
PDF
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
PDF
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
PDF
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
PDF
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
PDF
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
PDF
How to increase wishlists & game sales from China? Growth marketing tactics &...
PDF
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
PDF
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
PPTX
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
PDF
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
PPTX
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
PPTX
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
PPTX
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
PPTX
Launching a title in Asia Pacific and China / Maxim Chuvalov (Wargaming)
PPTX
5 things I wish I knew before becoming a VFX Artist / Paulina Grigonis (Tuatara)
PPTX
Pitching with Killer Demos / Jaroslav Stacevič (Nordcurrent)
PPTX
How to Craft the Perfect Pitch / Nathan Sölbrandt ( Xsolla)
PPTX
Making Games We Like aka Personal Biases in Game Design / Rok Mioč (Outfit7)
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
How to increase wishlists & game sales from China? Growth marketing tactics &...
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
Launching a title in Asia Pacific and China / Maxim Chuvalov (Wargaming)
5 things I wish I knew before becoming a VFX Artist / Paulina Grigonis (Tuatara)
Pitching with Killer Demos / Jaroslav Stacevič (Nordcurrent)
How to Craft the Perfect Pitch / Nathan Sölbrandt ( Xsolla)
Making Games We Like aka Personal Biases in Game Design / Rok Mioč (Outfit7)
Ad

Stop whining and make a cross-platform game already!

Editor's Notes

  • #2: История языка начинается в Бразилии в 1993 году. Создавался изначально язык для внутреннего использования одной нефтяной компанией. В основном это была работа с данными, числами. Валидация данных, составление отчётов, расчёт каких-то своих значений. То есть с самого начала создания языка у него уже были пользователи помимо самих разработчиков и реальныеи кейсы использования. Как видите изначально язык нацеливался на удобство для пользователей. В 1998 году выходит игра Grim Fandango, одна из моих любимых. Один из программистов в начале её разработки заинтересовался в Lua и предложил компании его использовать вместо их старого языка. Они остались крайне довольны результатом. Это первое использование языка в таком крупном игровом проекте. С тех пор Lua ещё не раз использовался для игр и получил некий статус языка программирования для создания игр. Из современных програм ещё можно отметить Adobe Lightroom, львиная его часть также написана на Lua.
  • #3: История языка начинается в Бразилии в 1993 году. Создавался изначально язык для внутреннего использования одной нефтяной компанией. В основном это была работа с данными, числами. Валидация данных, составление отчётов, расчёт каких-то своих значений. То есть с самого начала создания языка у него уже были пользователи помимо самих разработчиков и реальныеи кейсы использования. Как видите изначально язык нацеливался на удобство для пользователей. В 1998 году выходит игра Grim Fandango, одна из моих любимых. Один из программистов в начале её разработки заинтересовался в Lua и предложил компании его использовать вместо их старого языка. Они остались крайне довольны результатом. Это первое использование языка в таком крупном игровом проекте. С тех пор Lua ещё не раз использовался для игр и получил некий статус языка программирования для создания игр. Из современных програм ещё можно отметить Adobe Lightroom, львиная его часть также написана на Lua.
  • #8: Таблицы это святой грааль языка. На таблицах держится весь Lua мир.