Войти
ПрограммированиеФорумГрафика

Lua, Python или Ruby - что выбрать?

Страницы: 1 2 38 9 Следующая »
#0
14:09, 8 окт. 2005

Сейчас выбираю скриптовый язык. Кто с чем имел дело, какие подводные камни встречал и что лучше выбрать, чтобы было меньше проблем? А так-же как лучше инегрировать это все в игру. Сам я сейчас присматриваюсь к Ruby. Заранее спасибо за любую помощь.


#1
14:32, 8 окт. 2005

C++. Он очень хорошо интегрируется. Он самый быстрый. Можно подгружать динамически(DLL). Можно сделать реализовать microthreading -

только придется писать не

void Proga()
{
  printf("hello");
  int i = 10;
  Sleep(10000);
  printf("world %d", i);
}

а что-то вроде

struct Proga
{
  int i;
  void phase1()
  {
    printf("hello");
    i = 10;
    get_scrip_manager()->add_phase(10000, &this, &Proga::phase2);
  }

  void phase2()
  {
    printf("world, %d", i);
  }
}

Чем тебе не подходит С++ в качестве скрипта?

#2
14:39, 8 окт. 2005

Надо перекомпилировать при каждом изменении, вот чем не нравится. Чуть-чуть поправил, перекомпилировал, слинковал, запустил - минут 5 может уйти. И вообще, мне надо чтобы был исполняемый модуль, реализующий графику, звук, все критические ко времени вещи, а вся игровая логика должна быть в скрипте (чтобы её легче меять было, естественно)

#3
15:04, 8 окт. 2005

Darth
>Надо перекомпилировать при каждом изменении, вот чем не нравится. Чуть-чуть поправил, перекомпилировал, слинковал, запустил - минут 5 может уйти.
Я же говорю, выноси в отдельные небольшие DLL. Не надо перекомпилировать все. Не надо ничего запускать - DLL можно подгружать/выгружать динамически. Предоставь им интерфейс ровно такой же, какой бы ты предоставил для скрипта, что бы не было лишних .h файлов и зависимостей.

>а вся игровая логика должна быть в скрипте (чтобы её легче меять было, естественно)
Ну да. А что мешает писать скрипт на  на С++*?

Освободи разум. Вспомни, что код - это данные.

#4
15:16, 8 окт. 2005

_Winnie
а что если дизайнерам надо что то поменять, опять перекомпилировать модуль надо

загрузку данных тоже удобно делать из скриптов

#5
15:17, 8 окт. 2005

Такой вариант я рассматривал. Ну не могу я к каждому уровню прикладывать по dll! А редактор соответственно C++ компилятором комплектовать? А у меня, к тому-же, все кроссплатформенно. Вобщем, мне нужно выбрать скриптовый язык, один из 3х: Lua, Pyrhon или Ruby (может еще что есть?). Писать что-то свое я не хочу - мне кажется как минимум глупым писать то, что уже сделано, и сделано всяко лучше меня.

#6
15:31, 8 окт. 2005

_ace_
>а что если дизайнерам надо что то поменять, опять перекомпилировать модуль надо
Кнопку нажать.
Либо в F5 Visual Studio, где можно и отлаживать, либо в своей тулзе, которая запустит cl.exe и положит .dll куда надо.
>загрузку данных тоже удобно делать из скриптов
ну, данные удобны в любом виде.
Можно и на С++:

(section
	("name", "mariner")
	("chassis_type", "gumanoid")
	("weapon", section
		("type", "machine_gun")
		("damage", "12.5"))
	("health", section
		("max_hitpoints", "100")
		("hitpoints", "80"))
	("armour", section
		("type", "heavy")
		("protection", "77%")
		("hitpoints", "100")
		("max_hitpoints", "100")));
но это уже изврат конечно.
#7
15:38, 8 окт. 2005

Darth
>Ну не могу я к каждому уровню прикладывать по dll!
В релизной версии можно слинковать и статически. А чем dll плох? Чем это хуже скрипта в файле и фразе "ну не могу же я прикладывать скрипт к каждому уровню"?

>А редактор соответственно C++ компилятором комплектовать?
под Windows:
www.mingw.org
http://msdn.microsoft.com/visualc/vctoolkit2003/default.aspx
http://digitalmars.com/
В linux  у каждого есть g++ :)

>А у меня, к тому-же, все кроссплатформенно.
В linux тоже можно использовать .dll, только называются они .so
на консолях говорить о редакторах, поставляемых пользователю как-то глупо.

#8
16:10, 8 окт. 2005

_Winnie
уделал 8)

#9
16:13, 8 окт. 2005

руби нельзя в несколько потоков затолкать - только встроенные потоки работают
и сам руби должен из основного потока быть запущен
иначе не пашет :)

#10
16:59, 8 окт. 2005

Используй Луа :)

#11
17:09, 8 окт. 2005

CINT

#12
20:19, 8 окт. 2005

ruby это крута, но интерпретатор достаточно тяжёлый получается (по размеру). Скорость примерно как у питона. ООП замечательный, да и вообще язык очень интересный

#13
22:27, 8 окт. 2005

_Winnie
А можно на счет
> Не надо ничего запускать - DLL можно подгружать/выгружать динамически
попоробнее а то тема "pure c++ delay load" весьма неслабая и на рсдне уже 4я попытка выложить делающий это велосипед меня пока не убедила.
  Желательно из личной практики
wbr
зы подписался
сам пользую луа. питон хотел но расхотел изза его сишной реализации.

#14
0:12, 9 окт. 2005

subs

Страницы: 1 2 38 9 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.