Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Lab Assistant
Original Poster
#1 Old 28th Mar 2005 at 9:59 PM
Default Tutorial: How to make a new buyable videogame
Since I made the “Halo 2” videogame, I’ve received several messages asking how I did it. So, I decided to write this tutorial.

This tutorial will explain how to make a new buyable videogame that won’t replace any of the already existing games.

You need SimPE (current version is 0.33). I assume that you have an average familiarity with SimPE and the usual cloning procedure.

Part 1: Creating the new videogame

1. Clone one of the original videogames: “SSX3”, “SimCity 4”, or “The Sims Bustin’ Out”. You can find them in OW under the tab Grouped Objects, Others.

http://forums.modthesims2.com/attac...tid=46842&stc=1

Note: Don’t clone the game “The Urbz”, since its package is really a bundle: it contains the display rack, the configuration settings file and the movies.

2. Give new unique GUIDs to the two objects in the new package: the videogame and the videogame rack. Take note of these new GUIDs.

http://forums.modthesims2.com/attac...tid=46843&stc=1

3. Change the reference to the old GUIDs in the behaviour functions.

You have to change the operands in the following beahaviour and instruction:

- behaviour function "CT - Get", instance 0x00001004:

line 0, "Create New Object Instance"

Write in the first 4 positions of the operands the new videogame GUID with the bytes in reverse order. For instance, for the GUID 0xEC142D00 you write 002D14EC.

http://forums.modthesims2.com/attac...tid=46844&stc=1

4. Select Text Lists, Material Names. There are 8 material names corresponding to 8 movies:

0 – vgs_...: corresponds to the first movie that will be played when the video is started.
1 – vgs_..._attract: corresponds to the short movie with the game logo.
2 – vgs_..._intro: corresponds to the game's intro.
3 – vgs_..._1playerbad: corresponds to the movie that will be played when there's only one player with bad playing skills.
4 – vgs_..._1playergood: corresponds to the movie played when there's only one player with good playing skills.
5 – vgs_..._2player1wins: corresponds to the movie played when there are two players and player 1 wins.
6 – vgs_..._2player2wins: corresponds to the movie played when there are two players and player 1 loses.
7 – vgs_esrb_e: corresponds to the movie with the ESRB rating.

What you really see in place of the … above will depend on the original game cloned.

Now you have to change the names of the materials:

i) If you want the game to play a different movie when it starts give a new name to material 0. Follow the naming convention used and replace the … with the name of your choice. For instance, for "Halo 2" I changed this material name to vgs_bungie_games, corresponding to the movie with the Bungie logo.

ii) For materials 1-6 you have to replace whatever name appears in the place of the … above (ssx, sc4 or bus) with the name of your new videogame. In my case, that was halo2.

iii) As for material 7, you can also replace it if you want your game to have a different ESRB rating. You can use any of the ratings originally provided by Maxis: vgs_esrb_e, vgs_esrb_rp, vgs_esrb_t.

Take note of the new names you gave to the materials. You will need them in Part 4.

Also, don’t forget to “change in all” before committing!

http://forums.modthesims2.com/attac...tid=46845&stc=1

5. Re-texture the new videogame appropriately and change the catalog description.

You’re done with the videogame! Now, you have to create the display racks to sell the new videogame.
Screenshots
Advertisement
Lab Assistant
Original Poster
#2 Old 28th Mar 2005 at 11:13 PM
Part 2: Creating the display racks

I. Creating the freestanding display

1. Clone the Freestanding Game Display. You can find it in OW under the tab Grouped Objects, General.

http://forums.modthesims2.com/attac...tid=46870&stc=1

2. Give new unique GUIDs to the three objects in the new package: the main display and its two parts. Take note of the new GUID for part B.

http://forums.modthesims2.com/attac...tid=46871&stc=1

3. Change the reference to the old GUIDs in the behaviour functions.

You have to change the operands in the following beahaviour and instruction:

- behaviour function "CT – Set Selection", instance 0x00001006:

line 10, "Test Object Type"

Write in the first 4 positions of the operands the new GUID for part B of the display in reverse order.

http://forums.modthesims2.com/attac...tid=46874&stc=1

4. Make the new videogame available for purchase.

You have to edit some of the behavs so that your Sims can buy the new videogame from the display.

i) Select behaviour function "CT – Set Selection", instance 0x00001006. Append the following instructions to the end of this bhav, replacing “GUID” with the new GUID you gave the videogame rack (not the videogame itself!) in Part 1, step 2 (with the bytes reversed, as usual):

http://forums.modthesims2.com/attac...tid=46875&stc=1

In the same bhav, go to line D, “Array Operation”, and change the True Target to point to the new instruction 11.

