Monday, March 17, 2014

Terrain Tesselation Skew Test

Had an idea when looking at some images a coworker showed me. Easy enough to rig up, thought I'd see what it looks like. It's just a consistent noise function applied to the non-vertical part of the terrain geometry. It breaks up some hex patterns and makes some more interesting edges.

This is just a test. Do not panic. Obviously it would need massive tuning and surface types would need to be able to disable it (for manmade structures).

http://redtoast.net/Images/SkewTest_1.png
http://redtoast.net/Images/SkewTest_2.png
http://redtoast.net/Images/SkewTest_3.png
http://redtoast.net/Images/SkewTest_4.png
http://redtoast.net/Images/SkewTest_5.png
http://redtoast.net/Images/SkewTest_6.png

Tuesday, February 11, 2014

Many-Month Update

[ There are images at the bottom section if you just want to see pictures :p ]

It's been too long! Much has been written (code-wise), and much planned for the inevitable demo. I also noted it's been a long time since I've taken any screenshots of the game, so I'm gonna make some :p

Major Updates:
  • Build Machine is up and running. It builds client installers automatically, runs a universe which can self-update either the universe engine, the zone engine, the scenarios, or the game database independently. 
  • Map code Rebuild. This removes possibly the worst code in World, the bindings between Terra and Zone, and makes for a nice clean implementation instead. The end result here is a correct map graph after terrain changes, less bandwidth usage, faster terrain updates, and easier extensibility when it comes time to add more terra features (shallow media, climbing, jumping, flow)
  • Scenario Editor code partial Rebuild. The scenario editor is cleaner and more stable. Scenarios update consistently after terrain changes so we don't have to lock down the map. Added many new terrain tools, which are also used as in-game effects.
  • Universe server Stability. Multi-zone execution is FAR better. Zones purge when no players have been active for some duration. Zones can continue to exist in a stale state if there are players, but if the database or zone engine update. This means when we 'patch' the server, scenarios in progress can continue uninterrupted. Launching zones is totally a good way to test the client or scenario now.
  • View Phasing. This is a rendering system that selectively hides pixels that are in the way of seeing what matters to the player. It has nasty math. It lets you see through trees.
  • Sound effects. We have both a selection of character sounds (sets gloriously recorded by friends and family), and some free-sound sourced audio clips. (If you want to record a set I can provide the executable that runs the script to do it :p )
  • Procedural Trees. I decided I wanted some foliage so I made a procedural treebuilder. They aren't pretty but they are... there...
Minor but still good Updates:
  • Lots of new additions to the scripting language for scenarios. Mucho flexibility.
  • Per-terrain-type system for ground impacts. This gives us the ability to have generic actions produce unique effects based on the terrain. (For example, flame impacts may do nothing to stone, but may create fires and char wood)
  • Straight path-lines. Somewhat more natural looking (but less strictly correct) paths when not moving along 60 degree angles.
  • Options menu system (currently just sound volume)
  • Ground-projection effects
  • Beam effects (in retrospect, I haven't used many of these...)
  • Per-unit cosmetic data. Right now just rig-parameters and sound bindings, but it could include per-unit props or textures.
  • Lots of actual game-effect fixes, but it's really mostly been systems stuff.
Jeez, looking through the logs there's kind of a lot, but there's still so much remaining. It looks like I haven't spent much time on game mechanics in a while, which is kind of hilarious to me. A Client UI pass is overdue as well, and maybe an enemy AI pass as well.

And Now some Imagery
  • Blog021014-1.jpg: A shot of trees in Eirikr's hilly scenario. Note that in the center of the image the trees are filtered out by the view phasing. If you look you can see the fuzzy circle where the trees stop being filtered.
  • Blog021014-2.jpg: A shot in the scenario editor of some new terrain construction tools: Easy walls, solid or smoothed, using straight lines (on the left) or continuous lines (on the right), some surface replacement in the back, and some bridge construction in the center.
  • Blog021014-3.jpg: The new bridge to defend in my outpost scenario. Note the overhang section of the wall is phased out, there are tres, and a pile of debugging UI I REALLY need to get rid of.
  • Blog021014-4.jpg: The outpost scenario has a scripted ally, the Captain, who has some special behaviors. This is just him yelling that he needs help. I usually ignore him and let him die. Idiot doesn't know how to retreat properly. :p
  • Blog021014-5.jpg: The bridge explosives have gone off, so the bridge is ruined, the tree is on fire, and the enemies have summoned a special scripted unit, circled in white in the top right, that builds dynamic bridges across the river and onto the walls. Also, I levelled, and the Captain is stuck on the other side of the river.
  • Blog021014-6.jpg: The first 3 bridges are finished, I'm defending one, but some units crossed the first bridge and killed my archers on the walls. Very sad. Tree still on fire.
  • Blog021014-7.jpg: Close up shot of a very happy squad. The bright edges are showing morale. You might be able to tell that they have some different subtle dimensions; that's the per-unit cosmetics. The shield on the left is shorter, and the commander looks kinda lanky. The center archer is taller, pretty clearly. Also trees, bridges from underneath, and ground projections underneath the units. The arrows show when in combat, and make it easier to see orientation. Also if your units aren't engaged the arrow is just a circle.
  • 2013 Shirt Image: Cause its neat.
Thanks for readin'. Till next.

Saturday, December 7, 2013

Some new music


Recorded a pile of new tracks :)

