Go Back   the Magicball Network > Forums > LBA Modifications > LBA Modifications - General
Buy LBA1/Relentless from GOG.com Buy LBA1/Relentless from DotEmu Buy LBA2/Twinsen's Odyssey from DotEmu Buy LBA2/Twinsen's Odyssey from GOG.com Buy Little big Adventure from GOG.com or DotEmu Buy Little big Adventure 2 from DotEmu or GOG.com

Welcome to the Magicball Network.

You are currently viewing our site as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact us.

Reply
 
Thread Tools
  #26  
Old 2009-07-10, 00:50
Battler's Avatar
Battler Battler is offline
Welcome to Zirla!
 
Join Date: Apr 2004
Location: Koper, Slovenia
Posts: 5,322
Send a message via ICQ to Battler Send a message via AIM to Battler Send a message via MSN to Battler Send a message via Yahoo to Battler
Can I donate the compiled version of the original LBA 1, and LBA 2, compression codes? I can't donate the source codes, because Frédérick Raynal only allows me to distribute the compiled versions.
Also, Delphi should be allowed as a programming language for this project as well, as well, as Visual Basic 6.0, since in Delphi, you can natively write API's, and in Visual Basic 6.0, you can also write them if you use an add-on.
And well, I can contribute my own stuff, written in Visual Basic 6.0, and also in C/C++ (both Microsoft, and Open-Watcom), if needed.

Overall, this is a great idea - in fact, this same idea was worked on a year, or so, ago, by kat15pl (a.k.a. K. A. T.), and me, but our version failed. So yeah, I'm extremely interested in this.
__________________
Join #doki-doki on irc.ringoflightning.net for some nice chit-chat about anime, manga, and other aspects of Japanese culture now!
Reply With Quote
  #27  
Old 2009-07-10, 09:52
Lupin's Avatar
Lupin Lupin is offline
Previously Link
 
Join Date: Dec 2001
Location: Paris
Posts: 2,766
Quote:
Originally Posted by Battler View Post
Can I donate the compiled version of the original LBA 1, and LBA 2, compression codes? I can't donate the source codes, because Frédérick Raynal only allows me to distribute the compiled versions.
Well, I guess most of us have some code with the compression algorithm somewhere, and if we need a compiled version we can just directly reverse the original games...

Quote:
Originally Posted by Battler View Post
Also, Delphi should be allowed as a programming language for this project as well, as well, as Visual Basic 6.0, since in Delphi, you can natively write API's, and in Visual Basic 6.0, you can also write them if you use an add-on.
And well, I can contribute my own stuff, written in Visual Basic 6.0, and also in C/C++ (both Microsoft, and Open-Watcom), if needed.
I don't really know much about Delphi to be honest, nor VB6. I don't know well how they can interface with standard C++. Do they support templates ?
"since in Delphi, you can natively write API's" --> I don't know what you mean, every language natively support writing APIs for programs written in that same language or compatible languages. About VB, if you said VB.Net, I would have said, why not ? Because I guess making a wrapper for .Net and all it's languages wouldn't be hard.
However I think the API code and the plugins (at least the official plugins and the ones that want to be reused and extendable) should be in C++.
If your program USES the API in any language, no problem, that's one of the intended usage of the API. However if you contribute to it, you should not limit everybody by using such particular languages.


Edit: By the way LBAWinOwns, I didn't see you on SF.net project space... Guys, send me a mail with your SF.net username so I can add you.

Last edited by Lupin; 2009-07-10 at 10:07.
Reply With Quote
  #28  
Old 2009-07-10, 12:04
Darkflame's Avatar
Darkflame Darkflame is offline
Classic
 
Join Date: Feb 2001
Location: Sol, Earth, NL
Posts: 23,836
Send a message via ICQ to Darkflame Send a message via AIM to Darkflame Send a message via MSN to Darkflame
Delphi is a modern version of pascal, and, imho, its quite a lovely language.
Its really around half way between VB and C in terms of syntax/speed/easy of coding.

Not sure about Templates as I dont exactly know what they are.
If anyone use's Delphi I recomend you use the Lazarus IDE (technicaly a free-pascel compiler, but it can import fine) then you can compile the same code to Linux/Windows/Mac rather easily. (provided you have those OSs installed)
__________________
http://fanficmaker.com <-- Tells some truly terrible tales.
-
Phones & Tricorders & Blobs & Bombs & 3D Printers & TVIntros also;stuff
Reply With Quote
  #29  
Old 2009-07-10, 18:13
Zink's Avatar
Zink Zink is offline
Master of Degree
 
