Перейти к содержанию

The OpenArcanum continues after 5 year break


Crypton

Рекомендуемые сообщения

Опубликовано

Hello everyone,

 

for those, who don't know me yet, let me introduce myself... my name is Libor Max and I'm running the ArcanumAlive project: http://arcanum.game-alive.com/

 

The main purpose of this project was/is to revive Arcanum and bring it back life, as this retro game is fading as the time passes. The main subproject of this project is the OpenArcanum - the game engine re-implementation, which would be multiplatform, MMO based and easy to mod.

 

I started this project back in 2008, almost 10 years ago, and left in 2012, due many (personal) reasons. At the beginning of 2015, I wanted to return, however due some financial difficulties, I had to quit working on OpenArcanum,

after a while. In total it's been 5 years since I stopped working on OpenArcanum and ArcanumAlive.

 

At the begging of this month, I decided to have a look at the source code of the OpenArcanum and decide to what to do with it. After two days of digging through it, I realized that it's size and potential is so big, that I MUST continue working on it.

 

It took me about 3 years of programming, and I wrote over 100 000 lines of C++ code, that is quite good and does not requite too much of refactoring.

However, at the end, it grew to enormous sizes and it was quite overwhelming to continue developing simulatenously both the engine and the game.

 

So I started working on it 14 days ago. I took me about 10 days only to fix the source code, because before I quit working on it, I did not compile the code for over 6 months... yes, I was programming for 6 months without even hitting the compile button once :)

I was back then a quite confident programmer and compiling the whole project took long and it was a waste of time for me.

 

Well, now it was a problem, not only that the code was completely broken, but before I quit, I wanted to port the project from Visual Studio to Qt Creator IDE, but did not finish the conversion.

 

In those last two weeks, I managed to port the project to qmake and fix the source code, so it compiles with latest version of MSVC and GCC.

 

The first step after that was removing all the Arcanum specific code from the engine, make it as much universal/reusable as posible.

 

I already managed to move all the entity, prototype, mobile code to new installer/convertor application and I wrote an JSON generator, that is already able to convert everything to JSON format.

This format it wide-used, easy to modify a will be used in the game where possible.

 

Now I'm working on the map, sectors and terrain data conversion. I will post an update soon.

 

Long story short, I'm back :beer:

 

If you have any questions, or you want to chat about Arcanum and stuff, feel free to contact me on facebook: https://www.facebook.com/crypton

Also, please like this page, to get latest news and updates: https://www.facebook.com/ArcanumAlive/

 

Have a nice day,

Crypton

 

--------------------------------------------------------

 

ArcanumAlive, OpenArcanum and other past projects:

 

2012/12 - Restoration of arcanum1.com

I've managed to completely restore the good old Sierra's Arcanum website from the web archives. Completely rewritten from the scratch, with dynamic loading of the content.

Here is a link: http://arcanum1.game-alive.com/

 

2012/11 - Central Download Storage

I've created a big download database od Arcanum-related content.

Its still working: http://arcanum.game-alive.com/category/downloads/

 

2012/8 - New version of MatchMaker

It was binded to Lua and it the ingame chat/console now supported new commands - summoning new critters, player ressurection, etc.

 

2011/01 - ArcanumBeta v1.0

With a help from one friend, I managed to obtain a CDs of beta/media version of Arcanum.

I filtered out all the in-game content that was deleted in release version of Arcanum and released it under "Beta content restoration pack". The first and the original.

After that, I also released a pack of new avatar images that was deleted in release version of Arcanum.

 

2009/11 - ArtGen & new 2d sprites

An successul attempts to create a new sprites of npc and inventory items (staffs, guns etd).

I've modeled a 3D model of Automaton in 3DS Max and scripted a NPC renderer, that generated images in every camera angle. Then I created a tool that took those images and generated a new Art sprite.

 

2009/10 - OpenArcanum was ported to C++

It used Qt framework, Lua and OpenGL, and was already working on Linux OS.

 

2009/10 - ArcVoice

A new tool for recording speech of new dialogs

 

2009/09 - Debug console

After a lot of RE of Arcanum, I found out that the release version has a hidden debug console. I've made simple enabler tool for the debug console.

 

2009/08 - ArcanumAlive

I started this project and created a website, forums etc.

 

2009/08 - MatchMaker

After Sierra quit and shut down their servers, the multiplayer was no longer working in Arcanum, as it uses Sierra's MatchMaker library.

I created a new MatchMaker library (replacement .dll) and MatchMaster server, so the multiplayer game was working once again. I also hooked the MatchMaster with the ArcanumAlive's website (http://arcanum.game-alive.com/), so you can actually see, how many games is online, who and how many players are playing and for how long.

 

2009/07 - MultiArcanum

I've managed to convert the single player map of Arcanum into a multiplayer map, so you could actually play it online with others.

 

2008 - OpenArcanum/ArcanumAlive

I started this project originally somewhere at the end of 2008. It was originnaly called ArcanumPascalum. Back then, it was just a "simple" map renderer with animations and simple logic. It was written in Object Pascal and was using DirectDraw for the rendering.

 

2008 - High Resolution Patch

