RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

UOAI Beta v0.1

Artaxerxes

Sorceror
UOAI Beta v0.1

Some time ago the main developer of easyuo (EasyUO :: News), launched the idea of an open-source scripting tool for gamers, supporting initially only Ultima-Online, but with a standardized interface to the gaming-engine, so that in principle any game could be supported.

Inspired by this idea I decided to write such a game-engine for ultima online, but using microsoft COM/ActiveX as interface-standard, rather than the standard proposed on the easyuo-forums.

A first beta of the resulting library of ActiveX objects is now available for download at http://www.decelle.be/UOAI.

It has been tested only for UOML 2D-clients on a WindowsXP 32-bit machine and will most likely give you some trouble on Windows Vista (feedback welcome) and is unlikely to run correctly on a 64-bit machine.

The current version of UOAI basically provides the same functionality as EasyUO does, but in an object-oriented form, as a library that can be used from any programming or scripting language that has COM-support, including vbScript, Java, Perl, C, C++, C#, vb.Net, ... and even LUA.

The current version is a beta, so I'm looking for feedback from beta-testers. Also, I have to stress that beta also means unfinished and most likely buggy, so don't expect it to work perfectly... yet.

Take a look at http://www.decelle.be/UOAI for more info.
 

Artaxerxes

Sorceror
Its just a first version though, so i need people testing it.

I had to disable the download temporarily, since my first upload seemed to have some minor problems.

Those problems should be fixed now, so please feel free to download UOAI from http://www.decelle.be/UOAI

... and please provide feedback!!!... independent of whether it crashes on your first try or whether it crashes never at all on your system... I'd like to know!
 

Artaxerxes

Sorceror
Update on UOAI:
- Current version is already quite stable now, and functionality is growing rapidly.
- Also, a .NET wrapper, by Arul, is now available for UOAI

I'm looking for C# developpers, visual basic 6 or javascript developpers, to write some samples using UOAI!

If you are such a developer, please give UOAI a try... I'm sure you will be impressed by what you can do with it.

Once you're convinced, don't forget to upload your code to the UOAI forums!

Greetz,
Artaxerxes
 

Artaxerxes

Sorceror
Suil Ban;782585 said:
This is a very interesting project. I'm going to start playing with this when I get home and see what I can accomplish.

Thank you! Also try to see what you CANNOT accomplish, then let me know, so that I will know what to work on in the future ;) .
 

Artaxerxes

Sorceror
UOAI can be used to write Client-Side A.I. scripts, with A.I. as in Artificial Intelligence... no confusion there. :)

Ofcourse, UOAI does not provide the intelligence yet, you'll have to add that yourself.

Also in future versions typical A.I. tools, such as a (large-distance) pathfinder and a graph-based decision maker (f.e. to write combat AI) might be included in UOAI. (if i ever get to that...)
 

Artaxerxes

Sorceror
A new, more stable and faster version of UOAI was released, with an extensive Managed Wrapper Library included.

- Supports all recent UOML 2D clients.
- Fast event system, including Client.OnPacketReceive(byte[] Packet, uint packetsize) and Client.OnPacketSend(byte[] packet,uint packetsize) events.
- UOAI now supports sending and receiving packets (encryption/decryption and encoding/decoding are performed by the client).
- Reference Guide for the managed wrapper is now available.
- Much more... check out the UOAI website at UOAI Main Page for more info!

Greetz,
Artaxerxes
 

Mideon

Page
Hate to necro this, but is this project still active? I couldn't access the website....

Cheers for any info, thanks.
 

Mideon

Page
Anyone have any idea why I can't load his website or forums? He got IPs banned or something? This is really strange.
 

Mideon

Page
Hrm still out for me, my ip range must be banned or my isp has blocked it.

I'll have to see if I can access the site from my campus.

Thanks for the info everyone.
 

Artaxerxes

Sorceror
17th of July 2010