The effect of these modifications will be to add the new videogame to the dialog that appears when you choose “buy” in the display’s pie menu.

To make things easier, I’ve attached to this post the modified bhav. Replace the bhav in your package with this one. Then, replace in lines 12 and 16 the GUID with your own videogame rack GUID.

http://forums.modthesims2.com/attac...tid=46876&stc=1

http://forums.modthesims2.com/attac...tid=46877&stc=1

ii) Select behaviour function "Make game/place in hand", instance 0x0000100A.

In instruction 6, “Create New Object Instance”, replace the first 4 bytes in the Operands with the new GUID you gave the videogame (the videogame itself!) reversing, as usual, the order of the bytes.

http://forums.modthesims2.com/attac...tid=46878&stc=1

iii) You will now have to import and change the semi global bhavs “Interaction - Buy - VG/Mag” and “VGR - Create Game OOW” from the ShopingRackGlobals file. To make things easier for you I’ve attached to this post these two functions with the necessary modifications. You only have to add them to your package. Then, select the new bhav “Create Game OOW”, instance 0x0000100E, and do the following:

- in line 9, “Test Object Type”, write in the first 4 bytes in the Operands your videogame rack GUID.
- in line A, “Create New Object Instance”, write in the first 4 bytes in the Operands your videogame GUID.

http://forums.modthesims2.com/attac...tid=46879&stc=1

http://forums.modthesims2.com/attac...tid=46880&stc=1

iv) Finally, select Pie Menu Functions, Magazine Rack. Select the 2nd interaction, “0x01: Buy” and change the action to 0x100D.

http://forums.modthesims2.com/attac...tid=46881&stc=1

5. Re-texture the new display so it shows the new videogame case and change the catalog description.
Screenshots
Attached files:
File Type: zip  CD-CT-SetSelection.zip (446 Bytes, 330 downloads) - View custom content
File Type: zip  CD-semiglobalbhavs.zip (779 Bytes, 295 downloads) - View custom content
Lab Assistant
Original Poster
#3 Old 28th Mar 2005 at 11:38 PM
II. Creating the countertop display

The procedure for creating the countertop display is similar to the procedure just described.

1. Clone the Countertop Game Display. You can find it in OW under the tab Grouped Objects, General.

2. Give a new unique GUIDs to the single object in the new package.

3. Make the new videogame available for purchase.

i) Select behaviour function "CT – Set Selection", instance 0x00001009. Replace it with the bhav I’ve attached to this post. Then, replace in lines 11 and 15 the first 4 bytes of the Operands with your own videogame rack GUID (with the bytes reversed).

ii) Select behaviour function " Make game", instance 0x00001008. In instruction 6, “Create New Object Instance”, replace the first 4 bytes in the Operands with the new GUID you gave the videogame, reversing, as usual, the order of the bytes.

iii) Add to the package the 2 semi global bhavs attached to this post. Then, select the new bhav “Create Game OOW” and do the following:

- in line 9, “Test Object Type”, write in the first 4 bytes in the Operands your videogame rack GUID.
- in line A, “Create New Object Instance”, write in the first 4 bytes in the Operands your videogame GUID.

iv) Finally, select Pie Menu Functions, videogame rack counter. Select the 2nd interaction, “0x01: Buy”, and change the action to 0x100D.

4. Re-texture the new display so it shows the new videogame case and change the catalog description.
Attached files:
File Type: zip  counter-CT-SetSelection.zip (434 Bytes, 202 downloads) - View custom content
File Type: zip  counter-semiglobalbhavs.zip (779 Bytes, 176 downloads) - View custom content
Lab Assistant
Original Poster
#4 Old 28th Mar 2005 at 11:43 PM
Part 3: Producing the movies for the playing interactions

You have to produce 6 movies for the playing interactions:

- …_attract.avi - a short movie with the game logo;
- …_intro.avi - the game's intro;
- …_p1win.avi - the movie that will be played when there's only one player with good playing skills;
- …_p1lose.avi - the movie played when there's only one player with bad skills;
- …_p2win.avi - the movie played when there are two players and player 1 wins;
- …_p2lose.avi - the movie played when there are two players and player 1 loses.

The … above stands for your videogame name.

The movies should have a size no greater than 128x128 and a maximum frame rate of 15 fps. For the other settings, you can try different configurations and find the one that works best for you.

