Engine building. If we make it, will they come?

  • Thread starter Thread starter halkun
  • Start date Start date
Status
Not open for further replies.
Comment: It would definitely be handy if we had a more real-time way to communicate for this project to work. Particularly at this early stage we need discussion meetings, which in all honesty is a bit hard if you have to wait 24 hours for everyone to nod their head. Of course everyone can't attend the meetings (silly time zones), but at least some person-to-person discussion needs to take place (preferably logged for future reference). For example, I'd like to have a talk with halkun about the guidelines for the kernel and surrounding framework, as well as any source formatting / file naming rules, before any serious coding work is started (to prevent unnecessary work later). Now I've heard you have a Yahoo IM account, but never seen you online, so perhaps you can suggest a better means... ^^
 
I know there are buttons along each of my posts which will allow anyone access to my Yahoo! Messenger, MSN Messenger, and ICQ account names, but in case some do not want to hold the mouse over the button an jot down the little text at the bottom of the screen, I will post.


ICQ: 36242040, named “L. Spiro”.  I do not use ICQ because it is nothing but fucking porn bots.
Yahoo! Messenger: shyamarakeensunderjayaramenen. On daily.
MSN Messenger: [email protected].  On daily.
IRC: irc.dynamix.com, #FF7.  On daily.
Skype: L-Spiro.  On daily.

My IRC server is very good.  I am not the owner but it has good IRC services and I know the owner/operator.  It is an official server operated through Vivendi for game purposes, but it is not overrun as are Enter The Game, EFnet, DALnet, etc., so it is very fast.
IRC of course is a way we can all be there as we are available and have a backbuffer to check on things we missed, as well as logging, and of course it is capable of group meetings.

It is definitely the best I have seen, and I have seen a lot.

If we want to set up there I can arrange a private locked room without problem.  I know everyone on the server so if we ever need anything, well, we have 800 resources.


L. Spiro
 
All this talking about doing stuff made me actually break out my FF7 data again ;)

I don't know whether it would be of any use to any new project but for what it's worth, I recompiled the Remake engine and fixed a few display bugs in it, so get it while it's hot.

In terms of what's done ... the menu system is essentially complete of course (and that includes equipment, materia, and items affecting your command list, stats, resistances and so on). The field system ... somewhat. The backend is all there - scrollable layered 2d backgrounds, 3d characters, collisions between models, and so on.