Join Date: Sep 2001
Location: Lublin, Poland
Posts: 1,745
So a "module" would be just a description of how a plugin that does something should communicate with the program that wants to use its features. Right? If not, then I don't get something here, and I would like to see an example including source code fragments, please .

Battler, I think you could provide a plugin with the compression code, without releasing its source, and that would perfectly fulfil the whole idea.

Delphi can use libraries (dlls) written in other languages, and can create dlls that can be used in other languages. It supports interfaces (including pure virtual), but I don't have much experience in the thing. It doesn't support templates (not C-like templates at least), but I don't see why it should be an obstacle. If I understand the API idea correctly, that it will be just a piece of code in C++ (I still don't get what the code would actually do), then I can handle translating it to Delphi, so more people could use it.

Oh, and I'm not so optimistic about Lazarus. I have written something in it before (including a commercial application), but It was a really hard time. It is very bugged and its debugger is almost non-working all the time. Unless something have changed recently.
Reply With Quote
  #30  
Old 2009-07-10, 18:42
Battler's Avatar
Battler Battler is offline
Welcome to Zirla!
 
Join Date: Apr 2004
Location: Koper, Slovenia
Posts: 5,322
Send a message via ICQ to Battler Send a message via AIM to Battler Send a message via MSN to Battler Send a message via Yahoo to Battler
- Link: No, Visual Basic doesn't support templates. However, you seem to be mis-understanding, what an API is. An API consists of procedures, and functions, which are exported by one file, and then called in another application.
Let me post an example:
Code:
Declare Function GetVersion Lib "Kernel32" () As Long
Now, this is a Visual Basic call, or importation, if you wish, of the function GetVersion, which is available in the file Kernel32.DLL of your Windows.
Now, let's say, that the original function is written in C:
Code:
ext long int GetVersion();
This is, how the function is exported in the original code of the library.
Note, that this is an example, and may not correspond to how that particular function really is done.
It's a simple matter of one binary exporting certain things, and another importing them.
I don't see, why would templates matter here. It's just a matter of writing a function, and exporting it, which is really simple to do. And, provided, that it's done well, any function can be both exported, and imported, in any programming language.
I've had functions, written in both Delphi, and C/C++, called in a Visual Basic 6.0 program, and I've had functions, written in Visual Basic 6.0, called in Delphi.
So I don't see, why you have this many problems with Visual Basic 6.0, and Delphi.
However, an API by definition consists of at least one library with exported functions, and you can write those in virtually any programing language. And I also thinking, that making this kind of true API, is much better, than just exchanging source code - in this way, any particular function, can be simply called in any programming language, without conversion.

About the compression codes - I think, that you mis-understood me on that one as well. I was sent the original compression algorithms for both LBA compression types, by Yaz0r, and also by Frédérick Raynal himself. I have managed to successfully compile a .DLL file from it, which can be called in any programming language. However, I'm only allowed to distribute such compiled binaries, such as that .DLL file, and not those source codes themselves, as per what I was told by Frédérick Raynal.
__________________
Join #doki-doki on irc.ringoflightning.net for some nice chit-chat about anime, manga, and other aspects of Japanese culture now!
Reply With Quote
  #31  
Old 2009-07-10, 20:07
LBAWinOwns's Avatar
LBAWinOwns LBAWinOwns is offline
Magic Ball Master
 
Join Date: Mar 2004
Location: Sweden
Posts: 5,571
Send a message via MSN to LBAWinOwns
Even though I see no way templates is interesting for the actual interface. A language without template support kind of sucks. Just look at how messy a TList example of sorting is in Delphi.

I'm also kinda used to both Delphi and Lazarus IDE. But honestly I can't say I think either of them is appropriate for this project, their main usage is for creating GUI applications (especially Lazarus).

Using C++ however we do not only get a language with a lot of more available resources and libraries. We also get a working environment where users aren't forced upon choosing between two IDEs.

Of course I miss some of the features of Delphi in C++ (properties for instance) too. Buy my opinion is definitely that C++ is better than (Object) Pascal for this project.


Obras - Your compression library can be used for sure, but I really think it's to early to discuss that now.
__________________

LBA Image Creator project
(image by leoboe! )

Get the Jump-Save-Bug graphically explained here
Reply With Quote
  #32  
Old 2009-07-12, 10:29
Lupin's Avatar
Lupin Lupin is offline
Previously Link
 
Join Date: Dec 2001
Location: Paris
Posts: 2,766
Quote:
Originally Posted by Darkflame View Post
Not sure about Templates as I dont exactly know what they are.
Templates are a mechanism implemented by modern versions of C++ and Java. It allows methods and classes to operate on generic types. For example instead of declaring a collection (List, Stack, Queue, Vector, etc) with a specific type like int, you can write your collection class as a template. The user would then declare a Collection<int>, Collection<string>, Collection< Vertex3D<int> >, etc, according to his need. The compiler will automatically create appropriate versions of the class Collection according to the types you specified as argument of the template. This is a simple example, but the possibilities of this are huge.

Quote:
Originally Posted by Zink View Post
So a "module" would be just a description of how a plugin that does something should communicate with the program that wants to use its features. Right? If not, then I don't get something here, and I would like to see an example including source code fragments, please .
Well, yes, that's basically the idea. This is in fact sometimes called a SPI (Service Providing Interface) instead of API. The plugins can choose to implement a module or not. However if a plugin implements a module, it should do it entirely, so that this module is functional and reusable. The LBA1/2 standard plugins would typically implement all the modules.

I guess the module and plugin system I suggest is still quite blurry for most of you, but I hope I can make that clearer with some diagrams.

I will give an example during the day, along with a basic use cases diagram and some code.

Quote:
Originally Posted by Zink View Post
Battler, I think you could provide a plugin with the compression code, without releasing its source, and that would perfectly fulfil the whole idea.
Agreed.

Quote:
Originally Posted by Zink View Post
Delphi can use libraries (dlls) written in other languages, and can create dlls that can be used in other languages. It supports interfaces (including pure virtual), but I don't have much experience in the thing. It doesn't support templates (not C-like templates at least), but I don't see why it should be an obstacle. If I understand the API idea correctly, that it will be just a piece of code in C++ (I still don't get what the code would actually do), then I can handle translating it to Delphi, so more people could use it.
Well, how does this support of interfaces go ? Is it possible to subclass in delphi, a class that has been declared in C++. Also, is there a mechanism to allow the reverse operation (Implement in C++ a subclass to a class declared in delphi) ? This would be quite essential if some plugins are to be implemented in delphi, without that they can't be reusable.

As for the templates, if it's the only limitation that prevents interoperability between C++ and delphi, then we may consider dropping them. However they really are a powerful mechanism which is extensively used in many modern languages. Check my 3D model idea at the beginning of this thread for a potential use for them (http://forum.magicball.net/showpost....5&postcount=11). This would look much cleaner if made with templates.

Quote:
Originally Posted by Zink View Post
Oh, and I'm not so optimistic about Lazarus. I have written something in it before (including a commercial application), but It was a really hard time. It is very bugged and its debugger is almost non-working all the time. Unless something have changed recently.
As opposed to the multitude of solutions to compile C++ code on any platform (including portable or not portable consoles for instance ), and the multitude of IDEs.

Quote:
Originally Posted by Battler View Post
- Link: No, Visual Basic doesn't support templates. However, you seem to be mis-understanding, what an API is. An API consists of procedures, and functions, which are exported by one file, and then called in another application.
Let me post an example:
Code:
Declare Function GetVersion Lib "Kernel32" () As Long
Now, this is a Visual Basic call, or importation, if you wish, of the function GetVersion, which is available in the file Kernel32.DLL of your Windows.
Now, let's say, that the original function is written in C:
Code:
ext long int GetVersion();
This is, how the function is exported in the original code of the library.
Note, that this is an example, and may not correspond to how that particular function really is done.
It's a simple matter of one binary exporting certain things, and another importing them.
Your perception of what's an API is in fact a very specific concretization of an API. I think you're a little biased by your own specific developing environment. Did you ever try to make a multi-platform (by that I mean, at least Windows/Linux) application involving several persons working on several different software components ?

Quote:
Originally Posted by Battler View Post
I don't see, why would templates matter here. It's just a matter of writing a function, and exporting it, which is really simple to do. And, provided, that it's done well, any function can be both exported, and imported, in any programming language.
I've had functions, written in both Delphi, and C/C++, called in a Visual Basic 6.0 program, and I've had functions, written in Visual Basic 6.0, called in Delphi.
So I don't see, why you have this many problems with Visual Basic 6.0, and Delphi.
Maintaining language interoperability using advanced features such as templates and class hierarchies is not as trivial as importing/exporting symbols/functions. However, I really think going for a procedural programming approach (defining only functions in the API) would miss the point of this project. We're clearly aiming at providing more flexibility to LBA project, as well as designing powerful mechanisms to bring them a step further.

On the other hand, we don't want to restrict end-users of the API and it's associated plugins to use C++, so the high-level classes could simply hide the underlying advanced techniques used (templates, etc).

Quote:
Originally Posted by LBAWinOwns View Post
Even though I see no way templates is interesting for the actual interface. A language without template support kind of sucks. Just look at how messy a TList example of sorting is in Delphi.
Check my 3D model post for a possible usage of templates, that is one I could think of, but there are probably many others.
That doesn't imply that the high-level classes meant to be used by end-users of the API will use templates. When I'm discussing templates, I'm thinking more of the parts of the API that would be implemented by plugins, providing very abstract data representations that the plugins would concretize.

