IPB

Welcome Guest ( Log In | Register )

4 Pages V  < 1 2 3 4 >  
Reply to this topicStart new topic
Thyme, a Generals ZH reimplementation project.
Blade
post 28 Jan 2017, 17:34
Post #26



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



Stalker, yeah that is right, currently the thyme code calls the existing code where functions aren't yet reimplemented. Currently that is most of them, but as more and more functions are done, less will be called from the original until none are and thyme can run on its own. Currently I'm working on the file system handling so loading big files and such and the abstraction needed to open from it or the normal file system.

Bruce, unless rotr uses a hacked exe already with some custom functions, it should work as is when thyme is complete. I hope to be able to have it load original generals content as well if provided with generals game files instead of zh files, but I'm not sure what differences in the engines exactly I'll need to account for.
Go to the top of the page
 
+Quote Post
Chappi55
post 18 Feb 2017, 9:58
Post #27


Particle effects since 2004'
Group Icon

Group: Members
Posts: 118
Joined: 7 March 2012
Member No.: 9029



It's really inspiring seeing you do this kind of thing despite generals age :v (I thought I'm one of the few guys stuck in the nostalgia zone doing stuff with generals).

I'd gladly help however I'm pretty much java programmer at this point and this actually allows me to appreciate your work even better seeing how java is a piece of cake compared to C and C++. How did you start all of this? (Technically speaking, was it trial and error or did you find some technical documentation about the internal engine shenanigans?)


--------------------
Woo Particle effects!
Go to the top of the page
 
+Quote Post
Blade
post 18 Feb 2017, 16:11
Post #28



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



One of the guys I was working on RA++ with was checking all C&C related files and binaries to try and find left over bits of debug information and came across files that contained more or less complete sets of function symbol information for Generals and Zero Hour. Its only with that that it became feasible enough for me to try and map the windows exe to start one of these "bit at a time" re-implementation projects. Drop in on the dev chat on freenode, channel #thyme if you want to chat about it in more detail.
Go to the top of the page
 
+Quote Post
Jet02
post 19 Feb 2017, 15:09
Post #29



Group Icon

Group: Members
Posts: 202
Joined: 10 September 2016
From: Malaysia
Member No.: 13185



How about smart units? Would that be possible?

There are a lot of things that can be improved upon in this game but that's the only stuff i can think of so far.

This post has been edited by Jet02: 19 Feb 2017, 15:23
Go to the top of the page
 
+Quote Post
Blade
post 2 Mar 2017, 14:53
Post #30



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



Made an interesting discovery, it seems that the game was written against STLPort rather than the standard c++ library that comes with MSVC and we think we've identified the version they used so with a bit of massaging to get it compiling, we have an ABI compatible C++ library implementation making it much easier to implement and test functions one at a time, even those that rely on STL containers which we didn't think we could touch until later.
Go to the top of the page
 
+Quote Post
(USA)Bruce
post 2 Mar 2017, 18:23
Post #31


The Forums American Hotshot Flyboy
Group Icon

Group: Tester
Posts: 2859
Joined: 22 November 2012
From: The foundation of modern freedom and Liberty;United States of America.
Member No.: 9500





No offence ment but what does this mean? x)

This post has been edited by (USA)Bruce: 2 Mar 2017, 18:23


--------------------
Go to the top of the page
 
+Quote Post
Chappi55
post 2 Mar 2017, 20:52
Post #32


Particle effects since 2004'
Group Icon

Group: Members
Posts: 118
Joined: 7 March 2012
Member No.: 9029



QUOTE ((USA)Bruce @ 2 Mar 2017, 18:23) *
--image snip--

No offence ment but what does this mean? x)



I'm sorry man I just had to.

As for what it means - it means that their life just got easier.


--------------------
Woo Particle effects!
Go to the top of the page
 
+Quote Post
Blade
post 2 Mar 2017, 22:18
Post #33



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



Part of the standard C++ is a library of data structures and algorithms such as std::vector or std::map, the behaviour of which is mandated by a standard. However the underlying implementation isn't defined so different compilers implement them differently. The implementation even changes between compiler versions. Provided your program is self contained and doesn't try and pass these data structures between dll's or anything the fact that the implementation can change over time doesn't matter though because the version your program uses is set in stone when you compile it.

However when you are trying to hook into an older existing binary where some functions do pass them around and some of the data structures contain them, the differences basically mean things don't line up correctly when you try and re-implement them so functions that theoretically would match the original in behaviour don't match at a binary level, you need to use the same implementation as the original. Part of the reimplementation is working out the layout of the data structures for things like the INI file parser and the big file loader so they can interoperate with the original code and having the correct C++ implementation makes that much easier.
Go to the top of the page
 