The bad news, such as it is, is naturally that it doesn't read scripts or walkmaps etc. out of the field files because they weren't decoded 3 years ago ;)  That said, it reads the field backgrounds and the models from the original LGP's, so it's not entirely useless...just that a fair amount of information is written in the Remake engines own data formats (especially scripts, since for a remake, you wouldn't necessarily use the original ones anyway, so I never really looked at decoding them...)

If anyone wants to test it, download, unrar it, run the config to at a minimum set your FF7 data path, and then run it. The best thing to test would be to load game 3 from save slot 1 (Wall Market).

I do tend to use IRC myself more than other networks; I'm usually on irc.uwcs.co.uk / #anime, but I could join another network to talk about stuff, perhaps.
 
ficedula, I tried to make my engine load the overworld 2-D map files and so I went to your site, got your explaination of the file format, and started a quicky mIRC project to run through and see if I could load any of the 2-D field file images.

Well, no, I couldn’t, and I could’t follow your code either.
And I also know that your current version of LGP Tools is much further along than that document states.

I was wondering if you had any more recent or more full explanations of how to load the files.


L. Spiro

P. S.:  I am testing the remake now but it will not work for me.
I open remake_config.exe to be greeted by the following message:
Access violation at address 004768F4 in module 'remake_config.exe'. Read of address 00000000.
After this, all of the text boxes are empty, devoid of all options, except a few, and I am not able to select any languages, so it will not allow me to save my changes.
 
Yeah, the document isn't fully up to date.

However, for the walkmap and camera, you want Kero's explanation - I haven't really even tried his data yet.

Background wise, the description I posted is very nearly complete to what I know; all it's missing is that basically Sprite.Sfx != 0 indicates a transparent tile. I personally treat transparency as a third layer over the two normal background layers. There might be other meanings to Sfx, but so far, all I know is that treating the tile as transparent works pretty well (ie. looks good) ;)
 
Now that I killed Mozilla for firefox, all I can say is WOW it's SO much faster and better.

Now a lot of discussion here. Perhaps IRC is best for everyone? I need to get wine working on my box because my IRC client uses it.

Halkun - I'm pretty sure if they used C++ they didn't use many objects.  Why do I say this? Or how could I say this? None of the bios level functions lend to C++ encapsulation. Sure the compilor might be C++ compatible but you can still use the entire C library of functions from within C++.  More importantly because it's a limitied platform, the problem with C++ is it's not memory conservation freindly ESPECIALY when you hit inhieratance and overiding functions of prior defined objects.

As for using OOP for dog barking well I would do something like this
Code: [Select]
Code:
class doggie{ private:  int MyBarkCount; public:  doggie() { MyBarkCount = 0; }  void Bark(void) { MyBarkCount++;}// bark once  void Bark(int Count) { MyBarkCount+=Count; }};// usage// Dog.Bark();// Dog.Bark(5);

I've never heard of C++ as strongly typed. I've heard it as 'Strictly Typed' :)

As for files you can use <stdio.h> just fine. It depends on how fancy/portable you want to be.  Using fstream has low overhead and works quite well for me. As matter of fact TV uses fstream.  It might be advantageous to use streams instead of normal files.  However that can be done later in a refinement phase.  Since we are probably going to be going toward a Kernel based system the Kernal code hands file access and streaming for everything else. So this makes it a lot more generic.

L. Spiro - I started my data gathering for FF7 about 2 years ago. I guess I'm just slow. ;)
Your engine is based for the PC version of FF7 right?  Windows based software I assume as well.  There are a few things one will need to do to get toward a more generic system with such code. However I don't think it's too big of a deal. Having had to read other peoples source code and knowing a bit about what's going on makes a big difference. All of my work has been done on the PSX version although I do have the PC version of FF7 it's just not as stable or fun to play as the PSX version too me :D

As far as 'global meeting' thing. I can pop on IRC or I can use MSN mess I prefer Yahoo's IM myself.  Let me know what you people want to attempt.  I'm flexible if I know in advance.  I'm quite time zone concious. Halkun I believe is in my TZ (GM-6) Qhimm L. Spiro GM+9 right? Most others are GM or GM+1?

Cyb
 
P. S.:  I am testing the remake now but it will not work for me.
I open remake_config.exe to be greeted by the following message:
Access violation at address 004768F4 in module 'remake_config.exe'. Read of address 00000000.
After this, all of the text boxes are empty, devoid of all options, except a few, and I am not able to select any languages, so it will not allow me to save my changes.

I get the same thing but first I get another error saying:
Runtime Error 217 at 00013E20

Shame, it would've been pretty cool seeing a release of the remake. I didn't get that error at first either, just when I moved it into my Final Fantasy directory to see if fixed the original error...... just reinstalled the remake and I don't get that error........ wierd, still get:

"Access violation at address 004768F4 in module 'remake_config.exe'. Read of address 00000000."

though
 
Hmm. Interesting. Seems that error can be caused because the EXE's are compressed ... although it's a bit bizarre, I always compress my EXE's and it doesn't usually happen.

If you download UPX from http://upx.sourceforge.net/ then you can decompress the config tool with it ... or just edit the INI manually. Now I'll just have to work out why the config program doesn't like being compressed when nothing else cares... ;)
 
Well if we're going IRC there's already the #qhimm.com channel on irc.esper.net... I don't know what further things we could do with improved access to the server itself, it seems that all we want to do is discuss and log anyway? That having been said, I remember something from last time we were having this discussion that halkun were the one with the most trouble connecting to the various places, so I guess his voice will carry the most weight this time on the decision.

ficedula: That compression tool seems kinda cool, does it handle DLLs and exported functions transparently too?
 
Qhimm: Yep, it handles everything transparently, more or less. Of course, obviously something screwed up this time, but it's the first time I've seen that happen ... all the downloads on my site are compressed with UPX.

(We use it at work, too - the main application is 14MB(!) compiled, and ZIP/RAR can only get it down to 5MB - UPX compresses it to 3.5MB with the added bonus that of course, it can just be run without unzipping first...)

I'll drop into the espernet channel today and see who's around. You've all got my contact details otherwise...
 
Well, I'm lost in all those engines here...  :o

However, if you're going to build up a programmer team - you can count on me, too. I've got my exams in 3 weeks, but after that I'll have a lot of free time - so much time for programming. I'll continue reading the following posts (but I think I won't post much...) and I'll try to keep myself up-to-date.

As for halkun's question:
Sourceforge: If we're going to make an open-source egine, then this will be the best solution, I think.

CVS: Yes.

Almighty_gir (respresenting for that "Creating own models" thingy):
We first should build a "naked" engine, which will need ALL of FF's game files to run, and will use just the original content.
But, I think it would be a nice idea, to let (when the engine reaches its first *final release*) the user decide (during installation or at the config menu) to use the original FF models or self-made (!) high-quality models.


As for the engine name: We should maybe think of a codename for the engine before thinking about its final name... maybe FinalFear or Jesse or whatever...


So, as I said in that other topic before:
Someone (maybe halkun) should make a little "diagram" of the engine framework, and which objects need to be created and what they have to do.
Once this is done, and we have a theoretical framework model for the engine, we can create a programmer team, and look who can program what, so (s)he can use his/her special skills.

Good luck. I hope this will be a successful project...

 - Alhexx

 - edit -
And I've got a question about the topic title?
Who will come???
 
Whoa there, I'm still not convinced about the complete open source approach here... We need to be pretty sure what we're doing isn't legally offensive (new term I just invented meaning "will catch Square's evil eye") before we expose (i.e. globally distribute) source code largely based on reverse-engineering a copyrighted product. Are we that sure utilizing the original game data will prevent us from going the same way as Chrono Trigger: Resurrection? CT:R wasn't even built from the game data itself, and got shut down real quick once they got publicity. Are we planning to call this a mere "technical demonstration" or something, to keep us from ending up in the infringement pit?
 
Whoa there, I'm still not convinced about the complete open source approach here... We need to be pretty sure what we're doing isn't legally offensive (new term I just invented meaning "will catch Square's evil eye") before we expose (i.e. globally distribute) source code largely based on reverse-engineering a copyrighted product. Are we that sure utilizing the original game data will prevent us from going the same way as Chrono Trigger: Resurrection? CT:R wasn't even built from the game data itself, and got shut down real quick once they got publicity. Are we planning to call this a mere "technical demonstration" or something, to keep us from ending up in the infringement pit?
As far as I know we are only runing SE's original content on it.  You'll have to specify where an infringment comes in?  Heck instead of FFEngine we could name it SF-Engine.  Some Fantasy Engine, just never mention Sqenixes trade marked names.  As for what to call it, engine that runs original content for some popular games. Shrug. That's what it's for.

Open source is a bit dangerous, creating a team is not.  I would consider keeping it closed and see if there are free CVS services that aren't open source only.

I don't mind open source, it's just that first there has to be something there that is carefully cleaned up to be open source.  Prior to alpha this means mostly messy code :)

Cyb
 
By the way, if you're going to set up your own repository it may be worth evaluating Subversion. I used to use CVS at work and privately, but I changed to Subversion for private development.
 
My advice: Keep it quiet. CT:R was shut down extremely quickly once Square found out about it, and FF7 is - comparitively speaking - a much newer game than CT was, plus with Advent Children and the other spinoffs coming out, Square will likely be ever more anal about anyone using their intellectual property in whatever form.

So... keep it quiet and just beaver away at it in private :) And I'd be with Almighty_gir on this one, and offer to assist in a modelling capacity if/ when the time comes.
 
