• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Teaser Videos

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.
At the same time, I was doing systems tests like the following to try to beef up performance on Warsmash by copying more of the performance culling logic out the mdx-m3-viewer. However, the following video was an example sent to someone to discuss how my performance culling had some interesting typos...
Eventually the performance culling was more or less successful, and I was able to test some map sent to me by the user Lycan that was able to run at 60 FPS when previously it had tanked.
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".
At the same time, to be serious about Warsmash I knew it was going to need a pathing system, so I copied A* off of the relevant wikipedia article. But before I did, I knew that pathing is a 2 part system. The first part is that units should not be able to pass through certain objects, and the second part is that units must find their own way around the objects. We can think of this as "pathing" versus "pathfinding", and "pathfinding" is a much harder problem. The following video, aptly titled "pathing test" shows how I was able to tell this wisp to cross over solid objects and the wisp would become stuck, attempting to go literally to where I commanded:
So, to work around this, I attempted to implement pathfinding which led to the following -- a video humorously titled "Spaz Attacks" to poke fun at how the units move in a spastic motion when doing a raw A* search on the pathing cells when each cell is considered as a search node.
Ultimately, efforts to clean up the motion and condense the search path into something more reasonable were relatively successful, and you can see me celebrating with music here:
However, further tests such as this video resulted in what I referred to in the title as "lots of vibrating".
More progress led me to want to celebrate with music and showoff some successes, however. The following video is titled "The Uncanny Valley" to highlight how the game experience I was building began to feel closer to my goal.
I was given a very wise tip that a turning cost would improve the search, so I had another celebration/showoff video including music meant to show the Ghostwolf who suggested the turning cost to me how cool things could be if I did what he suggested:
The only problem after dealing with turning cost to find "reasonable" paths was then to try to smooth these paths so that they would yield more lifelike results. The following untitled video is a pathing test that demonstrates a footmen who is able to move at odd angles around the corners of a barracks by smoothing the path between the barracks corner and the destination.
In another showoff video, I continued to celebrate further advancements and listen to cool music. The song playing in this video is "Two Steps From Hell -- False King" chosen because to me as I go to try to reinvent these game components, I feel as though there are people who will see the illusion, believe the illusion, and think of me as someone who can give them a good future even though they would not likely understand the ridiculous amount of work necessary to achieve what I am trying to do, and how the time it will take me to achieve it as a hobbyist probably extends beyond the length of time that any user would care what I was doing, making me in some sense to be a "false" king or a sort of bad leadership.
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.
After this, I did some more tests for fun as the world of pathing continued to bring me closer and closer to that sense of feeling that I was actually making something that could become my vision. I figured it would be somewhat ironic in this case to celebrate trying to reinvent a year-2000s-style game by playing music made from remixes of Windows XP sounds.
Around that time, I also recorded a video of myself killing a paladin on Warsmash for a bit of fun, but the Paladin dies and then his body is able to still be attacked and able to walk away because the definition of "dead" is not well defined in the system. So, the video is pretty funny, but would not make for a good game experience:
In the meantime, as I continue to advertise to people that I think that rewriting Warcraft III is a good idea, someone sent me a very interesting map to try on the engine, and so I recorded a video of myself flying the camera around and browsing this interesting world:
Along that same line of thinking, I was able to play one of my own old personal maps from many years ago and enjoy Warsmash's lack of a movement speed cap, which causes speed capped custom units to teleport when told to move:
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.
While pursuing improved unit combat, I also realized that units need to be able to attack buildings not only from touching their "collision radius" but also any time that the unit touches the pathing map of the building. In short, we have to do image processing on the TGA pathing image file to determine from where a unit is "within range" of the building. The following untitled video documents a venture into implementing this system, where a footmen can attack a custom building that has the pathing map of a bridge with diagonal and unusual shape.
Around this same time, attack types and armor types were put into the system inspired by the ideas on Mojo StormStout's Warcraft III Strategy Guide , as well as the notion that some weapon types interact in different ways with the game world:
Now armed with the fun of different kinds of combat and weapon types, I also tried loading the Rebirth mod on my system, for a bit of fun. You can see in this video that some of the Rebirth models were not fully supported yet on Warsmash (this is not the fault of the Rebirth developers!).
Getting inspired by this, I revisited an old favorite Warsmash test map -- Night Elf 03 -- and let myself enjoy a world where ranged attacks had a limited range, and units pathed around objects and around other units. This was fun for me because it was so different from earlier tests in the year back when my configuration had been launching on Night Elf 03. With combat sounds, pathing, weapon and armor types, pathfinding, and a little game music thrown in, I really started to feel like I was experiencing the Warcraft III game again.
However, one of the next elements that I needed was for the combat system that I had created to have a sense of value. Grim though it may be in the face of a global pandemic, my units needed to be able to die. So, I implemented a system that would clean up the shadows of units and unselect them after they died, as shown in the following test. Rest in peace, Beach Goers [that is the name assigned to the modified night elves that I was killing in Reforged George Adventure]!
In another test, now with an Annihilator unit that made it easier to achieve unit death for testing, I attempting causing a lot of unit death and observing if the unit death animations were playing as intended. In particular, the transition from "Death" animation to "Decay Flesh" animation to "Decay Bone" animation has a lot of edge cases when we deal with units such as Rock Golems, Mountain Giants, and Demolithers that have varying settings for whether they should decay when they die. In the background, we can hear me listening to some music from the game Undertale, which has heavy themes of "Determination" (I was probably thinking about how long it takes to implement all of these systems that I took for granted for my entire life, and how important it is to stay determined to keep working!)
At the same time, I was also trying to brush up on my implementation of different weapon types, and that included finishing up the Huntress's Missile (Bounce) weapon type. In this video I celebrated how comedic moon glaives can be when they have no limit to their bounces:
The following weekend, being a bit of a showoff and for fun, I recorded a video titled "launching the alien technology from the end of the world". I probably linked this video to someone on Discord in an attempt to show that my progress was beginning to close in on making the sort of engine that I intended, despite always throwing me off a bit by feeling "alien".
Another weekend went by and I was working on improving the little things again. This time I was back at it with the pathing system. There are a lot of corner cases, so to keep myself interested I changed to a new custom map.
A lot of these videos were quick recordings to share with someone how my basic systems were functioning, even though I was recording clips of the systems that had been implemented earlier in the year. As my Calculus teacher used to say, "A picture is worth a thousand words!"
I was also at this time still fighting with the pathing bug that "unreachable locations" would force the pathfinding system to search over the entire map in a very slow way. The following video, pointing out this issue, notes it as "HUGE Lags" in the title.
That same weekend, I also decided to take a break from pathing and try to implement a lighting environment. This was a bit harder for me because most of my interactions with OpenGL were achieved by copying from other people, but I was not aware of any open source projects with Warcraft III style 3D lighting environments. They probably exist, but I mostly just look at things very specific to this social sphere and on the Hive. So, I was just following some more generic OpenGL tutorials for this one, and again I celebrated the little things when I was able to make the world lights sync up with the clock at the top of the screen. The music sampled in the background, in honor of the animated Clock for the Day Night Cycle, was chosen to be the song "Clocks" by Coldplay while I was recording.
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.
Around that same time, I tried playing Starcraft on Warsmash! This video includes commentary and mostly speaks for itself, portraying how the Warsmash engine and all of these details described up to this point are reusable for a mod such as Project Revolution mod. Please note, the Project Revolution mod shown below is a Warcraft III mod and is not my own work. I spent 1 hour configuring Warsmash to load Project Revolution to setup this video; I did not create the Starcraft themed fan models shown at all, nor did I put them together into the MPQ archives that contained them.

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.
After that, time found me on a different computer on a laptop. I did not have Warcraft III to use with my Warsmash installation so I downloaded a 100 MB compressed version of Warcraft III that I created back in my youth to make sure I would always have a Warcraft III install ready for me anywhere on Earth that I go for the simple cost of 100 MB of download from my cloud. After one or two source modifications to allow missing sound files, Warsmash was quickly running on my 100 MB asset bundle, and so I found myself testing bridges on the laptop in this video titled "More Bugs !"
However, from my laptop, I was still able to make some code progress, and we can see the first iteration of a walkable bridge in this video aptly titled, "Overcoming Obstacles, Crossing Bridges".
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:
Interpolation Changes
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:
For further polish, I also upgraded Warsmash around this time to support unit animation blending. Many people commented that unit movements were "jerky" and they were right about it, because of the lack of animation blending.
Before long I was back on my laptop, however. I went ahead and downloaded a serious Warcraft III installation onto the laptop rather than the 100 MB test asset build I had been tinkering with. This video is another example of getting really bad FPS on the laptop, and the recently reworked ability system had disabled the unit auto attack behaviors on accident. But, we can still see things coming together. Arthas is able to walk across a bridge, and able to attack a bandit.
Frustrated by the laptop lag in the previous video, I returned to my 2080 TI over-purchased high end gaming rig to play the same mission. I like to solve problems, and using better hardware solved this problem! To poke fun at myself over the matter, the video is titled "2080 IQ Game Design".

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!
Another issue that I tackled during this November was the problem of Kodo Beasts and their drums. Sometimes the poor guy would beat his drum and no sound would come out! This was fixable by changing the Event Object player to support playing multiple sounds in the same animation sequence, and here we can see the result.

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.

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.
That same day, I tried a different map -- the Operation Reforged -- that Max had made for me back in 2019. That map was really cool and fun for me, and I got curious whether I could pull up a map that I had never tested on Warsmash like this and try it. How much would be supported? I was happy that I got to command the Sheep Lord unit who had my own voice as the soundset. And, as expected, the custom soundset was working on Warsmash.
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.
With a little tweaking, the menus started to look great. The hissing, mechanical menu chains are all baked into model files that mdx-m3-viewer already understands, so I did not have to expend much effort and just called a few model display functions and I got to the following test.
Of course, I had to test the Frozen Throne as well:
The following day I saw someone on the Hive Discord asking how to rotate or "set the facing" of an Item object on Warcraft III. Of course, Warcraft III supports nothing like this, even on Reforged. Rotating an item is not possible. So, to poke fun at them a bit, I recorded a video of myself modifying Warsmash to allow me to assign dynamic facing angles onto items. Feeling a bit dirty for poking fun at Warcraft III modding in this way, I ended up recording the video while listening to some scallywag-themed Pirates of the Caribbean music.

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:
Not too long after, I recorded a video of myself doing some Warsmash programming in the late evening. This is another video with some human commentary, so I will let it speak for itself.
About that same time, I found myself enjoying reviewing how my displays of Particle Emitter2 objects were functioning. At this point, due to the works of Ghostwolf and a couple tweaks that I threw into my replica renderer, there are basically no unknowns when it comes to particle rendering -- even in the edge cases for waves and stuff.
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).

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.

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.

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.

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.

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.

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.
Around that same time, I took another snapshot of Warsmash's pathing system by making a little test map that could demo how some units (such as a Penguin) could fit through small spaces, while others (such as Heroes like Jaina) could not fit through the small spaces.

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.

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

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.

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.

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:
April 2021
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.
 
