Tag Archives: indie

Behold the Power of Modding

I have been rambling on about this sandbox project being mod friendly, but I haven’t given any details. How will the mods work? What will they look like? I want to take the time to answer these – please bare with me as this is  more technical than previous posts. Mods will work through the power of Python, a scripting language, and a component-based engine. Each piece of content has its own text file that describes how to create it in game. This file is actually a python script. I will touch on why this is so important soon. The content definition file is very readable and I am doing my best to simplify it. Before digging in too deep lets look at an example – a simple pickaxe.

name = 'Pickaxe'

render = Render('mods/base/item/pickaxe.png', SpriteData("Pickaxe"))
add(render)

item = Item()
#How many of this item can stack in one inventory slot.
item.stack = 1
#How often the item can be used. This is in milliseconds.
item.delay = 200
add(item)

#Adding a craft component enables players to craft the item
craft = Craft('tool')
craft.add('mods/base/tile/stone.py', 2)
craft.add('mods/base/tile/wood.py', 3)
add(craft)

#Tool components makes the item be able to break down compatable tiles
tool = Tool()
#Each tile has a life amount that is decreased by tool's power - once zero the tile breaks
tool.power = 1
#How far can the tool reach - this is in pixels (tiles are 24x24 pixels)
tool.reach = 125
#Which tiles the tool is compatable with. This can list tile groups ("soil") or specific tile names ("stone")
tool.compatable = ['soil', 'stone', 'sand']
add(tool)

Any content created in game is known as an ‘entity’ and each entity is composed of one or more components. Every component has a specific function such as a render component is used to render the entity to the screen and a craft component is used to provide information on how to craft the item. An entity can have any combination of components added or removed from it, which makes the system very modular. At entity creation the content script, such as the above pickaxe script, components are added with the add() function – such as add(render). You’ll see that a pickaxe is composed of a render, item, craft and tool components. Don’t want the pickaxe to be craftable anymore? Simply remove the craft component. Remember how I said that this is a python script? Because of this it opens up all kinds of doors. Some components will provide the power to define custom functions. What this means is that content can have unique logic inside of it. Here is one quick example.

Say you decide you really hate monsters attacking you while you’re trying to mine for some copper. You’re a simple man with simple pleasures. You don’t ask for much. Then suddenly you have an idea – lets make a new piece of equipment that insta-kills any monster that comes in contact with you. This can easily be done by adding in a custom OnHit function to your newly crafted equipment piece. You won’t worry about those monsters anymore as they squirm on the ground in agony at your feet.

If I lost you with my first mention of functions, then don’t worry because as I have previously said, all of the included game content will be a mod. Consequently, there will be plenty of examples to copy from. Also we’ll do our best to provide lots of documentation on modding. This is just one example of the true power of modding.

Quick Development Update

Since the release of the flash prototype, I have been working hard at getting a game engine up and running in C++. I wont go into much details about how this engine works, but I will say that it is seeing some great progress thanks to some open source projects such as SFML and box2d. Here is a small video preview of what the engine is capable of so far. In it you will see some boxes being created and interacting with each other. Yay! Physics!

Before too long I will have some gameplay to show off, but there is still a long ways to go for a playable game.

http://screenr.com/qY4s

Prototype Shipped

The prototype for Crazy Old Me has been published to two flash game sites, Newgrounds and Kongregate. Yay!

The prototype is getting reasonable ratings and reviews. The general consensus is that the core mechanic is good but the execution could have been better. This is good news considering that the focus of the prototype was on the core mechanic, phase shifting, and only mild effort was put into the other fronts.

Now that I have confirmed my suspicions that phase shifting has potential, it is time to stretch the core mechanics and expand on them as well. I will divulge some information once we have narrowed down what we want to do.

A New Challenger Appears

Immediately after putting Crea on hold, I began to look at what my next game project would be. I was not looking for a rebound relationship. I knew that it had to be absolutely feasible. So I began to brainstorm with my brother Aaron and my wife Kelley.