Quote:
Originally Posted by LBAWinOwns View Post
I'm also kinda used to both Delphi and Lazarus IDE. But honestly I can't say I think either of them is appropriate for this project, their main usage is for creating GUI applications (especially Lazarus).

Using C++ however we do not only get a language with a lot of more available resources and libraries. We also get a working environment where users aren't forced upon choosing between two IDEs.
And also possibly attract the attention of new programmers. There are a lot of C++ programmers around here who never post, but might be interested in using their skills to contribute to LBA projects.


Ok, I'll finish those diagrams and examples now.
Reply With Quote
  #33  
Old 2009-07-12, 22:34
xesf's Avatar
xesf xesf is offline
Magic Ball Master
 
Join Date: Sep 2002
Location: Dublin
Posts: 7,816
This is indeed a very interesting program which will help a lot of people to give more and more to the LBA community.

I like the idea of this API and also want to help since this will help building a new LBA engine. C++ is indeed the way to go. Will be excellent to have this API exported as LIB file and not only as DLL. Also the key is to get it cross platform so we need to care about the endianess of this API as well.

I was thinking about this API and thought it will be better if we don't join presentation part (3D rendering, image processing, sprite processing, scene processing, etc..) with the actually core of LBA files (plus extensions). Why? Well, mostly because it will require some other libraries that for some projects won't need it and its bad to include it without using it. Also it will increase a lot the size of this API. I would say we may divide this in 2 distinguish API, but well, its yet early.

Waiting to see the first drafts of the API



Btw, my sf.net account is alexfont
__________________
Personal Blog - blog.xesf.net

TwinEngine v0.2.1 win32 beta released - open source re-implementation of the LBA 1 original engine.
[Discuss]|[Download]|[Changes]|[SourceCode]|[Issues]


The Sacred Carrot website
Reply With Quote
  #34  
Old 2009-07-12, 23:17
Lupin's Avatar
Lupin Lupin is offline
Previously Link
 
Join Date: Dec 2001
Location: Paris
Posts: 2,766
Sorry guys, I couldn't work today (went to a theme park with my gf). Hopefully tomorrow I'll be free to finish the diagrams/example.

Alexfont - Indeed I mentioned in the FAQ that the loading should be separated from the rendering. The API itself would be just an interface, thus having absolutely no requirement (except maybe the STL). It would just define a set of pure virtual classes and a plugin management system. With the plugin management system you would retrieve the appropriate implementation of a specific interface from a plugin, according to your need. For instance you could do something like this:

Code:
LBAPI::PluginManager *pm = new LBAPI::PluginManager();
IModel *model = pm.getPackagingSystem("hqr+metadata")->getPackage("body")->getEntryByName("twinsen")->asModel();
pm.getGameEngine("lba1-base")->getCurrentScene()->addModel(model, 0.0, 0.0, 0.0);
but you could as well do:

Code:
LBAPI::PluginManager *pm = new LBAPI::PluginManager();
IModel *model = pm.getPackagingSystem("lbanet-xml")->getPackage("body")->getEntryByName("twinsen")->asModel();
pm.getGameEngine("lbanet")->getCurrentScene()->addModel(model, 0.0, 0.0, 0.0);
This example is not meant to reflect how the API will actually look like, we're not there yet, I just want to give a suggestion of how the different plugins would be interoperable. You just request a particular implementation of a particular feature ("hqr+metadata" or "lbanet-xml" for the packaging module, "lba1-base" or "lbanet" for the game engine), and then the plugin manager search through all the loaded plugins for the appropriate implementation of the feature you request. Of course if you're working on a modding-tool you don't need to include the plugins that implement game engines.

About your SF.net username, I already added you to the project...
Reply With Quote
  #35  
Old 2009-07-13, 00:16
LBAWinOwns's Avatar
LBAWinOwns LBAWinOwns is offline
Magic Ball Master
 
Join Date: Mar 2004
Location: Sweden
Posts: 5,571
Send a message via MSN to LBAWinOwns
My sf.net username is LBAWinOwns.
__________________

LBA Image Creator project
(image by leoboe! )

Get the Jump-Save-Bug graphically explained here
Reply With Quote
  #36  
Old 2009-07-13, 08:12
Battler's Avatar
Battler Battler is offline
Welcome to Zirla!
 
