LINUX.ORG.RU

Выложил исходники своего буллет хелла H.P.W

 , , , ,

Выложил исходники своего буллет хелла H.P.W

1

2

Я делаю игру на C++, в ней надо управлять НЛО-бумерангом и уворачиваться от пуль. Недавно я добавил в неё возможность создавать вырвиглазые графические плагины на Си и Цпп:

[ ! ] ЭПИЛЕПСИ ВОРНИНГ [ ! ]
Видео демонстрация эффектов

Теперь игру можно скачать на гитхабе и собрать в Линуксе, для этого найдите пакеты GCC/Clang, GLEW, GLFW3, OpenAL-soft и YAML-cpp, они есть в apt и pacman. Всё собирается - чекал на Арче, Манжаре и Убунте. Если будут какие-то ошибки можете писать тут в комменты, игра ещё в разработке.

Инфа как создавать плагины и делать палитры написана на странице проекта. В целом, можете дождаться релиза через сто лет и ничего не собирать, я сделаю билды в appimage.



Проверено: hobbit ()

Ответ на: комментарий от hobbit

Люди не могут осилить сборку зависимостей под виндой. Ресурсы игры тоже в zip, когда они просто лежат в папке вне архива, скорость загрузки низкая

HPW-dev
() автор топика
Последнее исправление: HPW-dev (всего исправлений: 1)

Выглядит любопытно. И даже Apache-2.0, приятно.

Пока никто не успел, выскажу свое фи комментариям на русском языке в коде и в описаниях коммитов.

HerbertHoover
()

У вас хорошо получилось визуальное оформление. Одно только главное меню можно несколько минут разглядывать.

Leupold_cat ★★★★★
()

Стильно выглядит.

rumgot ★★★★★
()

Оно прекрасно в своей ужасности :)

Werenter ★★★
()

боюсь это признавать, но это чертовски стильно 👽🖖 прям как грибов поел (вешенок конечно, а вы что подумали? 🤔) редко такое говорю, но не забрасывай проект. выложи билды на Itch.io! я думаю это зайдет более широкой публике. я вот все тоже намереваюсь расчехлить какой нибудь Godot и сделать что-то этакое индюшачье, да все как-то руки не доходят

Unixson
()
Последнее исправление: Unixson (всего исправлений: 1)
Ответ на: комментарий от Leupold_cat

главное меню можно несколько минут разглядывать

Каждые 12 секунд картинка меняется. Если нажать F4 будет другой фон. Экран загрузки в игре тоже меняется. На F2 можно сделать скриншот

HPW-dev
() автор топика
Ответ на: комментарий от yoghurt

Запахло демосценой ранних 00х

Я делал демки под дос на асме и использовал в них побитовые операции для генерации узоров. Когда я начал делать игру, я подумал что сделаю всю игру на этих узорах, но в glsl шейдерах до сих пор нету побитовых операций, поэтому у моей игры палитровая софтверная графика и это позволило сделать ещё более эпилептичные кислотные эффекты.

Сейчас графон на побитовых операциях не редкость

Похоже что побитовые операции до сих пор не добавили в шейдеры glsl, но я уверен что они поддерживаются самой видеокартой

HPW-dev
() автор топика
Последнее исправление: HPW-dev (всего исправлений: 1)
Ответ на: комментарий от Unixson

выложи билды на Itch.io

Это будет не скоро. Пока только исходники и об этом знаете только вы на лоре ;] я это нигде не афишировал

HPW-dev
() автор топика

Огонь, отличное наркоманство, респект!)

hatred ★★★
()
Ответ на: комментарий от HPW-dev

Собирай им бинарники, пожалей инвалидов.

Судя по ролику, игра будет збс. Твоя фамилия не Крюков, случайно? Играл я в игры от т. Крюкова, тоже по старой школе и тоже 10/10, но это были визуальные новеллы.

Mobutu_Sese_Seko
()
Последнее исправление: Mobutu_Sese_Seko (всего исправлений: 1)

Отличный симулятор ЛСД-трипа. Графон бомба. Пишу контуженный.

no-such-file ★★★★★
()
Ответ на: комментарий от Mobutu_Sese_Seko

Собирай им бинарники

На винде короч можно файл ресурсов прописать и вшить в экзешник ярлык и версию игры и это будет видно в свойствах. В линуксе эта инфа игнорится, но через appimage тоже можно ярлык добавить

HPW-dev
() автор топика
Последнее исправление: HPW-dev (всего исправлений: 1)

Можно смотреть вместо ковра. Единственное, что входит в диссонанс — эффекты размытия с ограниченным набором цветов основной графики.

eletic-z
()
Ответ на: комментарий от eletic-z

эффекты размытия с ограниченным набором цветов основной графики

Да там ваще палитровая графика и оттенки серого с красным. Все пиксель-блендинги уже изначально просчитаны из rgb формул, но всё равно при размытии непонятно когда выбрать красный, а когда серый

HPW-dev
() автор топика
Ответ на: комментарий от zenden

