Posted on

Pipeline, A Meditation

Hi, all. It’s Rob again. I wanted to take this time to discuss, at length, my evolving history with software and how it has ultimately affected my current gamedev pipeline.

1982: Dawn of the Pixel

Arcades. Synthpop. Neon. This is where it all started for me. I was only 8 years old, but the day my family got its first computer, a Commodore 64, was a game changing moment to me. I can’t remember how long it took me to learn the concepts, but it wasn’t long before I wrote my very first program, a “Defender” clone. About as crude as you might imagine, “Space Case” taught me a lot. It was just me, the C64, and a stack of graph paper.

“Teach me the ancient ways.”

1987: 8-Bit Rapid Prototyping

After a few forays into C64 programming, I wanted to take my ideas to the next level. However, when you’re 13 years old, balancing school work and game development is never easy. The process is slow and painful, especially during an era before the internet and good tutorials/books. It was during that time that I thought to turn my attention to design and gameplay. Luckily, I stumbled on an old copy of “Garry Kitchen’s Game Maker.”

8-Bit game development was never more fun than this.

The program itself was quite limited in what it would allow you to create. However, I saw it as a teachable moment and chance to learn more about level creation, sprite animation, and music. I toyed around with it for a while before creating a simple 2D side-scroller based on the “X-Men” spinoff “The New Mutants.” It really only had one playable character, Magik, but she could teleport across the screen and sword swing like a champ. I wish I still had that demo. For what it was, it was a blast.

1989: The PC Pivot

The late 1980s were an interesting time for CG art. Only handful of years from glorious 16-bit gaming, but nearly a full decade from compelling 3D animation. Oh, that’s not to say that people didn’t try. Cinema had tried its hand at CG graphics as early as 1984; Earlier depending on your perspective.

However, none of that technology was within the grasp of hobbyists. All things CG during that period tended to require custom and facilities. So, while I had been tinkering with the PC at home and at school since 1985, it wasn’t until 1989 that I had my first taste of real CG with DKBTrace.

An early version of what is now known as POV-Ray, DKBTrace was a raytracer. With the lack of GUI driven DCC tools, even the most basic of CG images had to be coded them by hand. Still, for a budding artist and coder, I loved every minute of it. Hundreds of lines of code and 8 hours of processing time later, I finally had my first 3D scene rendered out a 320×200 scene and in glorious 256 colors no less. Today, that same scene could surely be done in realtime, and animated, as a cell phone emoji. That’s 1989 for ya.

INTERMISSION

Right about now, I think that it’s important to discuss why I have no screenshots, prints, or demos from this era and the next few years that would follow. The sad fact is that removable storage of the 80s and 90s was often unreliable and perishable.

While my family owned both the tape and floppy drives for the C64, the media itself never stood the test of time. Tapes would tangle or break and hours, days, or even weeks of coding would be lost for all time. 5.25″ disks would warp from heat or moisture and those images crafted one pixel at a time would instantly become a distant memory.

PC storage of the era was no better. Maybe you were lucky and your PC had more than 80MB of storage. Maybe you were blessed and had TWO floppy drives. If you lived on the bleeding edge in the mid-90s, you might have even owned a Zip Drive.

In all cases, the problems of the C64 era carried over into the 90s. Floppies got warped, scratched, or even demagnetized. Hard drives routinely failed, more so than today. Zip Drive disks, which looked like floppy shaped cartridges, were particularly susceptible to sudden failure. The “click of death” haunts me to this day. I lost some (then) fantastic CG renders that I wish that I could get back, at least for nostalgia’s sake; Recreating them isn’t the same.

1994: The turningPoint

The year was 1994. The Intel Pentium CPU had just been released and I was barely a year removed from high school. DOS had peaked and Windows95 was just around the corner. Just as I had begun to grow tired of coding in POV-Ray and messing around with shareware CAD apps, Caligari trueSpace entered the scene.

For those of you too young to remember, Caligari trueSpace was one of the first CG suite apps that was both powerful and affordable for hobbyists and indies. At somewhere in the neighborhood of $400, the first version of trueSpace was expensive, but pennies compared to what studios had to pay. Those guys often paid $15k+ per for software seat and as much, or more, for dedicated Silicon Graphics workstations. trueSpace was the first commercial app to give home artists a small taste of what pro artists had been enjoying for years in the form of Alias and even 3D Studio DOS.

The Original Three Stooges

Being one of the few affordable CG apps for many years after, I stuck with trueSpace from v1.0 in 1994 all the way to the very end with the Microsoft owned v7.6 in 2008.

