Blog

Smart Solutions for Smarter Business
Subscribe to Blog feed Blog

 

Hello again!  So as the software developer, and as the person that will be primarily responsible for the code of Deceit itself, one of my tasks is to make sure that the code is clean, clear, and concise.  On top of it just being good practice, it makes it a lot easier to make changes, do some bug squashing, or implement new features in the future when the code is well documented, easy to read, and well structured.

So, to help with the ability to add new features, enemies, power-ups, or whatever else in Deceit, we implemented our own version of a finite state machine.  For those unfamiliar with what a 'state machine' is, it’s a way to handle the idea that an object can be in one of many, or even an infinite number, of states.  It’s actually pretty intuitive for people to think of things being in states, and understand it like “being in a certain state of mind”, or "that thing is in a certain state of disrepair.”

Think of a finite state machine like a vending machine.  It’s finite because there are only a certain number of states the vending machine can be in.  The initial state is ‘ready’.  The vending machine is ready and waiting patiently to gobble up your money.  When you feed it your money, that causes the machine to transition to another state!  The next state is then a state of ‘waiting’ for the user to make a selection.  The user makes a selection, causing another transition to a different state of ‘dispense’.  The vending machine dispenses the product, and goes back to the ‘ready’ state.

I hope you catch my drift.  A finite state machine is going to make my job easier down the road.  Instead of making a bunch of statements in the code like: ‘if(this is true) { then do this; } else if (this is true) { then do this instead;}  else if (thiiiiiiiis is true)… and so on, which leads to a lot of complicated, convoluted, and spaghetti-looking code and logic, I can just give the player or the enemies, or anything else, a bunch of different states they can be in. All of the logic gets put in a place that makes sense and is easy to find.  It’s also going to make it easy to just plop new things like power-ups, versions of enemies, weapons, and so forth into the game.

I want to avoid making this blog post humungous, so I’ll just mention a few more things. 

Impact is pretty cool in that it implemented a way for code to be reusable with something called inheritance.  The method they used for implementing it is based off of John Risig’s Simple JavaScript Inheritance; Using that, I could just make a class called ‘state’ and then have each entity in the game implement their own version, overriding functions and code that is going to contain logic specific to that entity.

So for now I’m switching logic in the game to use the finite state machine.  After that is all settled it’s time to tackle composite sprites

Updates on Wednesday!

Finally, updates in the near future!

With the lack of programming going around, I've been playing around with some miniboss designs. I'll introduce some ofthem once they're more fleshed out, but I ran into a serious choice about halfway through him: I had to choose my palette, finally.

So far, we've been paletteless. Our engine supports all colors, but I found myself pining for the simplicity of a smaller colorset. I'm a big fan of self-imposing limitations on myself when I'm working on a project, because the simpler the toolset the more you can focus on the actual project.

What palette should I use, though? I don't want it to be too simple, but too much complexity poisons the SNES look. I did some pixelart research, and found an amazing forum post by DawnBringer on PixelJoint. In it he explains his choice of a 16-color palette, and shows some awesome examples.

I decided to run with it, and did some tests. The game will have a lot of metal (brass,copper,chrome) and the palette ALMOST has enough to make those work well. I'm going with a pretty dark overall look, and so I decided to add a range of desaturated greybrowns across the entire value spectrum to my personal palette. The results are the stripes seen behind the creature in the header image above!

That said, I'm not going to be too strict. The game will have tons of glow effects, and as fun as it would be to be strict with every single one and dither it all away, I'm going to fudge things quite a bit. Taking a color here and skewing its brightness/saturation there. It's cheating, but since my limits are self-imposed I don't think it's the end of the world.

Tags: 

