IPB

Welcome Guest ( Log In | Register )

3 Pages V  < 1 2 3  
Reply to this topicStart new topic
Thyme, a Generals ZH reimplementation project.
{Lads}RikerZZZ
post 13 May 2017, 23:51
Post #51


Certified Shitposter
Group Icon

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



before the discussions continues to all the new modding parameters, i would just like to say great work on windowed borderless mate smile.gif
not being able to alt tab in full screen is hell on windows 10


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

Many thanks to IvanMRM for my avatar and Star for drawing my epic signature. You guys rock!
Also, check out our ROTR - Fan group on Facebook.
Go to the top of the page
 
+Quote Post
Blade
post 13 May 2017, 23:56
Post #52



Group Icon

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



I think the only issue with using a borderless window in place of full screen is that mouse scroll won't work, though that might be fixable down the line when I look at the event handler.
Go to the top of the page
 
+Quote Post
jl319
post 15 May 2017, 11:58
Post #53



Group Icon

Group: Members
Posts: 43
Joined: 1 April 2017
From: Philippines
Member No.: 14916



So I chance upon this thread... and read it to the last page so far. Result: My head hurts. I have no background in coding whatsoever, nor can I understand much. It reminds me of when my family discusses genetics and microbiology at the dinner table ohmy.gif

My only hope is that this will come with some sort of readme file I can attempt to use as a guide when it finishes sad.gif

Anyways, best of luck laugh.gif
Go to the top of the page
 
+Quote Post
Mizo
post 27 May 2017, 17:38
Post #54


AI Coding Expert
Group Icon

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



QUOTE
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.


I'll look into it.


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


Not a Rusty Spoon........The_Hunter uses a goddamn wooden spoon on his AI Scripters....
Go to the top of the page
 
+Quote Post
Blade
post 6 Jul 2017, 10:49
Post #55



Group Icon

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



A little update for those who don't obsessively click refresh on the github page. Filesystem handling is pretty much done, as is string file handling. Most of the guts of the INI parsing system are done, specific functions for parsing into specific types of file are being implemented as the classes they feed are.

The layouts for classes that get allocated during the game engines initialisation are slowly being worked out, right now I'm looking at the audio engine which is huge. Currently it links against something called Miles Sound System which is a commercial sound library but I'll want to implement an alternative around OpenAL instead since I can't use Miles in an open project.

There are several useful things that i could implement currently. I've already started adding debug logs for errors that occur when reading ini files, but even what I've added so far can be improved by logging file names and line numbers. I could also alter the way that .str files are treated so they could be utf-8 formatted rather than just plain ascii which the currently are. That way if you include extra strings with a map, you could use foreign symbols in it.

Largely I'm still just trying to focus on reimplementing logic rather than adding many improvements just yet though. I've also started to think about the possibility of building the incomplete stand alone binary so that its easier down the line to switch without a big refactor and to test cross platform building of the project to see where alternative functions need using/writing.
Go to the top of the page
 
+Quote Post
Shiro
post 6 Jul 2017, 11:41
Post #56


Gamer Girl
Group Icon

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



All of this sounds pretty amazing. I sadly can't help with any of this, but I can at least cheer for you. 8chi.png


--------------------
Joy~
Go to the top of the page
 
+Quote Post
{Lads}RikerZZZ
post 6 Jul 2017, 11:44
Post #57


Certified Shitposter
Group Icon

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



For your efforts so far alone you should be awarded the legend tag on the forums.

Seriously Blade, if this keeps up this is going to be an amazingly rewarding project for all of us.


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

Many thanks to IvanMRM for my avatar and Star for drawing my epic signature. You guys rock!
Also, check out our ROTR - Fan group on Facebook.
Go to the top of the page
 
+Quote Post
Blade
post 19 Jul 2017, 10:15
Post #58



Group Icon

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



I've made the github wiki functionality available at https://github.com/TheAssemblyArmada/Thyme/wiki. Its a bit bare bones for the time being, but if anyone wants to contribute anything to it, I've made the wiki publicly editable. I'll be adding useful information to it as I uncover it in the engine.
Go to the top of the page
 
+Quote Post
Mizo
post 27 Aug 2017, 3:46
Post #59


AI Coding Expert
Group Icon

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



Any progress biggrin.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
Blade
post 31 Aug 2017, 15:09
Post #60



Group Icon

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



QUOTE (Mizo @ 27 Aug 2017, 3:46) *
Any progress biggrin.gif ?