I like this discussion alot, and so I'll add my two cents in.

I really like the term "Naked Engine" as that discribes to a "t" what I'm looking for. Other concepts came up that I want to elaborate on.

One of the more misuderdstood aspects of Open Source isthat people use it to *respect* other ideas, not to steal them. (Much to the shagrin of what Microsoft and SCO might say otherwise). The fact of the matter is we do not wish to steal anything. However we come to the barrior that is "Intellectual Property" (IP)

Now I'm going to lay my personal opinions down on the whole subject, there is a point, but it's best I lay my cards down first.

I'm under the opinion that the concept of "owning thought" is Intellecually void. I personally think the words "Intellectual Property" was invented in order bend culture to give property rights to ideas. Property, I believe, are things you can possess. Like chairs, forks, land, a car, and the like. You can even possess thought.

The problem with possessing thought it you have to keep it in your brain. Once it comes out your mouth, (when it is expressed, if you will), you have pretty much gave it to someone else. Then comes the delmma. How can you say something was stolen when you were not devoid of that taken from you.

Trademarks, patents, and copyrights serve as a balance. They are also incredibly selfish. Don't worry though, it's a good thing in this case. Trademarks, (I named this), Copyrights, (I wrote this), and Patents(I built this.), ensure that the one who orignally came up with the idea doen't have to keep them in thier head. It's a layer of protection to make sure that the creator is the one properly reconized.