So: I've always worked digitally. Preferably working with pixels instead of strokes/brushes. I've got an artistic mind, but almost no hand-eye coordination. My handwriting is proof of that, hah. Pixel art's always been my go-to medium because of it, because it's more the Lego of art than anything. everything stacks wonderfully and makes sense and is geometric and I don't have to mess around with anything that REQUIRES me to have hand-eye coordination. I've got a degree in Digital Art, but I also did scupture and used other physical mediums. Invariably though, I avoided the pencil and the brush. Anything I could BUILD I loved, anything I had to draw/paint I hated. This has always worked just fine for me, but one way it doesn't  work well is with concept art. Pixel art isn't fast. Basics can be, but it's not a one-minute medium. When I have a concept I want to present, spending an hour pixelling isn't the best use of time to get across my idea. Because of this, I've been experimenting with methods that help me concept out things but also defy my handeye coordination failure. I've been using a great little iPad app called Paper by 53, which has really fast sketch/undo capabilities. It's pretty awesome, even if what I draw is terrible. It's almost painful, realizing how bad of an artist I seem when I have to paint/draw. Regardless, SUFFER THROUGH MY INITIAL ATTEMPTS:

In this 'piece' we see steven try to communicate the idea of a 'rocket-powered mothership blimp that flies past and drops enemies.' And fail. No judgment until I pixel it out, it looks awesome in my head.

tThis sexy beast will be some sort of passive robot priest guy, who can be triggered to shoot lasers at specific points by stepping on buttons. You can also kill him, if you want the entire screen to blow up. Wow, that image is ugly.

Merry Holidays! We put together a little background for you. Two versions, one Christmas-themed and one not! See, all the bases covered now.

Click for the full version!

Click for the full version!

We didn't get a shred of programming done this last month, so no playable level for you. Maybe we'll make it a Valentine's gift! We do love you more than anyone else does guaranteed, so it might be appropriate. We spent quite a bit of time on art these last couple of weeks though, and we have some fun stuff coming! We're trying to figure out animating background tiles so no new animations yet, but our first level has a gorgeous parallax-y cityscape background, and we're slowly fixing things up to actually be attractive. More later!

We're back! Hope you didn't miss us too much.

First off: We've moved into a new office! We were originally renting space from an executive suites office pool, but we were able to move into a single-room office in a lawfirm! Interesting office company, for sure.At least the coffee's good!

So. Deceit. We're working on it! No joke! This last week, we sat down and mapped out our goals for the game, focusing specifically on the first level. We've scaled back our art style a bit, going from the original slightly-isometric look to a straight-on 2d look. This will keep things simple, and give us room to expand into a different art style for a hypothetical sequel! As for the style and theme, we're looking at making a 2d platformer, with metroidvania elements. We're emulating games like Metroid, Castlevania, and classic PC platformers from the 90s, like Commander Keen (4, specifically) and Biohazard. We're gonna make it feel like you're playing a classic game, but have some modern elements.

So, we've been mapping out the first level. This involved going from sketches to actually laying out the basic size and shape, which is where we are now. We want the first level to be the basic blueprint for the levels that follow, so we mapped out what we want from each level. These pieces are:

  1. We want every level to have multiple areas. For the first level, these area will be a street level, an entire rooftop area, and sewers.
  2. We want some areas to be accessible from the outset, some areas to open up mid-level, and some areas to only be accessible when you come back with upgrades from later in the game.
  3. Each level needs to have
    1. A required upgrade to finish the level
    2. A hidden secret upgrade
    3. An upgrade that you can only get by coming back to the level later.
  4. Each level needs to add variety to the game, so at least three new enemies need to be introduced per level
  5. The end of each level should have some sort of 'boss'
  6. The end of the level can only be accessed when the main areas of the level have been explored. For the first level, this will be enforced by having to find keys.

We're thinking 5-10 levels for the first game, in total. We have a basic story to tell, and we want there to be enough variety that you feel like you're getting to use the abilities and upgrades that you find. We're also looking forward to planning out the come-back-later upgrades, because it will be interesting to have to inject later upgrades into areas of prior levels. You know in Metroid where you get the suit that lets you withstand high heat? Maybe it'll be something like that, where the first level has an area that is effectively blocked off by hot steam, or something. We're not quite sure about this element yet, because we have yet to plan out all of the upgrades! We're coding as we go, and using this as a playtest for our design skills, but we are excited to make it fun.

We're gonna post a playable sandbox copy of the first level when we get it to a playable level, so look forward to that hopefully before Christmas!

Happy Thanksgiving, from your friendly neighborhood absentee game designers!
Our sincerest apologies for the lack of updates this last month, we got... distracted. There was a large business conference that was relevant to our side project BusinessOneTraining.com, and we spent a huge swath of the month preparing for interviews and classes there. 