Last edited:
I tinkered with the lighting system slightly and it made the out-of-game menus look better even though the game itself seems slightly too dark now. Tonight I sat down at the computer and silly old YouTube was recommending me videos of Elon Musk talking about life, so for fun I took the recommendation and made a Warsmash video about it, titled, "Warsmash as a Motivational Poster."


If you consider two futures, one where we are forever confined to Game.DLL until eventually something terrible happens, or another future where we are out there on many modded game verisons, maybe even going beyond the desyncs, umm, I think that second version is incredibly exciting and inspiring and there need to be reasons to get up in the morning, you know? Life can't just be about solving problems. Otherwise what's the point? There's gotta be things that people find inspiring, uhh, and make life worth living.
 
Last edited:
Yeah! You can download it here:


It will crash! :O I uploaded it as-is to offer users an opportunity to help test it.
 
Hey guys, I had not updated on this thread for some time, but for anybody who did not see me post it elsewhere, here are two more recent Warsmash teaser videos. The first one is a recording of the first time that I developed and tested a first draft of multiple unit selection:


In this video, I was enjoying the mechanic of multiple unit selection despite not coding a UI for it -- just the basics (multiple unit selection circles, unit highlight on mouse over, hp bar, etc). So this is probably also the first video of a Warsmash build that features unit HP bars on mouse hover.

