Milestone 2: Week 4 – Finallly Fixed!

Finally got some time to dev last friday and Made Progress(tm) since the week before was spent rebuilding the pc.

The Maze Generator works!

milestone2MapI’ll need to increase the internal branching, it’s a bit too linear right now but that’s just a variable that needs to be tweaked.

Rooms now get harder and harder, the further in you go.  Next up is some minor UI tweaks and then a second enemy and that’s it for Milestone 2.  Just a couple months behind schedule.. but that’s the way it goes on top of real job, consulting work, children and a house to maintain.

 

 

Milestone 1: Week 5 – the un-update

Short and to the point, having family in town all week and then a week’s worth of misc stuff to take care of over the weekend means 0hrs to allocate to GameDev this week.

That’s life, and I’m not going to beat myself up over it.  I’m just going to churn it out asap and then keep plugging away into the fun of Milestone 2!   Hope to have a start on that this week.

In the mean while, reboot yourself and get ready for Month 2 with this:

and some misc concept art scribble, which is the only creative thing I got done this week.

buggy concept

Dev Update Wk4 – Details details

Getting closer to the end of milestone 1.

Lots of little details checked off, because I’m totally avoiding re-working the main character’s torso twist.

spider-reskinThe biggest work went to the spiders, they got a re-skin to something more shiny, can now do a jump attack which makes them much more of a threat, and make a nice splattery sound when they die.

The UI got a couple minor tweaks and so the respawn counter now works,  Still having some problems with the UI scaling seeming a bit odd but that’s not a critical feature.

Been playing with Shaderforge a bit but not having too much progress in getting a grasp on it.  Other than that, Spent some time trying to get a better look and feel to the overall game.  I added a player light and adjusted the global light to have bit of a different look and feel, but not quite what I’m looking for, but I think it’s a bit of an improvement.

Bsddod-M1-wk4

Milestone 1 remaining features:

  • Make music repeat properly
  • Fix player mouse aiming
  • Jucify player death and respawn.

Only problem is that there’s no more weekends, so it might be a bit of a squeeze.

And here’s this week’s Playable Build:

playbutton

 

Dev Update – wk3 – sacrifice & surprises

Things are going pretty well.  The uncompleted ‘minimum required features’ list for the January Version is getting very small.

  • Corner pillars at outside corners
  • Fixing wizard shooting and movement (aka the Big thing)
  • Death effects and sounds etc.
  • Spider jump attack

Particles!

New stuff added this week:

  • Restart Button, Exit game button.
  • Bolt Particles and light removal.
  • Bug fixes with spider corpses falling out of the world
  • Jucifying impacts on monsters & spawners

Now as to sacrifice…. 

Well you get what you pay for… and that’s the problem with using Unity 3D free version… It’s looking like I really Really need deferred lighting to make the wiz-bang light effects on the wizard’s magic bolts.  In Unity Free I can only force a small number of lights to be precise. after a few they default to vertex lighting, which causes the odd lighting issues on the floor that we saw in last week’s build.

So, I had to remove the lights. and am replacing them with some particles effects for now.  Maybe someday the $1,500 unity pro fee will be accessible to me but for now it’s utterly beyond my budget.  (There is the 75/mo option, but even that seems excessive.. and at month 13, you don’t own anything unless you keep paying.)

So far that’s the biggest hurdle that I’m running into, but no doubt there’s going to be more design sacrifices due to inaccessible features.

Which leads to the surprise of the week.

Well… surprise for me.. nothing in-game yet… but Shader Forge came out which promises to have all sorts of benefits as soon as I figure out how to fully take advantage of it.  (In related news… I don’t ‘get’ shaders yet… working on it..)

playbutton

 

 

BSDDoD! Week 2 – First (barely) playable

Bsddod-M1-wk2
It’s not much, but it’s an interface and it’s informative

Milestone 1, Week 2.

Well here we are, week 2.   Not  a bad week, progress wise, but never as good as I’d have liked..

This week I started cracking my head into the interface that is Blender, and walked away with a simple eggsack model to be used as a spider spawner (pictured below).  Maybe next week I can make it move.

The beginnings of a simple UI are falling into place,  when a room starts, the room title and the challenges in it (spider icon this month) appear for a bit, and there’s a kill counter and the beginnings of a re-spawn counter (shields).  Some odd issues with them not scaling properly sometimes, but eh.  That’s manageable.

bsddod_ss_eggsack
Look an Eggsack! Isn’t it cute.

But, the biggest news is clearly that the entire play cycle is in place,  player life, death, respawn and restart all appear to be marginally functional.

