Fallout 1 mod FO1 to FO2 conversion, for real

Status
Not open for further replies.
Sduibek said:
However, after July 1st, I'll take a look at all the things needing to be done for Fo1-in-Fo2engine and see what can be helped with.

There's a few text files that just need lines copied over or changed, I think maybe we'll start with those, but I'll let you both know either way after July 1st.

I'll be here :D I agree it makes sense to port FIXT rather than the original game.
 
I said I would help out quite some time back but then thought what I could actually do. Well I've got a little bit of free time these coming days.

I wouldn't mind helping out with the map a bit

http://falloutmods.wikia.com/wiki/FO2_Worldmap_Editor

I found this on the falloutmods wikia and looks like a good tool for quickly doing the map. I'm no expert on this but I understand fallout 2 works fairly well. If someone could send me the files I'd need to get with this I'd give it a crack.

I'm guessing I'd just use the fallout 1 version for encounters as a reference and work from that right?

I live in Russia (though odly enough I'm English) so my reply times might be slow.
 
I'm guessing I'd just use the fallout 1 version for encounters as a reference and work from that right?
Yes, but if you thought you could just transfer stuff from worldmap.txt in Fallout 1 to Fallout 2, you will be disappointed.
Fallout 1 has no worldmap.txt.
Basically, the F1 engine decides when you get an encounter and based on your current location sets you up with a map.
Not sure of the exact formula for that.
Anyway, the Map script of that map will then, again based on your current location, set up the encounter.

So you will have to be able to first understand the Fallout 1 map scripts, and then be able to translate that to the format of Fallout 2s worldmap.txt.

I started on the worldmap but got fed up. The tile info is done, the encounter tables are far from done, more like place holders, and the encounters are just listed and needs to be completely filled in.http://hem.bredband.net/darek1/worldmap.txt


If you wonder what the scripts may look like, here's an example:

North_table have random 6 encounters + a bounty hunters encounter. First the scripts decides which encounter you get here:
Code:
			while(Encounter_Num == 0) do begin
				Encounter_Num := random(1, 6) + random(1, 6) + random(1, 6);
				if (get_critter_stat(dude_obj, 6) > 8) then begin
					Encounter_Num := Encounter_Num + 2;
				end
				else begin
					if (get_critter_stat(dude_obj, 6) > 6) then begin
						Encounter_Num := Encounter_Num + 1;
					end
					else begin
						if (get_critter_stat(dude_obj, 6) < 3) then begin
							Encounter_Num := Encounter_Num - 1;
						end
					end
				end
				if ((global_var(123) != 3) and (global_var(158) > 2) and random(0, 1)) then begin
					Encounter_Num := 7;
				end
				else begin
					if (Encounter_Num <= 3) then begin
						Encounter_Num := 1;
					end
					else begin
						if (Encounter_Num <= 5) then begin
							Encounter_Num := 2;
						end
						else begin
							if (Encounter_Num <= 8) then begin
								Encounter_Num := 3;
							end
							else begin
								if (Encounter_Num <= 12) then begin
									Encounter_Num := 4;
								end
								else begin
									if (Encounter_Num <= 15) then begin
										Encounter_Num := 5;
									end
									else begin
										Encounter_Num := 6;
									end
								end
							end
						end
					end
				end

That was not the full code but should be good enough as an example. Later the script checks "Encounter_Num" and if it's 1 you get the North1 encounter.

Code:
procedure North1
begin
	display_msg(message_str(112, 104));
	Tot_Critter_A := random(3, 6);
	Tot_Critter_B := random(4, 8);
	Outer_ring := (get_critter_stat(dude_obj, 1) / 2) + 6;
	Inner_ring := (get_critter_stat(dude_obj, 1) / 2) + 4;
	group_angle := random(0, 5);
	Critter_type := 16777227;
	Critter_script := 12;
	while(Tot_Critter_A) do begin
		Critter_direction := group_angle + (random(0, 2) - 1);
		while(Critter_direction < 0) do begin
			Critter_direction := Critter_direction + 6;
		end
		if (Critter_direction > 5) then begin
			Critter_direction := Critter_direction % 6;
		end
		call Place_critter;
		if (group_angle == 0) then begin
			Critter_direction := 3;
		end
		else begin
			if (group_angle == 1) then begin
				Critter_direction := 4;
			end
			else begin
				if (group_angle == 2) then begin
					Critter_direction := 5;
				end
				else begin
					if (group_angle == 3) then begin
						Critter_direction := 0;
					end
					else begin
						if (group_angle == 4) then begin
							Critter_direction := 1;
						end
						else begin
							if (group_angle == 5) then begin
								Critter_direction := 2;
							end
						end
					end
				end
			end
		end
		if (random(0, 2) == 0) then begin
			Critter_direction := Critter_direction + (random(0, 2) - 1);
			while(Critter_direction < 0) do begin
				Critter_direction := Critter_direction + 6;
			end
			if (Critter_direction > 5) then begin
				Critter_direction := Critter_direction % 6;
			end
		end
		anim(Critter, 1000, Critter_direction);
		Tot_Critter_A := Tot_Critter_A - 1;
	end
	victim := Critter;
	Critter_script := 222;
	if (group_angle == 0) then begin
		group_angle := 3;
	end
	else begin
		if (group_angle == 1) then begin
			group_angle := 4;
		end
		else begin
			if (group_angle == 2) then begin
				group_angle := 5;
			end
			else begin
				if (group_angle == 3) then begin
					group_angle := 0;
				end
				else begin
					if (group_angle == 4) then begin
						group_angle := 1;
					end
					else begin
						if (group_angle == 5) then begin
							group_angle := 2;
						end
					end
				end
			end
		end
	end
	while(Tot_Critter_B) do begin
		if (random(0, 3) == 3) then begin
			Critter_type := 16777226;
		end
		else begin
			Critter_type := 16777378;
		end
		Critter_direction := group_angle + (random(0, 2) - 1);
		while(Critter_direction < 0) do begin
			Critter_direction := Critter_direction + 6;
		end
		if (Critter_direction > 5) then begin
			Critter_direction := Critter_direction % 6;
		end
		call Place_critter;
		if (group_angle == 0) then begin
			Critter_direction := 3;
		end
		else begin
			if (group_angle == 1) then begin
				Critter_direction := 4;
			end
			else begin
				if (group_angle == 2) then begin
					Critter_direction := 5;
				end
				else begin
					if (group_angle == 3) then begin
						Critter_direction := 0;
					end
					else begin
						if (group_angle == 4) then begin
							Critter_direction := 1;
						end
						else begin
							if (group_angle == 5) then begin
								Critter_direction := 2;
							end
						end
					end
				end
			end
		end
		if (random(0, 2) == 0) then begin
			Critter_direction := Critter_direction + (random(0, 2) - 1);
			while(Critter_direction < 0) do begin
				Critter_direction := Critter_direction + 6;
			end
			if (Critter_direction > 5) then begin
				Critter_direction := Critter_direction % 6;
			end
		end
		anim(Critter, 1000, Critter_direction);
		Tot_Critter_B := Tot_Critter_B - 1;
	end
	attack_setup(dude_obj, victim);
	attack_setup(dude_obj, Critter);
	attack_setup(Critter, victim);
	set_global_var(288, 1);
	call stranger;
end

That code sets up a fight between radscorpions and mole rats.

Also, you may want to check out this thread, where we talk about the worldmap and Cubik2k links to an improved version of his worldmap editor.
 
coldroll said:
Anything still happening with this?
Not from me. I've been putting all my Fallout time into FIXT. Which still has tons of stuff to fix and work to do. But, now that it has a major customizable release, I guess I should probably focus on this now instead.
 
Hear, hear! Is the only fundamental thing (as in, not stuff like post-it notes and squiggly line traveling) left the random encounters? Or is there still some other stuff?
 
Sduibek said:
coldroll said:
Anything still happening with this?
Not from me. I've been putting all my Fallout time into FIXT. Which still has tons of stuff to fix and work to do. But, now that it has a major customizable release, I guess I should probably focus on this now instead.

About this, now I feel much more confident on my coding skills, so if there's anything a C programmer (maybe C++, but I only read about and didn't actually code) can help with, count me in.
 