We came up with a few different ideas but I was uncertain about the feasibility. Eventually we came up with something that we liked and was achievable in a 9~ month timeframe. Over the past month we have been working on a flash prototype to get a feel for what the game and development would be like. The flash game is nearly done with only a week left of bake time before putting it only some major flash sites such as Newgrounds and Kongragate.

The working title of this new game is Crazy Old Me. It is about Felix, a young scientist, and Pickles, his pet cat. One day Felix is going about his normal life when he is abducted by his future self, who infuses Felix with ME (Me Enhancing) technology in order to complete a deranged quest. Felix is forced to go through insanely intensive training in order to prepare for a future event in which Pickles is stuck in a tree.

The gameplay in Crazy Old Me is a traditional 2D platformer at heart with some serious modifications. Several of these modifications are inspired by games such as Super Meat Boy, VVVVVV and I Wanna Be The Guy. If you know anything about these games then you know that this roughly translates to DEATH. Lots of death! Death every few seconds. Death from lava, death from heat-seeking missiles, death from pointy things. In other words, the game will be made up of many small levels that range from moderately challenging to insanely challenging. Only those with quick reflexes, good muscle memory, and determination will be able to make it through the most challenging levels.

In order to achieve unique gameplay a new concept to the genre was mixed in – phase shifting. There are two different ‘phases’ that the player can go between. Objects typically exist in only one phase or the other, which means the player must phase shift in order to avoid objects and much more. Have no doubt that we will be having fun with this concept.

I will be providing more information next week with the release of the prototype. Check back here then. Oh and here is the title screen for the prototype that Kelley did.

Three Common Pitfalls To Avoid In Indie Game Development

When standing at the threshold of a new project, humans tend to be overly optimistic and at least have best intentions for the project. Perhaps this is done to help rationalize our projected time investment into the project. Whatever the reasoning, I am particularly prone to this condition. When beginning my previous project, Crea, I was certain I would finish it and its beauty would cause the entire world to weep and cause the sea level to rise. Fastforward two years and it is clear there were several mistakes made that lead to the project being put on hold. I want to share some of these mistakes in hopes that others can learn from them – or at least I can.

Feasible Design

Ideas only have value if they are feasible. If it’s impossible to execute an idea given the resources available, then it is worthless. I’m talking about the resources you absolutely have - not promised or hope to have. It is all too easy to think “I can find people online.” or “My friends said that they’d help.” to help rationalize the scope of a large project.

Crea was designed to provide both story (PvE) and competitive (PvP) modes along with hundreds of cards and dozens of quests. This is a feasible project right? It is if you have the resources and I had convinced myself that I did. The project started with three people and grew to 6 people over the course of a few months. Life quickly began to pull team members in different directions, which left me with a large project and limited resources. Instead of calling the project a loss, I counted my chickens before they hatched. I convinced myself if I just get enough of the project done then people will see its potential and want to help. However, I gradually realized that to develop a project of this size on my own, a massive amount of work would required over a span of several years. This was undoubtedly the largest issue for Crea.

Moving forward, while coming up with a new game project my primary focus will be to ensure that the very basic design is feasible with the resources I currently have. I will try to be more realistic for project timelines and time pouring will be limited to something reasonable. I will not count new team members as a reliable resource until proven otherwise.

Defined Scope

The only way to determine a project’s feasibility is to have a well-defined scope. A carefully thought-out project design can fight against the deadly disease known as scope creep. Scope creep is where new features are added after the initial design without adding new resources – a temptress that has seduced many game projects and led them down a path of destruction.

In addition to Crea not being a feasible design, it was not well-defined upfront as well. The very core gameplay was detailed but gameplay systems were left to be sketched out. This vagueness left the project wide open to scope creep. We added a dozen cool “features”, such as character classes, card levels, card fusing, and the list goes on. Countless hours were spending pondering these features and implementing them. We were so excited about all these new ideas that we lost track of the big picture. The result: a bloated, needlessly complicated game design.

Eventually, during a cleansing period, I trimmed over a great deal of this extra fat, but the damage had already been done. The large scope had scared off many and left the few remaining reasonably discouraged considering so much progress lost. I imagine that the course of this project would have been severely different if we had taken the time to detail out all of the features and the scope of the game’s content – perhaps it would have not even made it past design.

All of my future projects will always have all aspects detailed out in a design document before any development begins, this includes features and content. I have found that prototyping a project gives an invaluable insight into the true scope of the project with minimal commitment. A prototype also is a great time to play around with the design to help minimize the changes needed in the future. Initially, nothing is set in stone since it is impossible to get things perfect on paper; however, I will be cautious any changes particularly further into development. Whenever changes are made it is vital to keep the project’s scope in mind to avoid losing control.

Cautions About Free Help

People are cautious of how they spend their free time – particularly when giving it away. When dealing with game projects, if the project is not benefiting someone then that person is unlikely to stick around and I don’t blame them. Even if the person genuinely wants to help or is getting something out of the project, legitimate reasons come up that may require the person to reassess his time commitments. Life happens and it happens unpredictably. It can be a real challenge when trying to determine if you can truly rely on someone when the going gets tough.

Throughout the entire lifetime of Crea, I was depending on free help from both friends and people from online forums. Most of my online contacts who promised to help, never did, or would help for a week then disappear without warning. The few team members who did stick around for a few months eventually either became too busy to work on Crea or just lost interest. I believe that the daunting size of the project was what scared most off. In retrospect, it was completely unreasonable to expect others to invest years of their time into a project.

I have learned that if you’re asking for someone’s free time then don’t ask for too much. Keep the project short with continual returns on the person’s investments, even something as simple as tangible progress can be acceptable. When searching for that perfect someone, look for someone that is as passionate about the project as you are. If all else fails, I have found that money is very good at convincing people to stick around.

Conclusion

I by no means want to discourage large projects and do not think people should not take risks. I have read about several successful indie games that faced some rough times, such as Magicka and Super Meat Boy. I am certain that serious doubts filled the developers minds at some point, but yet they persevered and found success. This post is about minimizing project failure. After all, the number one defining characteristic of successful video games is that they’re finished.

Looking Ahead

After a year of working on the engine, server, content pipeline and refining the game’s design, we are finally getting close to having something tangible; a playable demo. Although, I do use the word ‘playable’ lightly. This playable demo will enable two people to launch the client engine, login to the game through the server and be entered into a simple queue. Once two people are in the queue the server will create a match and the two players will be matched up against each other. They will be able to play through the entire match. This may sound insignificant, but believe me that this is tremendous progress and a major milestone.

Once this milestone is reached, a series of changes are planned to ramp up Crea’s development. I plan to share the playable demo with a select few and try to get some early feedback. Meanwhile, I will begin searching for an additional developer or two to join the project. I am hoping that by having something playable I can attract some more passion and talent to the team. Around the same time I will also be looking for an artist. Art is pivotal for the majority of games and I believe that is especially true for Crea. Consequently, I will be looking into hiring an artist to create the core art assets.

After the aforementioned art assets are incorporated into the game, we will begin seeking additional development funds. The likely sources will be crowdfunding (kickstarter.com) and indie game competitions. The less likely sources, that I will at least be considering, are seeking a publisher and VC investment.

As you can see, it is an exciting time for Crea now. I am looking forward to seeing things continue coming together. I hope you are too!

New Beginnings

Welcome to the Siege.

Siege Games public debut has been held back for a little over a year now. The wait is finally over now that we have something to share with the world. To start with, let me explain who we are, what we do and why we are doing it.

We are a small team of indie game developers. To be more specific though, we are attempting to forge a new gaming experiences for the world to enjoy. Our motive is simple: we love games. For the time being, Siege Games equates to a single game – Crea.

Crea is a unique digital collectible card game based on strategy and RPG-style progression. Players create decks and a party of character cards which are used in matches against AI enemies or other players. Players can team up with friends to fight matches or take on quests in an immersive, fantasy-based world with a unique and imaginative background story.

This is a blog for all the latest development news and details on Crea. Undoubtably, my geeky (but also sexy) nature will attempt to fill this blog with the mundane technical jargon of programming, but I promise to keep that at a minimum. Stay tuned as this blog records the story of a game coming to life.