In hindsight, for all I accomplished with it, trueSpace was pretty terrible. It all sounded great on paper and made for wonderful marketing hype. However, nothing ever worked right and features were ever only half-implemented. Even UNDO never worked reliably and would often eat full scenes. The lessons learned? Save early. Save often. Back it all up. Pray for the best. It was no wonder that I’d transition away from trueSpace.

Still, by 1994, CG had finally started to come of age on the PC.

It was during that same period that my interests in game development and programming had been rekindled. A distant image in the rear view mirror, BASIC and microcode were finally laid to rest as I had started to embrace the ANSI C standard with Microsoft QuickC. Additionally, while had used it at school since v2.0, Adobe Photoshop had finally wormed its way into my home.

I finally started to feel as if PC hardware and software were starting to catch up to my fever driven daydreams. Not really, but they were getting there. Slowly.

2002: Why 3D when you can 4D Instead?

The year was 2001. Pixar’s seminal “Toy Story” was now 4 years old. While I had already coded my first true 3D engine by 1996 and ported it to miniGL only a year later, any attempts I made to use it in a game were thwarted by the constant crashes of Caligari trueSpace. It was always a case of one step forward and one step back. Always learning more, but never making any appreciable progress.

While I had been part of the online CG community since 1997 and the days of Planet3DArt, the precursor to CG Society, it wasn’t until 2002 that I became a fixture of sorts. Thanks to my involvement as a member of CGChat, I would soon become a moderator, part-time admin, and contributing editor to its parent site, InsideCG.

“Now you’re playing with power.”

In that capacity and as part of a product review I became a Cinema4D user and devotee. The move over to Cinema4D R8 was, in word, “transformative.” To that point, I had never seen an app as rock solid and eerily stable as C4D. Full featured and truly studio quality. Of course, one would expect it to be given its nearly $3k price tag. However, as product reviewer, it cost me nothing since I was graciously granted a NFR (not-for resale) license. MAXON got their due though, as I’d continue on as a paying customer for nearly a decade after.

It was also during this period that I had gotten the opportunity to review Pixologic ZBrush and become a longtime user. ZBrush v1.23b was an oddball product. I loved it and understood the potential. However, beyond my childhood exposure to Play-Doh, I was never all that much into sculpting. So, for me, none of the concepts really “clicked” until a few years later with R3.

Now, with ZBrush and Cinema4D in my toolbox along with Photoshop and MS Visual Studio, replacing QuickC, I felt a renewed sense of creative purpose. The above images are untextured WIPs from the cut scenes to a game I was developing at the time called “Daybreaker Rising.”

All told, while the game never got finished due to real life concerns, I learned a lot in the process and was able to plow through about 25%, or 15 minutes, of the scripted 66 minutes of animation. I really credit animator Jeff Lew’s training videos for saving me lots of unnecessary headaches.

2013: Bigger is Better, Right? … Right?

By 2012, I had been part of the online CG community for about 15 years and a self-taught artist & programmer for about twice that. I never claimed to be the authority, but I knew enough to know well enough when it came to pipeline, the subject of this rant.

Over the years, I’ve encountered countless newbies with the “which app is best” question. My advice would almost always be three-fold:

  1. There’s no “best” app and that it all comes down to talent, not kit.
  2. Tool choice can have a profound effect that might impact your career trajectory.
  3. Why pound in a nail with a screwdriver when a hammer is designed for the job?

By and large, I stand by that advice. The most powerful app in the world won’t make you a better artist; Only patience and practice will do that. Choosing an app nobody has heard of might make getting a job or fitting into a team more difficult. Some apps might only be designed to do one thing, but they’ll be the best in class and to the task. All sound and solid advice.

As 2012 can come and gone, my patience with Cinema4D followed suit. Let me be clear. There’s nothing wrong with the app that would put it in the same class as trueSpace. That was a disaster that overstayed its welcome. Cinema4D was still stable as a stone pillar, played well with other apps, and clean to a fault. What initially attracted me to C4D remained.

However, after a decade, I had grown, but C4D had not. Not really.

Character animation tools which were made a priority in R8 had largely gone neglected some 10 years later. UV and texturing tools which had initially gained the attention of Sony’s film side now felt ancient and dated. VFX-side features such as Pyrocluster, introduced in R8, went ignored therafter and remain ignored as of 2021, nearly 20 years later.

Instead, MAXON chose to de-emphasize character animation and VFX in favor of motion graphics, for which it is now known. Cinema4D remains a decent tool for that task, but it is now largely underwhelming in every other regard.

Additionally, as other software developers continued to drop their prices, MAXON kept raising theirs with C4D. You can get the latest version for just under $1,200/yr on a subscription basis, but you own nothing. Alternatively, you can own a perpetual license, but it’ll cost you nearly $4k (after tax) and it’ll always be one version behind.