Just mapped more of the audio engine and wrote skeletons of more of the classes involved. Progress has been a bit slower of late due to real life commitments and me trying to port some of the work done on redalert++ to a similar dll injection project to try and make it easier to get that project past a few road blocks it's hit, though no source release for that yet as I'd need to get other people involved in that to sign off on it.
Go to the top of the page
 
+Quote Post
ai_beyondcontrol
post 3 Sep 2017, 13:45
Post #61



Group Icon

Group: Members
Posts: 40
Joined: 18 June 2015
From: Shanghai,China
Member No.: 11608



It is just GREAT to see the birth of this GREAT project! Thank you! It is just so great to see that a new possibility (even a new era) of this beloved game!

Here're some humble idea about the possible feature of the project.

(a) Fix 128 Upgrade Bug: Currently ZH will go crash if the number of upgrade items in Upgrade.ini exceeds 128, known as the 128-upgrade bug.
(cool.gif Multi-turret Logic: Currently ZH support only 2 turret on any single object, while CNC3 & RA3 support unlimited number of turret on any object.
© Enhanced Support Fire Logic: Currently ZH support fire logic (like the one on Patriot Missile Battery) only works when the attacker and supporter are the exact same type of unit. Maybe extend this to something like CNC3 beam cannon/Venom/Obelisk logic?
(d) Teleporting Logic: Currently it's impossible to teleport units in ZH. Logic similar to Mastermind (CNC3 Scrin) or Firehawk(CNC3 GDI) would be an potent feature.
(e) Extendable Damage Types.
(f) W3D export/import plugin for 3ds max 9 or later: Currently the W3D import/export plugin works only for 3ds max 7/8, which have obviously become obsolete and 3ds max 7/8 are having problems running on Win10 now.
(g) Worldbuilder Support.

Thank you! biggrin.gif
Go to the top of the page
 
+Quote Post
M.P
post 3 Sep 2017, 16:45
Post #62


Da Ogre
Group Icon

Group: Dev. Team
Posts: 1222
Joined: 26 July 2014
From: Mah Swamp
Member No.: 10559
IT'S ALL OGRE NOW!



The importer/exporter are not related to the game engine. If you want them to work with Max9 or above, You gotta find someone to recreate the plugins.
Go to the top of the page
 
+Quote Post
Blade
post 4 Sep 2017, 13:04
Post #63



Group Icon

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



QUOTE (ai_beyondcontrol @ 3 Sep 2017, 13:45) *
It is just GREAT to see the birth of this GREAT project! Thank you! It is just so great to see that a new possibility (even a new era) of this beloved game!

Here're some humble idea about the possible feature of the project.

(a) Fix 128 Upgrade Bug: Currently ZH will go crash if the number of upgrade items in Upgrade.ini exceeds 128, known as the 128-upgrade bug.
(cool.gif Multi-turret Logic: Currently ZH support only 2 turret on any single object, while CNC3 & RA3 support unlimited number of turret on any object.
© Enhanced Support Fire Logic: Currently ZH support fire logic (like the one on Patriot Missile Battery) only works when the attacker and supporter are the exact same type of unit. Maybe extend this to something like CNC3 beam cannon/Venom/Obelisk logic?
(d) Teleporting Logic: Currently it's impossible to teleport units in ZH. Logic similar to Mastermind (CNC3 Scrin) or Firehawk(CNC3 GDI) would be an potent feature.
(e) Extendable Damage Types.
(f) W3D export/import plugin for 3ds max 9 or later: Currently the W3D import/export plugin works only for 3ds max 7/8, which have obviously become obsolete and 3ds max 7/8 are having problems running on Win10 now.
(g) Worldbuilder Support.

Thank you! biggrin.gif


The upgrade limit is almost certainly due to a bitfield object being involved. The size of those are set at compile time, and it is trivially easy to change the actual number involved, but that can change the size and layout of data in memory, so depending on how many bits of code refer specifically to the bitfield, it may require a lot of the game to be reimplemented before it can be changed as we can't change the size and layout of things that we still need to share access to with the original code.

The other logic changes should be possible, but until we have a more complete reimplementation its hard to say how much work they will be to implement.

As M.P. says, the plugins are mostly their own thing. They do share some code with the games relating to w3d handling, but thyme will only give bits required to reimplement them, not everything. I'd personally rather throw support behind https://github.com/sage-team/W3D-Tools to get similar import/export tools available for the open source Blender 3d modelling software as that is freely available.

Finally, what do you mean by worldbuilder support?
Go to the top of the page
 
+Quote Post
Blade
post 4 Sep 2017, 15:36
Post #64



Group Icon

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



Just an update on the upgrade limit, it does indeed use a bit field, the debug symbols show an object called "Bitfield<128>" being passed around between a number of upgrade related functions. It looks like this may be part of larger structures, so it will be changeable quite easily, but probably not very soon because it needs a bunch of other stuff in place first.
Go to the top of the page
 
+Quote Post
Mizo
post 6 Sep 2017, 9:18
Post #65


AI Coding Expert
Group Icon

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



Things are looking very promising.


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


Not a Rusty Spoon........The_Hunter uses a goddamn wooden spoon on his AI Scripters....
Go to the top of the page
 
+Quote Post
Oliver
post 7 Sep 2017, 13:32
Post #66



Group Icon

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



I wonder if you could check out why the game only uses a specific amount of ram/CPU even if the game is running in a very good computer... And if that is possible to change with your project.
Go to the top of the page
 
+Quote Post
Skitt
post 7 Sep 2017, 13:39
Post #67



Group Icon

Group: Moderator
Posts: 1526
Joined: 8 January 2015
From: Newcastle, England
Member No.: 10811
Aut vincere aut mori, Cave quid dicis, quando, et cui, De duobus malis, minus est semper eligendum.



one thing i noticed a cupple of weeks ago which im wondering if you could change.

when a unit or structure is constructed for the first time in a match theres an fps drop for a few seconds meaning its the game loading the "data" for said unit/structure into the memory for future instances of it in the match from the ini files.
It will increase the initial load time for the game but could it be done to load all of the data into the memory on start up rather than on the fly during a match to improve performance, though the engines memory could probably do with an increase aswell.
it would help explain why the game slows down so much in the later stages of a match due to the memory clogging up.


--------------------
Go to the top of the page
 
+Quote Post
Blade
post 8 Sep 2017, 10:20
Post #68



Group Icon

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



QUOTE (Skitt @ 7 Sep 2017, 13:39) *
one thing i noticed a cupple of weeks ago which im wondering if you could change.

when a unit or structure is constructed for the first time in a match theres an fps drop for a few seconds meaning its the game loading the "data" for said unit/structure into the memory for future instances of it in the match from the ini files.
It will increase the initial load time for the game but could it be done to load all of the data into the memory on start up rather than on the fly during a match to improve performance, though the engines memory could probably do with an increase aswell.
it would help explain why the game slows down so much in the later stages of a match due to the memory clogging up.


Its possible that the game is lazy loading the assets it needs and caching them, I've not noticed it myself. Does it affect both skirmish and online play? More code will need reimplementing before we can look at identifying the cause of it anyhow as game logic hasn't really been reached yet.

Regarding the game slowing down, again is this online, offline or both? The more units there are, then the longer it will take to iterate over all of them and do whatever their logic is for each tick, I suspect you perceive this as slowdown as I think the frame rate is linked to the logic tick rate, so anything slowing the ticks slows the frame rate. It would probably take large restructures of the engine to fix that. Such an endeavour would have to wait until practically everything is reimplemented I would imagine.
Go to the top of the page
 
+Quote Post
Skitt
post 8 Sep 2017, 14:34
Post #69



Group Icon

Group: Moderator
Posts: 1526
Joined: 8 January 2015
From: Newcastle, England
Member No.: 10811
Aut vincere aut mori, Cave quid dicis, quando, et cui, De duobus malis, minus est semper eligendum.



skirmish and online,
for eg: building a usa powerplant placeing the very first scaffold on the map for the plant causes a 2fps drop for a second or 2, with a further 2 fps drop for a second once the construction is done and the scaffold goes. following usa powerplants dont. the fps drop happens for every structure and unit for the very first time its placed. weirdly avengers cause 5fps.
the slowdows do come from several areas.
connections (player side)
amount of units on the field
amount of players in the match
map size has a low impact
Weather effects are horrendous on performance, regardless of the players cpu, gpu, ram, graphics settings. (they do need an overhaul on performance but are hard coded to the engine)
Length of the match ( 1 hour is average the longest a match can go b4 the game nopes out)
the game engine only uses 1 cpu core.


--------------------
Go to the top of the page
 
+Quote Post
Blade
post 13 Sep 2017, 11:52
Post #70



Group Icon

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



QUOTE (Skitt @ 8 Sep 2017, 14:34) *
skirmish and online,
for eg: building a usa powerplant placeing the very first scaffold on the map for the plant causes a 2fps drop for a second or 2, with a further 2 fps drop for a second once the construction is done and the scaffold goes. following usa powerplants dont. the fps drop happens for every structure and unit for the very first time its placed. weirdly avengers cause 5fps.
the slowdows do come from several areas.
connections (player side)
amount of units on the field
amount of players in the match
map size has a low impact
Weather effects are horrendous on performance, regardless of the players cpu, gpu, ram, graphics settings. (they do need an overhaul on performance but are hard coded to the engine)
Length of the match ( 1 hour is average the longest a match can go b4 the game nopes out)
the game engine only uses 1 cpu core.


Yeah, that does sound like a lazy load, once we get to the asset loading code it may be possible to have more of the assets loaded up front or push the loading into a background thread on the idea that it will finish loading before the player actually needs it. I'm surprised that player count has much of an impact other than there generally being more units when there are more players. Weather effects I'll bet are being done largely on the CPU from the impact you describe, again once we control the code for them we can look at options for improving it such as having the GPU do more of the work if it isn't already the case.

Does anyone know if any/all of these issues affect the macOS port in the same way? I realise testing multiplayer on it is no longer possible, but a general idea of the state would be useful.
Go to the top of the page
 
+Quote Post
Mizo
post 21 Nov 2017, 1:05
Post #71


AI Coding Expert
Group Icon

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



Any progress so far , Blade?


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


Not a Rusty Spoon........The_Hunter uses a goddamn wooden spoon on his AI Scripters....
Go to the top of the page
 
+Quote Post
Blade
post 21 Nov 2017, 22:30
Post #72



Group Icon

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



I've been mapping out all the classes related to the SidesList class, mostly classes from the scripting engine. I've got skeletons of them all implemented, I just need to test the various functions I've implemented before I push it to the main repo. That should be enough to initialise the SidesList global object in the game engines Init function and brings me one step closer to owning the game initialisation code.
Go to the top of the page
 
+Quote Post
(USA)Bruce
post 21 Nov 2017, 23:56
Post #73


The Forums American Hotshot Flyboy
Group Icon

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



I love how I read that like four five times, each time I read it I understand it but then I think afterwards.
"What did he just say?"

You sir should try politics biggrin.gif

Also I had this question forwarded to me by the middle eastern crowd when I mentioned how awsome this project is;
Do you accept donations? Or how can a common man who's as clueless as me contribute? Should we try to hire some other programmers?


--------------------
Go to the top of the page
 
+Quote Post
Blade
post 22 Nov 2017, 10:59
Post #74



Group Icon

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



Ha ha, so SidesList is an object in the game that appears to handle lists of data pertaining to the sides in play on a map as far as I can tell. When I say I have skeletons implemented, I mean I have in C++ objects that should match the data layout of the same thing in the compiled game (so my code will behave the same as the existing code when it has to work on such an object). However I don't have all the code that does stuff with that data implemented.

Game engine initialisation is all the code the game goes through to get ready to do stuff, its the stuff it does while the initial loading screen with the progress bar at the bottom displays. Loads of one time stuff to do things like process the big files and load the ini data.

Regarding donations, I absolutely cannot accept them as I believe it would put the project on shakier legal ground than it already is and more likely to draw the ire of EA which we definitely don't want. In terms of programmers, they would need to have some familiarity with IDA or a similar tool to map out and understand the original binary and C/C++ knowledge to be able to write re-implementations of the games functions that behave similarly enough that the game doesn't notice we swapped them out.

There are some parts that could be done that don't need any further knowledge of the binary such as implementing an alternative audio engine which should be possible on top of what I've already implemented. They just need a C++ programmer with knowledge of something like OpenAL and maybe some hints from me as to how the original Miles audio class worked.

None programming wise, if I have questions related to how the game behaves when certain things are set or changed then people who are familiar with making mods that use the code I'm trying to understand could be a great help. You could also grab the binaries that come out of the appveyor build service and run them and see if the game behaves as it should and if not report bugs that I've introduced. You would need the game.dat from an English CD release patched to 1.04 though as Thyme is written against that specific version and won't run correctly with any other game.dat.
Go to the top of the page
 
+Quote Post
XoGamer
post 14 Jan 2018, 20:04
Post #75


Tactically Toxic
Group Icon

Group: Members
Posts: 131
Joined: 29 February 2016
Member No.: 12634



any new news?


--------------------
"It'll be a nuclear winter, this year General."
Go to the top of the page
 
+Quote Post

3 Pages V  < 1 2 3
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 January 2018 - 16:21