How do you make an Indie game?

How do I make my Indie game?

So I was asked what tech I use for making my game. Not what tech I use in the game itself (like OpenGL or C++) but what kind of programs I’m using.

I didn’t think I used that many, here they are!

  • Visual Studio + Visual Assist (So Damn Good) for coding
  • Tortoise SVN for versioning
  • Notepad++ for scripting and website updates
  • Filezilla for uploading stuff on the Web/Internet
  • Photoshop for image editing
  • Tiled for map editing
  • Audacity for sound & music editing
  • Greenshot for screen capture
  • Fraps for video capture
  • Magic Video for video editing (IIRC, it was some time ago, not my program)
  • 4VideoSoft for Video converting (IIRC)
  • Mantis for planning and bug tracking
  • Steam for publishing
  • Twitter and WordPress for community management
  • DSM replication software between my Synology NAS at home (with SVN) and another far far away in another gala…city

And I’m not even sure I’m not forgetting any one…

 

The BETA is Out!

Beta Party!

Finally, I have pushed the last Alpha bug into oblivion, erased that Alpha-features filter in Mantis (my bug tracker) and made a new one that says “Beta only”!

Well, I included “Extra features” too, so that I can have Some fun eh

But here it is, a Family of Grave Diggers Beta 0.1 with functioning shopkeepers, the Forbidden Forest tower defence running, all the dungeons in place (but without much content though, well that is what a beta is for!), better help interface and a bunch of other things!

Now I just have to fix that ugly ugly tree…

Gamification of Game Development!

So today the game is (clearly) in Alpha,? 0.04 is today’s state:

There is an auto-updater, load save works, tutorial works (with Tornado boss!), there is a big pack of items to use (weapons, food, wands, potions, powers …), there is a bunch of monsters too so I think that Alpha 0.04 seems kind of right.

Moving forward isn’t as straight forward as I’d like but hey, it’s indie game development we are talking about!
So I tried to figure out what I need to go from Alpha to Beta and Beta to Gold and I decided that each of those things (usually kind of globally described) will move the project forward a certain amount of points.

So, to go from Alpha to Beta I need 0.06 points:

Mountainpath + shops(level 2 and level 4-5 items in the two shops): +0.01
Wizard tower + boss: a half point (+0.005)

The Three entries, at least a couple of types of map parts for each, a monster or two for each dungeon type:
Fire dungeon + boss: a half point (+0.005)
Ice dungeon + boss: a half point (+0.005)
Poison dungeon + boss: a half point (+0.005)

Win-screen (just a placeholder but with functioning GUI) : a half point (+0.005)

Smith + miniboss: a half point (+0.005)
FF (the forbidden forest): a half point (+0.005)

The bosses can be placeholders (ie. working like a normal monster) but they have to be there.

All these together will give a half point (+0.005) as I won’t consider the game in Beta if they are not implemented:

* Restart button (but not clear all) must function (menu->”abandon play” or similar)
* Keyboard menu (keymappings)
* Sound menu (Sound + Music on/off + volumes). I might not have any music though.

Beta 0.1: Now we need to fill the game with more content:

All items will be created +0.1
All monsters +0.1
All shopkeepers +0.1
All bosses fully functional (with all the quirks and so) +0.2
Final screen (WIN) exists +0.1
Sound: +0.1 (battle stuff etc)
Music: +0.1 (Music for the game or better several ones for different depths).

Beta to Gold:

Play testing and tweaking is what will move the Beta to Gold.

Fun added! (or build 3503)

So I’ve been quite busy lately. Busy with the game!

I have now a consistent load/save/rage-quit etc. system, a full flow-chart for item creation (what level a particular item will have), a new randomized item type and All wands ingame! I also made arrows and a bow and dynamite with a timer. Just for fun.

Randomized items:

When this kind of item is created for the first time, a random roll is done and will define both characteristics, name, mouseover tips and charges.

For example, the dirty shorts you might find when you loot a chest have three different ‘versions’: “no characs”, “HP+1″ and “HP+2″. Their descriptions are different (rags, worst ever clothes, Almost worst ever clothes)

It is really easy to make a lot of different types without completely leaving the randomness to say HP=Random(0,2). I can choose to make one of the types more frequent or add a HP+3 but View-1 for example making it easy to add different but distinct types.

The code looks like this:

Creation:

??? if typenr == -1 then --Create new
?? ??? ?typenr = math.random(0,2)
?? ?end

Check characteristics

??? arr[0]=""
?? ?arr[1]="maxlife=1"
?? ?arr[2]="maxlife=2"

Get the mouseover:

??? arr[0]="rags"
?? ?arr[1]="Worst ever clothes [HP+1]"
?? ?arr[2]="Almost worst ever clothes [HP+2]"

Well, you get the idea… it is really easy:

The wands had me working for 4 whole days because they do interact with players and the game itself (Pushing an enemy for example) but the rings took me like 1 hour because they only change the characteristics of the player…