+Quote Post
Blade
post 13 Mar 2017, 9:08
Post #34



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



I've just about finished reimplementing the functions for initialising the big files. I understand that the -mod command can't override everything in the big files, possibly because it loads mod files somewhat later in the process after already loading some things from the default. Would a new "-root /path/to/stuff" type command line parameter that sets the games whole working directory to somewhere other than the games install directory be useful? Currently the game loads all bigs from the ZH binary directory, then the Generals install directory, then a little further into the init process, it loads the big files in the directory specified by -mod. I could change that to load from the specified root directory, then the ZH install directory, then the Generals install directory then finally the -mod directory.
Go to the top of the page
 
+Quote Post
Zeke
post 13 Mar 2017, 16:21
Post #35


The X General
Group Icon

Group: Project Leader
Posts: 2166
Joined: 7 June 2009
From: Philippines
Member No.: 73
Uniqueness is Overrated



QUOTE (Blade @ 13 Mar 2017, 16:08) *
Would a new "-root /path/to/stuff" type command line parameter that sets the games whole working directory to somewhere other than the games install directory be useful?


You can actually write the full directory of the mod big file to load a mod from outside the default directory.

The bigger problem is that the -mod function only works for a single .big file at a time.

Most mods these days use multiple .big files, because it is more stable and easier to update.


--------------------
Go to the top of the page
 
+Quote Post
Blade
post 13 Mar 2017, 16:27
Post #36



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



If you provide -mod with a directory path and not a single .big file name, the code for it suggests it will load all the big files from that directory, not just one. However my understanding was that this can't override some things.
Go to the top of the page
 
+Quote Post
Zeke
post 13 Mar 2017, 17:38
Post #37


The X General
Group Icon

Group: Project Leader
Posts: 2166
Joined: 7 June 2009
From: Philippines
Member No.: 73
Uniqueness is Overrated



QUOTE (Blade @ 13 Mar 2017, 23:27) *
If you provide -mod with a directory path and not a single .big file name, the code for it suggests it will load all the big files from that directory, not just one. However my understanding was that this can't override some things.


I remember someone mentioning that as well, though I never really got around to testing it.

Well if you can make it so that whatever is in -mod will always get loaded last, then that would be helpful.


--------------------
Go to the top of the page
 
+Quote Post
Jet02
post 28 Mar 2017, 13:15
Post #38



Group Icon

Group: Members
Posts: 202
Joined: 10 September 2016
From: Malaysia
Member No.: 13185



How about if you give units a slightly higher degree of intelligence/autonomity? Not to the point that it becomes an entirely different game, just enough to make battles look less like those of the 18th century.

Also are cover mechanics possible?
Go to the top of the page
 
+Quote Post
Mizo
post 20 Apr 2017, 0:59
Post #39


AI Coding Expert
Group Icon

Group: Dev. Team
Posts: 1846
Joined: 9 May 2014
From: Poland
Member No.: 10450