Re: Darek

SorgFall said:
Darek, are you a modder yourself?
I guess it depends on how you define a modder. I haven't put anything together by myself if that's what you mean.
 
Oppen, maybe. I'll let you know :)

I am hoping that the engine conversion turns FIXT into a true group project, because having team members for scripting or mapping or whatever would be awesome :)


Jim-- why are you looking forward to it so much, I thought you were a Fallout 2 guy ;) And I don't know how much work is left, I'll try to calculate an estimate.

If I decide to be "lazy" and just make Water Chip Timer a hack job and forget about Ask Me About for the time being, that means really all that needs to be done is elevators and random encounters and AI.
 
Sduibek said:
Jim-- why are you looking forward to it so much, I thought you were a Fallout 2 guy ;) And I don't know how much work is left, I'll try to calculate an estimate.

If I decide to be "lazy" and just make Water Chip Timer a hack job and forget about Ask Me About for the time being, that means really all that needs to be done is elevators and random encounters and AI.

Heh, close call though. Both of them are my favorite games of all time anyway by a long shot. One of the main advantages of FO2, especially now with sfall, is with mechanics, so damn right I'm excited.

The elevator problem I'd never heard about, what's wrong with using sfall's Elevators.ini option?

What's the AI issue, FO1 doesn't have an AI.txt? How does it handle AI then?
 
