Thursday, May 30, 2013

LAN 2013 Post-Awesomeness

It's now a bit over a week past the LAN, time to reflect and note what went well and not, and what needs addressing.

  • Setup:
    • Installs for the most part went fine, which is a minor miracle. The wireless network from across the house wasn't stable enough for a couple installs, but that's not the installer's fault.
    • Initial content downloads from the server were slower than desirable but acceptable when on a decent connection. It's about 30 to 40 MB to connect right now; a lot of that content isn't used and could be pruned from the database. If there was a live/internal separation here it'd work better; the live version could prune itself and shrink the download. For now I'll just deal with it; the download isn't long on a LAN and I don't want to work on pruned data, or have to prune it when deploying. There's a good automatic long term solution in build scripting, but it's not worth the time right now.
  • Server Side:
    • The multi-zone-server seems to be working quite well. Most of the scenarios played were not launched by me manually, and were successfully executed by the universe server. I disabled the scenario-destructor so they stuck around forever, but that's fine for now too. There were a couple notable server faults:
      • Sometimes units failed to save or remember their levels. This was a desync bug between the skirmish and the universe caused by thread concurrency problems. Some changes to how the two communicate led to said communication being on many threads, and someone forgot to lock important data structures. I hadn't tested multiple joins, nor players creating units while other units were live. Problem solved for now.
      • Slowdowns when having more people in a game; I'll get to this when going through the scenarios played.
    • In general though, the server was far far more stable than before, and required very little attention. I restarted it once to try and figure out the slowdown but that's it.
  • Scenarios:
    • TerraTest, the single player scenario, was largely unchanged and so worked alright. A couple people played it intermittently while waiting for others and it worked :)
    • KoboldKing, the main event for the LAN, had some ups and downs
      • The scenario itself worked fine, the mechanics of the enemy defense formation and special actions all worked correctly. I was hoping to see people try different tactics to break the enemy commander, and people did, even new players, which was good. People figured out basic hit and fade tactics fine and learned the basics. 
      • With 2 people in play, the scenario was balanced reasonably well. They won after some time (probably a bit too long, but that's easier to adjust), were patient through the too-long phase 2, then had fireworks. Yay.
      • With 4 people in play, the scenario was overbalanced in the enemy favor. The number of ranged units scaled up too fast, leading to almost immediate death of any melee unit approaching range. At best a maneuver would complete, then melee units would drop. While they made progress with their hit/fades and coordinated 4 players, progress was too slow, and inevitable some players were wiped out and the scenario failed. This is a matter for tuning mostly. 

This is the enemy arrangement with 4 players. The main problem here is that when a unit engages the shields on the edge, they also enter range of about 8 scouts and 8 archers. This makes melee sad.









      • With 4 people in the scenario bogged down pretty bad. I think this was mostly due to a configuration bug; the multizone server ran the debug version from the release version universe server. The difference in the server case is massive so that may be all that's needed to fix. I've done some profiling since then and found a few mechanics are extremely slow with high unit counts, so it may be time to adjust said mechanics for speed. I noted during the LAN that the slowdown was in the universe server rather than the multizone server; I can't explain that quite yet, but seems important.
      • I believe with some more knowledge about mechanics the players would still be able to win (or some unit levels, some of which weren't saving correctly).
    • Maul, the area capture pvp scenario:
      • Mechanically worked, except for a fault with terrain modification causing confusion.
      • PvP is curious right now; it looks like defenses are outweighing offenses pretty strongly. It looked to me like fights moved very slowly. This could also be novice players not understanding how to utilize offense through maneuvers. Also, they could've been rallying in combat; Rally is supposed to work in combat but have reduced effectiveness, but may be currently bugged and too strong.
      • Some PvP objectives would need changing; cooldowns on area capture for one. Players were spamming the claim action. As hilarious as it was to watch it's kind of a stupid mechanic to allow.
      • There are camera issues around hills that aren't resolved. Clicking the ground fails if there's ground behind the camera. Needs fixin'.
    • Open Field (practice area)
      • The target dummies moved. That's just silly. I think some combination of historical changes in speed ended up with the dummies having positive speed. Also, I forgot to not give them an AI in the scenario editor.
  • Overall:
    • The overall impression that I heard was that it was more of a 'game' now than an interesting quirky demo thing. I get that feeling myself too recently, mostly since the maneuver mechanics made it in and are working well. Was good to hear. Very good.
    • There are still control issues, but far far less than before. Some may be confusion about mechanics; a tutorial would be nice to see if players continue having control problems after understanding movement mechanics. Most of the frustration I heard was along the lines of 'Why did they do that', or was caused by the overbalanced commander scenario.
  • So now what?
    • Server speed, stability fixes, usability bug fixing, tutorial/training. More fireworks. Anything else?

Tuesday, May 21, 2013

2013 LAN Mid-Awesomeness Pictures


Monday's over. I'm allowed to run Visual Studio again, so I made some pictures :)




First, the continent mode view after the LAN, in Chrome. Each icon is a unit or a player. Most people didn't explore so they're all at the spawn.




A view in Explore mode from the southern cluster of units, looking at the spawn island. New Eirikr-Glaciers :) The pink spheres are the units; obviously they'll be rigged up as humanoids soon.