Currently UOAI is a little bit of a messy project; too many new paths have been taken before previous parts were finished. I therefore have decided to simplify things: i will implement first of all a simple dll written in C implementing all essential functionality. COM and .NET support can then be provided by referencing this C library. Right now, however i lack the time to do any serious work, so for now UOAI will remain silent, I can only apologize for that.

Even though i just admitted that i started on new ideas before finishing previous ones, there is one new idea i'm going to work on anyway: a mobile UO Client. After buying myself an android phone i wondered whether it would be realistic to implement an ultima online client for android phones. Currently, a few week later, after reading a lot about Android development, i came to the conclusion that a project to develop a mobile ultima online client would actually not be as hard as it might sound. The project i have in mind right now (which i call "UOMobile" for now, though a suitable name is open for discussion) is essentially the development of a java based ultima online client that will be distributed in two flavors: an android version and an applet version. The applet version will also include some php or asp script to add facebook-integration (basically this means simply coupling server+credentials to your facebook credentials). The challenge of this project is mostly getting the content (Ultima Online has over a gigabyte of art, animations and gumps as content) to mobile devices, but i'm working on that. As soon as i get any first version online, i'll let all of you know!

So in summary: i will continue on UOAI, focussing more on the basics, but not until i find enough time. For now i will be working on a mobile Ultima Online Client (Android client + applet version with facebook integration), as this is the kind of project i can work on irregulary, when i find a few hours of time... this does however mean that both projects will (continue) to move on slowly!


Regards,
Artaxerxes
 
Artaxerxes;846265 said:
The challenge of this project is mostly getting the content (Ultima Online has over a gigabyte of art, animations and gumps as content) to mobile devices, but i'm working on that.

Have you considered possible legal issues? The UO data files and their content is subject to copyright laws as far as I know and you wouldn't be allowed to ship them yourself.
 

Artaxerxes

Sorceror
Lichtblitz;846268 said:
Have you considered possible legal issues? The UO data files and their content is subject to copyright laws as far as I know and you wouldn't be allowed to ship them yourself.

That is ofc a good point; which for sure has crossed my mind; but if the idea is to develop a mobile UO Client than i'm afraid there is no way around this. The only alternatives would be to either recreate all content myself, but then starting a new game all together might make more sense; OR to require users to pack the content themself from an installed ea games client... but that is not an option neither, since part (if not all) of the content will have to be provided through a 'stream and cache'-method given typical mobile device resources.
So the question rather becomes: is this really an issue? The amount of UO content already distributed on the web is huge; and most third party projects involving UO directly or indirectly rely on the UOML Client being reversed, so it seems to me there is some flexibility when developing UO tools.
No matter what, i will not actually host any content myself: instead my java client will leave the host providing the content as configurable and will ship with a tool to extract (and compress) all content into a directory structure suitable for my client. The code i'm currently working on allows content to be provided from any combination of repositories that serve the extracted content and can be addressed through an URL from java; which includes an optional local repository; so for now the client's can just be tested locally; which for android devices would however require quite some resources to be available.
It also came to my mind that including encryption-routines, allowing connection to the ea games servers, might sort of overcome this issue; but since i'm still at the start of this project such java-based encryption routines are not really a priority.

Regards,
Artaxerxes
 

Kons.snoK

Sorceror
Artaxerxes;846287 said:
That is ofc a good point; which for sure has crossed my mind; but if the idea is to develop a mobile UO Client than i'm afraid there is no way around this. The only alternatives would be to either recreate all content myself, but then starting a new game all together might make more sense; OR to require users to pack the content themself from an installed ea games client... but that is not an option neither, since part (if not all) of the content will have to be provided through a 'stream and cache'-method given typical mobile device resources.
So the question rather becomes: is this really an issue? The amount of UO content already distributed on the web is huge; and most third party projects involving UO directly or indirectly rely on the UOML Client being reversed, so it seems to me there is some flexibility when developing UO tools.
No matter what, i will not actually host any content myself: instead my java client will leave the host providing the content as configurable and will ship with a tool to extract (and compress) all content into a directory structure suitable for my client. The code i'm currently working on allows content to be provided from any combination of repositories that serve the extracted content and can be addressed through an URL from java; which includes an optional local repository; so for now the client's can just be tested locally; which for android devices would however require quite some resources to be available.
It also came to my mind that including encryption-routines, allowing connection to the ea games servers, might sort of overcome this issue; but since i'm still at the start of this project such java-based encryption routines are not really a priority.