If Cinema4D were “best in class” then I might be able to justify these business tactics. However, development has largely stagnated nearly 10 versions ago with R14. You pay the same, but they innovate less. Maybe it was their move from an 18-24 month release cycle to a 12 month one. Maybe not. I don’t know. The end of the line for me was when they tried to pass off a simple parametric gear primitive as ground breaking centerpiece of that release. “They want me to pay how much?!? For what’s basically a $40 plugin?”

So, now it’s 2013. The winds have changed again and my pipeline needed upgrading. Maybe it’s time for me to take my own advice.

  1. Focus on the creation process.
  2. Be smart with my core app choice and opt to align with the industry standards.
  3. Pick the best specialty tools for those special tasks.

A lot of money on app licenses and training material later…

Multiple apps. Multiple versions. Multiple years. I could have bought a sports car.

The self-education process wasn’t a big deal and the learning curve was small. Master one app and learning the next mostly come down to UI/UX. Still, my post-C4D pipeline had grown from 4 apps to a whopping 14.

  1. Photoshop
  2. Illustrator
  3. Premiere
  4. After Effects
  5. Maya
  6. Moment of Inspiration
  7. Marvelous Designer
  8. World Creator
  9. Zbrush
  10. Substance Painter
  11. Substance Designer
  12. Substance Bitmap2Material
  13. Marmoset Toolbag
  14. MS Visual Studio

That doesn’t even account for smaller filler apps like Hexels, Akeytsu, or ArtRage. If I added all of those to the mix, I’d probably be up to 24 apps in my pipeline. Let that sink in for a moment

2019: Walk On

“The only baggage that you can bring is all that you can’t leave behind.” – U2

I moved from a 4 app pipeline to one that was 14-24 apps long. I thought that I could manage all of it. I really did. I felt like I was drowning though. I’m not just talking about the cost in annual upgrades or subscriptions, which were becoming intolerable. I’m talking about the overall experience.

Here’s the thing. ZBrush may be best sculpting app. Marvelous Designer may be the best clothing simulator. World Creator may be the best terrain generator. Maya may be the de facto CG industry standard. ETC and so on. However, when you’ve got 14-24 competing UIs and design sensibilities, moving from one app the the next isn’t trivial.

ZBrush could not be more different than Maya, which is itself a world apart from World Creator. The concepts of 3D might all be the same, but the individual approaches are unique enough to create a workflow that’s anything but smooth and seamless. Doubly true when you have interoperability to worry about.

Beyond that, even with years of experience, it’s almost impossible to not get overwhelmed when you’re trying to juggle that many apps in a given project. To liken it to juggling puppies and chainsaws would be an understatement. One lapse in concentration and… puppy chow.

There are lots of “one man show” developers out there. That’s fine. It’s an indie world again. However, asking one person to work in the same manner as a full team is unreasonable. Not only is it cost prohibitive, but it’s also focus draining and flow crippling.

Asking any one person to be productive to a high degree using 14-24 apps at the same time is a lot. You can surely master all 14-24 apps, but using them all at once is something different. Every time you switch, you’re taken out of the moment. Time you lose to model massaging or working around app differences is time never regained.

I’m a big, big fan of Mythbusters. Like any self-respecting MB fan, my love for duct tape knows no bounds. You can build bridges and boats with it. You can survive in the desert or on an island. You can even craft weapons of war. Duct tape is a sticky miracle. However, to quote Adam Savage, “It’s not great at stuff, but you can engineer with it.” How does this apply to to 3D?

Back to basics

My first dip in Lake Blender was with v2.5x in 2011. I didn’t take it too seriously, tbh. It was still clunky and underpowered.. The idea of open source 3D software was appealing though.

Flash ahead to 2019 and Blender v2.79. Something changed in those 8 years. The community, likely tired of subscriptions and corporate greed, rallied around this little app. It had not only matured, but was on the cusp of greatness in that same year’s v2.80.

Like duct tape, Blender isn’t the perfect solution for everything. You can model and animate with it. You can real-time render with it. You can sculpt and texture with it. You can animate in 2D. You can even and composite edit video. However, there are almost certainly “best in class” solutions that will handle those individual tasks much better.

Like duct tape, the miracle is really in what you can do with it given the right mindset and frame of mind. If you had only one 3D app on hand and it was Blender, you could do far worse. Blender can act in isolation while Maya requires other apps to gaps.