So to that end,  I’ve built if out as a Unity Web Player. So if you’re so inclined you can, try it here:

PLAY IN BROWSER

As usual, feedback/bug reports etc is welcome.

BSDDoD! Week 1

 

 

 

Milestone 1 is underway.

Pretty good progress this week.

The map generation is working, still needs a couple features, like designating spawnable locations and  corner pillars and an occasional wall offset being mangled.

The World Controller object is successfully sealing a room and starting waves of challenges (Milestone 1 will only have one or maybe 2 challenges to spawn)

The actual eggsack spawners are doing their job (no graphics for em yet tho, just white capsules)

The wizard character moves and shoots, but theres some issues with moving into the player’s bolts etc,  so the move and shoot stuff needs some significant rework.

Spiders die when shot! Eggsacks Die when shot!   need to make the impact have more ‘oomph’ and some effects but the functionality is there.

BSDDoD! M1-W1

I was hoping to get a unity wev playable up on the site this week, but there’s nothing really to play..Oh well Hopefully next week there’ll be at least a basic play loop in place.

BSDDoD! Reborn in 2014

BSDD0D 2014

The time to do this game has come.  So it’s gonna be done right.  No more Torque2D, Slick, or other homegrown from the ground, unproven frameworks.  Time to do it in something that’s got support, community, a track record and a workflow.  Aka Unity.  And while we’re at it, let’s make it 3D, physics enabled and extensible by the user to add new rooms to the pool of maze chambers.

And let’s do it as part of this year’s OneGameAMonth Challenge to keep focused.

BSDDoD-SS-dec-7-2013Oh and a list… let’s do a milestone list:

  • Milestone 1 – Single Room – boxes
    • Generate Room From Map File
    • Player Spawns
    • Move Player
    • Player Shoots
    • Monsters spawn in increasing waves
    • Monsters Move toward player
    • Monsters Kill player
    • Shots Kill Monsters
    • Monsters Drop Items (coins for now)
  • Milestone 2 – Maze Generation, Enemy Waves, alt fire
    • Basic level editor
    • Single path maze generated
    • Rooms have a level and determine waves spawned.
  • Milestone 3 – Powerups and Loot
    • Player attributes, health (shields?), Speed, Damage, Rate of Fire, second power manna
  • Milestone 4 – A wizard
  • Milestone 5 – Creatures – ? Alpha ?
  • Milestone 6 – Menu and Starting area
  • Milestone 7 – Decor and Juicify
  • Milestone 8 – More Monsters
  • Milestone 9 – Music and Sound
  • Milestone 10 – Weapons and Karma unlockables framework
  • Milestone 11 – Title Screen, High Score – Names of the dead?
  • Milestone 12 – Beautification of textures and new textures/models for deeper levels?

Bits N Bobbins

Short post on progress things.  Things have just been lots of grunt work and non pretty things.

Will have things to show real soon.

Honest.

  • basic player object ..er.. exists and rotates properly.. mostly.  need to knock out some better test sprites and stuff to be able to make things actually ‘work’ together, but the fundamental concept of 8 direction independently moving head, torso, arms, lowerbody seems to work and will look pretty cool.
  • monster entities can be spawned and basically kept track of.. no AI or whatnot but still it’s a start.
  • Implemented basic box2d physics for player and monsters. this will have all sorts of fun payoff later I hope. Force waves, shapnel etc 🙂
  • Got the macro tiles wired for a* pathfinding.
  • Got the World generating a Maze and then replacing it with matching macrotiles that randomly match the exits of the cell.
  • started on map rendering
  • camera instance screen objects so I can have a smooth moving controllable camera that chases the player.
See.. lots of neat stuff… however nothing that you can actually look at other than a bunch of  diagnostic log output.
Performance wise it seems to be running at ~240 fps on the low end test machine and ~somewhere over 3,000 fps on the new machine.
So I might need to add in a ‘laptop’ mode which disables the whiz bang pretty stuff I hope to get put in.
and damnit .. http://www.garagegames.com/products/torque-3d the introductory price will be ending soon.
So I’ve got to grab that soon.

Building Better Tools

So, basic progress is in swing.  There’s a bunch of stuff I can port over from the GarageGames Torque Game Builder version that I was working on, however, there are a bunch of things that I didn’t need then or just do not have access to in Java or just don’t integrate with Slick very well.  So with that in mind.. I’ve been digging  into Pre-Pre-Production.

