1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Реконструкция Warcraft 2

Тема в разделе "Мастерская", создана пользователем zaryanius, 8 дек 2012.

  1. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Написал клон Warcraft 2 (http://sym.at.ua/load). Исходники весят всего 1100 строк (26 килобайт в zip). Что скажете?

    [​IMG]
     
    Последнее редактирование модератором: 19 июл 2015
    Neresar, Archanon, Zelya и 9 другим нравится это.
  2.  
  3. Genesis Злоботряс

    Genesis

    Регистрация:
    21 апр 2011
    Сообщения:
    12.567
    zaryanius, а что изменилось? Платформа? Это не клон тогда, а порт. На скриншоте всё как было, вот только на Маке и в оконном режиме.
     
  4. Gamerun

    Gamerun

    Хелпер

    Регистрация:
    13 июн 2010
    Сообщения:
    8.593
    Возможен ли вариант для Windows?
     
  5. Grue13 Ocelote.12

    Grue13

    Регистрация:
    26 апр 2006
    Сообщения:
    10.090
    По-моему, это не Мак, а линукс с украшениями окна "под макось".
     
  6. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Язык программирования. Lisp.

    Порт был бы, если бы я перенёс оригинальный код, а не писал с нуля.

    Не Мак, а http://www.sbcl.org

    Возможен, но у меня нет Windows, а знающего Lisp пользователья Windows я не нашёл.

    Это OSX.
     
    MrFlibble нравится это.
  7. Лорд Лотар Мессир ёж

    Лорд Лотар

    Регистрация:
    12 май 2008
    Сообщения:
    5.983
    zaryanius, с вашей стороны было бы уместно добавить под какую ОС этот самый клон.
     
  8. Genesis Злоботряс

    Genesis

    Регистрация:
    21 апр 2011
    Сообщения:
    12.567
    zaryanius, так что там, все играющие должны знать, что там за язык? В процессе-то что отличается? Кроме платформы, языка и режима есть что-то новенькое? Вы бы расписали на понятном всем языке, а то ведь не каждому понятно будет. Мне лично пока смысл виден только в платформе и в режиме.
     
  9. Лорд Лотар Мессир ёж

    Лорд Лотар

    Регистрация:
    12 май 2008
    Сообщения:
    5.983
    zaryanius, кстати, а в чем суть была действительно?
     
    Genesis нравится это.
  10. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    zaryanius, ММММ... нашёл этот компиль под выньдос, поставил, он меня выкинул в дебагер и ... мне влом думать чего он от меня хочет.

    Лорд Лотар, думаю, что в Лиспе. Хороший язык, но мало кто его помнит...
     
    Последнее редактирование: 8 дек 2012
    MrFlibble нравится это.
  11. Svlad

    Svlad

    Регистрация:
    2 ноя 2006
    Сообщения:
    1.288
    Видеозапись процесса игры выложите хотя бы.
    И не понятно, это именно порт или ремейк? Поддерживает ли игра ресурсы оригинальной, например, карты.
     
  12. Genesis Злоботряс

    Genesis

    Регистрация:
    21 апр 2011
    Сообщения:
    12.567
    Да даже если игру на Бэсик перевести (хотя, это уже что-то из области фантастики середины 80-х), мухи котлетами не станут.
     
  13. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Harris, Ну, судя по всему - этим чудом можно полюбоваться только проделав кучу необъяснённых телодвижений по установке, компиляции и отладке...

    Вообще тоже не очень понял смысл сего праздника.:unknw:
     
  14. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    В принципе под любую с SBCL и SDL, но везде свои нюансы запуска.

    Была цель создать лаконичный язык программирования. Как proof-of-concept проект, я реализовал на нём Warcraft 2 в тысячу строк. Для сравнения, на C/C++ один генератор карт весит 1600 строк (http://sym.at.ua/load/wc2mapgen/1-1-0-10).

    Поддерживает любые карты в PUD формате, включая Beyond the Dark Portal

    выкладываю:
    www.youtube.com/watch?v=-k8jkeFfnl0


    Переведите.

    Да, поэтому Lisp в живую вы увидите не часто.

    смотрим в записи: www.youtube.com/watch?v=-k8jkeFfnl0
     
  15. Svlad

    Svlad

    Регистрация:
    2 ноя 2006
    Сообщения:
    1.288
    Бага на видео - портреты выбранных юнитов не отображаются в окне отряда.
    А можете подробнее описать, что и как сделано?
    Например, логика игры переписана вами, или она описывается где-то в ресурсах игры, а вы лишь написали интерпретатор для этих ресурсов?
     
    Dimouse нравится это.
  16. Genesis Злоботряс

    Genesis

    Регистрация:
    21 апр 2011
    Сообщения:
    12.567
    zaryanius, так например я изучаю сейчас С++ (Бэйсик знаю в пределах школьного курса, и много в них не сделаешь). Возможно, я в этом деле не профи, но о языках программирования слыхал, и про Lisp узнал либо только сейчас, либо уже не помню когда (и сколько). Я писал о том, что на каком языке не напиши одну и ту же игру, она останется сама собой. К тому же данная игра уже порядочно перетерпела: к ней есть и порт на Win (BNE), и редактор, и сиквел, и русификатор, и единственное что осталось - переписывать её на другие языки. Конечно, достойное какой-никакой похвалы дело, но для играющих каков смысл? Также возможно, что игра стала легче, но вот зачем облегчать игру, которая в наши времена уже лёгкая донельзя?
     
  17. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Знаю, но если выбрано больше больше 9 юнитов, то портреты просто негде отображать. Посему я их отображаю только для единичных юнитов.


    Параметры юнитов и тайлсета описываются в текстовых файлах. Всё остальное в исходниках на языке Symta. Интерпретатора нет, чистый код.

    Например, загрузчик PUD файлов:
    Код:
    loadPud Path = u name:Path,pne,1 file:Path | clearGame
     = TS:\summer = Gfxes:ø = Us:ø = Players:ø = Us:ø
     = setTile:<P I = N: m ?+P Dirs | k (inRect WR ?)
                    = Tiles,I|u tile:P disp:32P id:P,cellIndex neibs:N | setCell P>
     = era:<[N @_] = !TS:PudTilesets,N = !Tileset:Tilesets.TS = !Trns:Tileset.trns
                   = !Tiles:Tileset.tiles = !Gfxes:Tileset.gfxes>
     = sres:<R Xs = grp 2 Xs | m ul | i | e <[A I]=!Players.I.R:A>>
     = Handlers:u
         “DESC”:<Xs = !GameInfo|u desc:(t {pos 0 Xs;32} Xs | utf8)>
         “ERA ”:era “ERAX”:era
         “DIM ”:<[W:@2.ul H:@2.ul @_] = !WW:W+2WM = !WH:H+2WM = !MMD:128%(WW-2WM)
                                       = !MMWH:l MMD MMD = !WR:[WM WM WW-2WM WH-2WM]>
         “OWNR”:<Xs = m PudPlayers,? Xs | i | e <[P I]
                      = T:UTs.player = !T.color:P,<\neutral=\yellow; _=PlayerColors,I>
                      = U: unit 0 T = {P,n = !U.nobody:√}
                      = !Players.I: U|u name:“Player$I” playable:P,<\person>
                                        rescueable:(q capturable rescueable | any P)
                                        tile:WMO team:PudTeams.P>>
         “SIDE”:<Xs = m (q human orc neutral),? Xs | i | e <[S I]=!Players.I.side:S>>
         “SGLD”:<X=sres \gold X> “SLBR”:<X=sres \wood X> “SOIL”:<X=sres \oil X>
         “AIPL”:<Xs = i Xs | e <[1 I]=!Players.I.passive:√>>
         “MTXM”:<Xs = M: grp 2 Xs | m ul = xy @WR |i|e:[P I] setTile P M,I>
         “UNIT”:<[X:@2.ul Y:@2.ul I O D:@2.ul @Xs]
                   = XY:[X+WM Y+WM] = T:I,<57=Critters.TS; _=PudUnits.I>
                   = T,<ø = error “Invalid unit slot: $I”
                       ;\player = !Players.O.tile:XY = !Players.O.view:(32XY-[224 224]/*[320 240]*/)
                       ;T =l [XY O+1 T D]@!Us>
                   = r Xs>
     = get Path | <[M:@4.utf8 L:@4.ul D:@L.y @Xs]=[[M D] @Xs,r]>
     | <[[\TYPE _]@Xs]=Xs; _ = error “Invalid PUD file: $Path”> | e:[T D] {H:Handlers.T = H D}
     = l [WW-WM 0 WM WH] [0 WH-WM WW WM] [0 0 WM WH] [0 0 WW WM] | m:X xy @X | j | m:P setTile P 0
     = Players | e <[_ U] = !U.owner: U.id
       = !U.enemies: Players | m ?,1 | s ?.id≥≤U.id | filter:P
         {P.team≤≥U.team |a P.team≤≥0 |a U.team≤≥0 = P.id; P.playable |a U.playable = P.id}
       = aset U.id U Units
       = {ThisPlayer,n |a U.playable = !ThisPlayer:U.id
         ;U.nobody = U.id,delUnit
         ;√ = order \plan U}>
     = Us | e <[XY O T D] = U: unit O T
                          = {R:U.resource = !U.R: D*2500}
                          = F:U.supply-U.cost.food = {F,nz? =l [U.id \food F]@!NQs.O.add}
                          = {U.building,n = !U.dir: pick Dirs}
                          = deployUnit XY U>
     = Pal: Tilesets.TS.tiles,0.gfx'p
     = !Tints: “$Data/cfg/color.txt”,cfg,sort | m:[N@C] l N (recolor 208 Pal C)
     = ø
    
     
    ABRACADABRA и MrFlibble нравится это.
  18. Лорд Лотар Мессир ёж

    Лорд Лотар

    Регистрация:
    12 май 2008
    Сообщения:
    5.983
    Harris, собственно.
    Суть в том, что бы написать War Craft в тысяче строк, а не в том что бы облегчить игру, или портировать ее куда то. Для играющих? Дай ка подумать... Сколько играющих в War Craft знают Lisp, и сколько знатоков Lisp'a будет играть в War Craft на нем написанный? Боюсь что ответ на оба вопроса - немного. Очень немного. Но суть, опять же, не в том, что бы в это кто то играл, а в том, что бы это сделать. Что и имеет место быть.

    zaryanius, выражаю свое почтение! Впечатляет.
    А геймплейная логика и все тайминги взяты из оригинала, или не совсем?
     
    Последнее редактирование: 9 дек 2012
    MrFlibble и Genesis нравится это.
  19. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Благодарю. Тайминги анимации взяты из почившего FreeCraft, который кстати тоже использовал Lisp для скриптов.
     
    MrFlibble нравится это.
  20. Genesis Злоботряс

    Genesis

    Регистрация:
    21 апр 2011
    Сообщения:
    12.567
    zaryanius, но там же нет звука. И тумана войны тоже нет. Так планировалось?
     
  21. zaryanius

    zaryanius

    Регистрация:
    2 сен 2012
    Сообщения:
    56
    Звук есть, но QuickTime не записал.
     
    Genesis нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление