Dev Blog #22: TUG Multiplayer Phase One

TUG multiplayer is in development and it is a high priority for the Nerd Kingdom team to deliver it to our players in the upcoming months. Tim and Cameron are our two wizard coders focused on making multiplayer happen!

It’s currently 3am. I am sitting at IHOP because my AC is out and my apartment is a sweltering 87F! Gotta love the Texas summers. So what better way to pass the time unable to sleep but to tell you guys a bit more about multiplayer in TUG!

Tim Ullrich and I have been crazy busy getting Eternus ready for an expansive and fully capable networking component to support you and your friends in the same environment, building, farming, and hunting those poor innocent goats together. However this is not a simple process and believe me when I say that we have a lot of work to do.

image

As most of you know, TUG already has a multiplayer component in it. So why are we replacing this? There are two reasons. The first is so we can merge the other powerful Eternus components better through a multiplayer environment which will allow for us, the NK team, to expand the engine much more easily in the future (which let’s us deliver more content to you faster). The second reason is to give the modders a vastly more capable and expansive setup to truly code for the server and client. The road to get Eternus where we want it to be with multiplayer is going to be bumpy and will be developed over the course of several public updates, each one giving you guys more and more functionality and efficiency.

This first phase of multiplayer in TUG that we plan on delivering to you has 4 major sub-phases on our end that Tim, myself, and the rest of the NK team need to complete before it’s releasable to you.

The first sub-phase that we are currently working on is gutting the current network code out of Eternus and porting over some TUG game play elements that relied on that networking code to get the game back to simply single-player. As of this blog we are making very good progress so far!

The second sub-phase, which will require the most work, will be to fully centralize the current game’s state in one easily expandable container that will open us up for client and server synchronization later on. We dub this the “World State Controller”. This will change a lot of core components in Eternus, but won’t cause any regression of current capabilities. We are essentially just giving Eternus a supercharged face-lift to help expand its beauty even further!

image

The third sub-phase is to take the new World State Controller and implement the key piece you guys are all waiting for! The goal of this phase is to start synchronizing the “World States” between the client and server. This means when you kill a goat with a spear or dig a hole with a shovel, the data is propagated through the network in a smooth and efficient manner. The new World State Controller will easily give us the ability to develop authorities on certain game play events depending upon if you are the server or client. Once the fundamental networking core is in place and connections are made, then game play code can start being rewritten to use the new network and World State Controller architecture!

The last sub-phase is where Tim, myself and the rest of the NK team will test, polish, and tweak everything to get it working just right! Once we are confident that everything is in working order, then we will release multiplayer to the masses!

Right now Tim and I are in the middle of the first sub-phase. We hope to be done with it soon as we are both excited to start tuning Eternus toward getting ready for all your multiplayer desires!

I will try and keep you guys apprised on our progress via Twitter @camfergusondfw

Follow Tim via Twitter @tjullrich

Don’t hesitate to drop me a line via Twitter if you have any questions. I will do my best to answer them. I will try to do another blog once we are going strong on sub-phase 3, maybe I will even give a few hints on Phase 2 of multiplayer and what we have planned for the future!

Now it’s time for me me to leave IHOP and go back to the sweat lodge.

Best regards,

Ghost

Cameron Ferguson

FTB + Nerd Kingdom

A message from Ino: 

As many, or very few, of you may know, this project is all about modding. Even the start of this project was much less to do with Minecraft, and more to do with the amazing things people created, and giving them the power, and support needed to take things further. Our own game is built on the API that sits on the engine, utilizing this same tools that you all have access to (or at least will by this next update)… idk how much more modder friendly than that you can get… well, yea, actually I have a pretty solid idea how you can do that, you put the founder of Feed The Beast as the director of mods, on the project - *high five* 

The value in community and integrity that FTB holds is astounding. Their very existence came from a desire to give recognition to modders in the community, while others did not even ask permission for things like map packs. This consideration of modders, as developers, has lead to a deep connection between player, developer and content creator; and everything learned from this is invaluable to us and this project as a whole. 

While the founder of FTB, Slowpoke (@slowpoke101), will be a formal member of Nerd Kingdom, FTB will of COURSE remain independent and Nerd Kingdom will give no directive to how they do things. As a matter of fact, we will find ways to support and expand on their work, even for the Minecraft community. And the first major steps in doing this, is open dialog and discussion to get to the bottom of what people actually need to get things done on their own projects. We will be actively looking for ways to help support modders and their projects. We will share more details on the “how” in a later update. 