As for the movies duration, I worked on a trial and error basis. The first 2 movies are quite short (none of them should exceed 7 sec). The others I suppose can be as long as you want because the game will just play the movie for the duration of the interaction. If the movie is too short I think the game will play it again from the beginning (I'm not sure of this). For “Halo 2”, the duration range is 2-7 min.

Now, you must create a new folder in $INSTDIR\TSData\Res\Movies\Games, where $INSTDIR stands for TS2 installation directory (it will be “C:\Program Files\EA Games\The Sims 2” by default), and put there the 6 movies. Give the new folder the name of your videogame.

If you also make a movie to be played when the game starts (with the logo of the videogame’s editor or creator) put it in the folder $INSTDIR\TSData\Res\Movies\Games\esrb.
Lab Assistant
Original Poster
#5 Old 28th Mar 2005 at 11:48 PM Last edited by raquelcesar : 29th Mar 2005 at 12:23 AM.
Part 4: Writing the configuration settings files

You’re almost done! You just need to establish the correspondence between the material names used internally by the videogame and the movies in the computer. That is, you need to “tell” the game what movies to play and where to find them. For that, you use configuration settings files.

Go to the folder $INSTDIR\TSData\Res\Movies\Games\INI. Copy one of the configuration settings file already there and rename it with your videogame’s name (keeping the file extension .ini). Let’s say, for instance, that you choose to copy the file sc4.ini and your videogame’s name is halo2. Then you should rename the file copy halo2.ini. Then, open this file and replace all the occurrences of the original videogame’s name (sc4 in the example) with your videogame’s name (halo2 in my example). Also, change the extension of the files found on the different sections from .movie to .avi.

If you renamed the material name 0 in Part 1, step 4 (that is, if your videogame will play a custom movie when it starts), then you also have to change the configuration settings file esrb.ini, found in the same folder. Open it and do the following:

1. In the beginning of the file you find the Broadcasts section. It will look something like this:

[Broadcasts]
0=vgs_ea_games
1=vgs_esrb_e
2=vgs_esrb_rp
3=vgs_esrb_t

Now, at the end of this section add the internal name you used in the videogame package for material 0. In the case of “Halo 2”, I wrote:

[Broadcasts]
0=vgs_ea_games
1=vgs_esrb_e
2=vgs_esrb_rp
3=vgs_esrb_t
4=vgs_bungie_games

2. Now, go to the end of the file and append a new section named after the internal variable referred above. This new section is identical to the others you see in the file that are related to the internal names used by the original videogames. The only difference will be the section’s name and the value of the “File” tag. This value must be the name of the movie corresponding to material 0. For “Halo 2”, I wrote:

[vgs_bungie_games]
IsGames=1
Folder=Games/esrb
File=bungiegames.avi

and, in the end, the esrb.ini file looked like this:

[Broadcasts]
0=vgs_ea_games
1=vgs_esrb_e
2=vgs_esrb_rp
3=vgs_esrb_t
4=vgs_bungie_games

[vgs_ea_games]
IsGames=1
Folder=Games/esrb
File=eagames.movie

[vgs_esrb_e]
IsGames=1
Folder=Games/esrb
File=esrb_e.movie

[vgs_esrb_rp]
IsGames=1
Folder=Games/esrb
File=esrb_rp.movie

[vgs_esrb_t]
IsGames=1
Folder=Games/esrb
File=esrb_t.movie

[vgs_bungie_games]
IsGames=1
Folder=Games/esrb
File=bungiegames.avi
Lab Assistant
#6 Old 29th Mar 2005 at 12:13 AM
Great tutorial! I just wanted to add a little shortcut for the GUIDs that I found when I did this for a magazine rack.

1:In notepad, write down all the original GUIDs, along with the new GUIDs
2:After importing your semis, export all the BHAVs in your package and delete them.
3:Make a new empty package, import your BHAVs, and save it.
4:In a hex-editor, use "Find and Replace" to replace the original GUIDs with the new ones, and save.
5:Open the package you just saved in the hex-editor, and export the new BHAVs.
6:Open your videogame/magazine rack package(should be clear of BHAVs), and import the fixed ones.

I like this way, because I know for sure that I didn't forget or miss some GUID references.
Lab Assistant
Original Poster
#7 Old 29th Mar 2005 at 12:38 AM
Thanks, atavera! That’s a very useful trick!
Test Subject
#8 Old 30th Mar 2005 at 6:06 AM
Thanks so much.... and that is a very nice trick atavera
Instructor
#9 Old 30th Mar 2005 at 5:30 PM
Default Cool
Yay! This is so cool. But I'd also like to replace the default SSX3 game the Sims play when they don't buy any other games, so that not only there's another video playing (already did that), but let the pie menu say another name as well.
Any tips on how doing this? Thanks!

This space intentionally left blank...
Test Subject
#10 Old 31st Mar 2005 at 6:04 PM
what did you use raquel, to make the installation setup? just asking!
Lab Assistant
Original Poster
#11 Old 2nd Apr 2005 at 8:51 PM
Quote: Originally posted by Jetdude14
what did you use raquel, to make the installation setup? just asking!


I used an installer I downloaded from the Internet: Nullsoft Scriptable Install System. It has an open source license and so is completely free for any use. You can find it here:

http://nsis.sourceforge.net/

It’s script based but is really simple to use because it comes with a series of templates.
Guest
#12 Old 2nd Apr 2005 at 9:10 PM
Looks good! Well done.
Lab Assistant
Original Poster
#13 Old 2nd Apr 2005 at 10:41 PM
Quote: Originally posted by Nukael
Yay! This is so cool. But I'd also like to replace the default SSX3 game the Sims play when they don't buy any other games, so that not only there's another video playing (already did that), but let the pie menu say another name as well.
Any tips on how doing this? Thanks!


You'll have to hack the original SSX3 game to change its name in the "Catalog Description". Its the first string there, number 0.
Instructor
#14 Old 3rd Apr 2005 at 8:28 AM
Thanks for the info, I tried it in the original objects.package file, also tried cloning the object, but didn't work. Oh well, thanks anyway :-D
Lab Assistant
Original Poster
#15 Old 3rd Apr 2005 at 2:15 PM
Nukael, try the following:

1. Extract the "Catalog Description" file for the SSX3 videogame. You can accomplish this in 2 different ways:

i) Clone the SSX3 object in SimPE with all the options unchecked. You can find it in OW under the "Grouped Objects" tab, "Others". It has group number 0x7FFD89DB. Then, extract the "Catalog Description". Don’t save the cloned package!