Wow wow slow down jet. From what I understand (basically fuck'all) Blade is still far off from getting thyme to initialize the whole game on its own, let alone adding new functions.

Blade, how's your progress so far?


--------------------


Not a Rusty Spoon........The_Hunter uses a goddamn wooden spoon on his AI Scripters....
Go to the top of the page
 
+Quote Post
(USA)Bruce
post 20 Apr 2017, 1:56
Post #40


The Forums American Hotshot Flyboy
Group Icon

Group: Tester
Posts: 2859
Joined: 22 November 2012
From: The foundation of modern freedom and Liberty;United States of America.
Member No.: 9500



^Unrelated; Can you please upload an avatar image or something blade...When you can ofc


--------------------
Go to the top of the page
 
+Quote Post
Blade
post 6 May 2017, 21:56
Post #41



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



Avatar image done. So I'm currently working on a class called Xfer which seems to be related to saving and loading data, but it needs functions from other classes so I'm implementing parts of those classes sufficient to provide what I need and provide a skeleton for the rest.

Of features I can probably currently add, I can add pretty much anything to how the file system behaves and new command line options that affect things I've currently got mapped in the exe. For example I'm thinking of porting the windowed mode position command line parameters that are available in at least the Rise of the Witch King. Currently I believe windowed mode just draws itself where ever but in ROTWK and probably the other BFME games, you can specify the X and Y for the initial position. Not an amazingly useful feature, but I'm sure it would have some use for people running windowed mode.
Go to the top of the page
 
+Quote Post
{Lads}RikerZZZ
post 7 May 2017, 0:16
Post #42


Certified Shitposter
Group Icon

Group: Tester
Posts: 2410
Joined: 30 December 2013
From: Straya'
Member No.: 10248
pls join my games im lonely =c



is a windowed borderless option possible with these developments?


--------------------

Many thanks to IvanMRM for my avatar and Star for drawing my epic signature. You guys rock!
Join our Discord Server for a great community and plenty of games and memes!
Also, check out our ROTR - Fan group on Facebook.
Go to the top of the page
 
+Quote Post
Blade
post 7 May 2017, 15:42
Post #43



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



I've just had a quick check playing with the window style options and it seems that yes, it would be possible to have no title bar or border. Would be pretty easy to work those in as command line options.
Go to the top of the page
 
+Quote Post
Blade
post 9 May 2017, 14:10
Post #44



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



And indeed I have now added -noBorder as a command line option when running thyme in addition to the -win options to get a borderless window. -xPos and -yPos control where it is positioned on screen.
Go to the top of the page
 
+Quote Post
Mizo
post 12 May 2017, 18:25
Post #45


AI Coding Expert
Group Icon

Group: Dev. Team
Posts: 1846
Joined: 9 May 2014
From: Poland
Member No.: 10450



Nice job Blade! Keep up the good work. If this works out till the end, you shall be granted the title of "Jesus of Zerohour" tongue.gif


--------------------


Not a Rusty Spoon........The_Hunter uses a goddamn wooden spoon on his AI Scripters....
Go to the top of the page
 
+Quote Post
Zeke
post 13 May 2017, 5:00
Post #46


The X General
Group Icon

Group: Project Leader
Posts: 2166
Joined: 7 June 2009
From: Philippines
Member No.: 73
Uniqueness is Overrated



In terms of new features, the most needed ones would be:
- Removal/Increase of upgrade limit
- Ability to add new Special Power Enums
- Ability to add new Special Power Decals
- Ability to add new Damage Types
- Ability to use multiple Overlord Contain objects per unit
- Enable overlord contain objects to use FireWeaponUpdate


--------------------
Go to the top of the page
 
+Quote Post
Shiro
post 13 May 2017, 13:01
Post #47


Gamer Girl
Group Icon

Group: Legend
Posts: 3808
Joined: 19 June 2009
From: Disboard
Member No.: 182
Friendly Freelancer



More bike logic drivers as well (currently it's 8).
Go to the top of the page
 
+Quote Post
Oliver
post 13 May 2017, 13:52
Post #48



Group Icon

Group: Dev. Team
Posts: 964
Joined: 15 August 2013
From: Portugal, Lisbon
Member No.: 10072



I wonder how much of a trouble would be to introduce more scripts conditions and actions.

This post has been edited by Oliver: 13 May 2017, 14:17
Go to the top of the page
 
+Quote Post
ComradeGeneral
post 13 May 2017, 17:00
Post #49



Group Icon

Group: Members
Posts: 22
Joined: 5 June 2016
From: Murica
Member No.: 12935



QUOTE (Oliver @ 13 May 2017, 8:52) *
I wonder how much of a trouble would be to introduce more scripts conditions and actions.


Getting most of the Unused scripts working would be a nice start. There's a lot of ones there that don't do anything sadly, and they would be useful.


--------------------
Shockwave "Good" Balance Mod:
ModDB Page
Latest date: October 3rd, 2017
Update 15 includes a life worth living.
Go to the top of the page
 
+Quote Post
Blade
post 13 May 2017, 22:57
Post #50



Group Icon

Group: Members
Posts: 39
Joined: 11 January 2017
Member No.: 14208



Are the unused scripts unused just in ZH or in both ZH and Generals? One of my stretch goals is to make Generals vanilla data files load unmodified in thyme as well, so if script actions need restoring from it, that is one of the things that will happen. Scripts that are totally unused possibly don't have any code behind them so it would be up to us to implement something appropriate.

A lot of the limits look like they come from a templated bitfield class where the range of possible values is set at compile time. Unfortunately, the code that checks them probably also has the range hard coded. Once the code is reimplemented, it should just be a matter of increasing one number, but reimplementing all the relevant code so that the number can be raised will take time.
Go to the top of the page
 
+Quote Post

4 Pages V  < 1 2 3 4 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 19 March 2024 - 6:27