Wait, elevators are fine, for some reason I keep forgetting that Darek sent me the files for it.

AI doesn't work at all. Needs fields filed in that Fallout didn't have.

One of the reasons I've been putting off this project is because it feels so daunting to me... I'll have to learn a new scripting language (Sfall) and int/ssl scripting setup is different in FO2 so I kind of have to start over and learn everything again which sucks.
 
Chief, if you don't feel like it you don't have to you know. I'd be more than happy to start doing some stuff once I've finished some things on my mod these coming days. I'd probably half ass most of the cosmetic/interface stuff (lets face it, I'd half-ass everything), so if some other scripters still active could help out that'd be awesome. Darek? Glovz? Nirran probably isn't active anymore though I do see him lurking constantly... Who else?
 
Nahh I plan on doing it, I'm just being whiny :P

I'll probably end up doing AI.txt and worldmap.txt myself which is fine, I'm good at the excessive-amount-of-copy-paste type projects.

What I could really use help with is anything involving Sfall:
Since there are members of this forum very skilled and familiar with coding Sfall, it's kind of stupid for me to struggle learning it from scratch when you guys can do it with relative ease:

- Making sure all Perks, Traits match identically with their Fallout 1 conterparts, removing/modifying/adding as applicable.
- Making sure all internal calculations are identical to Fallout 1: Damage, Derived Statistics, Skills, etc. We may need to tap people like Per for this information, I'm not sure.
- Implementing simple code needed such as limiting Level to 21 and Skill% to 200.
- Making sure it's ready to implement player-made code such as YAAM, all of Nirran's plugins, Jim's changes, etc. FIXT is supposed to be the ultimate Fallout1 mod so it needs to be able to incorporate as much fan-made Fallout 2 Sfall code as possible -- that way I can include all the fixes and other cool stuff you guys have made using Sfall.
- Any other changes "under the hood" to make the Fallout 2 experience mathematically identical to the Fallout 1 experience.

Also any of these you guys are able to do, I would be grateful:

http://www.nma-fallout.com/forum/viewtopic.php?p=975556#975556
 
Sduibek said:
Nahh I plan on doing it, I'm just being whiny :P

I'll probably end up doing AI.txt and worldmap.txt myself which is fine, I'm good at the excessive-amount-of-copy-paste type projects.

What I could really use help with is anything involving Sfall:
Since there are members of this forum very skilled and familiar with coding Sfall, it's kind of stupid for me to struggle learning it from scratch when you guys can do it with relative ease:

