- Apr 19, 2008
Because Warsmash as a developer focused project (for now, until it is "player ready" to be used by anyone) is hard to get into, I enjoy sharing videos of gameplay that anybody can understand. Below I will include the videos of Warsmash. On this first post, I am posting the chronological videos documenting gameplay testing over the past year until this point when things were published about it here on the Hive:
|2020 Project Announcement|
|These are some old videos I posted publicly about Warsmash when I got the first runnable draft of a prototype.|
|April 2020 Systems Testing|
|These are some of the first tests with Warsmash after I implemented a basic ranged attack mechanic that would shoot a missile art from one unit to another (although the missiles had unlimited range).|
|May 2020 A New Evolution|
|In May 2020, the global COVID19 pandemic pushed me to live in a different location and I forgot the hard drive that had the UI files for the Warsmash custom UI that had been featured in previous videos, so I resorted to "hanging out on the beach" with a transparent UI to stay motivated. "Reforged George's Adventure" that is featured in the following video has a special place in my heart because I created it on the Patch 1.30s for a series of YouTube videos that I called "soothing World Editor" where I attempted to forsake complex modding and enjoy the simple things and make maps for the sake of fun similarly to how I did when I was young. In this spirit, "Reforged George Adventure" is a nonsensical single player RPG but it symbolizes, if nothing else, the kind of map that I hope to be able to make in 30-60 minutes and play for a bit of evening fun on Warsmash.|
|June 2020 A Month of Pathing|
|After my pandemic life changes, I still wanted to pursue Warsmash, and so to continue to be motivated I recorded this video of the Arthas vs Illidan fight rendered with the Warsmash engine, humorously titled, "the throne is mine now".|
You can see in this video that there are still pathing issues not present in Warsmash today, such as how the Naga Royal Guard is not able to path to a point where his collision box would end up intersecting the wall, because he considers it to be an unreachable/invalid location.
|July 2020 Units and Pathing|
|The summer found me continuing on my pathing system. Now after introducing the ability for units to path around solid objects, I still needed to have them path around other units. For this purpose, because I thought I heard someone on the Hive Discord channel joke that using a Quadtree would be a good solution to re-implementing Warcraft III's pathing system (and because it seemed reasonable) I decided to implement unit-on-unit collision using a quadtree tutorial from online. So, the A* search is still running to seek around the map, but it (and the raw literal "pathing"/collision system behind it) is using the quadtree to consider certain locations to be invalid.|
|August 2020 Systems Tuning|
|My video archive did not have a lot from August, but there is this video of work I was undergoing to attempt to make the turn rates of the characters more consistent with what is stored in their game data. Comically, I titled this video "Turn Rates Trying to look like Real life" (suggesting that Blizzard's Warcraft III is the real life).|
|September 2020 Unit Combat|
|The following video, "Everybody Attack the Rock Golem", depicts several advancements in Warsmash's combat system. Around this time I was rewriting some of the ability layers into something more serious that would support more of the stuff I wanted to support. We also see in this video that melee units are able to attack and we hear the sound of their attacks, which was a new advancement made around this time.|
Along with melee attacks, these improved systems also included the behavior of combat units to "chase" as well as to attack. Ranged attacks now had limited range and engine work was done to allow these ranged attacks to engage the pathing system to find a path towards the destination unit and chase it. While to a Warcraft III player the following video is nothing special, for me this was a systems test that showed that I can still get 60 FPS on this Java-based program code even when I have a huge horde of units in this sort of "chase" mode. This was an exciting achievement in Warsmash, but units were still not able to be considered "dead" and so the immortal negative-hitpoint Rifleman used as the dummy chase target for all the other units inspired me to play the "Invincibility" music from Sonic the Hedgehog in the background while recording this video.
|October 2020 Creating Experiences!|
|Until this point, I had been hyper-focused on systems. I was doing all of this system development, but I wanted to do a test where I put it all together and tried to enjoy what I was creating for what it is. A game engine system. So I created a custom map that was deliberately very simple and tested these combined systems all in one. I played as the Night Elves on a short 5-minute adventure to defeat a band of Orcs and their towers. I gave myself siege units to destroy the towers, and I made sure the siege units could not attack from within their minimum range, so my Ballistas had a hard time with the Grunts who chased them. This systems test also revealed to me that I did not yet support the death of Structure objects. The structures would leave behind their shadows and ground texture decals. There is also a moment where a Ballista is still alive, but has 0 hit points, which is weird. These are the kinds of bugs that come up during systems tests.|
I did not have hero characters, but I gave myself Shandris. She is a good unique unit who feels like a hero. Near the end I even had her charge a tower, which is not a strategically good decision, but I was getting overconfident. This helped me to ensure that the tower would auto attack multiple times in sequence. There was also effort in preparation for this video to make arrow missiles render properly, because they require axis-specific Billboard Lock which was not present in the mdx-m3-viewer at the time that I copied from it, and so I had to do a bunch of vector engine work to make the tower attacks in this video look as good as they did.
A few weeks went by and I was still passionately wishing for the future, yet celebrating how far I had come. I made a short video of Arthas meandering in the frozen mountains of Northrend on a custom map that I put together. To add a sense of mystery, I played some World of Warcraft mountain music while recording this one. One of the engine upgrades I had to make for this video was to make Arthas's horse tilt as it moved across the mountainside. This kind of pitch/yaw unit character tilting was not present in the mdx-m3-viewer, although it fully supported arbitrary rotation so adding this sort of feature was not difficult.
Overcoming Obstacles, Crossing Bridges
The next thing to fix after that was the Confirmation 3-arrow indicator on the right click, which I added to incorporate the logic of the walkable bridge.
Green Arrows for my Vampire
The previous test revealed a lot of "bobbing" around of the Vampire, though, so after that I fixed the interpolation decisions used to tilt the units:
Later on, I found myself back the big computer, and was discussing with someone online about Warsmash systems and the CUnit.update(...) method in the code. This was a good review of how things were working.
examples of CUnit.update(...)
The following day I tinkered with the idea of an autocast ability on Warsmash. In general, I have not made most abilities even today on Warsmash, so this was really the only experiment into autocast abilities that I have done yet on Warsmash. But, at the time this gave me a good opportunity to spawn in the cooldown and autocast button models for later use that are still sitting in the Warsmash UI to this day, waiting to be used when they are needed.
2020 10 25 23 40 07
|November 2020 Advancing Systems|
|After reviewing autocast buttons, CUnit update logic, and other unit and ability system behaviors, I moved towards investigating the notion of a "build" system. This video is the first footage of a peon who has a Build menu, although the video itself focuses upon icon click sounds with the ability icons:|
In this video, we play Warsmash on a laptop until FPS falls too low and it gets annoying
In this video we play Warsmash with a 2080 Ti, so that it never lags.
A week later I found myself spending the weekend developing out the build system so that it was actually able to create buildings, and those buildings were able to train units. YouTube suggested some epic Lich King music that I listened to while recording a video of myself building an orc base on Warsmash. Building an Orc Base on Warsmash! Sometimes, the simplest things can be our greatest joys.
Notably in the following video there is no economy. None of the icon clicks cost any resources -- and indeed there is no means to obtain any resources. The gold and lumber banner on the top of my screen is just little more than some placeholder pictures lazily thrown into the game engine.
A lot of upgrades were necessary to produce this video, such as dynamically adding new units into the game. This is the kind of video that makes people start to believe what I am making has potential, I thought to myself.
The supercomputer that runs YouTube suggested to me to listen to the epic music with the Lich King ranting and raving in the background. It probably picked this because I sent a video titled APOCALYPSE to a Blizzard employee back in 2017-2018 inspired by the Lich King "APOCALPYSE" lines from World of Warcraft. The video featured a recording of myself flying with a 3rd person camera through a modded HiveWE build where units were animated and so the world actually looked like Warcraft III, but in an external program. If you turn up the music on this one you can hear the Lich King say other things too, such as, "Watch, as the world around you collapses!" For me, Warsmash felt like a project big enough that it might collapse my Warcraft III modding hobby and energize it into becoming something entirely new -- so I likewise felt inspired by this song that the YouTube system had recommended.
At about this same time, people see that above video and they start believing that Warsmash is darned near finished. Gosh, it looks just like Warcraft III! So I was being told by somebody online that I should make a video of playing his map. Of course, given the unfinished state of Warsmash, this was a hard task. I tried playing the map, but unit selection hitboxes for several of the custom model files did not load correctly, and so clicking anything on the screen would always select the female orcs almost no matter what was clicked. Darn those female orcs!
In this video, we gather a lot of Kodo Beasts into one place to beat their drums together. In this way, we can celebrate fixing the EventObjectSnd system so ...
As we got to the November holidays, I also gave myself a break to celebrate and made a model for the lost Owl Moon Priestess hero inspired by the one that was going to be included in the Warcraft III game, but was not. This was the first time I ever created an MDX model file then tested it on Warsmash as my target engine instead of the base Warcraft III one.
In this video, we test out how successful we are with efforts to create the definition Owl Moon Priestess model.
In this video, we run around on Warsmash using the owl moon priestess hero.
Later, back on the topic of advancing the techtree systems, I added Rally points and made the Peon unable to build buildings in places that intersect other objects. In this video the Demolisher also has Attack Ground, which was not featured in the Rise of the Orcs video, but was something I quickly added after Demolishers had so many issues on that video.
For my Thanksgiving holiday, I made a video saying that I wanted to give "Thanks for Red/Green Pathing Status". Another technological hurdle that I wasn't sure about in terms of performance was this problem of drawing red or green squares over the terrain beneath the Build Structure indicator. However, with a little time and some testing, the system was mostly able to work! (In the later half of this video, the building construction starts to appear very messed up. This was because hidden peons who were within in-progress buildings were still able to obstruct the build location! But as I was recording the video, I was frustrated and did not know this was the source of the issues that I was facing. The music background in this video was a part of the Hades game OST. I have not played that game, but someone linked the OST as a source of music on the Factioneers Discord server.
|December 2020 Believing|
|In December, I got curious and tried loading the game menus again on Warsmash. I was wondering how they might look now that I had a basic light environment system.|
All graphics and sound are being displayed through the Warsmash code pipeline.
In this video, I put in a new function to set the facing of items, then call it randomly at random times to face random angles.
A week later I was back at it with the world of techtrees and systems. I implemented some fixes to the way that the peon declares when he "Can't Build There" in this video:
In this video, we see a real life troglodyte developing Warsmash UI.
|January 2021 Mining|
|Again pressed by someone to record a video of playing their map on Warsmash, I record a live video of testing their new version with no preparation and no source mod fixes on Warsmash in advance. I was using the 1.31 data "folder data source" configuration and so the game loads a lot slower than from an MPQ. But I also kept the video rolling while the map was loading, so that I would be giving an honest sampling of how long this engine really takes to start up on big maps sometimes. The music was recommended by the YouTube system (almost every time I opened it); comedically it wanted me to feel like my progress does not matter (which to me is funny, because I am excited by my progress and for me it totally matters).|
In this video, an elf runs around the wilderness in an Azeroth roleplay. Orcs duel, and boats sail the high seas. All of this happens in an open source utopi...
By Jan 11, I was back at the world of trying to build a working techtree gameplay. To that end, I had to be able to mine gold.
|February 2021 Creating Epic Experiences|
|With the combination of techtree and economy, I was able to do a 15 minute gameplay session and record the whole thing and really start to have some fun with the gameplay systems and complexity coming together. The title of the following video mentions capturing the Dragon Roost at the end of the game to make viewers think about my gameplay objective, but the idea that a gameplay objective exists at all means that I am winning at the illusion game. For the most part, as a developer, I was focused on the gathering of gold and lumber in this recording, since those had just been invented.|
Fun with that gameplay experience recording led me to want to do it again, but better! I improved the map as well as the source and did another 15 minute session that was similar, but with some more enemies to fight and more to do with the techtree of units that I built up and unlocked throughout the gameplay.
After that, I was starting to feel like Warsmash was changing from idea into being the thing that I wanted. To that end, I had some fun making a Penguin world map with a Penguin King who has Illidan's Channel (ANcl) that would cause him to dance. However, Illidan's Channel did not exist on Warsmash, so I had to implement this ability myself using the ability system and bind it to the ANcl code value. While enjoying this map, I listened to the recording of myself from 2019 on repeat from when I had been building Reforged animation previews into Retera Model Studio and celebrating by reminding myself that "there is no Penguin" by parodying the Matrix quote that "there is no spoon". If you think about it, it is philosophically true for virtual systems.
In this video, the Penguins do their ritual, because there is no penguin.
One of the things that I still wanted on Warsmash was to have Heroes and Items, but both of these were going to require Tooltips. So, to help myself move in that direction, I then made a new little test map and did some testing while trying to implement meaningful tooltips while hovering over mouse icons. In particular, this requires the parsing of Warcraft III color and text codes, such as |cffffcc00Level %d|r that I am sure any Object Editor user is probably very familiar with. Colored text is nothing new, but getting this system to work in the intended way seemed harder than I would have liked, because I was rolling my own UI components based on calls to LibGDX's BitmapFont class.
After this, I fleshed out that new Dungeon/Lava themed test map with some custom Fel Orc units and then recorded a video of myself playing it without ever testing it on Warsmash other than when it was only the Firelord and Acolyte. So this was a really interesting systems test. Even thought he map was made with Warsmash in mind, this was me dropping directly into the Warsmash game engine system on a map that had never previously been tested/tweaked with sourcecode fixes to target bugs. Because I had recently been developing 3D positional audio support with OpenAL, I was a bit let down by all the bugs with the peons chopping wood in this video. They were chopping wood at the top of a mountain, and the mountain Z height messed up all of my calculations that had been assuming trivially that only X and Y would really matter. There were also some similar issues with the gridded culling that I had copied from mdx-m3-viewer. In future videos after this one, these issues (although hard to see) are improved upon and resolved.
In this video, I play as the Fel Orcs on a custom map that I test for the first time. I had not previously tested this custom map, which was created immediat...
One of the other immediately obvious issues was the lack of Gold/Lumber prices on tooltips. These were then added, which was cool. The following video is a little long and is mostly similar to the previous one, so, skipping to the good part when we tell Peons to Build structures, and when we tell structures to train Grunts, would probably be a good way to save time.
In this video we have some fun doing a playtest checkup on some of the bugs from last night -- and tooltip prices!
I did a second take on the same video with some different sRGB color space settings turned on just for fun, and made the video public so that it would be viewable to the larger audiences. In this video, I also added in the proper citations and credits for the assets downloaded from the Hive for use in my custom map.
About this time, the user Wice Orc posted a comment on my video asking me to work with him to make maps for Warcraft III similar to the maps featured in the Fel Orc Adventure video. I tried to explain to him that I felt what I was doing was significantly outside of his world view and was not a recording of Warcraft III, but he was slightly upset and told me that he knew not to believe my lies, and was hurt that I was continuing to lie to him that this was not the original Warcraft III engine as he figured it must be.
To try to prove my claims, I made a few videos that were a recording of nonsense that Warcraft III would not support, such as displaying the game world terrain as a grid, and having a unit ability that would cause particle emitters to stop emitting within the game engine, and having a 3x5 command card.
This is a video intended to show Wice Orc the nature of what is trolling and what is not.
Working within this alternate dimension of modding ended up actually being somewhat able to pique my interest a bit, so I fleshed out what I was doing and modified the art assets to more seriously reflect the 3x5 command card that I had programmed in by just changing a simple constant in the source code. It was also quite fun to continue to experience the odd effects of shutting off particle decays on particle emitters. Due to shared code with ribbon emitters, this also shut off the ribbon decays in the Night Elf birth animations.
In this video we proof to Wice Orc that there is an alternate dimension beyond the realm of the clouds.
I finished up with this interesting little world by making one last video that was less targeted and more just me messing around and having fun, titled, "Dont Do Drugs, Do Warsmash".
I am not really sure how to explain the following video of Warsmash, so I shall simply assume that the previous video's title continues to be true. If you have read through this Warsmash history to this point, you might be entertained by the following, or you might wish to skip it. That is up to you. But this is a recording of another Warsmash gameplay experience of mine. The music is "Byzantium" by the band "Cusco".
A little more time went by and I found myself discussing performance with someone on Discord. I sent them a few of these interesting performance test videos.
On that same map, now that I had tooltips, I realized that I was nearing the point where I could begin to create the systems for Items and Heroes. I experimented with adding Strength, Agility, and Intelligence onto certain characters and providing them with unique names, as well as giving them an experience bar that would reset and increase the hero stats after filling up.
|March 2021 Menus and Items|
|At the same time, I began thinking how I would present a test build of Warsmash to users. The most straightforward way seemed to be through a simple menu to access some of the campaign missions, so I went back to my earlier December tests with the menu files and I tried to upgrade them to support clicking a button on the menu to jump to the game world. Obviously this has bugs that need to be tested, such as how transitioning from the menu to the game can leave the menu music playing if I am not careful. I am sure most Warcraft III fans remember how when we received our first copies of the Reforged Beta client that supported custom maps, due to a lack of testing staff other than the public Beta the game would continue to play the menu music after entering the game world for custom maps (similar to the bug Warsmash has in this video). I am glad that I was able to quickly find and fix this Warsmash bug so that it did not reach any public testers, but it surely helps me that I do not have a deadline.|
At this point I got a bit curious about Warsmash and modding and the way the menu felt and I started testing Warsmash with a series of other menu screens from other Warcraft III mods. In the following video I realized numerous flaws -- the menu button font is chosen incorrectly from the list of fonts in the game, and the bullets in the background move at incorrect angles. The menu buttons also choose the wrong sound to play when clicked (compared against the original Project Revolution client). There are some some lighting engine inconsistencies, but I did not focus on that because that complex stuff is something a person could focus on all day and risk getting nowhere, because of my lack of familiarity with how it might have worked in 2000s games.
At the same time, I also tried loading these same menu components out of a Reforged installation. Yes, these are still included in Reforged to help support any custom maps that might use them, or whatever.
This is the Reforged FDF game menu spawned with external program.
Here we can see a test where I fixed the font and sound loaders on the Project Revolution menu setup. Because these are source code mods, they will directly improve the base Warcraft III experience on the Warsmash mod engine as well, since the source code to load these UI elements was the same both with and without Project Revolution, and so an improvement with it is likewise still an improvement even without it (since it is at a low level).
In this video I test the Project Revolution menu assets.
I also tested with the old TToR mod, that was an inspiration to me many years ago, although some people rightly say that it was a big of a lagfest back in the day when trying to actually play TToR.
Along with this, I threw a few other tests at the engine to see what would and would not work. The following video is another demonstration of the same menu functionalities seen above.
At the same time, I wanted to develop items. I made a little test map with some items on the ground and two heroes, and I had some fun trying to pick them up. Initially I only had the capacity to pick up and to drop items.
I next developed a way to swap the location of an item within the hero inventory. This is a key part of the user interactivity -- the right click on the item picks it up and lets us either drop it, or put it into a different slot.
It was at this point that I found myself doing C++ work instead of Java for my day job, which gave me a weird feeling that I could have just written Warsmash in C++. So, amidst the passion of Warsmash, and the reality that it is a bit crazy, I celebrated what I had created by making a recording of myself testing several different game components, getting that War3-alike feeling, while simultaneously wondering what it would be like if I turned my back on it all and rewrote it in C++. What would it be like to abandon the project at this point to try to do it all along?
The option exists, but I have put a lot of time into this, so in reality I am going to keep doing what I am doing, even if there are better ideas for how to use time, because I am having fun. A new Warcraft III patch came out from Blizzard and I did not even read the patch notes. Maybe that was what I was thinking as I listened to this song, built a moon well, and then smashed my moon well to bits.
Back in the world of the menus, there was still much to do in order to support the different components of the FDF format. This video shows a build where the EditBox was not editable, but other things were coming along decently well, and the edit box was at least visible.
I kept developing the edit box, and in the meantime tested some other Warcraft III mod in the hopes of seeing whether I could use the WotLK menu theme on Warsmash successfully or not. You can see in this video that the EditBox is present for the profile chooser, but the list box is still not present.
This menu looks cool even when it is rendered by Warsmash.
At the same time, that mod that I got from a google drive link someone posted on the Hive did not seem to work very well on Warsmash. I would not really recommend trying it currently. There were a lot of bugs with how Warsmash loaded this particular bundle of content. I made a quick video to show someone this point.
The next hurdle for me to overcome in trying to set up menus was to actually load campaign menus, if I was going to do that. It was also entertaining to me to try, so I gave it some time. In order to solve this, I was also going to have to solve the problem in DrSuperGood's BLP iio plugin that caused it to load certain campaign textures without their alpha channel. You can see the issue in the following video, which I used while messaging DrSuperGood as an example of the kind of problem I was describing.
It turned out that solving this issue was quite quick to do. I forked the BLP plugin on github and on my fork I modified the Alpha loading so that it would always assume 8 bit alpha in one of the two code pathways instead of doing the "correct" behavior of reading the alpha flag from the file itself. In this way, my engine is able to load Warcraft III textures in the expected way even if those same textures are not consistent with the formatting flags for image files in general. So, the issue got solved, and the difference really shows in-game:
Around the same time, I did another test on my laptop. It was laggier than I would have hoped. I think it might have been using the integrated graphics. I suppose it is that same issue that people have with the Reforged menu. That is a reminder that people should probably not make PC computers so complicated to develop for.
That painful 20 fps goes up to 70 fps if I use 1920x1080 resolution.
So I went back to the gaming rig and focused on fleshing out the UI components for the List Box. There was not a scroll bar yet, but I added a way for me to create or change my profile for real and store it to a persistent storage.
After the list box, the next order of business was to get the game to support menu transitions between campaign menus. This seemed like a fun way to get to a usable thing. As you can see in this video, if your Warsmash is loading from a 1.31+ installation, then you should be able to use the menu button to switch between Reign of Chaos or Frozen Throne.
Once I was able to enter a map while the game process was running, rather than restarting the Warsmash engine for every map, I was going to need a way to exit from a map back to the menu. To that end, I wanted to add the top left "menu bar" in-game. However, this ended up taking quite a bit of time, because the buttons were SIMPLEBUTTON elements instead of GLUEBUTTON or TEXTBUTTON like others that I had encountered previously in the FDF format, and so I had to establish my renderer to know how to turn the frame definition for a SIMPLEBUTTON into something I could display. The following video is a short clip with a goat screaming that I posted on a Discord channel as a joke because of the frustration that I associated with having to make additional button formats and how this reminded me of the same feeling as a screaming goat.
However, with the advent of menu buttons, I was now able to do a first test of transitioning between the menu and the maps. These were encapsulated and loaded separately on Warsmash so that the map's contents are stored in its own class that will restart on every map, and thus we will never have the Warcraft III problem of custom SLKs in one map affecting the map that we play after it and causing players to desync and crash out of the game. It is really a trivial matter of scope, and I am OK with the additional load times if it means that there will not be desyncs later when I add multiplayer.
I captured on video the first time that I ever loaded multiple maps in sequence in the same process on the Warsmash engine, although it was a buggy mess and it crashed at the end of the video:
|I recorded some short videos using the engine again this time showing how the Custom Game menu did not work yet.|
However, at the same time, I got things setup so that I could start the engine with "-loadfile <map>" and then quit out of the map. And by this time I had cleaned up the ESC menu a bit so that its components were not floating around the screen.
It was at this point that I decided to accept the social pressure and be a bit more public about my project so that others could partake at least in understanding what I was doing. I did not do this because the engine is finished; it is very, very not finished. However, I wanted to accept the charitable offer of Hive hosting to see if I could get interest in the project from others to help me make sure that I continue towards achieving this vision as well as possible. I was going to achieve it anyway, but usually additional people even for discussions make projects better than they would otherwise be. Everything that I have created up until this point was only possible because of the Hive Workshop and the systems and libraries that it made available for Warcraft III modding. For my first available binary alpha release, I made a quick video showing how I enjoy the current build with the Fel Orcs -- this is a similar recording to the one in the past, but improved because now I have heroes and items available.