ii) Open objects.package in SimPE. Locate the "Catalog Description" for SSX3 and extract it. It has group number 0x7FFD89DB and instance number 0x000007D0.

2. In SimPE, create a new file with "Index Type" long. Import the "Catalog Descripion" you just extracted.

3. Change the 1st string in the imported "Catalog Description" to the name of your choice. Don’t forget to “change in all” before committing.

4. Save the package in your downloads folder (give it a unique name).

5. Run the game and play the videogame.

It works! I've just tried it!
Instructor
#16 Old 3rd Apr 2005 at 5:12 PM
IT WORKS!! WOOHOO!! Er... well, not Sim woohoo ofcourse! Thank you SOOOO much!! Maybe now I can try my hands on creating my own games. YAY YAY YAY... *goes letting his Sims die while playing Mario Kart: Double Dash*
P.S.: did I say thank you?
Test Subject
#17 Old 4th Apr 2005 at 11:51 AM
O Great mods of MTS2, you need to move this.. to the modding tutorials!
Test Subject
#18 Old 9th Apr 2005 at 4:51 AM
can you make a easier tutorial? or do I a young kid have to suffer with only one new uploaded videogame trust me i can do this it will just take me 5 years......
Lab Assistant
Original Poster
#19 Old 9th Apr 2005 at 3:00 PM
hypeserver, what can I say? Creating a new videogame is an inherently difficult process…

Why don’t you let me know the parts that you have more trouble understanding? I can then try to rewrite those parts to make them easier to follow.
Test Subject
#20 Old 18th Apr 2005 at 2:19 PM
in step 3 part 1 when it says write the first four positions i need more info to kinda get how it would equal that code or at least explain it to me
Lab Assistant
Original Poster
#21 Old 19th Apr 2005 at 12:34 AM
hypeserver, in Part 1, step 2, you gave a new GUID to the videogame, right?

That GUID is composed of 8 digits. Let’s say it is 0x12345678. Group them in groups of two, like this: 12 34 56 78. Now, write the number reversing the order of the groups: 78 56 34 12. That’s the number you have to write in the first fours positions of the Operands (signalled in red in the figure) overwriting the numbers already there. In the end, you will have this:

Operands: 78 56 34 12 02 00 00 00
Unknown: 00 00 00 00 00 00 00 00

In the figure you see just an example, for GUID 0x0xEC142D00 (the GUID for Halo 2).

After doing this modification, click the button “Commit File” and save the package.

Hope I was clear enough.
Test Subject
#22 Old 18th May 2005 at 11:24 PM
Does the 'fun' come from the object it's being played on or the game itself? Can it come from the game?

I thought it would be cool to make an RTS and have it up fun and logic or an MMO for fun and social.

~gamer geek goth girl
313
Antimony & Lace
Test Subject
#23 Old 23rd Jul 2005 at 4:20 PM
Hey Sorry I'm newbie for this. how to re-texture the VDO game???
Test Subject
#24 Old 23rd Jul 2005 at 8:18 PM
cool!!!!
Instructor
#25 Old 17th Aug 2005 at 1:51 AM Last edited by phat_man55 : 17th Aug 2005 at 1:56 AM.
i've never heard of the esbr ratings on the games? does it just stop the youngins from buying the games?

also, what is a hex editor that avertea was talking about?
Page 1 of 4
Back to top