That’s not to say that Blender is better than Maya. It’s also not to say that it’s worse. It’s to say that Blender, unlike Maya, is really designed as a one stop solution with indie developers in mind. I think that open source is largely to thank for that. The community seems to be driven more by passion than money. In only a few years, Blender has gone from an obscure oddity to a real challenger to the industry standard throne; It’s no wonder why it has gained such support from the likes of Epic, Adobe, Ubisoft, and so on.

For me, switching from Maya to Blender was another no-brainer. Save money. Do more. The same goes for my switch away from Adobe.

I love Photoshop. Don’t get me wrong. However, when it comes down to it, most artists only need or use 30% of its functionality. If you’re a game artist, functionality for CMYK workflow goes unused. If you’re a print artist, there will be tons of filters, effects, and tools that will just never get used. Photoshop is a “everything including the kitchen sink” app. What if you only need the kitchen sink?

Photoshop is standard for a reason. It’s a beast. I’d even wager that it’s worth far more than the $20/month they’re asking for it. I usually abhor the PS alternatives. They’re slow, clunky, or feature poor. Even if they’re half-way decent, they still need tons of plugins to be usable. I’m looking at you Gimp. This is why I was so skeptical when I read about the Affinity apps. $55 for a PS replacement? No way. … Yes way. If you’re an artist specializing in RGB work, Affinity Photo will literally do 99% of what Photoshop does and as easily, if not better in some cases. No subscriptions and a one time fee. Another no-brainer switch.

Another switch to my workflow has been from MSVC to CodeBlocks/GCC. It’s a bit less full featured on the optimization tools front, but that’s not a huge deal if you know where the bottlenecks tend to be. CodeBlocks with GCC is lean and mean and works well with the SDL libraries.

My final switch was away from ZBrush. Here’s another app that I love and, quite literally, it has cost me nothing for the past 13+ years despite the endless upgrades. I just feel that, like Adobe, ZBrush takes that “everything including the kitchen sink” approach. I love that you can sculpt with 100mil+ meshes, but I really only ever need 1/5 of the tools and 1/20 of the brushes. This is why I prefer 3DCoat.

While Blender tends to crawl past 20mil polys, 3DCoat still performs like a champ well into the 80mil range. There are lots of tools, but not an overwhelming amount of redundancy; There usually 6 or more ways to start any given project in ZBrush. With 3DCoat, you either start from a primitive, import a base mesh, or poly model one in the app itself. Easy as pie and no filler. 3DCoat’s UI is a bit non-standard, but still a nice mid-point between Blender and ZBrush.

Unfortunately, there was one switch I couldn’t make. I had to leave Substance Painter & Designer in the mix. Blender’s texturing tools are okay, but it is still deficient when it comes to layering and PBR painting. You can buy addons to cover those gaps. I have them. However, Substance remains much faster and more stable when it comes to texturing. It’s the one and only recurring software cost I have these days. If ArmorPaint and/or Material Maker were more mature, I might be able to consider them alternatives too. One day though. Maybe

BOTTOM LINE

I have nothing against paid software. I’m just in favor of software with no online activation and perpetual licenses. I’m also a huge supporter of open source. More over, upon reflection, I realized that bigger isn’t always better and that more isn’t always, well, more. I may be a long way off from the C64 days of just keyboard and some graph paper, but moving down from 14-24 apps to 5 or 6 is a huge improvement. Big pipelines work for big companies with lots of employees., but no so well when you’re indie.

Posted on Leave a comment

In the Beginning…

Hi, all. Rob here.

Since this is the “Hello World” post, I believe that a brief introduction is in order.

A self-taught digital artist and programmer since the days of the dinosaurs and 8-bit computing, I have been part of the game art scene for nearly 25 years now. In that capacity, I’ve filled the roles of 3D generalist, contributing editor for InsideCG, and forum admin/moderator for CGChat and GameArtisans. As hobby projects mostly, I’ve also written a handful of 2D/3D game engines and games.

The following blog is here to chronicle the development of my first commercial game, code name: “Sunset Dawn”. In addition to following the development itself, I might also address a handful of topics related to the underlying process. Currently, there is no regular blog posting schedule. As such, updates might be a little sporadic until I the project bears fruit – especially as it nears key alpha, beta, and RC milestones. Be patient. Good things come to those who wait.

For now, here are a few tidbits to whet your appetite:

  • Brand new IP with original characters and a genre bending storyline.
  • 3rd person perspective with elements of 1st and 2nd
  • Massive realtime 3D open world
  • Immersive transhuman sim.
  • Hero? Villain? Neutral? Agent of Chaos? You decide.
  • Choices matter right down to the very end
  • Thematically and visually inspired by comics of the 60s, 80s, & 90s.
  • Currently PC exclusive. Cross-platform is being considered.

Oops! Have I said too much? Not even close.