All Activity
- Yesterday
-
Jerad2142 started following 1.2.3.0/1.0.1.0 Relase (Tomorrow hopefully)
-
[blurb]This release focuses on improving stability, also there has been progress made to improve the crime system, slot machines, as well as adding new highscores, perks, pets, and many other features.[/blurb]Note: Currently I'm trying to trace down one final crash (I think I've got it but I'm running the 4hour internal server tests right now to see if its actually fixed, if all goes well I'll have a release by tomorrow. This release features new jobs, crime system updates, slot machine improvements, custom drop helicopters, a plethora of crash fixes, tons of improvements, and a massive code overhaul that fundamentally changes players expectations and initial experiences. In 2023, the main code file was 61,760 lines of code. It is now streamlined to 32,599 lines and has been broken out into only 100 different files. New features Reworked the Private Contractor job into a Bounty Hunter job. You now search town for marks, and these marks either need to be killed or arrested. In addition, the job decides if you need to destroy or evict the marks from their vehicle. Payouts work by giving a small amount for each task completed, and a final payout once the entire contract is completed. The vehicle task makes up 25% of that total payout, and all the individual marks make up the rest of the payout. You can press Y while holding your contract to see what the payouts are. Added 9 high scores related to the new Bounty Hunter job. Vehicles that have had their passengers evicted now serve as a bonus to people driving vehicle carriers. Returning those vehicles to the Pay N’ Sprays will give some payout to the Bounty Hunter as well as the person returning the vehicle. Reworked the slot machines: Made the payouts more fair and common. Added new effects and sounds to make it a more enjoyable experience. Slot machines now have another perk to be unlocked. Added 8 highscores related to the Gmax shipping job. When committing crimes, wanted levels will now appear on the player HUD. As a reminder, a lot of crime needs to happen in front of a police officer. Law enforcement now has new vehicles. The wanted system adapts to the players’ destruction and reacts accordingly. Players can now customize their drop helicopters with 30 options (some of which have to be unlocked) by calling 555-4371. Added a hotkey to select handcuffs (default is U). Added the Shock Collar perk which gives your melee based pets an electric attack. Improvements The train blockers now only exist when the train is closer. This allows players to go over the tracks, and though it’s not a perfect system it’s better than what we had before, and it’s the best I can do with this version of scripts. Cleaned up how the Carryall’s determine what vehicle(s) are being held (thanks seifmagdi). Bots that are melee-only will now properly charge their enemies instead of standing there. Mutant Assault and Deer Hunter maps now show their time remaining at the bottom of the screen. Time remaining countdown is now displayed when a partial vote is completed. MA Island now shows a counter for how many rioters are remaining. General code cleanup, not going to list all the specifics. Revised how the racetrack code works to get some more performance improvements for the server (it now only scans the players instead of all the cars and infantry on the map). Simplified the weapon drop code to improve stability. Hovercraft that end up underwater can now resurface faster. The sea buoy drop helicopter purchase is now more… interesting, to say the least. Fishing boat script zones now only scan for players to further improve the performance of the FDS. The pathfind for AI has been massively extended. Osprey, X7-32, and Leopard Drop Ship have custom crash explosions. Osprey now has a custom crash model where the lights turn off. As usual, I updated the credits file to reference new assets. When infantry cap is reached, newly created infantry will exist for at least 3 seconds before being removed if they’re determined to be the furthest from player sight. Several updates have been made to pets: Pets now follow the player at a further distance (an additional 2.5 meters). Added a pet duck. Added a pet pig. Civilian Car Road System: Cars will now drive in the parking garages of the following: Hospital, Apartment, 8 Green Bottles, skyscraper, Police Station, and Better Stay Motel. Cars will now drive in the downtown parking ramp. Cars will now drive around Mr Limmers. Fixed a problematic railroad crossing by the park that often would result in cars backing up and ending up in the water. Fixed a corner where cars were turning too tight near Fancy Pants. Road system pathfind has been rebuilt and taxis can now drive players from all locations... with minimal stupidity. Fixed a corner where cars were turning too wide near the Christmas shop Crime/Police Improvements: AI cops now know how to actually push the gas pedal down and accelerate. Cleaned up a ton of cop-related code so I don’t have to add the new cop vehicles into 100 spots. All cop cars now have horns (These can be used both by players and AI, middle mouse and right mouse control lights and sirens now). All police and military vehicles are now labeled correctly. Cops should now more consistently use their handcuffs when the player gets tased. The updated road locations above mean that cops can better locate players in those locations, be warned (blame it on security cameras or something). Rebalanced when the different tiers of police weapons, vehicles, aircraft start to show up. Civilian cars and taxis will now try to steer the opposite direction 50% of the time when backing up. This greatly reduces the chances of those cars getting stuck. Phones now support leading zeroes (0) on all numbers (A limitation made by how the system was originally built). PINs can also have leading zeroes as well. Trains, mechs, and dropships don’t use explosions to emulate collisions anymore. This is now all done in the code which saves a ton of network spam and extra code from being run. Cops and drug dealers will now move toward the doors of buildings instead of chilling out in the middle of road intersections blocking traffic. The Ghost Strike Craft now slides more, like a real hovercraft. Fixed an issue with the preset used to generate Pathfind (walkthrough). It was able to climb slops at super steep angles, which made AI think they could also climb those super steep slopes. Bug Fixes Quick fix for the Druggy script that was breaking for players when they road as a passenger. Fixed the E2 Hawkeye showing its passenger outside of the aircraft. Fixed “They see me trawlin’”. It was working in reverse, so now best case it will payout about $300,000 in 9 minutes. Sharks no longer break the trawlin’ perk. Small fix so the shipping job entry questionnaire can’t be spammed. Fixed a bug that spawned AI through the ground a lot when exiting vehicles. If an event is setup to give the player a pet, it no longer gives the max pet count. In addition, it doesn’t charge the player. Cleaned up the announcement text that used to have “Host:“ at the start of the message. Cleaned up how some of the message in the bottle code and bot code works to make it more stable in race conditions. Went through a ton of code that I made when I was 15 and added default constructors to reduce the chance of race conditions hitting uninitialized variables (changed 23 files and who knows how many objects). Basically, more code fixes. Fixed a bug that was causing cops to attack other cops if there was friendly fire. Cops now disengage the second the player is dead. Fixed a bug with 13 systems that were using game objects instead of id’s and thus could lose their references and end up crashing everything. More code stuff that works better for everyone. Fixed a couple of crashes that happened on loading the next map. Fixed a crash with the player pet system (it was using Get_GameObj_By_Player_Name, which is unstable in the version of code the ECW server uses). Fixed base defenses not attacking enemies when attacked. Fixed math behind the Gambler perk. Fixed some crashes (Calling Get_Sex in this version of the code has a stroke if the model is null). No sex for you, sorry. Fixed a bug that could cause destroyed or kicked vehicles not to spawn any civilians. AI exiting vehicles have to exit closer now, which will hopefully reduce the chances of them falling through the ground. Empty hands are no longer considered a beacon which was leaving projectiles scattered around. Improved housing garage and other zones to only scan for the player instead of all objects on the map which once again should help the FDS. Changed several zones from ‘script zone all’ to ‘CnC’ so that those zones will only scan for players to help with the performance and FDS more. The ocean entry of the Gas Station now is properly sloped instead of making people run over a curb. Reduced flickering in the desert. Police Charger headlights no longer have a red flash which would confuse the front of the vehicle irl. Fixed the police helicopter spotlight (pulled the version form Bear Island Redux) so it doesn’t artifact all over the screen. Curbs on the bridge are lower so AI can easily get up off the roadway (makes AI less exploitable). Fixed some aggregates that were being duplicated due to my sloppy work over the years. Sewer swimming zones now only check for players, the chances of AI ever getting down there is low so no reason to make the server scan all objects. Food Items and other beacon class items should no longer randomly cause the sky to reset or slowly fade red. Fixed several potential infinite loops, although rare for the server to just lock up. I did have it happen several times while testing crime so I’d like to imagine I’ve fixed all of them. Fixed a potential crash with the Jail system caused by an undersized array. Fixed a bug with the mech shutdown text being initialized wrong which could reduce game stability. Fixed a few memory leaks with how strings were being handled. Fixed an overflow with how death messages were being generated, which made the Chronovirus event less stable. Fixed a bug with how the server loaded certain config files. Potential fixes in the phone code (I say potential because I never saw it cause an issue to begin with). Fixed a bug with the Delivery Job that wasn’t formatting the payout correctly. Fixed a possible crash caused when the AI go to “hang out” with their friends. Fixed a crash with the wild deer if they didn’t load a place to go hang out with first. Fixed a potential infinite loop with the nuclear power plant is in meltdown mode (don’t think this was possible to have happen but fixed all the same). Changed how the code handles strings and made things a bit safter. Some minor fixes in Death Match. Some minor fixes on MA Front Lines. Cleaned up the formatting of numbers and fixed a bug on the Delivery Job code. Fixed a possible crash with the Deer AI on the main map. Fixed a lockup that could be caused by the nuclear power plant, although I think its unlikely that could have ever happened. Fixed an edge case that could cause the tutorial to crash the game if you managed to have no weapons and hit the drop key. Player Jail times should now be properly recorded. Added a fix for Mech voice lines. Previously, Mechs could potentially crash the game if you had enough voice files queued up. Added a fix for the Chronovirus event that was causing the game to crash (The death message said “The Chronovirus” but the algorithm used to detect gender was only expecting 2 letters like A or An at most. Fixed an out of bounds array in loading shaders. Fixed a bug that would allow certain housing objects to have more health and armor than their max. Fixed a bug in how PINs were hashed which could cause the hashes to not match on next game load. Fixed a bug with how phone numbers are transmitted to the client. The number should no longer do weird rounding as it gets really long. Fixed a bug with phone pound numbers (#) that could cause an array overflow and crash the game. Fixed a crash that has been in the game since the military base first started firing ICBMs. If the ICBM exploded on its way up the game would crash. Cleaned up some poorly formatted perk text. Pet cat attack now works properly. Fixed MA Front Line (oh fuck I think it's been broken for like 2 years). Full Release Improvements Fixed bluehell thanks to jonwil for supplying some legacy code so I could rebuild some of the older files used by the server and standalone release! Restored stock printscreen code, this means that screenshots will work in Windows 10/11; however, they will be in .tga format. 4.x Client Improvements Fixed water now having shadows on it. Fixed a bug causing some vehicles to fire when they shouldn’t be. Task Manager will now correctly list the game as Expansive Civilian Warfare Updated game icon to be the ECW icon. Updated some text strings that used to refer to “Renegade” Instead of Expansive Civilian Warfare. Known Issues Although I put countless hours into fixing crashes and lockups there definitely still is one or two floating around in the code that can cause the game to sometimes crash minutes into the game, other times hours. It doesn’t seem to be directly caused by killing and destroying units but it's always hard to say how things are interacting. Black screen is still an issue in the stand alone release, I think it happens a little less often nowadays but it definitely still is an issue. As such, I recommend anyone encountering it to just use the Modern Client, as that’s far easier to deal with than trying to pin down why standalone won’t work. Although tons of work was done to improve systems and add more stability, some of the changes I made can have the end result of truncated strings (instead of overflowing into memory). If you see any strings that are garbled nonsense or truncated please report them. Although tons of things have been improved, I still recomend playing on the server as hosting the standalone relase is less stable than the server due all these "futuristic" graphics pushing things to hard sometimes. Special Thanks To the creators of CppCheck which helped me make my final code cleanup pass days before release. To Jonwil for saving me tons of time. He was able to identify which crashes were related which helped keep me from thinking things hadn’t been fixed when they had. And as always W3DHub and their support along all these long years.
-
Mehmethan changed their profile photo
- Last week
-
WildCat joined the community
-
cyberarm changed their profile photo
-
gyxnb666 joined the community
-
Thanatos13official started following Killing_You
-
Thanatos13official joined the community
-
CyberedAce joined the community
-
hackcoolbro2020 joined the community
- Earlier
-
Learan joined the community
-
Apocalypse Rising Red Alert 2: Apocalypse Rising Game Night
cyberarm posted an event in Community Events
until. -
kausin joined the community
-
Pedeca started following Westwood 3D and S.A.G.E. Engine Source Code Modernization
-
Westwood 3D and S.A.G.E. Engine Source Code Modernization
Pedeca posted a topic in Command & Conquer
For the engineers out there who has been wanting to figure out how to modernize the Westwood 3D and/or Strategy Action Game Engine, this is for you. I have decided to impart all that I've scrounged up on both engines in the hopes it will be useful to someone in the community at large. A brief history of WW3D Engines begin somewhere, and for Westwood Studios' first 3D engine, they built theirs off an existing 3D engine. That engine was the SurRender 3D engine by Hybrid Graphics (now Umbra under Amazon). That was a 5 year odyssey that started in 1997 with Project "Commando" and ended (after two delays) in 2002 with C&C Renegade. The longest game development in Westwood Studios history (C&C Tib Dawn and Tiberian Sun were each 4 years by comparison), but, to be fair, it was both Westwood's first fully 3D project and first person shooter (and a hybrid one at that). When Westwood Pacific (EA Pacific/EALA) was looking to make a new 3D engine for RTS games, they considered multiple engines such as id Software's id Tech 3 (the "Quake III engine"), Epic Games' Unreal Tech Engine (likely Unreal 2), and Monolith Productions' LithTech, but settled on an in-house engine they already owned for SAGE. After Westwood was shuttered and reborn as Petroglyph Games, they too built their Alamo Engine based on the Westwood 3D engine, and then their modern GlyphX Engine after that. Yes, GlyphX is the most modern implementation of the WW3D engine, though GlyphX is more like a fusion of the capabilities of WW3D and SAGE/Alamo. So it's for more than RTS games. So, with that out of the way, let's take a look under the hood. The Westwood 3D Engine Genealogy At A Glance It's best to start with a visual aide to see how these engines branched off and what Application Programming Interface (API) they use. Attached is a simple flowchart I made that tracks the evolution of the engine from SurRender 3D all the way to SAGE2 and GlyphX. If the image (for whatever reason) never loads or is lost in the future, the genealogy looks like the below: [SurRender 3D (OpenGL)] -> [WW3D (DirectX8.1)] -> [SAGE 1 (DirectX9)] & [Alamo Engine (DirectX9)] -> [SAGE 2 (DirectX10)] & [GlyphX Engine (DirectX10, 11, 12)] Yes, that is correct, the engine originated with the OpenGL API before immediately switching to the DirectX API. This was done because Westwood had more experience working with the Windows API than others at that point. This could suggest that the main game code for WW3D and SAGE is API agnostic, but there is much of the code that was built for MS Windows programs which entails extra work to create something that also works on other OS's like Unix/Linux (though Steam already wraps all games in a wrapper that allows them to run in the Unix/Linux environment regardless). The Graphical API (the Construction Yard of the engine) So with that, the first and most obvious improvement for the engine lies with the graphical API. Renegade was built on DX8.1, the same API that the DirectX Box (Xbox OG) was built on and C&C Generals was built on the next iteration with DX9, the same version of the API used for the Xbox 360. Now, most of you are probably chomping at the bit, wanting to use the most recent iteration of DirectX as the chosen upgrade. I do not advise that. DirectX12, like with Vulkan, is a low level graphical API that is built with C, unlike older DirectX versions and OpenGL, which both are built in C++. So there is a whole learning curve to overcome that even some developers have struggled with. Hence, the best choice would be DirectX11 since it's still in C++ and you can use it as a fallback renderer for when you do choose to implement DX12 (like most companies do). A similar dual API technique is done with OpenGL and Vulkan (like how id Software implemented id Tech 6). With the API upgraded, we can have access to many modern features, such as superior texture compression (BC6 and BC7) and material shaders in line with the most recent version of WW3D (GlpyhX). Although DX8.1 and DX9 do have texture compression (via DXT) and can do material shaders, they are comparatively primitive and restrictive. So if you choose to continue to use the old API, I'm just letting you know that you can still do some advanced tricks. All versions of DirectX can be downloaded directly from Microsoft's site. OpenGL and Vulkan can be downloaded form Khronos Group's site. All can be integrated within Visual Studio. All necessary for compiling new .dll files for the engine. Some DX11 samples and tutorials: DirectX SDK Samples Wiki RAD Tools and Their RADical Uses (and their replacements) RAD Tools were some of the most popular proprietary engine tools of their time.... that was until Epic Games bought them out and they were surpassed in multiple aspects. Thus it's not all too necessary to replace all of them, but one in particular will need an urgent replacement. WW3D and SAGE both use them, so let's evaluate each one individually. BINK Video (for Cutscenes and EVA Unit videos that play in the Radar) When you need to compress a video file so that it fits on a CD/DVD disk, you either have to create your own method of compression, or use someone else's. For many, that solution is BINK Video. You've probably seen the little twister logo on many a game splash screen on start up, well I'm here to tell you that BINK is for real time video compression and file reading. Like a file zipper/unzipper for video files. BINK comes in two versions: BINK 1 (.bik files) and BINK 2 (.bk2/.bik2 files). BINK 1 is what all WW3D, SAGE 1, and Alamo games used for their video files, while SAGE 2 and GlyphX started using BINK 2. The major difference between the two versions of BINK is that the second edition requires that your engine's Math library contains SSE (specifically SSE2 or later if I recall correctly) in order for it to work (oh and BINK 2 is of a higher quality and compression than BINK 1). That's not a calculation that either WW3D nor SAGE can do (as they have the same WestWood Math library). This will be expanded in a later section regarding the Math Library and Physics Library. So if you want to continue to use BINK, you're in luck! It's still the industry standard for video compression (found natively in Unreal and Unity) so it's not too difficult to implement. There is, however, one catch: BINK is propriety software, and thus you will have to pay for it if you choose to sell your game/project on the market. If not? Well then you can download the tool and SDK and use them as you please, but do be mindful that if you are to go commercial, you will need a license to continue using it. The running price for a BINK license is $11,000 USD per game and per platform. No free lunch. [BINK Link] If that's too many credits, then I do have an alternative for you open source adherents and it's the WebM format! It's open source, free to use, and offers superior compression than BINK 2! However, you will have to adapt the source code to replace the all the BINK code references with WebM (and update the Math Library all the same). Not too hard, but work all the same. Companies like Valve have replaced BINK with WebM in Source 2, so there's your big dev implementation. [WebM site (go to Codec for source code)] The Miles Sound System (for epic SFX, Spacial Audio, and the Soundtrack output) [DEFUNCT] Westwood Studios games, and EALA by extension, are well known for their awesome audio. Great sound mixing, rich SFX, and even 3D audio for that EAX (Environmental Audio Extensions) experience that allows for echos and accurate audio depiction. This was all accomplished in WW3D and SAGE with the the Miles Sound System... which has been retired as of 2022 and is no longer offered nor downloadable from RAD Tools. This also means updating the Assimp3 code (misspelled as "Asimp3"). [Assimp] That's short for "Asset Importer," stop laughing. However, modern audio implementation may have better solutions to use for asset importing. Thus a replacement is necessary. So here are some great alternatives: MSS Alternatives List System Price External Links Wwise Depends on the license ($0-$40K) Wwise (Audiokinetic) FMOD FREE FMOD Steam Audio FREE Steam Audio Source Code (Valve) OpenAL FREE OpenAL OK, this needs a bit of explaining. Wwise and FMOD are the audio tools that you use to make your soundscapes, SFX, and everything audio that will go into your game (formatting and such). The MSS replacement. Steam Audio and OpenAL are the source code that implements that audio in real time for your game. WW3D and SAGE use Westwood Audio for implementing audio, but it will need to be adjusted to work with Wwise or FMOD and those source code libraries have the code to implement that change (handy!) Why Wwise? It's the best audio tool on the market used in all the biggest games. It has a variable license depending on the size of your project (which also means variable access to the program's capabilities). You can download the Wwise program free like the programs and source codes on the list, you will just have to apply for a license when it comes to making anything you intend to make money with. Otherwise (heh) it's free to use for small scale stuff. FMOD is still there if you need it. Oodle and Telemetry (the other tools you may or may not need) Oodle is a file size optimizer tool that helps you keep your game as small as possible. If you have ever seen the octopus Oodle logo on a game splash screen, that's what it's there for. There are alternatives like ZLIB (which SAGE uses, not a bad thing to add to WW3D), so you have options. Oodle costs $11,000 USD per game per platform. [Oodle Link] Telemetry is a tool that helps you optimize your game by showing you how it's performing in real time (you know, like showing you the Frames Per Second count). SAGE natively used BYTEmark for telemetry (we'll talk about this again later). There are others out there, including natively in-built telemetry tools in engines such as id Tech and Panda3D if you want to borrow other's tools via source code. And of course there are likely many others on the market to choose from. Telemetry costs $9,500 USD per game per platform. [Telemetry Link] As a reminder, both Oodle and Telemetry, as with any RAD Game Tool, are free to use so long as you are not charging anything for your game. NVidia functions (our first obsolete code!) [OBSOLETE] NVidia, when they got into the video game ecosystem, added new features that helped support the industry. Those tools and source code were distributed by NVidia for use by every company. They were so useful that they were integrated directly into Graphical APIs. Which means that the code that WW3D includes from NVidia is completely obsolete as it's handled natively by the DirectX API (and even OpenGL and Vulkan). It really shows WW3D's age and how long it took to develop Renegade. NvDXTLib (the oldest way to implement real time texture compression) [OBSOLETE for WW3D] Back before DXT compression was added natively to DirectX, this library in combination with NVidia's online tools were the only way to implement real-time texture compression. Since at least DirectX9, this is no longer needed. Just remove it from the WW3D code like SAGE did. Any modern API like DirectX11/12 and OpenGL/Vulkan have native texture compression built in, so you will never have to bother with this part of the source once you upgrade the graphical API. NVASM (HLSL the old fashioned way) [OBSOLETE for SAGE] Once again, back before the High-Level Shader Language became native, this was the only way to add the component to APIs like DirectX8.1. "But wait! SAGE is built on DirectX9!" I know, it's really weird to see this in SAGE given that API base. Perhaps it wasn't native to DX9 at the time, but it was definitely soon made obsolete by later versions of the code. So, yet again this is the case of a useful code base provided by NVidia that became a standard feature in modern graphical APIs like DirectX, OpenGL, and Vulkan. You can remove this code as soon as you update SAGE's graphical API. Lightscape and 3DSMax (3D asset importers, and what to do about them) All those who work with WW3D and SAGE know about the Westwood3D (.w3d) model format, but video game engines also include other asset formats to maximize the use of the modelling programs that they use to create 3D models in. For WW3D and SAGE, the other kind of assets include the Maya Binary (.mb) and 3DSMax (.MAX) model formats for static objects (though I cannot be certain if WW3D also had GMAX file compatibility, not that you would want it). Lightscape was an old software that Westwood used for making environments in Renegade with the lighting included. This was to import assets from programs like GMAX (the old game specific version of 3DS Max) without needing any conversion. SAGE replaced Lightscape with 3DSMax's asset importer. Later, SAGE 2 seems to have replaced 3DSMax with Maya (as shown with the behind the scenes for Tiberum Twilight). When it comes to source code involving 3DSMax and Maya, you will have to need to contact Autodesk directly to get that and possibly a license. Not much you can do about that. Unless, of course, you decide to use other model formats. You have a great variety of model formats to choose from: Filmbox Object (.fbx), Wavefront Object (.obj), LightWave Object (.lwo, Westwood made their 3D animated cutscenes in LightWave3D), COLLADA (.dae "digital asset exchange"), Extendable 3D (.X3D), Universal Scene Descriptor (.usd or .usdz), and gITF (.gLTF and .glb). So you have options outside of Autodesk's proprietary formats to use in your version of WW3D or SAGE (and you can just use as many as you want! The sky's the limit!) Many of these formats have their importer/exporter source code online. Do note that only some formats include animation data like .W3D, such as .lwo (hence why id Software's id Tech engine still use it alongside .md6), .X3D, .usd/.usdz, and .gLTF/.glb. Knowing that, it begins to make sense why companies made their own 3D formats to contain both 3D model data, animation data, and other properties like for particle emission. BYTEmark (aka NBench, the BYTE Magazine benchmark tool) OK, now we can talk about SAGE's telemetry. SAGE added BYTEmark (aka NBench) to the code for checking the performance of the game while it's operating. It's still very usable for WW3D and SAGE when it comes to testing your levels. You can get it here: [BYTEmark Link] [NBench Link and others]You can read more here: NBench (aka BYTEmark) BYTEmark has the following features: Numeric sort - Sorts an array of long integers. String sort - Sorts an array of strings of arbitrary length. Bitfield - Executes a variety of bit manipulation functions. Emulated floating-point - A small software floating-point package. Fourier coefficients - A numerical analysis routine for calculating series approximations of waveforms. Assignment algorithm - A well-known task allocation algorithm. Huffman compression - A well-known text and graphics compression algorithm. IDEA encryption - A relatively new block cipher algorithm. Neural Net - A small but functional back-propagation network simulator. LU Decomposition - A robust algorithm for solving linear equations. However, BYTEmark is outdated as a telemetry and has the following shortcomings: It cannot access the GPU (it was made when the CPU was still the common processor for graphics in the 1990s). These benchmarks are meant to expose the theoretical upper limit of the CPU, FPU, and memory architecture of a system It cannot measure video, disk (not like we're distributing on disks, more on that later), or network throughput (those are the domains of a different set of benchmarks) NBench (BYTEmark) is single-threaded. Currently, each benchmark test uses only a single execution thread. However, most modern operating systems have some multitasking component. How a system "scales" as more tasks are run simultaneously is an effect that NBench does not explore. So rather out of date with modern architecture So, if you seriously want to make a modern game on WW3D or SAGE, you will need a modern telemetry tool that can access modern hardware and networking. There are multiple available telemetry options available. The aforementioned Telemetry by RAD Tools, but there are also others out there that are specific to certain metrics (like networking) that can be used in tandem with BYTEmark. Maybe the community will create some kind of new solution out of existing telemetry code bases. This one is definitely a undertaking knowing how many WW3D and SAGE mods are multiplayer-centric. Might not hurt to ask what either Petroglyph or EA uses for their games. STLport (the multiplatform ANSI C++ Standard Library) [OUTDATED] STLport was a C++ library extension first introduced open source back in 1997. It's a library of standardized operations that work across multiple platforms, similar to Microsoft's STL library, but faster. There's a lot of useful tools in the library, such as those for networking. This was added to SAGE and likely was still used in SAGE 2. The version SAGE 1 used was STLport 4.5.3, but you'll want the most latest release of STLport which you can get here: [STLport 5.2.1] You can also get the older STLport that SAGE 1 used here [STLport 4.5.3] However, STLport is antiquated. Users started using alternatives since before 2014, and its last update was in 2019. Some users reported that it's not compatible with C++17 standards or above. That's not good when you're modernizing the source code. So this too will need to be replaced with a more modern implementation. Lucky for us there are many available to choose from. First up is Electronic Arts' very own EASTL library. The very same used in the Frostbite Engine: [EASTL source] No doubt if there ever was a SAGE 3 it would have used it, just like the Generals 2 project was using it (because it was using Frostbite). This library is up to date and maintained by EA, so that works for us. Another replacement option is the Boost library [Boost Library] which could be a possible consideration. Most users of STLport replaced it with CXX [CXX Tools] which might work as well. Lastly there is also the Qt library [Qt Base] which might also be considered. Umbra Occlusion Culling (how the camera renders what's in view) WW3D inherits SurRender3D's Umbra occlusion culling solution for the game camera's frustum in-view rendering. That means WW3D uses Umbra to render what's visible and not render what's not visible [Umbra Occlusion Culling Explanation]. Umbra is still used in the industry, but it's proprietary under Umbra (formerly Hybrid Graphics) and owned by Amazon. This means you would have to get in contact with Amazon if you want to use Umbra via a license. Umbra is still used as a middleware for modern implementation of occlusion culling (even id Software used it) so it's worth checking out if you can get a license. [DOOM2016 Graphics Study] SAGE is the evolution of WW3D, but it does not use Umbra, likely to avoid royalties, but also because new solutions were quickly coming about that were more useful for RTS games. That said, SAGE's occlusion culling is the obvious replacement for Umbra, but we shouldn't stop there. Newer occlusion culling solutions have appeared that supersede older methods due to superior rendering speed and efficiency. Doom 2016 uses the highly efficient Clustered Forward Rendering method that might be a perfect natural upgrade for WW3D and SAGE (using SAGE's code as the base). In the meantime, it might be just as useful to borrow id Tech's occlusion culling code for id Tech 4 as well [id Git for all open source id Tech][modernized Doom 3 BFG using Vulkan and DirectX12] Bonus: here's a solution someone made to combat wall hacking [Corner Culling anti-hack]. Might be useful for those who work with competitive multiplayer. GameSpy SDK (RIP GameSpy) [DEFUNCT] When GameSpy went down, it took all the multiplayer servers with it. C&C was heavily dependent on it for providing reliable multiplayer. As such it will have to be replaced in order for multiplayer to function. Luckily, GameSpy was used with so many games that there were multiple replacements made for it. You have options to consider: OpenSpy [OpenSpy client code] UniSpy [UniSpy SDK] Valve's Steam Networking SDK [Game Networking Sockets SDK] Finally, there's also working with the C&C Online team to fully integrate their C&C network hooking solution into the source code directly. [CNC Online] GNU Regex (open source regular expressions) [OUTDATED for WW3D] WW3D uses the GNU Regular Expressions library for its code. This particular library was likely used for the POSIX functions, which are now fully integrated with modern C libraries. Yet another thing that shows the age of WW3D. You can remove this code just like EALA did for SAGE's implementation. What's POSIX? Well it's more for UNIX/Linux compatibility [What is Posix?] SafeDisk API (Remember when you had to enter the CD Key?) [OBSOLETE] Both WW3D and SAGE used to use SafeDisk to prevent illegal copying. By Windows 7, this API was on its way out needing backwards compatibility and by Windows 10 it is no longer compatible. Honestly, with the rise of online game clients like Steam and GOG (and C&C fan sites), are we really selling computer games on disks anymore? You can completely remove all the code related to the SafeDisk API in WW3D and SAGE without ever looking back. It's no longer needed. That aside, the API was proprietary and now it's no longer offered. Microsoft Cab Archive (for compressing data) [OUTDATED for WW3D] WW3D used the MS Cabinet Archive Library to compress files into the .CAB format. It's a bit different from zip files in compression method, but in the end it's for the same reason. You can find some code online for .CAB extractors, but SAGE replaced this with the ZLIB library to use zip files instead. So that's probably the best option as well. ZLIB (Zip files for gaming) [The SAGE Solution] SAGE uses the ZLIB library [ZLIB 1.3.1] and it's code for using it should be copied into WW3D. It's a logical upgrade. That aside, if you wish for superior file compression, Oodle from the RAD Game Tools is also available at different levels of compression. Though zip files should serve you decent until you start making your game rather large. LZH-Light Compression (additional compression option) [OUTDATED for SAGE] SAGE also includes the LZH-Light compression library [LZH-Light Code]. It's an old one and needs to be replaced because there are no recent releases for it and thus it's not compatible with modern C++ standards. [What is LZH-Light?] It's part of a family of LHA (originally "LHarc") archiving programs made by Haruyasu "Yoshi" Yoshizaki. Luckily LHA is still around, even if Oodle has replaced most compression methods for games, and you can get source code for it here: [LHAsa source] There are other versions out there as well for various OSes since the 90s, so there's an interesting assortment to dig around to find alternatives [LHA Wiki with further links] RTPatch Library (for updating the game via Patches) WW3D uses the RTPatch library for patching the game code. This is a proprietary library that was used by practically all the major companies back in the day. You might be able to get a modern implementation of it from Pocket Soft [Pocket Soft Contact]. Though it would appear that SAGE replaced it (as did many companies with their later engines), so it's a good bet that you could probably just use what SAGE uses. Or any modern patch solution really. The source code only exists to decode the RTP patch format. There is a modern patching solution that EA uses called Known Version Patching (KVP) [KVP] that makes use of Amazon services to do the patching [The Amazon Component]. I'm not sure if EA does licensing for it, but it wouldn't hurt to ask. Then there is the custom patching route. You can pay for a lifetime license to use a customizable game patcher for either WW3D or SAGE [Game Patch Creator] It's worth consideration. Java Runtime Headers (for online servers in WW3D) This is one is the easiest to do. Just grab the most recent Java Runtime Header library and add it in [Oracle Java Downloads] However, this is an old way of handling online. SAGE replaced this fully with its version of the GameSpy implementation, and with WW3D also having GameSpy probably means that the Java code was a transitional backup. All the same, it doesn't have to be removed, and can simply be there as backup still. Math and Physics Updates (Modernization Options for WW3D and SAGE) It's not necessary to update the Westwood Math and Westwood Physics libraries in order to compile your code, however, it is a major upgrade to get more out of the engine. You cannot use image compression like BINK2 without scalable vector graphics, which requires the SSE math function at version 2 or higher. [Image Processing Libraries that contain SSE4.2] <-(might be necessary if the below math libraries do not include SSE4.2) When EALA transitioned from SAGE 1 to SAGE 2 with Red Alert 3, they didn't just change the graphical API from DX9 to DX10, they also replaced the Westwood Math and Physics libraries with RenderWare's Math and Physics libraries. Unfortunately, Criterion's RenderWare Engine is still proprietary with currently no way to license it despite EA removing engine restrictions for their devs. So that means we need alternatives to either splice into the Westwood libraries, or to replace them. There are many options to choose from for C++ math libraries, so it's not that hard to find one that works. Here's a few: DirectX's XNA Math Library [XNA programming guide], OpenGL Math (Not just for OpenGL) [GL Math], Sony's Vector Math Library [Sony Vector Math], and Eigen (the math library that Panda3D uses) [Eigen Main Site]. As for physics, there are multiple solutions: Havok (outperformed by other libraries) [Havok Physics], Bullet [Bullet Physics 3.0], ODE [ODE Physics (old and used to fill gaps in Bullet)], and Jolt (doesn't have impulse, but has everything else) [Jolt Physics]. (Personally, I support using Jolt) The Final Hurdle for either WW3D or SAGE As described in the Renegade and Generals source codes (compiling section), you will have to update the .dsw file (old Visual Studio file) to the modern Visual Studio format. This will be a pain in the butt, however it is necessary. I wish the best to whoever has to do that process, because it will be slow. Anyway, thank you for reading this. I hope this ends up being useful to someone. -
hello joined the community
-
JameshaB started following RA2:AR - Update 0.9.0.5 and Adding bones to skeletons while not affecting child animations
-
rda joined the community
-
SteelGhost changed their profile photo
-
Can you confirm this is false positive?
-
LT777 started following False positive ?
-
Description Tiberian technologies detected as malicious. Reproduction Steps go to google for virustotal go to tiberian technologies mirror try some version starting by the most recent one. 4.drag and drop them to check those
-
--------------------------- Changelog For Tiberian Sun: Reborn 2.0.4.3 Release --------------------------- - Un-uglified the cockpit HUD colors. - Snowy grass clusters are now two-sided. These are mainly visible on Wintervale. - Titan's arm laser has been made visible again. - TS_Anchorage: Fixed terrain seam by warehouse. - TS_Cliffs: Added a few walls and gates, and applied edits to the fences on the cliff. - TS_Field: MSA is now its proper cost.
-
nexus changed their profile photo
-
nexus started following Quick Question: How do i create a RA2 apocalypse rising server?
-
If you PM me a password I can make joining under a name require a password, at least for Interim Apex. If you have IRC you can do this yourself by PMing !register ooflyoo <password> to ikmapsbot
- 1 reply
-
1
-
[blurb][/blurb]
-
until
-
FYI, there is someone impersonating ooflyoo. It's mad disrespectful to do something like that. And I hope this person is reprimanded at some level. But, as I suspect he is a mod, well we know how that will go down.
-
ZeitGoetia changed their profile photo
-
Recently, I wanted to return to Renegade multiplayer, but I encountered an error: "Failed to download required packages. The game will be left. Please try to rejoin." I reinstalled Ren and patch TT, but that didn't help. Then I started looking for solutions and deleted the ttfs folder, but that didn't help either. I tried to restore that folder by reinstalling everything, but the folder didn't appear. What should I do? I can join certain servers, but not RenCorner. Also, when I was playing Ren, I was plagued by the error "Failed to connect to the backend." However, I resolved that a while ago dancing with a tambourine Computer model: N5 Of, Windows 10, modern components, and sufficient disk space.
-
dshowwatrs changed their profile photo
-
Apocalypse Rising why no one playing ra2 apocalypse rising
Robomax21 posted a topic in W3D Hub Discussion
a few months ago the servers were full of players but now they are mostly empty. what happened? -
View File Remastered/Full IA Map Music NOTE: THE UPLOAD LIMIT FOR FILES IS 390.63MB. AS A RESULT THE FILE IS ON MEDIAFIRE. THE DOWNLOAD IS JUST A LINK! DOWNLOAD THE FILE HERE! https://www.mediafire.com/file/gb29vbw9c4yym3v/IA+Soundtrack.rar/file -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Happy 30th CnC! Tired of listening to one track per map? Me too. I made it so instead of one song per map it's now a 1 hour 30 min mix of music per map. Each map is unique which means there's over 13 hours of new music for gameplay. The audio The music included in the pack are from various things such as - Red Alert 1 / 2 Soundtrack To install: 1. Download from Mediafire [https://www.mediafire.com/file/gb29vbw9c4yym3v/IA+Soundtrack.rar/file]. 2. Drop files into D:\This PC\W3D Hub\games\ia-release\IAFiles\InterimApex\ttfs\files Notes: - If you leave the match, that music for that map will restart. - This is not complete. Cold Wall and Ulake for example still need to be done. This is about 70% complete. - I don't have a track list and I really don't want to write one. However, if you'd like to know what song is which just msg me on discord and i'll msg back. - The files are 2.1 GB or so. Do not download this is you have no space or your computer is a potato. - The files used prior are low quality MP3's from like 2009. I went ahead and used FLAC / High Quality 320kbps MP3's to make these. Therefor you're getting the highest quality possible. You'll notice the files are MP3 [instead of WAV or FLAC]. This is required as the game uses MP3 formatting to play the music. I've went ahead and exported at 320 kbps as it's the best I could do. - Some of the maps use the same track [Orca Heights + Winter_ASS]. Enjoy! Happy 30th CnC! Lets go for 40. Submitter Threve Submitted 09/11/2025 Category Custom Audio
-
Version 1.0.0
33 downloads
NOTE: THE UPLOAD LIMIT FOR FILES IS 390.63MB. AS A RESULT THE FILE IS ON MEDIAFIRE. THE DOWNLOAD IS JUST A LINK! DOWNLOAD THE FILE HERE! https://www.mediafire.com/file/gb29vbw9c4yym3v/IA+Soundtrack.rar/file -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Happy 30th CnC! Tired of listening to one track per map? Me too. I made it so instead of one song per map it's now a 1 hour 30 min mix of music per map. Each map is unique which means there's over 13 hours of new music for gameplay. The audio The music included in the pack are from various things such as - Red Alert 1 / 2 Soundtrack - Tiberian Sun/Dawn/Expansion Packs - Tiberian Sons [Frank's Redone Versions] - CnC Generals [All Themes] - Red Faction / Quake II / Deus Ex / Perfect Dark / Total Annihilation / Homeworld / MechWarrior - Saki / Simple Syrup / Satin Sheets / - Matt Majcan Remixes of Tiberian Sun Soundtracks / ICBM Remix of Valves / Lupas Fading Dusk OST and many more! To install: 1. Download from Mediafire [https://www.mediafire.com/file/gb29vbw9c4yym3v/IA+Soundtrack.rar/file]. 2. Drop files into D:\This PC\W3D Hub\games\ia-release\IAFiles\InterimApex\ttfs\files Notes: - If you leave the match, that music for that map will restart. - This is not complete. Cold Wall and Ulake for example still need to be done. This is about 70% complete. - I don't have a track list and I really don't want to write one. However, if you'd like to know what song is which just msg me on discord and i'll msg back. - The files are 2.1 GB or so. Do not download this is you have no space or your computer is a potato. - The files used prior are low quality MP3's from like 2009. I went ahead and used FLAC / High Quality 320kbps MP3's to make these. Therefor you're getting the highest quality possible. You'll notice the files are MP3 [instead of WAV or FLAC]. This is required as the game uses MP3 formatting to play the music. I've went ahead and exported at 320 kbps as it's the best I could do. - Some of the maps use the same track [Orca Heights + Winter_ASS]. Enjoy! Happy 30th CnC! Lets go for 40. -
Imo the Disruptor needs a shooting distance and armor buff and make it 1300$ like in Tiberian Sun. It should be GDIs high tier tank. At the moment its even inferior to the cheaper devils tongue.
-
[blurb]Check out our upcoming Game Nights for the C&C 30th Anniversary event! We have IA, AR, APB, and TSR lined up! Check the forums or our Discord for date and times.[/blurb] Check out our upcoming Game Nights for the C&C 30th Anniversary event! We have IA, AR, APB, and TSR lined up! Check the images below for the dates and times. RSVP on our Discord! Calendar link: https://w3dhub.com/forum/events/ Discord link: https://discord.gg/jMmmRa2
-
- Game Night
- Interim Apex
-
(and 3 more)
Tagged with:
-
[blurb]On September 27th at 7 PM GMT[/blurb]
-
[blurb]On September 14th at 7 PM GMT[/blurb]
-
[blurb] On September 10th at 1 PM GMT [/blurb]
-
until
-
Apocalypse Rising Red Alert 2: Apocalypse Rising Game Night
cyberarm posted an event in Community Events
until