To go furthur I have to introduce a legal term, called a "Tort"

A "Tort" is a "Twisting" of the norm. (The word "Contort" comes from "tort") For example, I came up with an idea and expressed it. That is the norm. However, say I came up with an idea and someone overheard and expressed the same idea and said it was thiers. That's a "tort", or a twisting of "fairness" where I am harmed and the other has artifically gained.

Copyrights, patents, and trademarks protect against torts. There is a real reason for thier existance.

However, IP has been bent into something it's not, which is to say property. I understand what's yours is yours. Protected by copyright or what have you. But when I have recieved, for example, a game, and I decide to tinker with it, your idea is in my posession. I know it's your idea and I repect that you want to be the one who all fingers point to. However, I'm still going to rip the damn thing apart to see how it works.

Why? Not out of mallace, but out of awe. I get to see, just for a bit, what it must of been like to arcitecture something like that. You want us to see the cathedral, and I want to look into the walls and see the mice. That's just how I am. It's still yours, I know that. No tort has taken place. Especally when I do it all by myself in my little darkend cave.

The problem starts when expression starts to grow and it's not from the "original mind". This is where torts start to appear.

The 3D chono trigger was doomed at it outset. Why? Becuase, in the end, a question would be raised on who wrote it, who named it, and who expressed it. The 3D chono trigger fails many of these tests, reguardless of if they wanted money for their work or not.

Part 2, the Naked Engine
Square is not an engine maker, they are a game company.
On the same side of the coin, Honda isn't an engine maker, thay make cars.

Of course, both of these fail the logic test. They both *OF COURSE* make engines, and have to in order to make thier product. Square, however, is not reconized for thier engines, at least not on the same level as ID software is.

Engine building is an odd sort. It's mechanical with lots of pistons and cogs. They are rather unattractive, and it's not untill you place square's artwork into the mix does it become "Something square did"

Open source programmers tend to seperate "Art" from "Function" and tend to focus in "Function". It's intresting that when "Art" becomes involved, that's when you tend to see torts. It wasn't so much the engine in the 3D Chono Trigger that Square had a problem with....

It was expression of the art.

There is an art to engine building too. However, this art isn't visual, and if we use our own cogs and our own pistions would be *our* engine. A Naked engine, that when left in the wild, all by itself, would be useless.

Code: [Select]
Code:
C:\jessie.exeJESSIE.EXE: No Media Found

You *NEED* Square's art, or make your own, but we arn't making a final fantasy were you get to revive Aries. That's why I oppose the idea of "hey, I can make new models for you.."

Models for what? For square's game? That's no better than making new content Ala the failed Chono Trigger experiment.

