Welcome Guest [Log In] [Register]
Welcome to NHL04 Rebuilt 2017. We hope you enjoy your visit.


You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free.


Join our community!


If you're already a member please log in to your account to access all of our features:

Username:   Password:
Add Reply
Any update on 31 teams/new interface/Vegas?
Topic Started: Jan 9 2018, 09:51 AM (2,856 Views)
Matteo
Main-mod roster maker
Sence,13 January 2018
7:37 PM
@Vod Now I have to ask, which file format you prefer? XML seems to be a little bit weird format at first for those who are not used to do anything related to coding. Or did you mean that if we have the XML format file, we will modify that file from the interface so basically the guy who makes the roster, don't have to no anything about the file format?

And it is easy to parse things from XML file? It looks quite tricky for me. Which kind of benefits we have to use that format if you compare the others? :thinking:

That question interests me directly. I have no knowledge of coding or stuff like that.
Offline Profile Quote Post Goto Top
 
Vod
Member Avatar
Development Team
Sence,13 January 2018
10:37 AM
@Vod Now I have to ask, which file format you prefer? XML seems to be a little bit weird format at first for those who are not used to do anything related to coding. Or did you mean that if we have the XML format file, we will modify that file from the interface so basically the guy who makes the roster, don't have to no anything about the file format?

And it is easy to parse things from XML file? It looks quite tricky for me. Which kind of benefits we have to use that format if you compare the others?  :thinking:

Game modes are basically fancy roster editors with a theme. It's much easier to edit and parse rosters using javascript if they are basic text files instead of ancient .TDB files. I actually meant CSV, not XML, but XML could work. The game code doesn't even really understand the concept of roster files after you've clicked to start a game. The interface is a completely separate world. To the game code, 'rosters' are simply some regions of memory containing player data. For instance, player speed is located at [0x79C310]+PlayerID*4 + 0x7C. How the player speed gets to that address is irrelevant to the game, as long as it happens before the game loads. In other words, it's up to the interface to decide. The in-game portion has no concept of divisions, maximum teams etc. All it cares about is the two teams currently on the ice. Check out fe\nhl\html\faststart.html to see how simple an interface can be. It randomly selects two teams and starts the game. ExitSetup() loads the roster and pushes the roster data to the game, and ExecuteGame() takes you to the loading screen. You can insert code between these two function calls that injects your own roster data.

If we use our own interface, it's up to us how we want to store the data. My suggestion is each team gets their own .CSV file in a folder. It would be easy to parse and would allow for many teams. Something like this:

Dynasty-Savename\TOR.csv
Exhibition\NHL\TOR.csv
NHL 2004 Launcher | My Changelog | NHL 2004 Preservation | NHL 2004 Debugger
Online Profile Quote Post Goto Top
 
Sence
Hall of Famer
CSV format was actually what I was thinking too. It's simple and easy to parse and use. :good:
A video is worth of thousand pictures.

http://www.youtube.com/watch?v=bFq2dGSVdOI
My Sharks 2015-16 season (finished)
Offline Profile Quote Post Goto Top
 
meeee
Member Avatar
Rookie
So the first step to doing this, is getting every team a .csv with it's 40ish players and their attributes?

Just to count, here's the columns each player would need:
First
Last
Position
Number
Shoots
Birth City
Player ID
Height
Weight
Draft year
Draft Pos.
Birth Date
Birth State
Instance

Rookie
Visor

Overall
speed
acceleration
Agility
Deke
Balance
Puck control
Endurance
Passing
Shot power
Shot accuracy
Hero
aggression
checking
toughness
Fighting
Resist penalty
resist inj
faceoffs
potential
prestige
Shoot-Pass
Pass-Carry
Defense-Offense

PBP
Cyber
No Photo
Skin tone

Helmet
Stick
Skate

Years on Contract
Salary
LETS GO RANGERS!
Offline Profile Quote Post Goto Top
 
Vod
Member Avatar
Development Team
That part can be automated pretty easily. The time-consuming part is writing global javascript libraries that the game modes need. We'll have to decide how we want to handle everything from team logos to player faces. It's not hard, just time consuming. Other than that, there's really not much more grandwork that needs to be laid. The upcoming launcher release already has a library for injecting roster data and a lot of EA's code is ancient IE8 DTML stuff. Since we can use HTML5 and modern JS, there's lots of open source libraries out there to make our life easier, such as jquery and bootstrap. Those libraries alone could wipe out a decent percent of EA's interface code, allowing us to focus on the important stuff.

We will also need a new roster editor, which can be in-game. One thing I learned while developing the roster Launcher functions is NHLView does not create proper roster files. They never fully reverse-engineered all of the roster fields and certain assumptions seem to be incorrect based on my testing.
NHL 2004 Launcher | My Changelog | NHL 2004 Preservation | NHL 2004 Debugger
Online Profile Quote Post Goto Top
 
meeee
Member Avatar
Rookie
When might this new launcher be released?
LETS GO RANGERS!
Offline Profile Quote Post Goto Top
 
Vod
Member Avatar
Development Team
meeee,15 January 2018
2:09 PM
When might this new launcher be released?