Join Date: Apr 2004
Location: Koper, Slovenia
Posts: 5,322
Send a message via ICQ to Battler Send a message via AIM to Battler Send a message via MSN to Battler Send a message via Yahoo to Battler
- Link: Read this article here.
Let me quote:
Quote:
In computer science, an application programming interface (API) is an interface defining the ways by which an application program may request services from libraries and/or operating systems.[1][2][3] An API determines the vocabulary and calling conventions the programmer should employ to use the services. It may include specifications for routines, data structures, object classes and protocols used to communicate between the requesting software and the library. An API may be:
  • Language-dependent; that is, available only in a particular programming language, using the particular syntax and elements of the programming language to make the Application Programming Interface convenient to use in this particular context.
  • Language-independent; that is, written in a way that means it can be called from several programming languages (typically an assembly or C interface). This is a desired feature for a service-style API that is not bound to a particular process or system and is available as a remote procedure call.
The API itself is largely abstract in that it specifies an interface and controls the behavior of the objects specified in that interface. The software that provides the functionality described by an API is said to be an implementation of the API. An API is typically defined in terms of the programming language used to build an application. The related term, ABI (Application Binary Interface), is a lower level definition concerning details at the Assembly language level. For example, the Linux Standard Base is an ABI, while POSIX is an API.[4]
The API acronym may sometimes be used as a reference, not only to the full interface, but also to a single function or even a set of multiple APIs provided by an organization. Thus the scope is usually determined by the person or document that communicates the information.
As you can see, Wikipedia agrees with my own definition of API, which is also the definition using by Microsoft Corp. So, what you want to do, isn't an API, or, it's a language-dependent API, which is just as bad.
My personal opinion is, that we should forget porting stuff to Linux, and Mac, because those platforms have little to do with the original LBA games, so what's the use to port the stuff to those platforms?


Honestly, that I can't contribute to this project, because I'd need to program in a language, which I'm much less familiar with - I mean, we're not even using standard C, but C++, possibly with stuff, like StdIO, being even forbidden from use, so not exactly, what I'm familiar with -, because too much priority is given to supporting every single platform possible, instead of just focusing on Windows, which is not only the platform, on which the LBA games natively run, but also has 90% of the market-share, so the other two platforms are really fringe platforms, in my opinion.
And you can even run Windows program easily on those platforms, with the help of emulators, which you need, in order to run the original LBA games, anyway, so why not just use our Windows API through an emulator, if you really need to use it on a non-Windows operating system?


- alexfont: Why should we care about endian-ness? The LBA file formats are low-endian, and I seriously doubt, that it's wife to change them to big-endian, because then, the LBA games wouldn't rea dthem, anymore, anyway. Also, the only big-endian platform was the Mac, which nowadays uses only standard Intel CPU's, and so is, there-fore, now little-endian, so there are no big-endian platforms, anymore.
__________________
Join #doki-doki on irc.ringoflightning.net for some nice chit-chat about anime, manga, and other aspects of Japanese culture now!
Reply With Quote
  #37  
Old 2009-07-13, 09:49
Lupin's Avatar
Lupin Lupin is offline
Previously Link
 
Join Date: Dec 2001
Location: Paris
Posts: 2,766
So you think being language-independent is more important than being platform-independent ? So you basically suggest for the design to be C like (just functions / no classes) ? Even your favorite OS has dropped this approach for years. They invented the COM interface many years ago to allow non-object-oriented languages to reuse components in an object oriented manner. They recommend using C++ however, for easier creation of COM components. Now everything revolves around the .NET platform in Windows' world, which is definitly object oriented.

I'm not going to discourage experienced and talented programmers there to use the API, just to support this kind of retarded approach.
I'm not gonna argue on the advantages of being platform-independent either, but here is a hint (did you consider the programmers that may use this API to port the original games to some consoles ? Wouldn't it be great to be able to play LBA on NDS ?).

If other people disagree with me, and think like you that it's better to drop the platform-independence and the flexibility offered by object oriented languages (and especially C++), then we can maybe cast a vote. Although by judging from the replies here, I think most people agree and support C++ as the language of this API.
Reply With Quote
  #38  
Old 2009-07-13, 11:05
Battler's Avatar
Battler Battler is offline
Welcome to Zirla!
 
Join Date: Apr 2004
Location: Koper, Slovenia
Posts: 5,322
Send a message via ICQ to Battler Send a message via AIM to Battler Send a message via MSN to Battler Send a message via Yahoo to Battler
Quote:
Originally Posted by Link
So you basically suggest for the design to be C like (just functions / no classes) ?
Visual Basic 6.0 has classes.

Quote:
They invented the COM interface many years ago to allow non-object-oriented languages to reuse components in an object oriented manner.
Visual Basic 6.0 is purely COM/object-oriented in nature.