Just another view over and in some other new biomes.










The hill with the Kobold King scenario. The enemy commander just reinforces his squad and holds the area. It's up to the players to break his formation to knock out the commander.

It's worth noting that the number of units varies with the player count. This is a picture of only 1 player, but when there were 5, he has a solid hexagonal wall of shieldmen surrounding him, as well as entirely-
too-many archers and bombardiers.


Boulder throwing in Phase 2 :)











Victorious Fireworks!












A side-view of the pvp scenario map hastily thrown together. Players spawn on the left or the right from this view. The 3 capture towers are in the sandy alcove, the stone walkway, and behind the hill in the brown area.












I think that's enough for today :) I'll write up the post-awesomeness tomorrow. Also, I should've taken some screenies during the event, or even just some normal pictures. Alas!





Monday, May 20, 2013

LAN 2013 Prep

So, this past weekend was perhaps the biggest playtest I've had in some months. Accordingly, I spent entirely too much time world-ing in the hours and days and weeks prior. On top of that since I left work 3 weeks ago means that really an awful lot's been written. In fact, I exhausted myself so bad before the LAN I instituted a self-ban on Visual Studio for 2 days after it. Since I'm still disallowed, here I am writing :)

So first, an update, in long form. In a later post, a postmortem on how the LAN behaved w/r/t World.

New stuff coding and otherwise:


  • Awesomium integration! 
    • Awesomium is a wrapper library for Chromium/Webkit, meaning, it's a library to help build front-ends using Web UI languages. I'm converting over our menus one by one to use html/js/css instead of my old homebrew DirectX hackery. The main menu's been converted entirely, and some new modes' menus are all Web UI of course. 
    • This means that a lot of the UI works in a normal browser now. Not enough to do anything yet, but it's substantially closer to having parts of the game work without installs and directx.
  • Beginnings of the Continent game
    • The project has always planned on being a two-tier game. The combat/skirmish level has received pretty much all the attention, but there's always been a plan to have the overarching world driving the scenarios. Most of the terrain work from earlier this year was written in preparation to begin the top-level, which executes the world as a whole.
    • The basic idea is that the continent game is where the player navigates, builds, explores, discovers, customizes, and then finds or builds scenarios. When found the scenarios are then joinable by the player in skirmish mode.
  • Rebuild of the Universe Server
    • The universe is the meta-server. The previous version had components to handle account storage (player data), scenario launching (which didn't realllly work), a list of live scenarios (which worked), and assets to check for updates and download.
    • The server interfaces are mostly unchanged, but the backing implementation is now completely different. The server executes a Zone the same way that the skirmish server does, but that Zone is running a different game database; this one represents the continent behaviors as a whole instead of handling combat. Players, commanders, primaries are all stored in this continent-zone, rather than having separate storage. This gives them position and behaviors at the continent level.
  • Continent and Explore Modes
    • The universe now can serve up the terrain data for the continent, as well as pre-rendered overhead imagery. The client can view the overhead imagery using a custom map built with the google maps API, either in the game-browser on in a normal one. The imagery is rendered as a part of universe generation. 
    • The map also shows units that exist on the map, just as icons at the moment though.
    • From the continent viewer the game can enter explore mode, where the player jumps into first person to explore the world as their player-entity. It's veeery rudimentary at the moment but does render the terrain from the universe server. It's a start!
And more esoteric things:
  • Installer fixes; the installer needed a lot of attention to handle the Awesomium libraries, as well as resolving some directx related install hackery. Awesomium's libs are sadly somewhat large, and now account for 80% of the install size. (50MB total now)
  • Lots of assorted bug fixes. We did some testing a few days before the LAN and had a somewhat painful series of obnoxious bugs that had to get dealt with. Some were install related, some related to downloading assets failing, some with awesomium state changes, some with scenario restarts, mid-scenario joins, rejoins, second joins, crashes on quits... OMG the list went on and on. That list is why I'm tired and banned from VS for two days :p
Lastly, as a matter of laziness while updating terrain systems, I broke the old scenarios and didn't care to resuscitate them, so I had to make new ones:
  • The basic testing scenario has a couple paths, with some enemy commaders, flame elementals, spiders, and some earth elementals. There's a flame commander group that charges the player that can be gamed interestingly, and a Ogre at the end. It's mostly testing and a little complicated to be a learning scenario, but it's reasonably fun for solo play.
  • The main new scenario is a single enemy commander on a small hill, surrounded by his minions. He makes a circular formation rather than a line, but never moves the formation. He has units of each type, shields, swords, scouts, archers, and the counts scale with player count. When the commander is killed his followers immediately die and he becomes a single-mob boss, just for fun. He throws enemies out of melee and throws boulders that mod the terrain. When he dies there is fireworks :)
  • A new practice scenario that's just flat with some target dummies that I forgot to make immobile. Supposed to be to learn how to move and play and stuff.
  • A hastily thrown together Territory Control map with 3 capture points and some terrain variety. For PvP :)
And lastly for the Update, Eirikr made some new biomes and terrain tile types. Sadly since the continent/explore mode doesn't have any gameplay in them yet, noone saw them :p

I'll make some pictures for the next post to go with the post-mortem. You know, post-mortem sounds kind of depressing. How bout post-awesomeness?