To that end I’ve stated building a toolbox. Figuratively, of course.  Here’s a few of the silly things  that are a pain to write but very useful to have.

  • AssetLoader – based on the slick tutorial this little thing lets me have a loading bar on a title screen while the game loads every asset it needs.
  • OptionsController – manage loading and saving user settings and profiles for resolution, sound, and player name.
  • InternetFile / InternetString – for pulling a string (current version) or file (updated assets)  This makes keeping the user informed of latest news/ updated versions a snap.  Since Minecraft came out with an auto updater, it’s been glaringly obvious that at minimum having a latest version check is a MUST Have feature.
  • Movement Library – a pile of functions to take two points, and interpolate between them,given a method speed and time elapsed and whatever else that comes up.  I expect this to grow for some time.
  • ImageCounter widget – display a number with a series of images. Like hearts in zelda. Supports horizontal and vertical orientation, whole and partial increments etc.
  • Basic Image Button – yup it’s a simple little button made out of a bunch of images, it’s self contained and easy to use and change.
  • State Based Button – also called a modal button.  Essentially displays several options on a button bar and you can select one.
  • Text Block – an angelfont based text block widget , hand it a block of text, an AngelFont, and give it a max size.  It auto animates the display, pagination etc.
  • Text Entry – an angelfont text entry widget.  easy and simple..
and as I find things that would be handy in future projects I’m adding them to it.
So it turns out that making little widgets is actually really kind of fun.  Much like building the IrisEdit level builder tool that I’m using to build the levels.
And with those tools in hand, I’ve created the game Launcher / Version Checker,  Here’s what it looks like without the Launch Game button (it goes in the middle)

 

Setting sail against the winds of whim and staying the course

Wooosh… that’s the sound of another gale force great idea blowing around.
Yup, they’re pretty much everywhere at this time of year. Annoying, persistent, unformed, and generally really exciting!

The thing is, they’re always much more exciting and enticing than what you’re doing ‘now’. Especially if what you’re doing now is rewriting something you’ve done before, in a new engine. In the last 3 weeks I must have changed my mental description of what I’m working on half a dozen times. Each new project, idea, or whim is a terrible distraction that’s so much fun to just dive into.

Because for me the best part is the initial rush of putting ideas and framework into place and start various parts gestating. So when I haev nothing but a couple months of grunt work (asset managers, re-inputing pathfinding algorithems, importing graphics, dealing with text input etc) it is so easy to want to start over and tackle an enticing problem and find out how various systems would interact.

Hell, at this point I’ve practically convinced myself to ditch BSDDoD! and hop into making ‘Irismel’ – the fantasy village simulator instead.  I’ve even started making some basic tiles and mock screenshots.

That’s gotta stop.

It’s time to get excited about BSDDoD! again.  So I’m laying off the big coding for a bit and painting some assets, concept art and visually interesting things.

The upside is that I’ll have things to show before too long and I can get the show back on track.

I am, however, thinking of changing the title from Blood Soaked Deadly Dungeons of Doom! to something more palatable and url worthy.

 

Screenshot Saturday

Managed to get the web editor exporting tileframe data nicely, and with a few modifications was able to get TGB to import the new map data and render the maps in the existing tilemaps.  🙂 yaay.

New tilemaps in Game Engine.

Now if I can only find out what makes it crash when you touch the mouse……

*scratch head*.. well at least it’s progress..

Oh and we have new and very awesome epic in-game music now from www.indiegraphics.net

So it’s  been a good week overall.

[Edit::]  Found the Crash.  it was to do with the checks for various player positions on the tilemap for shooting.  Which is totally obsolete, due to the new tilemap, so it was crashing.

Milestones

Pardon me while I ramble..   if you get bored you can pop over to the map editor and play around and let me know how it performs for you (IE users, don’t bother), and saving is disabled.   This is essentially me trying to externalize the process of development that seems to work for me.

It’s easy to get lost, sidetracked, disillusioned, or just plain worn out when embarking on a massive self guided project.

Even when you feel like you can just keep working on a project forever because you have so many ideas you risk it all if you don’t know what the final product is going to be.  For example, the megahit Minecraft was in development for over a year and sold close to a million copies before the guys at Mojang finally sat down and decided what they were actually making.   I’d wager if it hadn’t been for it going viral, it would have wound up just another of the tons of  half finished abandoned indie projects that litter the web because they didn’t know what they were making.

On the other extreme, there are just as many abandoned overdesigned, super perfectly detailed design documents for games that will never be created, scattered all over the internet as well.  Potential games that were literally designed to death, go dig around on sourceforge and you’ll find hundreds of em in ‘planning’.