A lot of items with passive characteristics can be added like this, really quick and easy.

Mind you, it is so easy I haven’t had the time to create graphics for them… I usually do some quick’n dirty graphics just so you don’t need to mouseover some red square to see if it is a Wand of Protection or a Short, will try to do that soon though…

Fun added!

From the beginning I really like the game and its ideas (of course I do, I made them!) and it is very rewarding to see complex things working flawlessly after hours of coding and bugtracking. But when I played it it was always just a lot of testing. Start game, check this or that feature out, fix it if it doesn’t work, rinse & repeat.

When all the wands were made (and the bow and arrows! So useful in a Dungeon!), I upped the loot probability quite a bit and actually, for the first time, I sensed this fun, driving part. Just some more monsters and I’ll stop. I’ll go back to the coding but first I want to know what is in that chest over there! Can I really get to depth 4 now? I’ll give it a try. Argh I died, shit! This time I’ll gi… no, now I really have to go back coding!

I’m not saying that the game is really really fun yet, it isn’t. But I felt it come alive. Now I have to feed it and raise it to be a good fun interesting game, I can see the light in the end of the tunnel, sort of!

Real life:

On the downside of things, I will most surely have to go back to working at a normal day-job quite soon, at least for some time. On the upside is, hopefully, a game where the complicated bits are complete which means that loading, saving, installing, progression, map generation and all other bug-rich parts are done, tested and ticked off. Leaving me with item creation, map making and scripting enemies!

Something I will be able to do even if I code all day for money.

See you soon!

 

Target change

Hi everybody following me an my indie game development!

I’m sorry for the hiccup in the posting, my life have been undergoing some big changes!

It started with me quitting my ‘day job’ in November 2012 and going fulltime Indie (!)

This is why I haven’t spent a lot of time on the blog, I have decided to finally finalize the game, or at least the core game so that even if I have to go back to work I can continue develop the game. To do so I have had to both drastically cut in the features and work really hard too to see if it was doable. It was! Phew…

This is what went away and what have changed:

The game is no longer an online game and it is no longer in javascript / HTML5.

It is now written in C++ and Lua using the SDL framework (windows only at the moment).

It is still a turnbased sort of Rogue-Like with random generated dungeons (with my Schr?dinger map generation algorithm fully functional!), and of course more to come!

If you want to do a test ride on the latest version (still alpha mind you!), send me a mail (ludviglarsson@gmail.com) with the title AlphaTester and I’ll send you a copy!

You don’t need to do anything in return, but it would be really cool and nice if you would send me any bugs or thoughts about the game. No obligation though!

Yeah, I finally found a name too, A Family of Gravediggers, hope you like it!

Cheers !

Ludvig aka Valmond

Bonus System “UP”

I have finished the bonus system, or buff / debuff system if you want.

There are several types of bonuses, some runs for a certain number of turns and during all those turns it gives a stat change (ex. attack +3). Others runs a random number of turns or actually, a roll is made each X turns and might end the bonus, each X turns the bonus will also do something, usually add or subtract health or mana points.

A bonus can also have a fixed number of turns and when they are finished, a percentage of risk (or chance if it is, say, a venom) of dissipation.

It wasn’t particularly complicated but it was actually more complex and took longer than I had thought, this is what I had to create:

  • Reference bonuses and its table in the database
  • At player logout save off players bonuses in the database, in a “running bonus” table
  • Create that running bonus table
  • At player login, load up old bonuses and set them to work
  • Function to create a bonus ingame and thus store them in an array or so
  • Run the bonuses when player or NPC spends time
  • Send bonuses to player at bonus creation and login
  • Send updated or deleted bonus to player
  • Show the bonuses ingame
  • Make graphics for the bonuses
  • Recalculate and send all the stats when bonuses are created, deleted or changed
  • Make items give the player a bonus when used
  • Kill the player if a D.O.T (damage over time), euh, kills the player
  • Clear all bonuses when (well, if) the player gets killed

Well, it is all done now so go and enjoy that happy snake bite or attack bonus!

Alpha Version 0.2

All the points in the Pre-Alpha Todo list has been terminated except one that I have to think a bit more about (the old list is here somewhere) so it seems the game is ready to go Alpha (is now version? 0.2)!

So what do we need to go Beta?

A new todo list of course! Here it is (it might get updated):

  • Magical system(how we gain power, how it’s used, damage etc. )
  • Bonus system (that useful Attack+3 bonus from a potion and so on)
  • Defining the universes (Cellars, Tunnels, Castle, Prison, Forbidden forest,…)
  • Monsters and possible templates (big list from level 1 monsters and up)
  • Monster AI
  • Dungeon Generation with traps and evil bosses
  • Create the most items and their Templates
  • Generic Action system with actions (they will level-up too) action-xp gain, GUI…
  • Targeted Actions (Bows & arrows, fire bolt, heal…)
  • Graphic effects: fire bolt, explosion, talk-bubble, …
  • Chat system
  • Crafting system
  • Line of sight (at the moment you can see through walls)
  • Money
  • Shops?(updated: 22/10/2012)
  • Factions(updated with reputations: 19/10/2012)
  • Reputation (for the factions so you can finally be friends with the city guards)
  • Quests and rewards
  • Create a lot of graphic assets
  • Moderation and surveillance tools

