Month 4: Resisting Temptation

Published October 01, 2014
Advertisement
I've titled this post "Resisting Temptation" because it seems to be something I really need to remind myself to do more often. When you're building a prototype, as I should be trying to do, you don't want to spend a lot of time on stuff that doesn't matter. Right? ...right?! It makes no sense to build something, polish it, and spend lots of time making it look pretty if you know its never going to see the light of day. Especially if you're falling into the trap of "reinventing the wheel", as I often do. If you do build something that takes a ton of effort, you're going to become attached to something you have to throw away, and that just makes it all the harder to throw it away when its time. Enough generalization, let's get specific!

In my case, I started working on the lighting and atmospherics of my game. I need to have a sun and some moons because I've convinced myself that they need to be relevant to the game play. When its night, vision ranges are reduced and night creatures get some sort of "boost". When certain moons are full, a corresponding magic system gets a boost or vice versa. So, the question I wasn't asking (and didn't think to ask until now), is "What is just barely good enough for a throw away prototype?". Is a text string sufficient? I hate to say this, but most likely, yes! Here's where the trap begins:
Me: "But, a text string just doesn't convey the same tone / feel, and 'fun' is a feeling. I should at least put in a point sprite representing the sun position!"
Okay, so I buy my own argument and do so. This introduces some new "issues"
Me: "Okay, the sun sets on the horizon now but its white! A real sunset is beautiful and looks reddish orange! I can at least change the color of the sun based on its horizon position, right?"
So I do.
Me: "One other thing about sunsets is that the sun is still a directional light source! The sunlight also changes colors! It makes no sense if every object in my scene is being shaded as if it were mid-day. I should modify all of my shaders to account for a directional light color."
So I do, and I am getting into the "WTF are you doing?!" territory.
Me: "This looks fucking fantastic! The last thing to really sell the sky is clouds! Lets build a huge cloud of particles and let the sunlight illuminate them. My weak justification is the following: Clouds are essential to my in-game weather system, which will have an effect on the world."
So, I build clouds. It's not easy, but it's a hell of a lot of fun. I end up spending several hours just flying the camera through the clouds, imagining that I'm a dragon descending from the sky onto a helpless village. They never saw me coming because I was hiding behind the clouds! Or, I'm a WWII fighter pilot, flying through cloud stacks, trying to hide in the clouds while sneakily picking off unwary enemy fight planes (commence airplane noises).
And then I start scrutinizing my clouds a bit. There are just a few more tweaks I could make which would really make them look nice! Like real clouds! Generally, clouds are self-shadowing, right?! So, if I take a cloud particle and run a ray towards the sun and figure out how many intersections I have and shade accordingly, I could create some pretty sexy looking clouds. THEN it would be freakin' sweet!
I try, and find that it's prohibitively expensive on the CPU. The CPU light version just doesn't look good, and it doesn't scale well to hundreds of thousands of cloud particles. Scratch that idea! Just fake it by tinting the cloud particles based on their position in the cloud, relative to the top of the cloud.

The scientist / engineer part of me is loving all of the science and mathematics involved in creating this 'art', and the engineer part is loving the optimization challenges. I could easily get immersed in building perfectly optimized and visually correct clouds which are illuminated by the sun and ambient light sources. I could happily spend a month on it, researching published studies / articles, creating optimized shaders, trying to create an ultra-efficient CPU to GPU rendering pipeline, etc. It's tempting because it's got so many tantalizing challenges. But now let's put the producer / project manager hat back on and look at what we're doing. This is when we face palm and ask, "wtf are you doing, ya big idiot?! The *engine* will do all of this, and more. You could have just gotten away with using a couple spheres to represent clouds, called it good, and moved on. This comes with a slight opportunity cost as well! You aren't working on the game mechanics / game system anymore, and that's a core requirement for your prototype. Get back on track!" (And a sneaking, nagging doubt creeps in and whispers: "Can you even stay on track long enough to build the core game mechanics? If you can't, you're going to fail to even build a prototype and you're fucked... can't even build a prototype, much less a full production game.")

In the spirit of getting back on track, I've instituted a bit of a 'scrum sprint' cycle. Every Monday I sit down with my artist for five minutes and we outline what we're going to try to get done by the end of the week. Then on Friday, we review how we did. This is necessary and for our benefit. I hate meetings a lot. In my past experience as a military contractor, I see them mostly as a waste of time where incompetent people use them to justify their jobs by blowing hot air up the bosses ass. When I was in Afghanistan, we had a weekly meeting every Friday afternoon which would last up to 2 hours (in an office of 7) because some people didn't understand the meaning of brevity and the purpose of a "brief". So, I'm purposefully trying to keep these meetings as short and productive as possible and avoid devolving into the nightmare meetings I despised. These informal meetings are also designed to keep me on track and focused as well: If I'm working on building the spell mechanics, I can't be building a cloud and weather system instead.

Major accomplishments for the month:
-I have a dynamic day and night cycle with a dynamic directional light which changes color based on time of day (still need to do moons)
-I have built out the back end and front end game mechanics for the spell casting system and can instance a fireball (I will add complexity later)
-I have added a dynamic weather system which is going to interact closely with spells and flying units (wind, lightning, visibility, etc)
-I was able to import the high level model mesh from my artist (which is a work in progress)
-I have assembled my "units" into "armies". Units can only be controlled individually when armies begin a battle (this still needs to be fully implemented).
-A wizard can establish their first building, a wizard tower, and when building has been completed, the wizard tower creates borders (just visually at the moment)
-Wizards can capture mana nodes and build improvements on them (but they don't supply the wizard with a steady stream of mana... yet)
-Made a lot of changes to the user interface screens (but this is only 15% complete, at best. It seems UI's have to follow implemented game systems, not the other way around)
-I've fleshed out the first iteration of the spell system and mechanics, though it still needs a lot more work.
-I added trees, bushes, and grass vegetation to test out the workflow necessary to add models with multiple static meshes, texture them, and illuminate them with directional lighting, and to create some obstacles for creatures to move around, and to give a launching point for implementing 'harvestable resources' which will play a big part in a resources and crafting system. It also adds a bit more "life" into the game environment.

This month marks the 4th month of my new studio's "official" start on this game, with an office building and employee. But it also marks the 1 year mark from when I began this effort. This whole prototype is being done in my own home-brew game engine written in C#/XNA, built entirely from scratch, 99.9% of which is written by me. It's a bit rough around the edges, but its fast and it works. It's interesting to look back and see how far I've come. In a year from now, I want to be far into the production version of this game in Unreal Engine 4. The production of that should be mostly just mindless copying of the game mechanics and systems established in the prototype and adding lots of polish. At some point in the distant future, I'm also going to have to start thinking very hard about marketing, launch, and distribution. I'll certainly need some help on that when the time comes.

Here are some screenshots of the progress (click for large version):
Launching fireballs at a formation of swordsmen during mid-day
1OCT2014_01.png

Launching fireballs at a formation during the middle of the night
1OCT2014_02.png

Peeking down through the clouds at the battlefield during sunset
1OCT2014_03.png
4 likes 7 comments

Comments

Orymus3

Well, on the plus sign, that weather system is really starting to take shape. I agree it's probably been taken much too far however.

I do like the progress on gameplay. It seems you have prioritized combat over general navigation as a whole? (I'm not sure judging from current progresses).

Could you provide us with a bit more insight into your current plan / roadmap as you envision it (for production yet to come).

October 01, 2014 07:08 PM
slayemin

Well, on the plus sign, that weather system is really starting to take shape. I agree it's probably been taken much too far however.

I do like the progress on gameplay. It seems you have prioritized combat over general navigation as a whole? (I'm not sure judging from current progresses).

Could you provide us with a bit more insight into your current plan / roadmap as you envision it (for production yet to come).

I'm still quite uncertain on the overall game play and how it will all work together, so I've tried to identify the core game mechanics and systems and build them out with as much implementation detail as possible. It needs to fit the game design vision. So, the current effort is to build the core features I know are going into the game and see if it actually works and is fun. With that in mind, 80% of the game will be focused on tactical combat and managing a town (similar to a real time strategy game). I think 15% of the game play will be setting broader strategic objectives in an overland map (moving armies around, capturing provinces, selecting spell researches, etc). I have a general idea on how the tactical combat and strategic overviews interact with each other, but there are a lot of question marks lurking behind the fog of uncertainty. So, I'm focusing on building out the main 80% of the core game play and letting the rest of the implementation and interaction percolate in the back of my mind. My instinct tells me that the solution will become much more obvious as I get farther along in the prototype implementation.

As far as the prototype goes, here's a rough road map of major things I still need to build out:

[ ] - Implement an 80% complete solution for the resources and crafting system
[ ] - Allow trees, rocks, fields, lakes, and other natural bodies to be exploited for resources by villagers. The villagers should somehow return the resources to a warehouse.
[ ] - Create various buildings (foundry, blacksmith, grain farmer, mill, baker, etc) and somehow get appropriate resources out of the warehouse to the crafting houses.
[ ] - Create tools which grant professions / abilities to whoever has them equipped. Example: A villager becomes a blacksmith if they have a hammer and tongs.
[ ] - Once a town has been established, it spawns borders. The player can only place buildings within these borders (similar to Settlers). Some buildings and professions can expand these borders. This needs to be implemented.
[ ] - Players can capture any mana nodes which are within their faction borders. A captured mana node can be improved to provide mana to magicians.
[ ] - There needs to be a large spell pool. New spells are acquired by researching them. Existing spells can be improved, which increases their potency. There are a lot of prerequisites to casting a spell which need to be implemented.
[ ] - Mages have spell books which contain copies of various spells known by their faction. There are a few complicated game mechanics dictating how spellbooks are populated.
[ ] - Players can create "Armies", which are a group of units, and send them off on a mission outside of the kingdom borders. Armies can start a battle with other armies. There is a battle system which needs to be implemented (pre-battle planning, battle, post battle results)
[ ] - Deceased magicians can be resurrected in the wizard tower by performing a summoning ritual. This is one of the many things which players can do in the wizard tower. In fact, a lot of "stuff" is done via the wizard tower. Upgrading the wizard tower unlocks additional capabilities, and a wizard tower can only be upgraded to the same level as the mage guild leader.

[ ] - "Creep Spawners" are a special type of building which spawns neutral but aggressive creatures of various types, depending on the level of the creep spawner. Over time, the creep spawner levels up and spawns more powerful creeps. Creeps will wander around the spawner but attack nearby settlements (the AI will be inspired by ant colonies and scent trails). Creep spawners are places for player wizards to attack for experience and to punish players who completely ignore town defenses.

[ ] - Is it fun to customize and design buildings? I don't know, I'm thinking it would be. Would it be interesting to add an in-game building editor?

The prototyping phase will give me a pretty good idea on my scope vs resources ratio and (wearing the project manager hat) I may have to cut a lot of design ideas if it takes too long. If I can build a prototype which has an overland map, a few villages, a few creep spawners, a decent magic system, and the ability to wage intense 10-15 minute battles, I will consider the prototype "complete". It just needs to implement the core game mechanics and systems, allow me to modify how they work together, and let me see if this game is 'fun'. When this is done, I can switch over to building the release version of the game in UE4. Based on my current rate of development and what needs to be done, I think I'm looking at 6-8 more months at least for prototyping. Then its a long and painful switch-over to UE4 to rebuild the established game systems. I anticipate that there will be a lot of pain to learn how to use the engine, but once I learn how to use it, the production will go very quickly since the editor is so powerful.

When I'm about 50-70% complete on the production portion, I am going to start a marketing effort (game website, reaching out to journalists). When the game is 90% complete, I'm going to start making preparations to launch on steam and whatever other digital distribution platforms are out there. Somewhere in this process may also be an ideal time to see if there are any publishers interested in a partnership -- they'd have to be willing to get behind this financially by committing marketing and support in exchange for profit sharing of some sort. Since this is my first game though, I'm an un-established nobody and it's probably going to be really hard to get anyone to take me seriously without something super solid to show and a good sales pitch. We'll see what the future holds though, it's really early to make any calls at this stage in the dev process.

October 02, 2014 12:33 AM
d000hg

So is this sort of a Magic Carpet vibed game (I assume you're old enough to know it)?

October 02, 2014 11:02 AM
Mybowlcut

I'm also curious to know what type of game this is. Just from skimming through the text here and looking at the screenshots, it reminds me of Mount and Blade, sorta.

Also, did you literally spend hours "just flying the camera through the clouds"? :D

October 02, 2014 02:36 PM
slayemin

I'm also curious to know what type of game this is. Just from skimming through the text here and looking at the screenshots, it reminds me of Mount and Blade, sorta.

Also, did you literally spend hours "just flying the camera through the clouds"? biggrin.png

Well, maybe I accumulated about 30 minutes total over several debug sessions :) I think I'm easily entertained though since my imagination fills in some gaps / invents scenarios

October 02, 2014 05:23 PM
slayemin

So is this sort of a Magic Carpet vibed game (I assume you're old enough to know it)?

I loved magic carpet! I think that was one of Peter Molyneux's best games.

But no, this is more of a mish-mash of "Total War" meets "Magic the gathering" meets "Stronghold". Or, maybe I should say those are some of my top influences.

October 02, 2014 05:28 PM
Orymus3

I'm glad you're shaping up a definition of 'done' for your prototype (however hazy it may seem now, you will gain more clarity about it as you go).

Stronghold is an underrated game for sure, I've always wondered how it would feel if it was integrated in a greater loop of chained battles. Using Total War as an overarching gameplay dimension should sure prove to be interesting.

The magic part makes me think a lot about Fantasy Empire, an old game developed on DOS.

Keep it up!

October 09, 2014 01:24 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement