| 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: |
| Any update on 31 teams/new interface/Vegas? | |
|---|---|
| Tweet Topic Started: Jan 9 2018, 09:51 AM (2,856 Views) | |
| Matteo | Jan 13 2018, 07:37 PM Post #16 |
|
Main-mod roster maker
|
That question interests me directly. I have no knowledge of coding or stuff like that. |
![]() |
|
| Vod | Jan 14 2018, 01:34 AM Post #17 |
|
Development Team
|
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 | |
![]() |
|
| Sence | Jan 14 2018, 11:02 AM Post #18 |
|
Hall of Famer
|
CSV format was actually what I was thinking too. It's simple and easy to parse and use.
|
|
A video is worth of thousand pictures. http://www.youtube.com/watch?v=bFq2dGSVdOI My Sharks 2015-16 season (finished) | |
![]() |
|
| meeee | Jan 14 2018, 10:22 PM Post #19 |
|
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! | |
![]() |
|
| Vod | Jan 14 2018, 11:34 PM Post #20 |
|
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 | |
![]() |
|
| meeee | Jan 15 2018, 10:09 PM Post #21 |
|
Rookie
|
When might this new launcher be released? |
| LETS GO RANGERS! | |
![]() |
|
| Vod | Jan 16 2018, 12:04 AM Post #22 |
|
Development Team
|
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 | |
![]() |
|
| Ciais | Jan 24 2018, 10:09 AM Post #23 |
|
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?
|
![]() |
|
| Sence | Jan 24 2018, 02:17 PM Post #24 |
|
Hall of Famer
|
@Ciais I assume that the roster part could be the first thing. So the javascript could separate those roster variables from the .csv file.
|
|
A video is worth of thousand pictures. http://www.youtube.com/watch?v=bFq2dGSVdOI My Sharks 2015-16 season (finished) | |
![]() |
|
| trent | Jan 24 2018, 02:19 PM Post #25 |
|
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 | |
![]() |
|
| Ciais | Jan 24 2018, 02:24 PM Post #26 |
|
Hall of Famer
|
Sence: I agree, so we need to know:
Let me know if I said some stupid things, ofc ![]() trent: We'll think of something, there are some hotkey scripts that could eventually help us, I believe |
![]() |
|
| Sence | Jan 24 2018, 02:25 PM Post #27 |
|
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) | |
![]() |
|
| Vod | Jan 24 2018, 07:11 PM Post #28 |
|
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 | |
![]() |
|
| Ciais | Jan 24 2018, 07:36 PM Post #29 |
|
Hall of Famer
|
Nice work, Vod! ![]() 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
|
![]() |
|
| Vod | Jan 24 2018, 07:56 PM Post #30 |
|
Development Team
|
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 | |
![]() |
|
| 2 users reading this topic (2 Guests and 0 Anonymous) | |
| Go to Next Page | |
| « Previous Topic · NHL 2004 General Discussion · Next Topic » |








12:21 AM Jul 11