Почему не на Rust?

Там в конце строки надо ; писать как в крестах, это невыносимо >_< уж лучше на го писать тогда

HPW-dev
() автор топика

py -m pip install --user scons

Что за странная команда в документации? Что это за программа py?

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

Что это за программа py?

В Windows есть такой консольный лаунчер. Возможно, использование даулбута все перемешало слегка у ТС - линукс… винда…, да какая разница. )

upd. Хотя, возможно и для линукс есть подобное.

krasnh ★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

В общем, не собирается.

$ ls -la
итого 72
drwxr-xr-x 11 xi xi 4096 апр  4 09:47 .
drwxr-xr-x 13 xi xi 4096 апр  4 09:44 ..
drwxr-xr-x  2 xi xi 4096 апр  4 09:42 build
drwxr-xr-x  8 xi xi 4096 апр  4 09:42 .git
-rw-r--r--  1 xi xi  481 апр  4 09:42 .gitattributes
-rw-r--r--  1 xi xi  619 апр  4 09:42 .gitignore
drwxr-xr-x  2 xi xi 4096 апр  4 09:42 info
-rw-r--r--  1 xi xi  577 апр  4 09:42 LICENSE
-rw-r--r--  1 xi xi 2650 апр  4 09:42 NOTICE
-rw-r--r--  1 xi xi  805 апр  4 09:42 README.md
-rw-r--r--  1 xi xi 2337 апр  4 09:42 SConstruct
drwxr-xr-x  3 xi xi 4096 апр  4 09:47 script
drwxr-xr-x  7 xi xi 4096 апр  4 09:42 src
drwxr-xr-x 11 xi xi 4096 апр  4 09:42 test
drwxr-xr-x  3 xi xi 4096 апр  4 09:42 thirdparty
drwxr-xr-x  6 xi xi 4096 апр  4 09:42 tool
-rw-r--r--  1 xi xi  325 апр  4 09:42 version.txt
drwxr-xr-x  2 xi xi 4096 апр  4 09:42 .vscode

$ python3 -m pip install --user scons
Collecting scons
  Downloading SCons-4.7.0-py3-none-any.whl (4.3 MB)
     |████████████████████████████████| 4.3 MB 1.3 MB/s 
Installing collected packages: scons
  WARNING: The scripts scons, scons-configure-cache and sconsign are installed in '/home/xi/.local/bin' which is not on PATH.                                                                               
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.                                                                                         
Successfully installed scons-4.7.0

$ python3 "script/build-game-release.py"
generated version: v0.114.3.1
scons -j4 -Q debug=0 -Q script=src/game/SConscript
Traceback (most recent call last):
  File "/home/xi/work/develop/cpp/HPW-Demo/script/build-game-release.py", line 8, in <module>
    helper.exec_cmd(f'scons -j4 -Q debug={is_debug} -Q script={script}')
  File "/home/xi/work/develop/cpp/HPW-Demo/script/helper.py", line 29, in exec_cmd
    subprocess.run (cmd.split(), check=True)
  File "/usr/lib/python3.9/subprocess.py", line 505, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.9/subprocess.py", line 1823, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'scons'

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

FileNotFoundError: [Errno 2] No such file or directory: ‘scons’

Так, там английским по белому написано в выхлопе первой команды:

ВНИМАНИЕ: Сценарии scons, scons-configure-cache и sconsign устанавливаются в каталог /home/xi/.local/bin, который не находится в PATH.
Рассмотрите возможность добавления этого каталога в PATH.

krasnh ★★★
()
Ответ на: комментарий от krasnh

А чем этот scons отличается от системного scons 4.0.1+dfsg-2 ?

Xintrea ★★★★★
()
Ответ на: комментарий от krasnh

В любом случае, я не понимаю, какие такие стандарты из c++23 так необходимы были для написания этой говноигры? Причем код создавался в самом начале 2024 года. Раньше 23-го года игра просто не могла появиться, потому что уровень технологий был недостаточен, чтобы написать код этой сложнейшей разработки?