- Making sure all Perks, Traits match identically with their Fallout 1 conterparts, removing/modifying/adding as applicable.
- Making sure all internal calculations are identical to Fallout 1: Damage, Derived Statistics, Skills, etc. We may need to tap people like Per for this information, I'm not sure.
- Implementing simple code needed such as limiting Level to 21 and Skill% to 200.
- Making sure it's ready to implement player-made code such as YAAM, all of Nirran's plugins, Jim's changes, etc. FIXT is supposed to be the ultimate Fallout1 mod so it needs to be able to incorporate as much fan-made Fallout 2 Sfall code as possible -- that way I can include all the fixes and other cool stuff you guys have made using Sfall.
- Any other changes "under the hood" to make the Fallout 2 experience mathematically identical to the Fallout 1 experience.

Also any of these you guys are able to do, I would be grateful:

http://www.nma-fallout.com/forum/viewtopic.php?p=975556#975556
Fallout 1's damage calculation is severely broken from what I remember, why would you want to force the Fallout 2 engine to be broken?
 
What Glovz said; the entire attraction of the conversion is to take advantage of FO2's superior mechanics and apply them to FO1... do you seriously want to do things like purposefully break ammo so it becomes more like FO1?
 
JimTheDinosaur said:
What Glovz said; the entire attraction of the conversion is to take advantage of FO2's superior mechanics and apply them to FO1... do you seriously want to do things like purposefully break ammo so it becomes more like FO1?
Oops, forgot about that. No, I don't want to do that.

What I do want to do, however, is have a "clean" version -- I don't want the engine conversion to be only for FIXT, I want the finished product to have a "clean" version for people who just want to play around with Fallout 1 stuff. Because I know there's going to be many modders who'll want that version, the one without all my mod's stuff included.

So no don't change broken things, but anything else does need to be changed, I don't want it to "feel" like Fallout 2. This includes which Perks are available, etc. Players with FIXT will optionally be able to use new Perks and custom Perks of course, but there does need to be a baseline that is purely "Faithful reproduction of improved Fallout 1 experience using Fallout 2 engine".

Basically there'll be two "versions" of this project:

1) Fallout 1 using the Fallout 2 engine, only changing what is clearly broken. Think of it as an upgrade for purists. Once finished, this shouldn't need to ever change. This is mostly just a service to the modding community as a resource.
2) Fallout FIXT using the Fallout 2 engine. This will continually change as it will become the new rendition of Fallout FIXT and old engine no longer used.

Let me know if that doesn't make sense or you think it should be done differently.
 
I get what you're saying, but I find it hard to imagine precisely who these purists are you want to provide this service to. Purists who want to play FO1 with a mechanically FO1 feel can play FO1. I'd understand your objection to that if FO2 had introduced mechanical changes which were regarded by some people (or anyone really) as downgrades, but (though I might be wrong in this) I was always under the impression that FO2 was fairly unique as a sequel in that none of the mechanical changes were considered controversial in the slightest (which is of course mainly a testament to how close it stayed to the original in that respect). And then I'm not just talking about the overtly broken elements like the damage formula, but also things like progressive skill costs, green outlines for friendlies on start up, etc.

I honestly think that you need to ask yourself whether the people interested in this thing are thinking "wouldn't it be awesome to experience FO1's superior story and setting with FO2's mechanics" or just "wouldn't it be awesome to be able to play FO1 with mouse scrolling through the inventory". I'm sure there's some who'd be more excited about the latter, but given the fact that it'll take an enormously bigger amount of work to satisfy those people than the people who want the former, I think it's fair to make that your priority.
 
Hmm good point.

Although I insist that increase skill costs is made optional. The skill checks in Fallout are stupid so having increased costs doesn't make sense.

So what changes in Sfall need to be made, then? Most of what I said in the previous posts still applies since I'm pretty sure fallout 2 added a bunch of new perks and changed derived stats.

Like I said I don't know sfall yet so I'm going to need you guys to direct me here.
 
Status
Not open for further replies.
Back
Top