So what’s an indie developer to do?

Frankly, I’m not sure.  I know what seems to work for me  (so far), and that’s self imposed milestones.

Now let me clarify a bit.  I’m not talking about your usual development project, spec sheet loaded, time and budget allocated, cut your funding if  you don’t make it milestone.  That’s for a different type of development, not a creative endeavor.  It has it’s place, but not here.

What kind of milestones?

I’m talking more of a softer, moldable, flexible type of milestone.  You take one, you work on it, do whatever you want withing the parameters specified, and when you’re done you have real tangible progress.  Then you pick another one that mirrors what you’re in the mood for.    That’s key for me.   When I get to the point in a project where I don’t have a choice in what I need to do next and don’t want to do it , I get distracted. (see the Mutant Sheep Eat the Earth!, game… it’s pretty much stalled because I’ve worked myself into a corner where there’s nothing exiting left and I’ve gotten totally de-motivated  (psst it’s not dead.. just hibernating in my subconscious.. I have plans percolating.))

For example, by the time you’re reading this, I’ll have wrapped up my latest milestone for BSDDoD! which was ‘Build a web based editor to let me edit game elements and export them into a flatfile for use in the game in 20 days.’

Flexible task definition

That’s it for the definition of it.  I didn’t have any other notes or plans other than I knew the map size has to be 20×20 due to memory constraints of the final 10×10 grid of 20×20 maps that the game will happen in.  I could go as feature rich and as crazy as I wanted to, but I always kept a mental track of trying to hit the date or at least get as close as I possibly can.   I didn’t even know what I was going to write it in (jquery, cakephp and custom javascript if you’re interested, it almost wound up a desktop based Python application or java applet)  I didn’t pre-plan features other than the map size.  This let me actually create and explore while working on it.

I really try no to make too many choices that will force me to wind up in a position of having to determine things for future milestones.  Now of course it’s inevitable that there will be some overlap, but striving to make each milestone into it’s own creative endeavor keeps me interested in the long run.

Know how long you can stay focuse… ooh look shiny!

I know how long my attention span is, and how long I can proceed with certain types of tasks before getting bored and I make the milestones accordingly, and I try to have a couple of milestone choices available to choose from, so if I’m in the mood for more coding I can do that, or if I need a break and switch to art asset creation, planning, music etc those options are available for me.

So my next choices for BSDDoD! milestones are:

  • Coding, Import map data and generate levels in the Torque Game Builder engine that alpha 4 was working in, 7 days
  • Art, Create Door, wizard (basic wand and arm) and basic creeper art assets, 14 days.
  • Design, come up with different enemies and concept art and various powerups available in the witch’s shop, 14 days.

Time is relative

Now you’ll notice that my ‘days’ have very very very little relevance to normal time, this comes with having a 1 year old, and a fulltime job, an art site and business to help launch  and some awesome swiftthought.com development work that all take priority.

That’s ok.  I’m fully aware that this 6 month project is already in it’s second year and I’m ok with that.

I can see progress being made.

I can see what  I need to do, to get there.

I still have to make up how to do it.

I can see the milestones all the way to the end.

I have no idea of  what all the things I will have created by the time I get there will look like.

That’s damn exciting.

IrisEdit Screenshot Saturday

In an attempt to keep updating this on a more regular basis here’s the first of (hopefully) many Screenshot Saturday.

a screenshot of the almost complete level editorThis is a screenshot of the irisEdit map editor on my dev box.  At this point it’s 90% complete.  There’s a glitch in the saving/reloading that needs tweaking but other than that it’s ready to start building levels in.   At which point I’ll move to the live databse over at editor.irismel.com

Unfortunately this week was full of all sorts of fun freelance stuff and prep for the baby’s 1st birthday party (in roughly 11 hrs from now)  so I didn’t get the editor wrapped up.. but hopefully I can get it knocked out Sunday if I’m lucky.  Next week promises to be full of more and maybe even some new paying client work, which of course takes precedence over BSDDoD! progress.

What I’m Playing:

  • http://insideastarfilledsky.net/ A recursive, larger than the Galaxy  shooter.  From the guy who made Sleep is Death (more coverage of that over on RPS) which was a lot of fun to play with P.
  • Bejeweled 3... because it’s like sparkly snappy happy crack…. especially some of the new gamemodes.
  • X3 Terran Conflict – the last, best, biggest, entry in the X series of intergalactic space trader conquer the galaxy games (available on steam)
  • But with a new Minecraft patch hitting tuesday… all bets are off for the next week.

Editor Work