$ python3 "script/build-game-release.py"
generated version: v0.114.3.1
scons -j4 -Q debug=0 -Q script=src/game/SConscript
Execute script: src/game/SConscript
System: Linux x64
Build mode: release
Compiler: g++
gcc -o thirdparty/include/zip/zip.o -c -DLINUX -DNDEBUG -Isrc/game -Isrc -Ithirdparty/include thirdparty/include/zip/zip.c
g++ -o src/util/error.o -c -std=c++23 -Wall -Wfatal-errors -finput-charset=UTF-8 -fextended-identifiers -fdiagnostics-color=always -flto=auto -Ofast -mtune=generic -march=x86-64 -m64 -fopenmp -DLINUX -DNDEBUG -Isrc/game -Isrc -Ithirdparty/include src/util/error.cpp
g++: error: unrecognized command-line option '-std=c++23'; did you mean '-std=c++03'?
g++ -o src/util/hpw-util.o -c -std=c++23 -Wall -Wfatal-errors -finput-charset=UTF-8 -fextended-identifiers -fdiagnostics-color=always -flto=auto -Ofast -mtune=generic -march=x86-64 -m64 -fopenmp -DLINUX -DNDEBUG -Isrc/game -Isrc -Ithirdparty/include src/util/hpw-util.cpp
g++: error: unrecognized command-line option '-std=c++23'; did you mean '-std=c++03'?
scons: *** [src/util/error.o] Error 1
g++ -o src/util/mempool.o -c -std=c++23 -Wall -Wfatal-errors -finput-charset=UTF-8 -fextended-identifiers -fdiagnostics-color=always -flto=auto -Ofast -mtune=generic -march=x86-64 -m64 -fopenmp -DLINUX -DNDEBUG -Isrc/game -Isrc -Ithirdparty/include src/util/mempool.cpp
scons: *** [src/util/hpw-util.o] Error 1
g++: error: unrecognized command-line option '-std=c++23'; did you mean '-std=c++03'?
scons: *** [src/util/mempool.o] Error 1
Traceback (most recent call last):
  File "/home/xi/work/develop/cpp/HPW-Demo-Bullet-Game/script/build-game-release.py", line 8, in <module>
    helper.exec_cmd(f'scons -j4 -Q debug={is_debug} -Q script={script}')
  File "/home/xi/work/develop/cpp/HPW-Demo-Bullet-Game/script/helper.py", line 29, in exec_cmd
    subprocess.run (cmd.split(), check=True)
  File "/usr/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['scons', '-j4', '-Q', 'debug=0', '-Q', 'script=src/game/SConscript']' returned non-zero exit status 2.

Xintrea ★★★★★
()
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

какие такие стандарты из c++23

Ну, ТС же предупредил в реадми - «Минимальный поддерживаемый стандарт для сборки: C++23.»

Возможно, ТС использует современные продвинутые линукс-системы, типа Арча. :) И для него естественным является, что там самое новое ПО. Собирал бы код под дебианом/юбунтой, оперировал бы «древними пыльными пакетами», воленс-неволенс. )

krasnh ★★★
()
Ответ на: комментарий от Xintrea

Возможно, ТС использует современные продвинутые линукс-системы, типа Арча. :)

Коммент ТС из соседней темы:

Видимо дело в том, что я собрал это на арче с последним gcc, неудобно вышло ;| Мини игра H.P.W (комментарий)

krasnh ★★★
()

не бушуйте, потерпите, я потом соберу пакеты со статичной линковкой и в .appimage, ничего докачивать и собирать не придётся

HPW-dev
() автор топика
Ответ на: комментарий от Xintrea

какие такие стандарты из c++23 так необходимы были для написания этой говноигры?

В коде есть только одно место с ренжами из C++20, а 23 стоит по приколу, чтобы поиздеваться ;]

HPW-dev
() автор топика
Ответ на: комментарий от krasnh

Возможно, ТС использует современные продвинутые линукс-системы, типа Арча

Да, ето так, но под виндой в winlibs тоже свежий gcc, поэтому у типа не собирается ничё. Вроде это фиксится переключением пакетных менеджеров на экспериментальную ветку. На C++20 может тоже собирается

HPW-dev
() автор топика
Последнее исправление: HPW-dev (всего исправлений: 1)
Ответ на: комментарий от HPW-dev

а 23 стоит по приколу, чтобы поиздеваться

Будем надеяться, что в других проектах у тебя более адекватный подход. Хотя, кого я обманываю...

Xintrea ★★★★★
()
Ответ на: комментарий от IIIypuk

Но ты же справился.

Яб и на питоне написал, но там ничё плюсового нету и тормоза. Вот чё switch зажлобили и где неймспейсы? Там даже шаблонов нет, хотя наверное можно нагенерить скрипты и подсунуть их на выполнение, но _init_ это ващеее, это как нейминг внутри gcc реализаций. В расте можно и nosafe юзать для спидов, но «;» зачем потянули-то 😭 и спецификаторы кругом, почему бы их поведением по умолчанию не сделать. Вот в Го нету ; и даже зависимости сами ставятся - это реально победа над плюсами. Раз начал на плюсах, на них и закончу

HPW-dev
() автор топика
Последнее исправление: HPW-dev (всего исправлений: 1)
Ответ на: комментарий от HPW-dev

Там даже шаблонов нет

Интересно, зачем шаблоны в питоне, если у него динамическая типизация?

Xintrea ★★★★★
()
Ответ на: комментарий от a1ba

А почему SCons, а не например Waf?

Наверное они оба одинаковы и способны собирать только изменённые файлы в многопотоке, но у одного чела на винде SCons думает что стоит msvc, но он собирает через mingw и не выходит. На самом деле там никогда небыло msvc, и никакие подстановки в CC и CXX не могут заставить SCons генерить опции для gcc. Возможно waf бы справился

HPW-dev
() автор топика
Последнее исправление: HPW-dev (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.