As you can see this list is bigger and every point is more generic as I wanted it to be as short as possible (I’m talking about the list, I think my length is perfectly ok thank you!). Some points are also (heavily) dependent on other points. For example, I can start programming the AI (pathfinding and so on) but I will need to terminate the Magic characteristics before I can make the monsters use it. That is of course the same for item creation, item templates and crafting, bonus system for the snakes snake venom etc.

Some points will be done in parallel like (hopefully) graphic creation, monsters, items, the world, the magic system and the craft system and other might be a one-shot development like the chat system and the quest system but creating quests will be done in parallel and so on.

In the pre-Alpha I did each point and checked it off, I won’t be able to do that (except maybe for the chat system) so each entry will be given different advancements, something like:

For mechanics needed to be programmed (ie. Bonus system, Chat,…)

  • Not started (Black color)
  • In progress : It doesn’t work yet, maybe some parts do work though (Orange)
  • Operational : It works but the it is not automatized, some parts missing (missing item web-creation interface for example) (Yellow)
  • Done (Green)

For content creation (Items, Graphics,…

  • Most probably a percentage or part (start, middle, 50%, 90%, …)

Some points have both mechanics and content like the templates and the quests, they will have first the mechanics and then the content flags.

No Perma-Death

One of the most classic rules in a Rogue-like is that if (or most usually when) you die, you loose everything. Everything down to your name including level, xp, items, everything! This is known as permadeath or PD as in Permanent Death.

As Imbroglio Online is a multiplayer game not solely based on Co-op (cooperative) and that has PvP (players can kill each other), I feel it would be just too much, the whole play would be about hiding/protecting from player killers or be that evil guy and go out gank newbies.

A bit like a normal roguelike with some level 100 monsters zooming around randomly, if they see you then you die and death is final… No Fun !

That is why I decided to go breaking the Rogue-like paradigm and not have perma death. The problen is that perma death is good so I will have several downsides which I must? try to design around / design away.

Problems (things Roguelikes have because of perma death) :

  • New play each time
  • Scary, on the edge gameplay where choices matter.
  • Player Wipe
  • Item Wipe

In Imbroglio Online, when you die, you will be teleported ‘home’ and you can just continue playing, so death will be quite painless, especially at the surface close to the starting village, at worst you have to ‘walk back’ to where you were killed but the farther you travel, the worse it will be because of the distance.

That doesn’t seem to be a lot of fun though as you know what you are walking back to (when you die in a rogue like, the next play is usually completely different).

Remedies :

If you go down the stairs in a house to check out the cellar, find a tunnel going down, the tunnel will divide and change type often, to the left the sewer, to the right old ruin like tunnels, down the sewer a hole entering another type of underworld and so on ending up, 15 levels lower and a lot of different surroundings later, in the secret anti-chamber of Hootoh and his minions.

That should be different each time you play, making it feel like a ‘new’ game each time you get deep enough. That might also have you on the edge because as you enters the Forgotten Crypt of Anxara you know you won’t find it again if you die…

About knowledge wipes and item wipes, I don’t really have a solution to it today, well I do have a start and at the moment it goes a bit like this :

Make so many different spells, actions and competences that it will take really long time until you “know it all”. There might also be nice combinations to explore and so on…

Only let the player bring a certain number of them with him, say 5 Spell/Action ‘slots’ that you can change only at home. That will present the possibility for the change of player style.

The same goes for items but I have to think about it so I won’t end up with items only having a lot of different random characteristics… Spells and procs might come in handy though and a lot of (useful, not only damage enhancing) characteristics will make item differentiation possible without having 90% of everything useless.

Well, until next time I’ll continue my search for the Multiplayer Rogue-like-esque Graal, see ya soon!

 

 

The 90% / 90% rule

Back from some short holidays where I actually got some work done, I questioned myself “did I really do some important work there or did I just mess with the first 90 percent of a particular task?”.

You know the video game 90/90 rule: “Good ! You have done 90 percent of this development, now you just have to do the other 90 percent to finish it.”

The beginning of projects are always the funniest and dammit I’m not independent to only do boring things but maybe I had chewed off only good parts lately so I decided to do some tedious and boring ones to make up for it, like setting up a SVN repository and making a register page in PHP, putting everything online, create batches for uploading the game over sftp, creating a backup etc.

That was a bit boring but the nice part is that you can now Create an Account and actually check out the game! You can kill 3 evil chickens who will respawn every now and then, very boring but everything has a beginning and here it is for Imbroglio Online!