Quote:
I'm not going to discourage experienced and talented programmers there to use the API, just to support this kind of retarded approach.
But you have no problems to discourage experienced, and talented, programmers here to use the API?
Honestly, how many of the programmers, which you don't want to discourage, contributed to the LBA Modifications scene as much, as me? Please, list me just one, single, name.

Quote:
I'm not gonna argue on the advantages of being platform-independent either, but here is a hint (did you consider the programmers that may use this API to port the original games to some consoles ? Wouldn't it be great to be able to play LBA on NDS ?).
Make another project for making a LBA engine, and keep this one for the LBA Modifications. I think we've had enough LBA engines made by now, what with Twin-E, the PrequEngine, LbaO, etc. We need new LBA Modification tools, which we're not getting, because all developers seem to be instead focusing on creating engines, and ports.

Quote:
Although by judging from the replies here, I think most people agree and support C++ as the language of this API.
Well, if you want to make everyone using your API, instead of using their own code, make the use of your API mandatory for every single LBA Modification tool, and make it sure, that LBA Modification tools, made without your API, aren't accepted here, anymore, then you HAVE to support other languages, as well.
Other-wise, I'll just with-draw all my LBA Modification tools from this forum, as I'm certainly NOT going to re-write the hundreds of line sof code, which I wrote from 2003 to now, into C++, or a more "modern" language (such as Visual Basic.NET), just because of this project.
__________________
Join #doki-doki on irc.ringoflightning.net for some nice chit-chat about anime, manga, and other aspects of Japanese culture now!
Reply With Quote
  #39  
Old 2009-07-13, 11:41
Lupin's Avatar
Lupin Lupin is offline
Previously Link
 
Join Date: Dec 2001
Location: Paris
Posts: 2,766
Quote:
Originally Posted by Battler View Post
Visual Basic 6.0 has classes.
So do most modern languages, and most of them are not proprietary.

Quote:
Originally Posted by Battler View Post
Visual Basic 6.0 is purely COM/object-oriented in nature.
Yeah, and COM is quite outdated...

Quote:
Originally Posted by Battler View Post
But you have no problems to discourage experienced, and talented, programmers here to use the API?
Honestly, how many of the programmers, which you don't want to discourage, contributed to the LBA Modifications scene as much, as me? Please, list me just one, single, name.
I'm not going to answer that. I don't want this to turn into a personal flame war.

Quote:
Originally Posted by Battler View Post
Make another project for making a LBA engine, and keep this one for the LBA Modifications. I think we've had enough LBA engines made by now, what with Twin-E, the PrequEngine, LbaO, etc. We need new LBA Modification tools, which we're not getting, because all developers seem to be instead focusing on creating engines, and ports.
You seem to have missed the point of this API.

Quote:
Originally Posted by Battler View Post
Well, if you want to make everyone using your API, instead of using their own code, make the use of your API mandatory for every single LBA Modification tool, and make it sure, that LBA Modification tools, made without your API, aren't accepted here, anymore, then you HAVE to support other languages, as well.
Other-wise, I'll just with-draw all my LBA Modification tools from this forum, as I'm certainly NOT going to re-write the hundreds of line sof code, which I wrote from 2003 to now, into C++, or a more "modern" language (such as Visual Basic.NET), just because of this project.
I don't want to force anyone to use this API. You're totally free to ignore it, if you don't agree with its goals.
Reply With Quote
  #40  
Old 2009-07-13, 13:13
Rincevent_123's Avatar
Rincevent_123 Rincevent_123 is offline
Magic Level: Fire Ball
 
Join Date: Apr 2007
Location: Germany
Posts: 380
I think the last part of the thread is going nowhere.
The whole thing is not about knowing which language is better than the other or which operating system should be used.
Of course everybody has his own preferences and there are already plenty of long discussions about that in other specialized forums.

What I personnaly think about what Link is trying to accomplish is the following:
- provide a set of standards and API in order for every applications created by LBA fans of this forum to be compatible whith each others.
- once somebody has created something that could be usefull to the community, he could integrate it into the API. This would mean no double work and a lot of work sharing possibilities.


Now if I take an example of what could be the usage of the API:
- You could start to mod your world using already existing modding tools like LBArchitect. They will all be compatible with each other so you can start to work with one tool, save your work and reopen it later with another tool to focus in other aspect.

- Once it is done, you could save your creation in different formats. And thanks to that you should be able to integrate your work to any existing game engine created by LBA fans (e.g. original game engine, prequengine, LBAnet, etc.)

Of course, this API will be able to do much more than that, this is only one example.


But please note that we are not talking about in which language the individual applications are programmed on or in which operating system they run.
This is actually at the discretion of the programmer.