On the game and tech side of things, we are in the bug squashing process, getting ready for another big update that will hit early next month. We will post some more videos on things to come on our youtube channel. And as always, if you are interested in keeping up with development, we post progress reports to our trello here.
https://trello.com/b/rW2Xc2bj/2014-development-board


And you can see FTB official announce here.
http://forum.feed-the-beast.com/threads/ftb-to-partner-with-nerd-kingdom-to-help-develop-tug.49545/


If you guys have any questions about stuff n things, hit me up @inoritewtf, or mod stuffs @Slowpoke101 or someone to yell at for things being late @BrennanPriest42 or general game updates @nerdkingdom @TheUntitledGame 

Dev Blog #21: What is Magic?

An early introduction about TUG’s early magic interactions. How is apothecary and alchemy introduced in the world of TUG?

Thus far in TUG we have seen a lot of beginnings to systems including the crafting, cooking and hunting systems.  Each of these have used a very basic principle in its design, the idea of crudeness and early experimentation.  Now we are entering into another new system, our magic system and it also follows that same design principle of early crude uses with the potential of great refinement as the game progresses.

 image

What is magic?  In our real world, magic is a universal umbrella covering anything that is misunderstood or not quite explained.  I’m sure several of you have heard the Arthur C Clarke’s third law stating: “Any sufficiently advanced technology is indistinguishable from magic.”  Let’s break down this law a little bit.  When Clarke made that statement, I don’t think he was saying that technology and magic are similar or that all magic is just advanced technology but more of what he meant is that to someone who has never seen a technologically advanced device, its operation would seem like something magical.  When comparing this to how we want magic to operate in the world of TUG, magic is a “shortcut” to powers or abilities that become readily available through more advanced tools and devices as the Seedling’s progress in their technology levels.

 image

Keeping this in mind, our first forays into the realm of magic are coming in two forms that match up to the Seedling’s crude level of current tools and we have chosen apothecary and alchemy to represent these first forms of magical interactions.  Much like how early human civilizations progressed, the process of gathering roots and herbs veered into creating poultices and crushed concoctions.  Likewise, hunting and cooking meat left bones and other products that could be ground into powders.  

 image

Potions created through apothecary provide us with our shortcuts to aid in other systems.  From a potion that helps your plants grow faster to a potion that extends the amount of hunger or fuel that the Seedling runs on!  That last one is a perfect segway into discussing our second element of magic, alchemy.

 image

Alchemy is truly one of humankind’s mystical arts.  Alchemists believed in finding that one transmutation that could turn lead into gold but in TUG our alchemy system is a little more grounded on helping Seedlings find easier routes to goals.  Early alchemy systems in TUG are all about finding a return on investment as well as exchanging one product for another product that will be more useful to the player.  Alchemical experiments can be conducted both in the wild as well as at a crafted station made by the player.  Wild alchemy is a little bit more costly but doesn’t require the Seedling to return to their home base when they really need to make some conversion of resources.  The alchemy table the player can craft doesn’t take as much of a toll and also offers more types of conversion experiments.

image

But what is this cost?  While potion making in apothecary is more based on the player’s skill at gathering and brewing up mixes, alchemy is about a new type of interaction with the Seedling and his environment.  Performing magic, even at its most basic comes at a cost.  The Seedling will sacrifice a little bit of his fuel for each alchemical exchange.  This is the price of forcing energy in the world in new and unusual ways.  As magic progresses as well as the Seedling’s technology and understanding, new ways to offset this cost will become available as well as stronger uses for magic.  Exciting new mystical paths will begin to open for the Seedling but every tap into the energy flowing through the world has a cost!   

Dev Blog #20: Animation Part 2

TUG Animation Information for the Masses

More on planning, with a hint of Predators

Hey all, Skittles here again, and today we are continuing our exploration into Animation in TUG!

Last time we chatted about the my focus on planning, gathering information on restrictions/requirements (like needing things to move at a certain speed or hit on certain frames to keep certain beats), and just overall working with the team so as to get the most of of each animation.  This week, before we get down to the nitty-gritty of taking an animation from planning to something closer to what you see in-game, we are going to chat a bit more on the planning side of things.

After having gotten done determining movement speeds and sound information, the last bit of planning before starting an animation is “how many states will this character/critter have”. Now, to better illustrate this, allow me to use you, dear reader, as part of this example.  You have many states you go through during the day; one of which is sitting, another sleeping, and yet another is walking.  Now for you, you might consider that you right now are just sitting there reading this, while for me, your state is the “sitting” state, and you are performing the “reading” action at this very moment.  Now that I have hopefully illustrated what I mean by “state” , let me proceed with my animation explanation.  After determining the state, I then must conclude what sort of animation it needs to be.  There are two types of animation I tend to use to get the variety of animations we have in game, the animations are either an action, or a loop set.  These two can either be used to transition from one state to another (A), or to simply complete an action and return back to it’s previous state (B).

A.

B.

On top of these two, there is also the determining factor of should this animation be combined with one or more of state’s default animation? If it can, this is then called a mask (both images above use a mask for only applying the animation from the hips up, thus allowing from the hips down to either walk, run, idle, or crouch).  Last, but definitely not least, is the action frame.  The action frame is the frame in which the important piece of the animation takes place: the strike of the weapon, the contact of the pick, etc.  The action frame is something determined and balanced by the game designers, and then it is up to me to take their timing adjustments and make sure I hit the correct timing.

So yeah, with that all in mind, I open my 3D program and load up the rig Shotgun Ninja has so awesomely put together for me, and then go to town.  It is here at the first animation for the character/critter that I choose either to animate the walk, the idle, or the run animation.  Now the idle animation will most likely have the most animations branching from them, but the walk and run cycles give me the chance to explore the personality of the character/critter.  I normally choose to start with the walk, that way I can get into the character’s personality faster and use it to influence the rest the animations.  The predator was a fun one to work on because it needed to be fierce, stealthy, and powerful.  Starting with the stalking animation, I immediately brought his head down so as to give a more ominous feel stealthy feel, while having his tail whip from side to side to show his excitement in the hunt.  I tried to keep his head as centered as the movement of his body would allow, to give the impression of focus and determination.

Alrighty good peoples of the internet, it’s been fun sharing this time with you, but now I must get back to actually putting these tips and tricks into practice and giving yall new animations to play with.  *high five*

… hmm… would a “high five” be loop set or an action… action I think… unless… unless we wanted to have the hand stay up in the air WAITING for another person to participate… Then a loop set it is… the high fiver would wanna be able to move around or stand still, so it has to work with idling, walking, and running… now which hand shall I apply this to… I think the Gem hand, that way the high fiver can still be productive…

Yeah… *waves* bye now!

@Nk_Skittles

Dev Blog #19: Lua Scripting!

Here at Nerd Kingdom we spend a lot of time thinking about how we can empower the community to help create the game they want to play. One important way that we can help do this is by supporting modders with the tools and information they need to author interesting content. Modding is always at the forefront of our decision making when it comes to technology, and we’ve gone to great lengths to build the game with the same modding tools that we will be providing the community.

Though TUG is still in alpha, today we are providing the first revision of our scripting api documentation. You can find them at http://eternusapi.nerdkingdom.com.

We would also like to spotlight some fantastic mods that have recently been created:

Gecko Mod:
Swaps all Goats with Geckos! Written by power modder Sigil.

http://forum.nerdkingdom.com/viewtopic.php?f=7&t=1389
https://www.youtube.com/watch?v=lc7TVbVXH_E

Scripted Bow:
Adds a bow that the player can shoot. Although the Seed might need to learn a thing or two about bow usage. Written by forum user nocare.

http://steamcommunity.com/app/277930/discussions/0/43099722035315667/
https://www.dropbox.com/s/8r7j13g67rfbczd/bow-5.png

Magic Goat Wand:
We have also written a fresh guide, intended to introduce modders to scripted content within TUG via the creation of a simple Magic Wand.

http://forum.nerdkingdom.com/viewtopic.php?f=39&t=1412
https://www.youtube.com/watch?v=Nbo-DTXnNzQ

Dev Blog #18: Prey & Predator: AI and Meaningful Decisions

Gameplay is all about decisions.  Designers offer interesting choices in their levels which in turn causes the player to make a decision.  In a shooter, the placement of things such as weapons or ammo elicits the decision by the player to risk their safety to get an advantage over their opponent or the decision on whether they must conserve their shots or freely lay down a shower of bullets on their enemies.