I originally started this project, but quit working on it soon, after the idea and patches was "taken" by someone else.

It enabled Arcanum to run in window mode and/or with other display resolution.

Опубликовано

Скажу честно, я думал что ты мертв. Обычно люди не пропадают из тусовки так внезапно.

Я рад, что мои худшие опасения не оправдались :) Пока тебя не было, продолжателем твоего дела считался Radzh.

 

Я тоже начал делать порт Арканум. Я делаю это на Unity. Radzh очень расстроил меня. Я попросил у него помощи. Он пообещал, что поможет мне с исходным кодом конвертера АrtId в StringName. Но так и не выполнил своего обещания ни через неделю, ни через месяц.

 

Будет ли твой новый код свободным? Можешь ли ты расшарить часть кода отвечающую за ArtId ?

Опубликовано

Hello there :)

 

Yeah, I pretty much disappeared suddenly, but I made sure that the website and its content remained online, even the project was abandoned already.

 

So you're making a another Arcanum's engine reimplementation? Well, at least I have some competition :D I would like to share some code with you, however, I spent a lot of time researching of all those file formats, and it was very hard to make it complete, so long time ago, I decided to release the file format specifications after the OpenArcanum is finished, to make sure that all the hard work was actually for something.

 

Many people has asked me to share the source code or the file format specifications, but just so they can create their own engine. And it would be quite disappointing and demotivating for me, if I give my work to someone and he decides to create his own engine and even manages to finish it before I do release the OpenArcanum :)

Опубликовано

Мне понятна Твоя мотивация :)

 

Я выложил свои наработки по спецификациям на github:

https://github.com/iamkisly/ArcanumFileFormats

 

Параллельно ребята ведут разработку на python

https://github.com/vleon1/Arkanum

 

Собственно нам не нужен весь твой исходный код. Я хотел бы увидеть работающий код конвертера ArtId в имя art файла. Ida Pro выдает более-менее понятный псевдокод в целом. Но моего скилла в реверсинжиниринге не хватает для детального копирования:

https://github.com/iamkisly/ArcanumFileForm...-:-Decoding-AID

 

Я не давлю, просто я уже отчаялся найти нужную информацию. А тут такая возможность. Ведь никто не поручится, что завтра ты не исчезнешь ещё на 5 лет :)

Опубликовано
krtek_wb.jpg

И москаль, и хохол — хитрые люди, и хитрость обоих выражается в притворстве: первый любит притворяться дураком, а второй умным. © В.О. Ключевский.

  • 2 недели спустя...
Опубликовано

Crypton не ответил мне в ЛС. Я спрошу еще раз тут.

 

Я предлагаю договориться о формате json файлов (json-schema) чтобы обеспечить легкий перенос и синхронизацию датапака между разными проектами. Мне кажется, что это будет разумным решением.

  • 1 месяц спустя...
  • 2 месяца спустя...
  • 2 месяца спустя...
Опубликовано

Goods news everyone! I'm happy to announce that OpenArcanum project has vastly progressed in development and will be after all released soon. This new game engine will bring Arcanum back to it's glory, allowing both single-player and multiplayer game, including coop-mode.

 

The story behind:

The OpenArcanum was originally developed in Qt framework and written in C++, however the framework did not fit the engine's requirements and I was forced to rewrite the whole engine and write everything from scratch.... However, that was a bad idea back in 2010, because the following 2 years, I was basically only reimplementing the wheel and the project grew to 200 000 SLOC of custom code.

 

I stopped developing OpenArcanum after that due personal and health reasons. Last year, in July, I decided to continue working on OpenArcanum. After fixing completely broken code (took over 1 month) and modernizing it to use latest versions of third-party libraries, I had to switch my desktop OS from Windows to Linux and so I had to port the engine to Linux. After another month or so, I started writing a converter app for Arcanum's game assets.

 

While that, I have decided to drop the idea of Lua language for game scripting. In those 5 years, Lua did not made much progress in "development" and it's ecosystem is very small and outdated.

 

After a deep thinking, I decided to use JavaScript for game scripting.

 

So I started integrating the V8 scripting engine to the OpenArcanum. However, because I also wanted to use HTML5 for game user interface, I started to integrate the CEF3 engine instead. After that, I started integrating and rewriting Node.js for CEF3 implementation.

 

After realizing that there is a so much work to be done, i.e. binding the whole engine to JavaScript, rewriting the core for new file formats, porting to other platforms, bugfixing etc, I did hard, but necessary dedision...

 

I have decided to rewrite the whole engine to JavaScript. The reason is that I wouldn't have to rewrite the Lua bindings, I would not to have to bind the engine at all. Also, it's much easier and faster to write the game in JS than in C++, as JS is a way dynamic and permissible.

 

Another reason is, that back in 2009, when I started developing OpenArcanum, there was no HTML5, CSS3 and WebGL and something like web sockets, Node.js, Electron and similar stuff did not exists or was in early developments.

 

Nowadays, it's possible to develop a AA 3D game for web browsers.

 

So there it is, OpenArcanum2 in it' early development. The JavaScript reimplementation of OpenArcanum.

 

Preview:

https://imgur.com/a/5FUBo

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...