From ba0fe2892a22cc4df7c3b4dc8a74b0be2b665667 Mon Sep 17 00:00:00 2001 From: Jose Falanga Date: Mon, 13 Oct 2025 17:45:49 -0300 Subject: [PATCH] rehosted --- arise-source/index.md | 3 +- arise-source/rehosted/find-the-fun/index.md | 26 ++++++++++++++ .../rehosted/vertical-vs-horizontal/graph.jpg | Bin 0 -> 23512 bytes .../rehosted/vertical-vs-horizontal/index.md | 33 ++++++++++++++++++ 4 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 arise-source/rehosted/find-the-fun/index.md create mode 100644 arise-source/rehosted/vertical-vs-horizontal/graph.jpg create mode 100644 arise-source/rehosted/vertical-vs-horizontal/index.md diff --git a/arise-source/index.md b/arise-source/index.md index 5b677b4..cf38100 100644 --- a/arise-source/index.md +++ b/arise-source/index.md @@ -1,3 +1,4 @@ + + +# Find the Fun First + + +> Originally posted in the now defunct uber.typepad.com blog. You can find an archived version on [The Internet Archive](https://web.archive.org/web/20250911234829/https://uber.typepad.com/birthofagame/2008/10/find-the-fun-fi.html) + +When starting a new project my motto is "Find the Fun First". I've seen too many projects ramp up a full production team based on a loosely written design document (or tome). They grind out new tech subsystems and art resources for a year or two only to discover the game isn't any fun. Why isn't it fun? Is it because the design doc is so incomplete? Are the programmers not delivering tech on time? are the artists falling behind in the production schedule? Having ramped up too early it's quite likely all of these are true, however they're not to blame for why the game isn't fun. + +When we prototype our gameplay we use a process called "whiteboxing". This simply means we create the absolute minimal amount of code and art in order to support a particular game mechanic or feature. Often times the minimal visual representation is simply a white box, hence the term. If your game isn't fun with 100% whitebox assets and code then it isn't going to be fun with $10 million in beautiful art and robust game subsystems. The less you've invested in art and code during the prototyping phase, the cheaper it is to change things when they don't work out. What sounds fun on paper doesn't always work in game. + +You can spend a year or more in this phase and spend relatively little money. The unfortunate part is that when trying to sign a deal with a publisher you're likely going to have to create something "pretty". This usually means the dreaded "vertical slice" which is one of the worst industry practices in existence. That's not to say there is **no** place for a vertical slice, but it certainly doesn't belong anywhere near the prototyping phase. This is a topic that deserves it's own post in the future. For now, I'll just leave it saying it's in our best interest to stay as long as possible in the prototyping phase. Lean and mean. + +Once upon a time Scathis and I had the pleasure of working on a project together, just the two of us, for a solid year before even bringing on an artist. Our goal was to come up with some innovative gameplay that could be executed on some existing technology with relatively little changes. In that time we tested tons of ideas, threw out most, and eventually honed in on some really great gameplay. When we brought in our art director he brought in a welcome breath of creativity and was vital to bringing our fun, yet ugly game, to life.  For this reason, we're very excited to have had our art director come on board last week. We intentionally wanted to bring him on early in the process as his virtuoso ability will enable us to prototype ideas that  have advanced technical art requirements such as intricate animations and material compositions. Expect to hear from him soon! \ No newline at end of file diff --git a/arise-source/rehosted/vertical-vs-horizontal/graph.jpg b/arise-source/rehosted/vertical-vs-horizontal/graph.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1c88b5dd0190af65f50ba05fb16a8ead497aa4e7 GIT binary patch literal 23512 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 Tn`?-uQ_BYjB_}j!;NSiqT~y5T literal 0 HcmV?d00001 diff --git a/arise-source/rehosted/vertical-vs-horizontal/index.md b/arise-source/rehosted/vertical-vs-horizontal/index.md new file mode 100644 index 0000000..2d71780 --- /dev/null +++ b/arise-source/rehosted/vertical-vs-horizontal/index.md @@ -0,0 +1,33 @@ + + +# Vertical Slice vs. Horizontal Layer + +> Originally posted in the now defunct uber.typepad.com blog. You can find an archived version on [The Internet Archive](https://uber.typepad.com/birthofagame/2009/04/vertical-slice-vs-horizontal-layer.html) + +I've [mentioned before](rehosted/find-the-fun) [(archive)](https://web.archive.org/web/20250914133730/https://uber.typepad.com/birthofagame/2008/10/find-the-fun-fi.html) I think the Vertical Slice (VS) is one of the most abused industry practices. By definition, it ought to be a version of your software that is near final quality in a small subset of its domain that represents the overall product. If you're making Call of Duty 4 it might be "just one mission" complete with working AI controlled enemies, HUD art, polished control scheme, in-mission cinematics, and near final quality art assets. The problem is getting to this vertical slice actually requires completing a huge portion of the game. For example, the subset of character rigs and animations required for the level may be 80% of the animations needed for the entire game. The UI and HUD are an often underestimated amount of work yet having near final quality versions of them for "just one mission" is saying that entire subsystem needs to be nearly complete. The requirements may say 3 weapons out of the 15 that will be in game, but you'll be doing more than 1/5th of the code underneath to meet those requirements. If employed too early in development the VS can derail an entire project or worse put it on the fast track to nowhere. + +So when is the appropriate time to build a Vertical Slice? I say after the few Horizontal Layer iterations are complete. What's a Horizontal Layer? Glad you asked. When we prototype at Uber, we prototype the entire game from beginning to end. This includes single player, multiplayer, main menus, option screens, cinematics, mission briefings, etc. When the entire experience is laid out in whitebox form, that is with temporary art assets and most likely temporary code, we call that a Horizontal Layer (HL). This gives us the best sense of the actual work required to complete the game, and the iteration on the HL creates a breeding ground of creativity as trying out new ideas is quick and inexpensive. + +Now, you and I well know in the real world there are often constraints and external forces that result in a VS being embarked upon before the entire game has been covered with HLs. This can work though if properly planned and there has been at least a couple of HL iterations laid in the specific area the VS is targeting. In fact this is exactly what we recently did on our current project. We built an HL for just the core MP game experience, and after several iterations on that decided to go for a VS with a subset of the content. This allowed us to put together a really kick ass gameplay video that we showed off, in private, at GDC. + +My diagram-fu is weakened when working on my laptop’s track-pad, but the diagram below still serves to illustrate a few key points. + +![[graph.jpg]] + +First, components of the game (Single Player, Tutorial, etc) differ in the amount of work and are so represented by different width blocks. As each HL is complete quality goes up. The VS sits on top of the HL and therefore is elevated in quality by it. In this diagram two vertical slices are created for two different portions of the game; single player and multiplayer. You can see that the slices themselves are of different widths. This represents the amount of the component the VS is meant to demonstrate. For example the single player VS may only be showing off one portion of one campaign mission, whereas the multiplayer VS might be demonstrating nearly fully functional gameplay on a variety of maps. Also note that each slice was started during a different HL iteration. Had the VS for single player began on the 3rd HL iteration it would have achieved a higher quality level. + +Our focus now is on laying Horizontal Layers for the rest of the game, which can be broken up into several distinct segments. After iterating upon these layers several time we’ll go vertical, possibly on multiple ones simultaneously. + +To summarize, the Vertical Slice is a useful tool when employed in a controlled manner at the right time for the software, but can be disastrous if executed in contrary conditions. Here’s a rule of thumb: **Iterate on an Horizontal Layer that covers the desired areas of the game at least 3 times before taking on the Vertical Slice**. \ No newline at end of file