This idea of interesting decisions is what players enjoy about games and gives them a feeling of accomplishment when they have made the right decision or an even greater sense of triumph when the decision leads to even more meaningful decisions.  Even when it is not the player making the decision but merely observing other players or NPCs in the environment making choices, it still leaves people with a sense of wonderment and a more solid grounding in the world the designer is trying to create.  Think of how many times you’ve seen an enemy in a game look broken due to bad AI.  Granted this makes it easy for the player to get an advantage on the enemy but at the same time it breaks down the illusion of the game world.  The suspension of disbelief is broken and the player’s experience is lessened.

AI can never be perfect, nor would we really want it to be.  While seeing huge imperfections in a system breaks the player’s immersion, so does a robotic, systematic pattern.  Human players have imperfections or do things erratically so we would expect our AI NPCs to mimic some of that same level of pattern differentiation.

When working with AI in a system, we want to start off with the basics.  As with any game system a lot of complexity at the start also means a lot of complex bugs to work out as the system is being built.  For TUG, we started prototyping the prey AI first.  This AI system had the easiest set of requirements for the AI to function.  Prey needed to be able to roam its environment, graze or idle and avoid danger, mainly the player.  Our first prey model is the goat.

Goat0.jpg

The goat’s basic AI decisions should all have a meaningful choice behind them.  Deciding whether to graze or roam around is a fairly 50/50 choice.  Neither decision really affects the goat’s well being but can be driven by two factors; am I hungry or am I near danger?  The player represents the goat’s main threat at this stage, so adding in a check for the player’s distance provides an influence on the goat’s decisions.  With this little bit of logic, the goat can begin to make more intelligent choices.  Is the player near me?  I should go into alert and search for the player.  Is the player dangerously near me?  RUN!

Goat1.jpg

Hunger is the other driving influence on the goat.  Adding in a hunger range on the goat influences his choices as well.  Once a goat reaches certain thresholds of this hunger level, his decisions begin to drive him more towards grazing and not just the casual type of grazing but seeking out his favorite foods like crops grown by the player!  Adding in this conflicting type of decision tree, the goat may now override his fear of the threat to satisfy his hunger.  This type of meaningful choice makes the goat’s actions seem more real and adds a level of gameplay for the player.  They can now choose to hunt the goat based on luring it toward food or find ways to prevent goats from destroying a field of crops.

Goat2.jpg

So with a few control points in his decision making we’ve created the prototype for the prey.  The prey can occur in certain biomes which is handled through our generation system, it can wander and graze the land, it actively searches for threats by the player and it has an insatiable hunger for player’s crops.  So now what about the predator?

Well at first glance, it would seem the predator is a whole different beast from the prey.  But with careful analysis, the predator is not that much different in his decision making.  We want the predator to live or at least start off in certain biomes.  We want the predator to actively search for food, in this case, the prey but also the player.  Finally, we want the predator to, well, act like a predator once it has found its prey: stalk the prey and take it down!

So with a few tweaks to the prototyped system in place for prey, we can have the predator searching based on his own hunger meters.  The more hungry, the more actively they search for food.  But also we want an alert system for their decisions as well.  When the player gets too close, the predator would be alerted and immediately switch to his attack phase.  Finally a decision path of what to do when it is hungry and near food would need to be in place, is it stalking the prey or has it closed enough distance to switch into its attack phase.

And with that we now have two AI prototypes that benefit from the same decision trees to make a basic cast of Critters to fill out the world and add to the player’s experience.  Further tweaks to the exposed controls for these systems can add variety and expand on the functionality to create new Critters in the future.  So enjoy hunting goats and watch out for that sneaky predator lying in wait just behind you!

predator0.jpg

 John aka (@x_nekochu_x)

TUG Update Alpha 0.6.3

A message from Ino:

Hey guys,

We are getting pretty close to being able to call this thing an actual game, so this update is kinda a big deal. Lots of new systems have been put into the engine, which means more stuff to do in Survival, but more importantly, more stuff to mod. Unfortunately with this update we also had to put the kibosh on the Proving Grounds; it would have held everything up so we decided to put it under construction for now. But fret not, we will get it back and running as soon as we’ve had a chance to kick it and scream at it to get it working (as is typical of effective problem solving).

We still have a lot of stuff to do and another big update coming in very soon, so keep up to date with what’s going on and maybe subscribe to our YouTube channel for WIP videos each week. Please also do keep in mind that bugs and performance issues should be expected and we really need you guys to let us know as it comes up. It’s a huge help to us and we really rely on you guys to inform us of what to improve on.