Trying to keep myself from going too energetic in this one; aiming for some menu music. Not 100% pleased with it, but it's a start.
http://redtoast.net/Music/w_amb1_BbAb.mp3

The same song as above, but energetic, since its hard for me not to be.
http://redtoast.net/Music/w_com1_BbAb.mp3

Working on deciding a musical theme for the game. This is one possibility but the more I listen to it the less I like it. I like the song, but not as the theme for the game.
http://redtoast.net/Music/w_theme1.mp3

Another go at it. Kinda the same feeling about it after.
http://redtoast.net/Music/w_theme2.mp3

One of those hurts-my-fingers kinds of fun rambling songs:
http://redtoast.net/Music/oloud2.mp3

Let me know what you all think of them.

Tuesday, October 1, 2013

It Is Time

Hey.

I've decided that I like this game, that it is fun, and that I'd like to make it a real thing. Also, it would be kind of awesome to be able to work on it (and/or other games) professionally and full time.

So we're gonna do it.

We're going to make a demo. A polished, complete, but short experience that shows off the engine, setting, and story. A well crafted, focused, and deliberate showing. Not a tech demo, not just the game working, but 2 complete scenarios, and everything about it streamlined and forward. No debug windows, no obtuse requirements to click the right buttons to launch things, nothing obviously missing.

That's something I haven't really done before. It'd be something to be proud of. And more importantly, something that can stand on its own. I want to take this demo and spread it around to professionals in the industry and see what they think. I want to send it to designers and content producers that I respect; and see if they agree that the game is worth making.

And if they do then it'll be time to search for funding. Crowdfunding comes to mind. If we're lucky enough to show the demo to someone who both likes it and has an audience, that could be interesting, :)

But first steps first, gotta make the thing. There's a lot of stuff to decide on and get working. We shall make lists. Yes. Lists.


PS, I think I wrote something somewhat similar a few years ago. I think at the time I was thinking similarly, but I didn't have as much belief that it was actually possible, and I didn't have as much belief in the game mechanics and implementation. I'm actually quite happy with it at the moment. :)

I'll do an update soon; we have a new scripting language and bindings and some trees to look at. I'm sure there's more since July, but right now it escapes me.

Monday, June 24, 2013

New gameplay video recording (+ music)

Hi!

I made a new video finally! It's here: http://youtu.be/DR3oVZfSDVs

I meant for the music to stay backgroundy but I kinda got carried away. It happens.

Also, there's an annoying black bar I didn't notice till afterwards; it'll have to stay since I'm lazy. I'll fix it for next time.

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!