Now if you were to make your own end-to-end game set in space for example. I'm Sure square woudn't mind at all, reguardless of the engine.

You can't copyright *function*. You can patent it, and lucky for you guys in the EU, there is an explicit banning of software patents. Also, as far as I know, Square has no patents on thier engine in the U.S. Our expression of the engine is copyrighted, but fundementally differnt from Square's expression of it. The fuction is the same, but you can't copyright that.

Now I think I rambeled on enough. Keep in mind this is in no way legal advice, just on-the-table talk of how I see the world. Is this something I'm willing to go to court for (again?) well, I'll burn that bridge when I get to it.

What was I talking about again?

-Halkun

P.S. JESSIE == Jolly Enlightened Square Soft Interactive Engine. ^_^
 
I think you had a few twinkies there Halkun :)

Anyhow onto the subject, IP was developed by lawyers for companies that wish to expand the enforcement of there rights.  These days the internet has made it easier for them to enforace there rights.  However it's a two edged sword.  the DMCA (which has many explitive laced varitatons) is not only anoying, it was invented by lawyers to give them something to do.  The idea of IP quite LITERRALLY comes from trial lawyers and has diddly to do with what they are actually trying to enforce. It's an intimidation word. IP came into being circa 1999 in a patent dispute between two well known companies.  Since it's coinage people like SCO have had expansivist ideas of 'protecting' things.
Software patents came about due to the US against called the NSA.  RSA encryption gave them a problem so instead of fixing the problem the turned to the patent office to save there diffcient thinking.  Now we all suffer from it world wide.  Sad isn't it?

JESSIE sounds Ok. SFE Some Fantasy Engine sounds OK too.  I suppose it could be also said a few other ways :)

Cyb
 
There is an art to engine building too. However, this art isn't visual, and if we use our own cogs and our own pistions would be *our* engine. A Naked engine, that when left in the wild, all by itself, would be useless.
Our enginge... which we made very much by cracking open the original one and copying its function (while it's not a direct copy of the code, which would frag us under copyright any day, it will at places be a direct copy of the low-level functionality like battle mechanics or field script). We're not reproducing a copyrighted book here, but we're writing our own book with almost the exact same plot. I've seen people get sued for less, although I might wager a cent or two that "art" you mentioned might again have something to do with it... not for the legality, but for the readiness to sue.

You can't copyright *function*. You can patent it, and lucky for you guys in the EU, there is an explicit banning of software patents. Also, as far as I know, Square has no patents on thier engine in the U.S. Our expression of the engine is copyrighted, but fundementally differnt from Square's expression of it. The fuction is the same, but you can't copyright that.
Which is all well and good, except that we also have 30,000 granted software patents here. The only reason the software companies don't go on infringement spree is that the patents probably wouldn't hold up in a court (since the patent office is really breaking current regulations by granting patents on software processes). This could change very soon though, because all those big companies are lobbying politicians to revise the law, essentially explicitly allowing software patents and thus legitimizing all those patents already granted. There's already been some dirty doings in the politics of EU to try and sneak or push the new law proposal into effect, thus far fortunately they've been prevented though. Yeesh.

P.S. JESSIE == Jolly Enlightened Square Soft Interactive Engine. ^_^
Heh, stretching it a bit are we? ;) I actually started on a similar project quite long ago (basically FF7 + modern, non-crashing engine). I sort of abandoned it because I figured I'd never finish it on my own and wasn't sure what the legal status would be... *checks* and it was called "Tiphareth".

Ooh, ooh, let's get into a discussion on what the name should be, be unable to agree and have the entire project stall because of it! ^_^

EDIT: Just remembered another thing I wanted to toss into the discussion... what about the copy protection? By making a secondary engine to run the game, we have essentially circumvented the original copy protection scheme (even if we implement one in the new engine as well). Under the DMCA and other funny laws in various countries, this is quite a vulnerable spot for a project like this...
 
I’ve found that replacing critical words with “Something” works wonders.
Hence my project is “Something Something VII Online”.


L. Spiro
 
Status
Not open for further replies.
Back
Top