If you like what we have been doing so far, please consider sharing our project with your friends on the interwebs. Any support we get goes right back into development and helps keep us indie.

As usual, if you guys have any questions comments or concerns, feel free to yell at me @inoritewtf or our official twitter @nerdkingdom.

Xoxo.
Peter - ino - Salinas

 

Art

  • New resources added: Raw Beef, Cooked Beef, Animal Hide, Animal Intestines

  • The goat has been added as a prey Critter

  • Leaf Sack added as a decor item

  • Crude Bed added to the game

  • Crude Workbench added to the game

  • Growing trees and vines added to the game

  • Updated Grass textures

  • Added Tilled Dirt texture

  • Added Chopped Wood object

  • Added Stacked Wood & Wood Plank objects

  • Added Cobblestone & Gravel objects

  • Added Cobblestone, Carved Stone, Chopped Wood, Clay Blocks, Thatch & Wood Log textures

  • Crude Shovel, Crude Hoe, Crude Knife objects added to the game

  • Vine Fence added to game

  • Texture adjustments made to Rocks, Crude Axe, Crude Hammer

  • Texture adjustments made to Crude Shovel, Crude Hoe

  • Reoriented and rendered several weapon and tool icons for better recognition

  • Fixed alpha channel bleeding that caused some trees to render with large seams

  • Added UI icon to distinguish game objects that can be placed as voxels

  • Fixed misaligned alphas on bamboo trees

 

Design

  • Variations in recipes have been simplified to one type per recipe to fix some crafting issues

  • Resource drops have also been adjusted to match the recipe variation change

  • Farming added to the game.  Certain fruit produce seeds when harvested that allow the growing of trees and vines

  • Growable objects set to obey rules of distance to other objects and amount of sunlight in an area

  • New tools added to the recipe list, Crude Knife, Crude Hoe, Crude Shovel

  • Prey AI added to the game; the goat

  • Hunting added to the game

  • New tables & table specific recipes added to the game; Fire Pit & Crude Workbench

  • Spears are now throwable in Survival Mode; T key toggles between melee and throwing modes

  • Stacking added to object inventory amounts in the player’s backpack

  • Cooking added to the game

  • Recipes cleaned up after resource variation changes and new recipes added for all new items as well as resource conversion and item recovery recipes

  • Vine Fence object placement refined so where the cursor is pointing, next object will be placed out from cursor and in the direction of the player

  • Crude Bed mechanic added to game; using the bed (with a right click) saves the player’s spawn position and causes time to pass in the world

  • Hunger levels adjusted to work with renewable food system

 

Code

  • In Survival Mode, the “Z” key enters placement mode which allows for full rotation of objects when placing them.

  • Rudimentary pathing added for Critters

  • Hunger system added for Critters; system used to control and adjust AI behavior

  • Critter spawn system added to game

  • Critter death and loot drop system added to game

  • Critter alert/graze AI

  • Controllable Growth system added to game; trees & plants can use the grower script to grow over script controlled times as well as produce fruit and decay

  • Throwing system added for specific objects

  • Some objects can now pierce other objects when thrown

  • New animation pipeline in place to accommodate for looping animations

  • Fixed alpha channel shadow bug causing some objects to not render proper shadows

  • Model Viewer added(Currently 64-bit only)

  • Fixed numerous stablility issues

  • More functionality added to Modding API (See scripts in content folder for examples)

  • Cleaner Main Menu UI/UX

  • Numerous logic bugs fixed

  • Fixed sound not playing on breaking objects

  • Fixed sound not playing on breaking terrain

  • Fixed sounds not playing correctly on foot steps

  • Improved sound buffer logic

  • Improvements to the save system to account for objects having child objects

 