Of course the language of the API itself needs to be fixed at the beginning. Link choosed C++. It has benefits and drawbacks,
but I personnaly think that this is a good language to be the bridge between all those applications:
- it is cross platform
- it should be possible to easily load and use C style libraries in other languages
__________________
______________________
Reply With Quote
  #41  
Old 2009-07-13, 14:04
Darkflame's Avatar
Darkflame Darkflame is offline
Classic
 
Join Date: Feb 2001
Location: Sol, Earth, NL
Posts: 23,836
Send a message via ICQ to Darkflame Send a message via AIM to Darkflame Send a message via MSN to Darkflame
Absolutely.
The language of the API should really be the one those createing the API can create it best in, irrespective of the pros and cons of the language as a whole.
I like Delphi, but not so much to insist anythings made in it, that would just be silly.
C++ probably is the best in this case to use.
__________________
http://fanficmaker.com <-- Tells some truly terrible tales.
-
Phones & Tricorders & Blobs & Bombs & 3D Printers & TVIntros also;stuff
Reply With Quote
  #42  
Old 2009-07-13, 16:32
Lupin's Avatar
Lupin Lupin is offline
Previously Link
 
Join Date: Dec 2001
Location: Paris
Posts: 2,766
I've made a document about the design of the API, this might help you get a clearer idea of how I see it. Of course feedback is more than welcome.
We'll use the google group to discuss it, this thread should keep clean and accessible.

Here are the discussion and the document:
http://groups.google.com/group/lbapi...e4335925abed58
Reply With Quote
  #43  
Old 2009-07-13, 18:44
Battler's Avatar
Battler Battler is offline
Welcome to Zirla!
 
Join Date: Apr 2004
Location: Koper, Slovenia
Posts: 5,322
Send a message via ICQ to Battler Send a message via AIM to Battler Send a message via MSN to Battler Send a message via Yahoo to Battler
- Darkflame: The vast majority of the developers on this forum, use either Visual Basic 6.0 (me, lbaguy3d, N-SoftInd, George (kargeor), and kat15pl (K.A.T.)), or Delphi (Zink, LBAWinOwns, and me as well). Only the minority uses C++.

- Link: So what, if COM is out-dated? It's still the most widely used, so to drop it for no reason, and only develop for .NET, is just plain... wrong. Also, I have nothing against .NET - find me a version of the classic Visual Basic, that works for .NET, and I'll gladly switch to it. And don't say Visual Basic.NET, as that one is too different from the classic Visual Basic, and for no reason - the classic Basic language has gone virtually un-modified through DOS, Windows 3.x, and Windows 32-bit (COM) interfaces, so they could easily have adapted it towards .NET.

Heck, Microsoft Corp. themselves still provide Visual Basic 6.0 on MSDN. And I seriously doubt, that they do it for no reason.

Also, I think you're the one giving the wrong goal to this project. We're here in a section, called LBA Modifications, so the stuff being discussed here, should be related to LBA Modifications, and not to LBA Ports.

And how nice of you, saying, how you don't want to start a flame-war, after you were the one, who started it, by calling my approach retarded, which I consider an insult.
But, you're right, we should discuss stuff here, and not flame each other, so let's not go further into that, as it wouldn't anyone any good, and would just make the two of us enemies for no reason.
__________________
Join #doki-doki on irc.ringoflightning.net for some nice chit-chat about anime, manga, and other aspects of Japanese culture now!
Reply With Quote
  #44  
Old 2009-07-13, 18:49
Darkflame's Avatar
Darkflame Darkflame is offline
Classic
 
Join Date: Feb 2001
Location: Sol, Earth, NL
Posts: 23,836
Send a message via ICQ to Darkflame Send a message via AIM to Darkflame Send a message via MSN to Darkflame
As I understand it, however, you shouldn't be required to use C++ if you want to use the results of this project.
__________________
http://fanficmaker.com <-- Tells some truly terrible tales.
-
Phones & Tricorders & Blobs & Bombs & 3D Printers & TVIntros also;stuff
Reply With Quote
  #45  
Old 2009-07-13, 19:14
Lupin's Avatar
Lupin Lupin is offline
Previously Link
 
Join Date: Dec 2001
Location: Paris
Posts: 2,766
Quote:
Originally Posted by Darkflame View Post
As I understand it, however, you shouldn't be required to use C++ if you want to use the results of this project.
Yes, but an object oriented programming language would be a requirement.
I don't want to discuss the language used for the API anymore, most people interested in this project have already agreed that C++ is appropriate.

As for this being in the wrong section of the forum, I originally made the thread in the Fan Games subforum, as it is as well intended at tool developers as game-engine developers. After all, aren't tools meant to support the creation of new games ??