Thankfully, we had some time last week to do a solid bit of game design, and we mapped out the basics for our first level! We'll put up a detailed blog about level1 next week!
Thanks for putting up with us, we'll be better about updating now that our biggest distraction is out of the way!
-Steve

Tags: 

We're back! ...sorta!
Just a quick update about our plans: While the Kickstarter was running we fell behind on our side project, BusinessOneTraining.com. Since the Kickstarter ended we've been catching up there, but here soon we'll be back to our normal schedule in full gear!
We plan on working on a lot of things this next month, but some of them are:

  • Get BusinessOneTraining.com updated in preparation for a business conference in November
  • Build Crystalize.me into a functioning clone of BusinessOneTraining.com
  • Continue work on Deceit. Specifically, get all the player functions tightened up and polished, so that we can move into level design without being surprised by something down the road
  • Design new interesting enemies
  • Build a fully functioning level with an upgrade
  • Release a rough draft alpha level to our backers by the end of November
  • Rebrand Tiger-Sheep.com so that it's focused both on the business end of Tiger Sheep AND the 10,000 Hours project.

Should be an interesting month. We've sent out an email asking for details from all of our backers, and we're most of the way through the list. From here on out, those who want an email every time we blog will get them!

I made a new enemy, a flying device that lazily flaps overhead. If it senses you within a certain distance, it speeds up and its eye turns red. If it is directly over you AND it senses you moving at all, it drops like a rock and explodes. It will make for some fun moments, where you have to decide to either stand still or avoid other enemies!

So. When I was working on the protagonist a month ago, I made the mistake of making him 42px high. Because of that, I made the terrain detail tiles 21 high, so he would be two of them tall. Oops.
 
Turns out that Impact has a in-built collision layer, with tiles that are 10px tall. I had two choices: Make a new collision layer that's 7px square, (3 per terrain tile, 6 per protag) delving into code and hassle, or remake the terrain tiles. I chose the terrain tiles, because I liked the thought of everything being multiples of tens. I'll have to go back and erase two vertical pixels on the protagonist tileset, but oh well. It works great for now!

We've been brainstorming what we wanna do with Deceit's sound, and I just wanted to point you towards an amazing little sound device online.
 
http://www.bfxr.net/ is an awesome little sound creation device, and makes classic-sounding bleeps and pings that will be perfect for a retro-styled game. Best of all, anything you make with it is free to use for commercial use!
 
Give it a try, it's really pretty awesome!

HOUR ZERO
     What do you need to really do to start a small company? As with all projects, it is very easy to get caught up in the doing and forget about the planning, but I will tell you now that the best and most successful projects spend the first 30% of their budgeted time planning. Our project, like most projects, started out as a fun idea. We wanted a clear purpose that was grander and more interesting than “I want to make a great game like Blizzard.” Marie Curie once said “Be less curious about people and more curious about ideas”, And I think this is very true. If you have an idea and you push for the realization of that idea, you will achieve great things. If you spend your time trying to become like something else you will rarely contribute something new and innovative enough to achieve true success. With that said, let’s begin Hour Zero of the 10,000 Hours Project!
The framework:
     Doing anything you really care about takes serious time and effort. When I set out to make video games, I realized that because I have a family I wouldn’t be able to put in the required time just as a side project. That meant doing it as a real business, so I started the following process. I am fortunate enough to have several friends who have gone to law school and are bar certified in my state, so I was able to get initial advice and get filings done for about $100 plus state registration fees. One week later, presto!  I had a letter from the IRS and the state saying that I was the real deal and Tiger Sheep LLC was born.
     Now that we were a legitimate business, it was time to make sure we had some accounting software in place to manage all of our expenses and revenues in a proper manner.  Since my background is in small business accounting software, I went for something a little bigger than necessary: SAP Business One. On the flip side, this software will expand with my business up to a hypothetical $100 million in revenue and several hundred employees. Here’s to hoping I can max it out!
     For people without a background in accounting, I would recommend QuickBooks. You can pick it up at Costco and it is great for someone just beginning. There are also a large community of users and many local professionals and CPA’s that support QuickBooks.
     This leads me to our next piece of expensive professional services that need to be addressed: proper accounting and filing. A good CPA will work with a startup for a very reasonable price, and will help make sure that you are filing all of your quarterly, state and federal taxes properly. Any additional filings that may be required for how you are operating your business are also addressed to avoid any hidden surprises. Unless you are a CPA yourself, I highly recommend letting them do your end-of-year tax filings as well. Mistakes are expensive, as I learned in my first company. We ended up budgeting about $3000 for software, legal counsel, and CPA consult, just to get started. If you go with QuickBooks you will only need something in the neighborhood of $1000.
Office space, Employees and Hardware acquisition and setup.
     If you have planned well, you’ll know exactly what you need in terms of people and software to be able to start functioning. Since we were starting at zero, we chose a simpler platform to use, with the plan to grow into more complex coding and art environments.
     For us, the choice was simple: Do we know C or C++? No we don’t.  At least not well enough to start writing games, and both languages have an experience curve we wanted to avoid. Once we knew we weren’t going the hardcore route, we looked at other options and settled on JavaScript, CSS, HTML5 to begin with. These languages are open, easy, and documented extensively. We found the Impact engine for JavaScript, that provided us a framework that was easy to understand and well suited to top down or side scrolling 2D games. In short? Perfect for beginners.
     Back to planning, The next question I asked was “what am I personally not very good at that it would be more efficient to hire someone to do than to learn?” For myself, it was the artistic elements of game and web design. I don’t have the knack, and didn’t want to spend hours upon hours creating something that an artist could do in 30 minutes. A word of caution: People are by far your most important and most difficult resource to manage, and a poor choice in the initial hiring will be a major distraction, expense and time sink.
     When I hired Steven I looked for four things primarily and they follow in order of importance:

  • Is he a good fit for the company I was building, in terms of personality?
  • Is he intelligent and passionate about games?
  • Is my impression that he could learn new skills quickly?
  • Is his experience and background appropriate for the position I was hiring for?

     Note that experience and background are last on the list; ultimately what someone has done is only a reasonable indicator of what they could accomplish in the future. With a little guidance I can turn someone with passion and intelligence into a master of their craft even without significant prior experience.
     With Steven, I felt that he met this criteria, and I can honestly say it was a good decision. He has been able to work largely independently, and has successfully completed a wide range of projects. Many projects were outside of his initial skill set, but hiring a quick learner proved to be an excellent decision!
     Back to hardware: Now that I knew who I was going to be hiring, and had a pretty good idea what they would need to do, I could purchase appropriate computer hardware. Hardware is cheap, so don’t skimp! For the business, I purchased upper mid-grade equipment and as a result there was very little wait time for complex tasks and applications. Dual monitors are your friend, and I think all employees should have at least two.
     For software, I chose Microsoft as my foundation because it is what I know, and Microsoft has several great programs for startups to get rolling, like their Bizspark (www.bizspark.com) initiative. I highly recommend it. I also took advantage of a solid sale and purchased the Adobe Suite at a nice discount, so Steven would have the tools necessary for proper graphic design.
     Finally, we needed a workspace. If possible, work from home! After people, rent is your next most expensive investment at this stage, and if you can avoid it that is great. If you can’t, I suggest checking on Craigslist. There are buildings that might be more suited to a warehouse or distribution company, but would work really great for an indie startup. You don’t need a compound like Google or Valve when you’re just beginning! You could also look at your local executive suites, and if they aren’t fully populated negotiate for a better rate. We are currently working out of an executive suite, and it’s certainly more comfortable. On the other side of the coin, it will limit our growth, and we are not as free to make modifications to the space as we would be in a more traditional commercial space lease. All-in-all look at the cost per square foot, and shoot for about $1 per Sq. ft. per month or better.
    This is a little glance into the beginnings of how we began, and I hope it proves useful for someone looking into starting a serious indie startup. You need money to make money, but you can do quite a bit to keep your costs low!

When we first began, our plan was to make simple games for Android and iOS. As we talked and brainstormed, we slowly realized that some of the games we want to make wouldn't be feasible with touch controls. That's why we're using the Impact engine, at first. Impact will support:

  • PC
  • Mac
  • Linux
  • iOS
  • Android
  • etc

Because it runs on HTML5 and javascript, we should be able to port games simply to any device that can run the web. For phones, we'll be patching a control interface over the game itself and packaging it in an app, for simplicity.
We're really excited to try to make games that run great on Linux and Mac, too. I've owned computers that ran both, but always go back to Windows for the gaming support. Hopefully we can help lessen that pain!