After making that video with some peons and having fun, I also recently wired up a build of the JNGP editor system so that when I pressed "Test Map" it would play a precompiled Warsmash EXE. Notably, for anybody who has played with the Warsmash EXE, you may have noticed it honors the "-loadfile" command line argument just like Warcraft 3, so in the same manner JNGP was able to launch it.

I made the following video as a technical demonstration to some guy of how this JNGP + Warsmash could allow me to do stuff like having a Gold Cost on a unit ability that did not previously have a Gold Cost. In this case, I chose to add a Gold Cost onto the Mount Hippogryph ability:


In this video I create a very basic Mount configuration using the Object Editor techniques that I am sure everyone is familiar with -- making a custom copy unit from the Orc Warlock, a custom copy from the Wyvern (Riderless), and a custom copy from the Wind Rider. I give them each the necessary abilities so that the Orc Warlock can use Mount Wyvern to become a Wind Rider, which is again nothing new.

But, then I assign the Gold Cost and Lumber Cost value on the Mount Wyvern/ Pick Up Warlock abilities, and this is the interesting part of the video at the end, when we see that these costs are functioning and enforced by the game engine using the native gold/lumber errors.

(The only video editing to this second video is at @03:01, you might notice that I appear to never save the map. This is because the first time that I saved and tested, the Warsmash engine was not properly supporting custom abilities from the Ability Editor. I was using the ability definitions source ability ID to read data from in the table lookup when I needed to use the "code" SLK column's value instead, so at the time of recording at that point I dropped character as a World Editor user and went and reconfigured the engine with this fix so that it would work properly, recompiled the Warsmash binary that I was using, reloaded it to JNGP, and went back on my way as if nothing happened. That sequence of actions is clipped from the video because it was not relevant to what I was trying to demonstrate, and would not be necessary for a future World Editor user who was attempting this same task.)
 
Last edited:

This weekend I am trying to try out some hacky first attempt at a multiplayer functionality. I will probably not publish this for a while, still, because of all the bugs. But I think that this was very enjoyable for me to see that the internal design of the game was basically able to support this with just a few hours of coding network protocols this weekend.
 
As an update to my previous post, it is worth noting that the previous example videos were not actually using the physical network of two machines. As a result, they were taking place in an unrealistic 0-packet-loss, 0-latency configuration.

As a much more real test, I tried using the network between two physical machines. Initially the game didnt last 2 minutes before dropping a packet, which I had not programmed for, and as a result the game froze.

I implemented some fixes after that and tried again.

I recorded a phone video of a quick test between the two physical machines after that. For me this new test was a much more interesting result. Seeing this work makes it much more real to me than a localhost loopback test, so that was cool.

 

I created a new UI for fun to test with today by cropping around parts of the Reforged UI. It's inspired by the Reforged 2018 demo UI.

Also in this video, I tested with doing 9 item inventory, and making passive items that add damage bonuses.
 
Level 3
Joined
Oct 6, 2013
Messages
15
This is incredible. Essentially the dream of any WC3-Modder. I'm afraid I can't be of any help to this project, but I must commend you for the advanced state you have brought it to and implore you to keep working on it. I just hope that the legal side of things works out, once this becomes more well known.
 
New update continuing down the rabbit hole of some fun RPG gameplay tonight. I went ahead and put in the systems for tomes and basic hero stat items, so that I was able to gain all kinds of stats and become a beefy hero guy in an RPG style adventure using the WarChasers map even more extensively! You can also see for example the monster spawn timer with the animate dead glow was working in this version.

I also implemented hit point regeneration in this build so that I would be able to flee the enemy and recover. However, enemies still chase indefinitely because I didn't implement aggro/aggro timeout, and the life regen was not updating the UI because I forgot to call the internal "lifeChanged()" event notifier when life regeneration would increase the hero's life.

 
Here's a new teaser video created tonight after I saw someone posted on Hive discord lobby that they created the WoW Lich King battle in UE4. Rather than naming this video Warsmash, I went ahead and titled the video "LibGDX" in homage to the fact that Warsmash is using LibGDX under the hood.

This video was a single play session recorded without setup in advance. Several bugs were encountered that I would have liked to have fixed if I was working in the engine code prior to recording this. I wanted to upload the video in time to include it as part of my contextually relevant response on Discord:


In particular, hero experience and creep item drops were mostly not working although I have had builds where they did work and I need to review what changed. The jass native to limit heroes to one per hero type also is still not kicking in until after the first unit is completed training, among other things.

The major update of this video is the new Custom Game menu for Single Player and how it integrates with the Jass environment to cause the unmodified Blizzard.j asset to spawn the correct starting units per player race. Having the custom game menu basically working minus a few niceties is new this weekend.
 
Tonight I did another multiplayer test. This time I was using a server that was 750 mi away from the client machine that joined the game. So I am hopeful that is a good sign for lag and stuff. Previously I was convinced it was unplayable and laggy over that distance, but I believe I fixed the bug in the 5 turn tick click delay that causes the lag to not feel painful over longer distances.


After a while, the game froze because the A* search admissable constraint failed on the search and got into an infinite search loop on the Snake Aes client. I am not certain yet what part of this map file moved a unit into an area with an infinite pathfinding cycle, but I increased the logging for those cases and added a more descriptive java exception when the engine detects that pathfinding exceeded the size of the entire map in iteration count.
 

Here is a video where I test some Fog of War visuals. The fog of war system is not fully implemented, and does not hide units or game visuals outside of the area. This is simply a terrain shader update that darkens terrain and doodads outside of the explored area.
 
Top