Known Issues

  • Current saves will no longer be valid

  • Proving Grounds has been temporarily disabled

  • Creative Mode server (and multiplayer) have known instabilities while we investigate improvements to networking

  • Some objects when placed inside of (or clipping into) the terrain can cause them to fall through the ground

  • Placing a torch pressed right up against a wall will an error pop up (which is recoverable), and the torch will be lost

  • Tools do not take durability damage from terrain interaction

  • Tool resource drops overlap

  • Tools overlap in functionality

  • Spears will stick if any portion of it hits

  • Mouse button 3-4 can’t be bound to actions

  • Fire Pit will light whenever a saved game is reloaded or if a player leaves a biome and returns

  • Using stacked objects in recipes can sometimes not allow the recipe to be crafted

  • Placing very large objects close to yourself can cause you to fall through the world

  • If you die in Survival Mode, the item in your hand does not drop

  • In Survival, Hunger, health, and stamina levels restore to full between game sessions

  • The shovel can only be picked up at the stone tip/head portion

  • Mushrooms and Crystals are displaying the wrong texture

  • Sometimes changes to a world do not load properly. Reloading the map should load the changes.

  • Stacked objects that are dropped using “Q” do not have a visual representation of the number of stacked items in the stack

  • Placing the Vine Fence using the right mouse button can sometimes cause the object to get stuck inside the player

  • Sprint cannot be currently remapped

YUGscast?

It’s arguable that the Yogscast has been one of the most influential groups in the Minecraft community. Many of the mods or maps I have played to date have come from watching them on their Yogscast channel. I even learned Tekkit and Thaumcraft from Duncan and made an attempt at my own factory after the Yogs creation of their own Jaffa Factory, to which I failed miserably. Aside from general geekness, they were also a testament to our own academic ideals of social learning (gross, academics!), which is an incredibly powerful and disruptive statement in the world of “academia”, its this crazy idea that we, as gamers, can often more effectively teach and share complexity better than any single teacher or textbook, I’m a big fan.

I always would create those, “what if” scenarios early in our development, as most developers do. What if we had modders and map makers who could use OUR tools to make things fun enough to share by the Yogscast, someday. It turns out, we have this opportunity now, and a bit more…

So, I am REALLY excited to announce our official partnership and collaboration with the Yogscast… *gimme a second, barfing rainbows of excitement right now*. We met for dinner back at GDC in San Fran and we have become pretty close over the months, geeking out about things we can do, build, and share, and we cannot be more excited about the future of this project as we are right now. Their insights and experience working with modders and map makers will be invaluable, and its going to be a lot of fun making some content for their community as well. So certainly do expect some subtle influence from them in the project as well. Hmm… how many ways COULD we craft a viking helmet or diggy diggy hole tools?

Our vision for this project is in sync, and nothing changes in our development path, so we could not have asked for a better partner on this project. They are the best at what they do and we look forward to building a platform with them. There are some AMAZING things on the way with our game and the technology behind it. SO much cool stuff, but we will roll out more details of what we are working on together over time, in the form of videos and blogs, as per usual. Overall, this is a huge step for our community and project, and we hope you guys are as excited about this as we are!

 

Peter - Ino - Salinas

@inoritewtf

 

Dev Blog #17: Absence Makes the Heart Grow Fonder

What’s up everyone? It’s Edward aka Noesis again with this week’s blog on some more behind the scenes of Nerd Kingdom! Some of you may know that the Kingdom spreads far and wide. From CA to NY…Seriously. I spent the past few months in the lovely land of the Lone Star state and I’m now back in sunny Southern California. But Ed, how does Nerd Kingdom function with you guys being so spread out? Well, the simple answer is… THE INTERWEBNETZ! The more complicated interesting answer is through lots of planning, emailing, video chats, text chats, mobile, social media, and well, when we can, face to face. Oh yeah, coffee.

There are only a few of us here in California and we generally will work from home, coffee shops, and wherever else we can so kindly borrow *cough* steal *cough* a Wi-Fi connection. Every once in a while, we meet at the Starbucks in Downtown Disney. But as fun as it may sound to be able to work where ever you want, there is a lot involved. Side note: For those who do work remotely, please take time today and thank your baristas. Without them, you’d be a zombie.

20140703_103607.jpg

For one, scheduling is crucial. Our team in LA/OC is pretty spread out and trying to get everyone together actually requires a lot of planning. Figuring out a place that can handle all of our bandwidth needs is important. And at this point, standard protocol is now to run a speedtest before beginning the work day; we have our favorite spots figured out for the most part. Scheduling is also super important because of elements such as time zones, start times and end of day. An example would be usually at the beginning of the month when there are planning meetings, we usually login a little earlier to “sit in” on those meetings.

Another very important element to working remotely is lots and lots of communication. Have you ever had a situation where you got a text message and you interpreted it one way, but the sender meant it another way? Yeah, we run into that situation here and there. We communicate constantly through email, voice calls, video calls, and sometime we need to go old school and we send morse code. Not really but it might be a cool idea. Wait. No. No it’s not. Sorry. One of the cool things that happens is that when we work on documents we are able to collaborate live through Google Drive. Whoa. Google Hangout has been a very important tool…when it comes to bothering the art director for stuff.