I'm finally getting to start spriting! I worked on a couple little game projects in college, but they were more art focused than game focused. A little guy would jump, and the world would change around him based on what he killed. For Deceit, though? Things get quite a bit more complicated.
For now and for the basic prototype, we've narrowed the animations down to the following list:

  • Idle
    • Idle with gun out
      • Standing shot
    • Idle with large gun
      • Large fun standing shot
  • Duck
    • Duck with gun out
      • Ducking shot
    • Duck with large gun
      • Large gun ducking shot
  • Walk
    • Walk with gun out
      • Walking shot
    • Walking with large gun
      • Large gun walking shot
  • Run
    • Run with gun out
      • Running shot
  • Jump
    • Jump with gun out
      • Jumping shot
    • Jumping with large gun
      • Large gun jumping shot
  • Doublejump
    • Doublejump with gun out
      • Doublejump shot
  • Fall
    • Fall with gun out
      • Fall shot
    • Fall with large gun
      • Large gun falling shot
  • Land
    • Land with gun
    • Land with large gun
  • Gun holster
  • Large gun holster
  • Gun pullout
  • Large gun pullout

I'm sure I'm missing a couple, but that's the basic list. As we add attacks and weapons, the list will grow, but these are the basics to be 'playable.'
So far, I'm pretty slow at spriting. I've got a doublejump animation of 5 frames, a walk animation of 8, and an idle animation of 4. It seems like 4-8 frames an animation makes for a pretty smooth look. 8 frames is great for a long motion, and 4-5 makes for a good short one. I'm not trying for a tween-smooth animation, I'm looking for that SNES feel. What'll be interesting is making the transitions between animations. Programming in animation switches from walking to stopping and running and stopping, for instance. Landing but still being able to functionally shoot and have it look good. Our doublejump is currently a jet-powered backflip, and making a gunshot from that position look good is gonna be interesting!

We've decided to use the Impact engine for our first games, which should prove to be a good first engine. It's an engine made for the web, and it uses HTML5 and javascript, not flash. Our goal is to eventually makes games for both desktops and phones, and using Impact will let us experiment with both at once. It's an interesting engine, though. It's fairly extensible with a great coder, but the basics are pretty... basic. It's a level editor, a couple of example player motions and enemies, and everything else relies on the coder. We wouldn't have it any other way, we don't want our games to feel exactly like others! I'll talk about the level editor and how spriting will work, later.

Oh man, is this exciting. Me and the boss have been brainstorming, and we realized something. For how small we are, putting an extending amount of effort into community outreach doesn't make sense, financially. I hate that idea, though. Both of us do.
SO! We're turning to kickstarter! We're going to try to fund our time working with the community with a Kickstarter campaign, and offer some really cool stuff. If we successfully fund ourselves for the full amount of $5000, we're gonna straight-up give our backers our games! Plus, we'll turn our business into a blogging experiment, blogging about every aspect of what we learn and go through making our games. I love this idea, because our backers get free games, and we get access to users that are already excited about out stuff! We'll be releasing them alphas and betas and all of our art, and whatever else we can think of. We know we're doing this pretty early, but $100 for five years of game development output? I think it's an awesome idea. Here's to hoping it works! We just submitted the campaign to Kickstarter!

Tags: 

Category: 

We've finally started on Deceit! We'll have tons more to show you soon, but I'll paste in a teaser image of the protagonist we're thinking about.
The plan is to use Deceit as a training exercise, and hopefully make a fun game on the way. We'll tell the story of a detective in a steampunk universe in three parts. The first part will be decently simple and more platformer than metroidvania, but the hope is to build graphical quality and game quality over the three games until the third game is a great piece! More to come!

Pages

Currently Working On

Currently, we're working on the first chapter of our 'Deceit' action platformer! As well, we're working on a Kickstarter to help us shift our focus from SAP Business One training to game design!

Read more

Current Projects

Location

US
17285 Sw Arborcrest Way
Beaverton, OR 97006
Email
info@tiger-sheep.com

Get in touch

Give us a call at503-427-8177

Email us at

currentprogress460.png