So what do you do if you have an unexpected 3 days of vacation.  Well if you’re like me you get a chance to dig into some new fun tech and wind up making a new version of the tile editor to support your game.   As I mentioned in the last post, I’m in the process of moving to a front face Isometic camera for BSDDoD! (like the original zelda).   Which is going to necessitate a new tile editor to do all the hard work.

The old editor is still online at http://irismel.com/tileEditor/ and functioning in it’s primitive state.  However the new editor, is slowly coming online at http://editor.irismel.com with the real magic happening on the editor pages ( http://editor.irismel.com/maps/editMapTiles/12 )  There’s still a bunch of fun stuff to do, like detecting and placing the  front facing tiles and being able to place and edit objects, not to mention being able to export this and get it into the primary game engine files.    But, overall, this has been an excellent week’s worth of progress.  Cake PHP is proving to be a fast and flexible framwork to be able to create complex data driven applications.  I really hope to get many more chances to dig into it and do fun web-app stuff..

The new editor does everything that BSDDoD! needs and then some, in fact it’s pretty close to being a whole generic level editor for all sorts of tile based games… but one step at a time eh?    I have a short list of to-do items left for the editor and then I can pop back into the main TGB code and start to implement the new map style (should be simple since the editor will generate complete maps) and start updating the player, adding new creatures, and adding the equipment shop…

What I’m Playing:

Revenge of the Titans: This is an addictive, just incredible take on the tower defense genre, and the latest version just simply does so many things right.

Space Chem: This is probably the puzzle game of the decade.  Build chemical compounds with an assortment of commands given to waldos… oh hell I can’t describe it.. just go get the damn thing or read Rock Paper Shotgun’s coverage...

X3: Terran Conflict :  the last entry into the X3 universe by EgoSoft.  It’s got a steep learning curve but leads right into the heart of one of the best space trading/combat/strategy games of the last 15 years.

Back To Torque

It has been a few months of crazy development environment ping-pong around here, but things are beginning to settle down.

Back in November the guys over at GarageGames.com announced they were shuttering the InstantAction team and that generally the outlook for all of Torque seemed really bleak.

So with the future of my development tools up in the air I did some research and started switching over to DarkBasicPro and then in tandem, the day job necessitated a crash course in Java.. which lead me to Slick2d for Java, which I’ve also done some poking around in now.

The problem is that they both (Slick and DarkBasic) seem to magnify the deficiencies of the other.

DarkBasicPro is EASY, and Fast to get prototypes up and running in. It’s also Basic, that means no objects, no event handlers, and scoping variables is fast and loose, ex arrays are always Globals.  And no garbage collection, premade main loop or GUI tools, so you’ve got to write that yourself.  However the community is FULL of snippets and other pieces of code so you can cobble together a nice utility library in a couple of days.  Oh and it supports 3d and shaders etc.. for that reason I may come back some day.

Slick2d, on the other hand, is 100% object driven, with all sorts of good things that come with that.  Tightly scoped variables and inheritance etc etc also make it really powerful and clean to code in.  It is, however, not easy or fast to throw together a prototype.  Especially since there isn’t much of documentation other than the auto-generated API docs.  Throw in some of Java’s memory limits and stuff and it gets pretty cumbersome fast. It’s got a nice state-based game core and main loop that works really well… once you find it.

I wasted too much time on both of those only to realize that I miss Torque Game Builder.  It’s not perfect, but it is very much a nice place between the two.

So, I’m really happy for the guys at GarageGames.com when they announced they’re Back! And T2D is still alive and kicking.

Now it is time to install the latest version, get tweaking on the Blood Soaked Deadly Dungeons of Doom! and get this whole thing back on track!

I’m still doing the whole Java Android development stuff, and that’s been making good progress as well.  Hope to have more details and maybe a screenshot or two by the end of the month. *cross fingers*

Oh and Wenderflonia is going to be getting a minor facelift and its own Online Shop by Mid Feb and a couple more freelance projects should be wrapping up and I hope to be able to refocus my energies a bit more on development.

And to wrap it up I’m going to try and end every post from here on out with….

What I’m Playing:

  • Minecraft – indie game, sandbox phenomenon.  If you ever wanted to play with legos, build anything, explore a world this is the game for it.  We’re documenting our latest travels here http://blocklandtravels.tumblr.com/
  • SpaceChem – puzzle game of the year  all time.  It’s fiendish and guides you into an extensive set and before you  know it you’re inventing solutions like this (my you tube video of a solution) The stats comparison lets you know how you stack up to everyone else and is absolutely addictive to optimize your solutions.