Пилю простенькую игрушку (пикрелейтед) на Haskell, просто чтобы пройтись по всем граблям перед тем, как делать что-то более-менее серьёзное. Из картинки мало что понятно, но суть в том, что управляя Кьюбеем нужно заключить контракт и собрать энергию, уворачиваясь от пуль врагов. Готовность ~70%: осталось сделать меню, смену уровня и кровищщу. Обладатели ghc и cabal могут попробовать это собрать: hg clone https://bitbucket.org/k3/achase
Демку бы для тех, у кого нет ghc и cabal.
Скромный бамп. Степень готовности 75%, искусственный интеллект стал умнее (пикрелейтед). Демка под windows будет, когда я разберусь со сборкой SDL_image в mingw.
>>6609 Я когда-то тоже долгое время веселился с mingw, а потом поставил студию и собрал msvc. Это требует намного меньше времени, чем кажется, и тем более намного меньше, чем затраченное на mingw время. Да и код на выходе более кроссплатформенный получается. Кстати, а что с ним не так, SDL_image ведь просто собирается, в отличии от кучи гнутых библиотек.
>>6610 ghc (компилятор хаскелл) не умеет линковать с lib.
Test ubuntu binaries please: https://bitbucket.org/k3/achase/downloads/achase.tar.gz
Ещё один безнадёжный бамп. Если раньше "движок" был чистым функциональным, то теперь вся логика перенесена в специально созданную монаду Homu. Также я собираюсь переписать рендер на OpenGL (блиттинг в SDL безбожно тормозит), возможно это также решит проблемы сборки под windows.
>>6777 А я думал, ты поставил себе целью сделать SDL-графику. Надо было еще в прошлый раз тебе предложить перекатиться.
>>6779 Основная цель моей сегодняшней деятельности - просто посмотреть применимость разных технологий. SDL показал себя с плохой стороны. Сейчас я собираюсь попробовать gloss (обёртка над OpenGL и GLUT). Эта библиотека по-крайней мере нормально собралась под windows.
>>6780 Сдл вполне применим для рисования окошка и обработки кнопок. Еще картинки им удобно грузить. На этом его применения заканчиваются.
>>6782 Теоретически, если озаботиться обработкой dirty areas, то может и получится приемлемая скорость. Другое дело, что на дворе 2012 год, и заниматься этим глупо.
OpenGL. Степень готовности понижена.
>>6884 Напиши сразу функции для рисования в fbo, отрисовки vbo и рисования через pbo, три функции дают на выходе рендер-движок. Остальное как в сдльной версии.
>>6887 С этим проблем нет. Пока просто определяюсь, чем лучше рисовать текст и грузить сжатые изображения.
>>6889 Текст можно рисовать тем же опенглом. Немного подготовки его нужно, правда.
Сборка под windows. Разбираться со шрифтами у меня пока желания не было, поэтому сразу предупреждаю, что они ужасны. Прошу прокомментировать скорость. https://bitbucket.org/k3/achase/downloads/achase-win32.zip
>>6981 Там вирь, петушара.
>>6573Я покрасноглазил с Кабалом и поискал нужные пакеты, но так и не смог установить к Хаскелю GLUT. Судя по отзывам в интернетах, это не так уж и просто.Ubuntu 12.10Пакеты: libgl1-mesa-dev libglu1-mesa-dev freeglut3-devКоманда: cabal install glut -pВыхлоп:Resolving dependencies...Configuring GLUT-2.3.0.0...cabal: Missing dependency on a foreign library:* Missing C library: glutThis problem can usually be solved by installing the system package thatprovides this library (you may need the "-dev" version). If the library isalready installed but in a non-standard location then you can use the flags--extra-include-dirs= and --extra-lib-dirs= to specify where it is.cabal: Error: some packages failed to install:GLUT-2.3.0.0 failed during the configure step. The exception was:ExitFailure 1
>>6990 Ошибка cabal значит, что не установлен какой-то системный пакет. У меня в Ubuntu (это не мой основной дистрибутив) стоят следующие пакеты, связанные с glut: freeglut3, freeglut3-dev, libghc6-glut-dev.
>>6991 P.S. ещё у меня используется флаг -fllvm, который требует наличия llvm в системе и cabal. Можно его просто убрать, но работать будет несколько медленнее.
>>6991> libghc6-glut-dev.Я поначалу надеялся, что не хватает именно этого пакета, но Кабал даёт точно такой же выхлоп и после его установки.Глут определённо стоит в системе: в /usr/lib/ есть libglut.a libglut.so libglut.so.3 libglut.so.3.9.0Навскидку, такая проблема может наблюдаться из-за обращения к названиям либы с неправильными постфиксами, но создание символических ссылок libglut.so.2.3.0.0, libglut.so.2.3.0 и libglut.so.2.3 ничего не даёт.
>>6993 First of all, sorry for my lame English: I'm just too lazy to install language packs for my virtual Ubuntu. Also I'm not an Ubuntu guru. I had removed ~/.cabal and ~/.ghc then did 'cabal update' and 'cabal install cabal-install'. GLUT package built successfully, but it seems that 'gloss' is incompatible with ghc 6. I'll do some research later, OK?
>>6994 P.S. BTW, the windows build was surprisingly painless.
>>6981 Скорость нормальная (WinXP SP3), да и шрифты не раздражают. >>6989 Вирусов нет, зависимости тоже, родственники живы.
>>6994Я удалил указанные папки и попробовал переставить пакеты, но в итоге зашёл в тупик. Часть пакетов начинает требовать ручной установки; в свою очередь это приводит к пакету Primitive, который неисправен по неизвестной причине.Пожалуй, на этом я и отложу попытки починить свой Кабал: после знакомства с гемами Руби такие проблемы с пакетами откровенно удручают. Впрочем, сомневаюсь, что на Руби игра будет быстрее.Запустил под вайном windows-версию - прошло без глюков. Идея игры довольно забавна, только вот невозможность friendly fire у врагов немного удручает.
>>6997 That worked for me on the clean Ubuntu 12.04 installation: apt-get install haskell-platform cabal install gloss cd achase cabal install Also I removed all -fllvm flags from achase.cabal because there is only 2.9 version of llvm in Ubuntu repos. Yeah, cabal is an ugly piece of software. That's a widely known fact.
>>6999 P.S. > Идея игры Её там не было. > friendly fire Можно сделать рандомно появляющийся бонус для этого.
Пара косметических изменений, теперь игра проходима до конца. Думаю, на этом можно закончить. Если у кого-то будут фичреквесты и предложения в пределах разумного, попробую сделать. Сборка для windows: https://bitbucket.org/k3/achase/downloads/achase-win32.zip Под linux порядок сборки таков: нужны последние haskell platform и llvm. Далее из директории achase нужно выполнить cabal install Исполняемый файл окажется в ~/.cabal/bin