Regards,
Artaxerxes

Wim if you call me (i'm on msn as usual) i can check with you if i can help and we can contact a member of Mythics whom i have the contact of :)

btw i will release a version of uoSALoader that works also with 4.0.8.x+ clients soon. ;)
 

Artaxerxes

Sorceror
Kons.snoK;846723 said:
Wim if you call me (i'm on msn as usual) i can check with you if i can help and we can contact a member of Mythics whom i have the contact of :)

btw i will release a version of uoSALoader that works also with 4.0.8.x+ clients soon. ;)

That is probably not a bad idea, to contact the guys from EA games directly and see what they think; but currently i still have too little to show for: all i have up to now are:
- A content extractor that extracts art.mul to pngs (currently with alpha channel, but might be converted to a pallette-based png with a transparent color later on) and combines map.mul and statics.mul info to a custom format collecting multiple blocks in a square area in to one file and storing both statics and tiledata in the same file for that larger square block (currently 8x8 block area, so 64x64 tiles, are stored per file (statics+landtileinfo) but this is configurable and the optimal setting is to be determined later on). The idea is to create files with sizes that suit streaming-purposes slightly better; i'm also doing my best to compress data where possible. I'm also considering adding zlib compression to these collected map/statics chunk files as a whole, as streaming mapinfo to the cache is queued ahead and therefore the overhead of zlib decompression might be acceptable (it works well for the pngs, so...) + (java has builtin zlib support which is implemented on android too).
I also started out with scaled down art (scaling factor was 32/44 per dimension, so that landtiles go from 44x44 to 32x32, which is slightly less then 50% compression) but when a kernel is applied before scaling down the quality loss is too large; when it is not applied there are some issues with the borders of the landtiles as these sawtooth borders of the landtiles consisting of single pixels don't scale very well... so right now i'm just using the art at their original scale, which is probably not a good idea, since not all mobile devices have suitable screens for that; on my acer liquid it looks quite good though :).
- I have a configurable resource cache class in java implemented to stream and cache this first content. (both applet/android version). Custom handling for each content type is represented by a contenthandler interface, which is at this point implemented for the art-png-files and the mapdata. So i can stream and load the art images and map land/statics info right now into the cache, and queue art/mapinfo that will be needed later on; all other resources such as animations, gumps, tiledata, ... will require more dedicated contenthandler interfaces to be implemented; also the content extractor still doesn't extract any of those (though most code to do that is as good as finished).
- I also have basic map drawing code ready in the applet version, with a testapp that shows a draggable map for felucca... but this all only works in the applet version, only parts are converted to android yet.
I have no socket code or any actual game logic implemented yet... at least not in java :)
In summary: i still have a lot of work, so if talking to someone at Mythics is the idea, it might be a little too early... i'm planning to take all of this rather slow, i've a lot of other work these days :) ... and i'm still working on UOAI too, in fact i've done a huge amount of work on rebuilding UOAI this week and very little on this mobile client. Maybe i'll spent some time on this mobile client again this weekend, see if i can clean up this draggable map ... add a combobox to select facets and finish the implementation for android of this draggable map, then i'll contact you and post it online. Might be that i finish a new cleaned-up release of UOAI first though, as i've been coding on UOAI very actively this week... once i finish anything i'll setup a new UOAI website (the current one is a mess, and this DevelopUO.com initiative by megamandos is not really attracting a lot of attention neither, so i'll try to reset the UOAI website, reset the forums (after backup) and post anything new there. I should have some more time the next few weeks, so I plan to finish at least some projects.

On UOSA related code i haven't done much anymore... UOKR/SA support for UOAI was planned but i'm still far from actually adding that ... i'll make sure to log on to msn this weekend, see what you are working on!

Regards,
Wim
 
Top