Paul.png

All in all, the Nerd Kingdom team works hard to make sure we are working together towards putting out a quality game. Teamwork is important and we all have each other’s backs. Through lots of communication, hard work, with a sprinkling of fun, we’re able to stay connected even though we are far apart. Ok I’m stopping it here before I go into some super sappy “I love these people” motivational/inspirational blog post. Till next time!

Edward (@n0es1s)

BTW: Another tool we use to keep in touch and on track is Trello, so go check out our Dev Board. And we like talking with you all so hit us up on Twitter @TheUntitledGame and @NerdKingdom

Dev Blog #16: Programming Programmers

Hello there! It’s-a me Auti0, Programming Lead at Nerd Kingdom, again. Last time I discussed a brief overview of our modding systems and how they will play a role in TUG in the future. I’d like to talk about something a bit different this time. Leading a programming team in game development or Programming Programmers.

At Nerd Kingdom, we are still a small indie studio with less than 30 people. 7 of which are programmers(including myself). Although the programming team is “small”, it isn’t without its challenges. It is a constant juggling act of many responsibilities, including but not limited to…

  • scheduling and keeping track of everyone’s tasks

  • ensuring code quality

  • frequent meeting with other teams

  • commenting on forums

  • understanding and meeting requirements for features and tools

  • creating shippable builds

  • explaining the why’s and why not’s of the tech to other teams

  • planning infrastructure for future features and tech

  • balancing the desire to perfect tech and working on fun features

  • understanding and utilizing each individual programmer’s talents

  • testing features

  • vetting, hiring, and training new programmers

And among all this, trying to find time for myself to actually code. These are just some of the responsibilities that I have to deal with on a daily basis.

One of the critical points in any project, which games are not exempt from, is timelines. Being able to accurately create timelines is an invaluable tool. In the real world though, this is one of the hardest things to do. When building an engine and game simultaneously, there are just a ridiculous amount of variables that come into play. Although I could make excuses all day, the truth is it still falls on the lead programmer to make sure our timelines are as accurate as possible and we do everything we can to make sure they are met. A simple rule I learned from one of my old programming leads is to take your original estimate, multiply it by two, then add 3. It isn’t perfect, but it adds a good amount of padding for prototyping, feedback, refinement, testing, and cleanup.

A major strength/flaw of programmers is an unnatural desire to make everything perfect. At first glance, this seems like a good thing. We all want perfect, right? The issue is that is it easy to go down a rabbit hole of finding the cleanest, most efficient, most robust solution for even the simplest problem. We want to architect a beautiful system for the simplest of features. So part of the lead programmers job is to know where to draw the line and when to intervene to create a balance. It is important to find time for both building infrastructure and implementing actual gameplay features. Often you simply have to say something is “good enough” and move on. This doesn’t always sit well with some programmers, but it’s all part of the big picture of making a kick-ass game. After all a perfect engine with no game is no fun at all (unless you are into that kind of thing)!

Every programmer is unique. Some are very talented in a specific field, like rendering, while others are competent at most systems and can bounce around as needed. Learning each of your programmer’s skill sets is crucial in developing the project as efficiently as possible. This takes time and it isn’t always immediately apparent what an individual programmer’s true skill set is even if you have a general idea from the interview process. Besides their actual expertises it’s  important to know the two things about the programmer we discussed in the previous sections, estimating tasks and time management. Both of these are usually things that improve with experience.

One more thing you will have to deal with as a lead is interacting with other teams. This can mean interacting with them on a daily basis to make sure content is in line with tech development to managing expectations of features and tools that are coming online. You never know what your art director might throw at you that day so you always need to stay sharp and be ready to roll with the punches!

Leading a programming team is a ton of work. Some days can be a huge stress ball and all I want to do is go to a corner and code away, but overall I love my job and wouldn’t trade it for anything.

Thanks for reading again! I hope you got a better understanding about our programming team from this. I’m always down to answer questions so just shoot me a PM on the forums or twitter and I’d be happy to answer any further questions regarding being a lead, TUG, Nerd Kingdom, or the Games Industry all together.

@Auti0

Andrew Davis

Lead Programmer at Nerd Kingdom