There's no ETA at the moment. I was hoping to have it released by now, but I haven't had enough time. Either way though, it's not required for a new interface.
NHL 2004 Launcher | My Changelog | NHL 2004 Preservation | NHL 2004 Debugger
Online Profile Quote Post Goto Top
 
Ciais
Hall of Famer
Alright, so I think it's safe to assume Vod have at least some idea on how to implement the new interface -- how to build it (probably) from scratch, all the memory addresses, etc

What would you need me to do, to at least getting something started?

:)
Offline Profile Quote Post Goto Top
 
Sence
Hall of Famer
Vod,14 January 2018
4:34 AM
Game modes are basically fancy roster editors with a theme. It's much easier to edit and parse rosters using javascript if they are basic text files instead of ancient .TDB files. I actually meant CSV, not XML, but XML could work. The game code doesn't even really understand the concept of roster files after you've clicked to start a game. The interface is a completely separate world. To the game code, 'rosters' are simply some regions of memory containing player data. For instance, player speed is located at [0x79C310]+PlayerID*4 + 0x7C. How the player speed gets to that address is irrelevant to the game, as long as it happens before the game loads. In other words, it's up to the interface to decide. The in-game portion has no concept of divisions, maximum teams etc. All it cares about is the two teams currently on the ice. Check out fe\nhl\html\faststart.html to see how simple an interface can be. It randomly selects two teams and starts the game. ExitSetup() loads the roster and pushes the roster data to the game, and ExecuteGame() takes you to the loading screen. You can insert code between these two function calls that injects your own roster data.

If we use our own interface, it's up to us how we want to store the data. My suggestion is each team gets their own .CSV file in a folder. It would be easy to parse and would allow for many teams. Something like this:

Dynasty-Savename\TOR.csv
Exhibition\NHL\TOR.csv

@Ciais I assume that the roster part could be the first thing. So the javascript could separate those roster variables from the .csv file. :thinking:
A video is worth of thousand pictures.

http://www.youtube.com/watch?v=bFq2dGSVdOI
My Sharks 2015-16 season (finished)
Offline Profile Quote Post Goto Top
 
trent
Member Avatar
Project Leader
How can we export the roster data from db.viv into .csv mode?

Edit: Actually you can save the full NHL roster when you do it ingame (statistic -> save stats). All player stats will be saved into .csv mode.

But not the attributes.
My Blues 1995-1996 Season Report
My Blues 1998-1999 Season Report
My Flyers 1998-1999 Season Report
Online Profile Quote Post Goto Top
 
Ciais
Hall of Famer
Sence:
I agree, so we need to know:

  • What kind of function/formula do we have to compile in the JS, not to read the CSV, but to completely replace the default roster
  • All memory addresses
For now, I think this should be our priority, just to test if the CSV roster gets injected into the actual gameplay

Let me know if I said some stupid things, ofc :P

trent:
We'll think of something, there are some hotkey scripts that could eventually help us, I believe
Offline Profile Quote Post Goto Top
 
Sence
Hall of Famer
Those has to be done manually (or not really) at first but like Vod said earlier, at the end when the new interface is done, you can tweak those attributes from the interace so you don't have to add before the game starts. So basically the interface will be the db editor too and it stores the data in .csv files.
A video is worth of thousand pictures.

http://www.youtube.com/watch?v=bFq2dGSVdOI
My Sharks 2015-16 season (finished)
Offline Profile Quote Post Goto Top
 
Vod
Member Avatar
Development Team
A lot of the library functions needed for this are already finished, so you guys won't have to worry about things like memory addresses.

https://i.imgur.com/NK3s3WG.jpg
https://i.imgur.com/cmqL4oS.jpg
https://i.imgur.com/7LHDfVo.jpg
https://i.imgur.com/HFxe3Pl.jpg


What I would personally like to see in a new interface is one single codebase with a plugin system. Instead of every conversion mod being an entire game install, each mod could be a game mode that appears in the main menu and can be updated independently of the rest of the interface. That would eliminate so much hassle. If a plugin can have both launcher scripts and interface scripts, there would be unlimited possibilities in what a game mode can do.
NHL 2004 Launcher | My Changelog | NHL 2004 Preservation | NHL 2004 Debugger
Online Profile Quote Post Goto Top
 
Ciais
Hall of Famer
Nice work, Vod! :blink:

Regarding your proposal, then maybe we could link all necessary files (faces, jerseys, etc) to be external and with custom filenames? So no more same jerseys.viv or something for every mod :thinking:
Offline Profile Quote Post Goto Top
 
Vod
Member Avatar
Development Team
Ciais,24 January 2018
11:36 AM
Nice work, Vod! :blink:

Regarding your proposal, then maybe we could link all necessary files (faces, jerseys, etc) to be external and with custom filenames? :thinking:

Thanks :) Sure, it's probably best we use as few EA formats as possible and move as much as we can out of the .viv files. One strength of injecting .dds or .png files instead of using .viv and .fsh is you can reload them in-game by pressing Ctrl+Alt+R, so artists won't have to constantly restart to see changes.
NHL 2004 Launcher | My Changelog | NHL 2004 Preservation | NHL 2004 Debugger
Online Profile Quote Post Goto Top
 
2 users reading this topic (2 Guests and 0 Anonymous)
Go to Next Page
« Previous Topic · NHL 2004 General Discussion · Next Topic »
Add Reply