[Delphi] SteamWorks

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#1 Сообщение 10.11.2010, 11:43

Наконец, решил опубликовать новость о данном проекте.

Суть проекта: перевод библиотеки Open SteamWorks на язык программирования Delphi.
Состояние: все заголовки переведены, создаются "переходники".
Примерное время завершения: 2-3 месяца :( .


Насчет "переходников": их необходимо было создавать в любом случае, так как в С++ у методов класса используется соглашение о вызовах _thiscall, которого в Delphi нет, поэтому приходится извращаться на ASM'е с передачей/возвратом параметров, что требует тестовых прогонов всех функций до тех пор, пока они не заработают корректно (не портя стек и регистры).

Здесь - программа с исходным кодом, позволяющая просмотреть список друзей и кланов, а так же их иконки. Используемые библиотеки пока не выкладываю, ибо они далеки от завершения (на данный момент работает только 4 класса из 83, да и то не полностью правильно - например, в интерфейсе ISteamFriends007 пока невозможно получить ник друга).

PS: Для работы программы требуется запущенный Steam, в который осуществлен вход пользователя ;)
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Аватара пользователя
Snakeus
Полковник
Полковник
Сообщения: 1213
Зарегистрирован: 03.05.2006
Контактная информация:

#2 Сообщение 10.11.2010, 12:31

Проект конечно отличный, но вот зачем это делать?
Использование Open SteamWorks в проектах на c++ не составляет особого труда.
Там даже особых знаний языка не надо :)
Кстати говоря, когда будет следующее глобальное обновление API, придётся многое переписывать.

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#3 Сообщение 10.11.2010, 12:52

Snakeus
Ну, в любом случае, это неплохая попытка, как минимум. Да, на С++ легче в этом смысле, но и для Delphi некоторые основные классы тоже могли бы пригодиться.

andreil
Ну, я уж похвалил. Ну, просто молодец :D .

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#4 Сообщение 10.11.2010, 13:09

Snakeus писал(а):Кстати говоря, когда будет следующее глобальное обновление API, придётся многое переписывать.
Не придется ;) Пока все обновления заключаются в уточнении типов данных, что не особо и влияет на тело функций.

Насчет необходимости - мне и USE с остальными разработками на плюсы тоже перевести, что бы связать с данной разработкой :shock: ? Это же очччень много работы ;)
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#5 Сообщение 11.11.2010, 18:42

andreil
А можно отставшему от... объяснить что такое Open SteamWorks?
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

Аватара пользователя
x_000
Полковник
Полковник
Сообщения: 4889
Зарегистрирован: 25.02.2008
Откуда: Deutsches Reich
Благодарил (а): 6 раз
Поблагодарили: 18 раз

#6 Сообщение 12.11.2010, 03:18

impulse666
заголовки к стимклиент.длл, реверсированные, пригодные к употреблению

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#7 Сообщение 12.11.2010, 08:23

x_000
Не только к steamclient, но и к steam.dll ;)
Последний раз редактировалось $t@t!c_V()1D 12.11.2010, 08:29, всего редактировалось 1 раз.
Причина: Только сам хотел добавить %)
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#8 Сообщение 12.11.2010, 09:29

x_000
andreil
Что дадут они, в какой области (эмуляторописание?)
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

Аватара пользователя
nALLITeT
Полковник
Полковник
Сообщения: 2560
Зарегистрирован: 01.08.2008
Откуда: 127.0.0.1
Поблагодарили: 2 раза
Контактная информация:

#9 Сообщение 12.11.2010, 09:43

impulse666
Подходят для написания различных спаммеров, но если честно то более интересный проект - http://tracker.limetech.org/projects/steamre/
У них есть эмулятор клиента стима ( использование протокола стима для подключения к серверам стима, не требует вообще контент стима ), и очень интересный ClientApp - NetHook, позволяющий перехватывать пакеты.
Изображение
JIEGOKOJI писал(а)::lol: Steamworks это паблишер вальв лол.

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#10 Сообщение 12.11.2010, 13:17

impulse666
Ну, вообще говоря, полезно для написания тех же эмуляторов Steam.dll и Steamclient.dll

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#11 Сообщение 12.11.2010, 16:12

SteamWorks - это набор заголовочных файлов с интерфейсами Steam клиента и самого стима.

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#12 Сообщение 12.11.2010, 21:47

Что дает наличие заголовков...тело функций ведь...все равно надо писать?
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#13 Сообщение 12.11.2010, 22:16

Если говорить чисто о эмуляторах, то да.
А для софта работающего со стимом, заголовков интерфейсов вполне достаточно.

Haoose
Сержант
Сержант
Сообщения: 60
Зарегистрирован: 13.11.2011
Поблагодарили: 40 раз
Контактная информация:

#14 Сообщение 09.02.2012, 23:30

Залейте пожалуйста на обменник что уже есть по Open SteamWorks на Delphi

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#15 Сообщение 11.02.2012, 17:27

Haoose
Есть пока мало чего. Вот возобновлю себе интернет в общаге и начну работать дальше (пока не придет заказанная на заводе плата, а это еще 2-3 месяца).
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Ответить