I tried to explain the goal of this API in several ways (reread the FAQ, the document I posted today, and my early replies in this thread), and most people understand and support this goal. If you don't agree with it, I won't change my plans to suit you, I'll only change my plan if it's profitable to the majority.
Thus, I hope from now on we can stop discussing this and focus on actually designing this API. If you can't adapt to our approach, then I suggest you to just ignore this project.
Reply With Quote
  #46  
Old 2009-07-13, 19:52
Battler's Avatar
Battler Battler is offline
Welcome to Zirla!
 
Join Date: Apr 2004
Location: Koper, Slovenia
Posts: 5,322
Send a message via ICQ to Battler Send a message via AIM to Battler Send a message via MSN to Battler Send a message via Yahoo to Battler
- Link: We are the majority. If five people developping on Visual Basic 6.0 isn't enough for you, then I don't know, how many will be enough.
Thing is, I'm the only one here, who has code to load certain file types, like LBA 2 scenes, the LBA2.HQR credits, etc. And it's going to be extremely tedious for me to re-write all that code into another programming language.
__________________
Join #doki-doki on irc.ringoflightning.net for some nice chit-chat about anime, manga, and other aspects of Japanese culture now!
Reply With Quote
  #47  
Old 2009-07-13, 20:46
LBAWinOwns's Avatar
LBAWinOwns LBAWinOwns is offline
Magic Ball Master
 
Join Date: Mar 2004
Location: Sweden
Posts: 5,571
Send a message via MSN to LBAWinOwns
Obras - Those people you mentioned except for you and a tiny bit Kat haven't done squat to the mod community and are considered totally gone from the MBN.
__________________

LBA Image Creator project
(image by leoboe! )

Get the Jump-Save-Bug graphically explained here
Reply With Quote
  #48  
Old 2009-07-13, 21:21
Lupin's Avatar
Lupin Lupin is offline
Previously Link
 
Join Date: Dec 2001
Location: Paris
Posts: 2,766
I've been thinking while taking a shower, I will personally need the packaging module and the 3D models module very soon for LBAnimator Studio 2, other projects may need the packaging soon.

So, instead of making a list of possible modules first, I guess it's better if we just design modules as we need them. No problem in adding features step by step, as long as the plugins are not required to implement every interface, but rather choose which one they want.

If nobody gives me feedback on the module/plugin approach, I'll just go on designing the API's core and the packaging module according to my needs and the needs of those who have active projects and are interested in this API (I'm thinking of the Prequengine and LbaNet particularly).
Reply With Quote
  #49  
Old 2009-07-13, 21:45
Battler's Avatar
Battler Battler is offline
Welcome to Zirla!
 
Join Date: Apr 2004
Location: Koper, Slovenia
Posts: 5,322
Send a message via ICQ to Battler Send a message via AIM to Battler Send a message via MSN to Battler Send a message via Yahoo to Battler
- LBAWinOwns: What are you saying? N-SoftInd made the LBA Text File Editor, and George (kargeor) made some programs as well. Granted, lbaguy3d made nothing, but we're still four programmers, that develop on Visual Basic 6.0.

- Link: So you're the type of guy, who, instead of sitting down, discussing, and reaching a compromise, that fits both the majority, and the minority, just goes, and oppresses the minority. Nice way of going, really.
__________________
Join #doki-doki on irc.ringoflightning.net for some nice chit-chat about anime, manga, and other aspects of Japanese culture now!
Reply With Quote
  #50  
Old 2009-07-13, 21:49
Kobold's Avatar
Kobold Kobold is offline
Magic Ball Master
 
Join Date: Jun 2006
Location: Germany
Posts: 7,337
Hahahahaha....

Sorry. The minority of users of a programming language oppressing a majority.

Hahahaha.

Man, he chooses the most optimal language, the end. If you know one programming language, it should only be a matter of days to learn another, and with a proper manual and documentation on your side, you shouldn't have a problem at all.

If you're again going to say that your PC is too old to handle that, then maybe Link won't give you support in favor of creating a more useful and modern API for everybody else.
Reply With Quote
Reply

Tags
api, fan projects, lba, lba2, programming

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
'Graffiti' application art talkalot Fan Art 5 2008-07-16 01:46
Application to get into the Team! panadol LBA: The Great Rebellion 7 2007-01-01 16:00
Minority Report Style Interface Darkflame Off topic 6 2006-02-10 20:58
Forum interface changed Illumina The site and forum 31 2004-03-23 05:56
Programming in C/C++ mop_int Off topic 15 2002-03-07 22:42


All times are GMT +2. The time now is 18:19.


News Feed
Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright ©2000 - 2019, the Magicball Network