Wednesday, June 24, 2009

Jumpin' Aluminum!

Not many updates in the last week - I heard the game CitiesXL entered a closed beta and it got me all excited for city building. I rooted out an old copy of SimCity 4 and have been playing it to bits.

I'm also starting to work on my newer, faster laptop - so transferring everything over to it was a bit of a hassle. There's been some updates to the game though, and I'm up to Build 23 now. Check it out at the Protonaut website. I detailed everything in a forum post, but the big bullet points:
  • Realized I had been making aluminum boxes half the size they appeared as. They ended up being smaller than the box2D minima and were behaving erratically and were hard to stand on. People should find aluminum is now much more stable.
  • Pause-time is back! Tap space to freeze the world, and space again to unfreeze it. I think eventually there will be an transition animation on your character and you won't be able to control him in during it, and it might be toggled by an in-game object instead of the spacebar - giving the level creator some level of control. I'll see how it plays out. (Yes, this means slow motion is no longer available)
  • Jump height is now controllable - the longer you hold down the jump key the higher you go.
  • Wall jumping is in. If you are against a wall while in the air you can jump away from it (but you can only alternate walls - no jumping repeatedly off of one wall)
  • Version number now shows on the front page so you can be sure you have the latest copy. This one should say "Alpha b23" in the corner. If it doesn't, your browser is caching an old copy!
  • A bunch of small level-editor issues resolved.

Wednesday, June 17, 2009

Having Fun with Protonaut

It has been a few days - all the changes seemed so minor over the last while I couldn't bring myself to mention them on the blog. But as a whole they've started to become their own beast. I didn't even mention Build 19, so here are the biggest bullet points for 19 and 20 (I logged everything in excruciating detail back in the this post and this post) on the Protonaut Site).

* Aluminum is now square. All metals will probably end up being square..
* Pressing "R" while testing a level from the editor will reset the test level instead of the previously loaded level
* New death, running, idle, and midair animations for the character
* Added a healthbar for gameplay. It works - trust me - it just taught me that I have to rewrite my damage code. :/
* Addition of some chunky bits of art floating around to help give a microscopic field impression.
* New level load/save animated boxes.
* You no longer take damage from terrain. That means being flung against walls by explosives no longer hurts you; feel free to rocket-jump!
* The player no longer physically interacts with the capturable elements (no more "bouncing" off of things as you capture them)
* Fixed the off-center zooming bug that's been driving me CRAZY for weeks now :D

It seems that the art and the UI gets closer and closer to perfection every day, which feels a bit strange since the gameplay isn't perfect yet. Isn't UI supposed to come later?

Oh well, having fun, I guess that's all that matters. :)

Greg made a summary post for protonaut over on his blog too.

Sunday, June 14, 2009

Protonaut adds animated menus

Build 18 just went live on the Protonaut site, and it includes a discussion forum for the game. I'll put all the nitty-gritty changelog details in there from now on, and just summarize here. :)
  • The biggest change in this one is a graphical overhaul, animating all the menus to pop in/out on the screen. It's subtle, but I think it adds a lot of flash and flair to the game. I really like it.
  • A lot of statistics tracking events have been rewritten and the game/level/user stats will probably reset in the future. Since we haven't finalized the gameplay mechanic yet, I'm betting most of the ratings will be irrelevant upon release anyway.
  • Our beta-fan support is really great. Around 350 levels and approximately 1000 plays!
It's been a stream of constant work for the last few days - I still found time to chill out and socialize, but usually when I wake up Greg has a nice pile of work for me and before I go to bed he refills my inbox.

Not that I'm complaining - it feels like the project is picking up momentum. It's like I can see the finish line just cresting on the horizon!

Friday, June 12, 2009

DYN-O-MITE!

I've been working pretty solidly this week on interface stuff, and sure things look slick - but the gameplay hasn't changed too much. This latest update fixes that - check it out at the Protonaut website.
  • There is now an indestructable "Aluminum" element. This should make level design a bit more interesting.
  • I made the Aluminum joints "stiff" so they didn't rotate - unfortunately the physics engine didn't handle it too well. I might revisit it later, but I think it'll do as-is.
  • Victory and Gameover screens have "Next/Previous/Retry" buttons on them.
  • You can now set your levels to be publicly visible or not in the editor save dialogue. This (along with the lock-edit button) aren't editable at this time but will be in the future. (Public visisbility doesn't affect the DB view yet, but will soon)
  • I now have a basic selection of levels in the level selection menu. They don't exactly speak volumes about the game, and may not be good choices at all. I just grabbed the top rated levels as of this writing and stuck em in there. As the game evolves I'll slowly figure out a nice level set.
  • A level tester is now in place - no need to save dozens of level iterations just to test it out!
  • The game now tracks two independant games - the play area and the editing area. You can swap between them freely.
And of course the big one...
  • DYN-O-MITE. No idea if this will stick in the game forever, but you can press "SHIFT" to toss a stick of dynomite, which will auto-detonate after 60 seconds. "E" will detonate them all early. Note that more than 1 stick of dynomite can cause.. irregular results. It's fairly weak but I'm thinking eventually you'll be able to "collect" things with it.
I'm attending a few events this weekend so it looks like it might be a relatively slow one for the game. Enjoy build 17!

Thursday, June 11, 2009

More for the Menu

Danged menus take an annoying large amount of my time.
  • Fixed an introduced bug where security rights were always being rejected (resulted in victory counters not increasing on the DB)
  • Added an animated dialogue box to tell you what's up (incorrect password, logged in, etc.)
  • Logout button
  • Checkboxes now have the correct graphics
  • Level editing lock now works.
  • Gameplay change: You now only need to collect gasses to beat a level. Solids will disintegrate upon touch, and metals are indestructable. They each have a unique visual style to help you along.
  • You aren't allowed to save levels if there are no goal objects (gaseous) in the scene.
  • Disintegrating/Collected elements now have an animation and sound effect.
I've nearly tapped out what I can do in terms of menu design, which has me really happy! There's no metal objects in the game yet (coming soon) but the functionality is all there. I think, once they make it in, it'll be time for me to sit down and do some good example levels and stick them into the level picker.

Since I have some spare time on my hands - I think I'll start work on the web-based level browser. Wew!

Ratings Live

I hardly moved today!

I sat in my chair coding almost the entire day, start to end. It probably has something to do with being hung over.

Instead of introducing any new gameplay ideas I really want to work on nailing this interface and getting it out of the way.
  • Login and Signup menus now work properly (logout button coming soon)
  • Swap Controls toggle now works (in options menu)
  • Password change now works
  • "Next Level" takes you to the next incremental level number (even if it doesn't exist)
  • "Retry" button on gameOver screen works now
  • Rating buttons on the gameOver screen work now! You can only rate each level once (despite the buttons being there always...), and the rating not only reflects on the level, but on the level creator as well.
  • Implented security measures - valid username and password have to exist for all database transactions
  • Death graphic should now line up with the player graphics properly.
  • When dead you can't move and collect balls anymore. :3
I've got such a huge heap of data on levels, users, ratings, and votes now that I can start thinking about a level-browsing website. Should be interesting!

In bigger news: the game is now hosted on it's own website! Welcome one, welcome all, to PROTONAUT.net! (.org also works)

The latest build (now #15) is always live on this site and I'll be phasing all the older links from the previous blog posts over to the new domain over the next few days.

Now then.. it's 2AM.. time to get some sleep.

Wednesday, June 10, 2009

Original Title

The latest build, #14, is looking a little chaotic. Greg drew up a bunch of wonderful art assets, but a lot of them had a tiny problem here or a tiny change needed there, so there's a bunch of things I haven't done yet but look functional, are half implemented, or are just plain buggy.

Things like the User Editing menu, the Level Selection menu, the Lock Editing button in the level editor...

I could work around the issues, but I'd rather leave them hanging like this until I get the new art assets, which won't be long at all. I'd rather just wait and do it right, than build some workarounds I'll just have torn apart by tomorrow anyway.

In this issue:
  • Victory and GameOver screens (the rating/next/retry buttons don't work yet)
  • Gravity Selector now works in the Level Editor (use keyboard shortcuts for fine control)
  • New wall art - looking for feedback on this!
  • New visible (if misplaced) mute icon shows status properly
  • A bunch of minor updates to visual elements and menus
  • Fixed death animation/sound

Tuesday, June 9, 2009

UI Progress

Been working long and hard the last two days. There's been many intermediate builds, but this is officially enough work to warrant a new numeral. Welcome, Build 13!
  • You are now signed in as the user "Anonymous" by default. He's a poor chump and isn't registered.
  • Unregistered users can't use the level editor.
  • You can now sign up for an account - anyone who signs up during the beta period is "registered"
  • Log into your account once signed up (to login, don't type an email address). Sign-in information is stored in a cookie.
  • Lost password doesn't actually send an email yet, but the UI and DB functionality is all in place.
  • The login fields will disappear on confirmation eventually, but until I get a status/response window up and running I just overwrite some text fields.
  • Press-and-hold spacebar is once again the word of the day instead of press-to-toggle (for slow-time)
  • I and O are two new zoom in and out buttons, to aid those that don't have a working mousewheel for zoom.
  • Level views and victories are recorded in the database now, to aid in determining difficulty and/or quality factor of the level.
  • I've added a back-end to receive level ratings.
  • Levels are now saved and credited to the user who created them (now that you must login to edit). Any levels saved before Level #186 remain uncredited, but can be manually adjusted if you feel it's important - drop me a line.
  • Levels record the originating level # to the database to help let people know if a level has been "copied" from another.
  • Levels have an "edit locking" flag to prevent others from editing it (no UI for this yet)
  • Many updates to the Editor UI and help menus.
  • New Gravity-Selector tool doesn't actually work yet, but it looks cool!
  • New death animation and sound effect. It's a little borked in this release but at least it exists!
  • Users themselves now have a ranking that is calculated as an aggregate of all their level ranking scores (again no UI for this yet)
  • A bunch of database optimizations and back-end work.
I feel like a steam-roller today, just plowing over issue after issue. It feels really good.

Monday, June 8, 2009

Bug: Destroyed

Another entire weekend devoted to a single bug! I thought it was a seperate hideous bug from last time, but it was in fact the same bug in a different disguise.

After some help with the Box2D Community I was able to trace it down to a bug in the engine - and upgrading to the latest SVN (unstable) version fixed everything. There have been no intentional bug-fixing code put into place, but it appears it's all better now.

The really good news is my stupid hatred shunt-code I put in a few days ago is overwritten and no longer necessary. Hooray!

So now I have an incremental update, build 11, that just fixes the "flying around" glitch. :)

The FC community has been having some fun - there's now around 110 levels generated, and I've only made half. :) Several people are getting really excited about the gameplay, which is making me excited in turn. Whee!

Sunday, June 7, 2009

Evil Birds


So I woke up ultra early this morning, despite a notsogood sleep, because...

Stupid goddamn birds. Squawking and caw-ing outside my window. Arrgh!

So instead I made a few small updates, bringing me up to Build 9:
  • Element size is now static
  • Drawing bonds now snaps-to the destination and changes color to indicate a fit
  • Viewport auto-zooms to the player character at what I think might end up being the default view size. Have to fix the zoom orientation still though.. it's a bit off.
  • Made bonds connect to the outside of the elements, not the inside. This helps them freely spin a bit when falling apart (and reduces collisions, increasing performance)
  • I've made quite a few test levels now, and I keep making the default level my latest one. The current one is pretty hard to beat, yet simple!
  • Several fixes to the editor.

Friday, June 5, 2009

Sloooow Moooo



That's right, Slow Moo!

I've just uploaded Build #7, which is just a slight modification from the blog post just a few hours back.

This time I've removed pausing of time - now you can just hold down spacebar and it'll slow down to 25% normal speed. You can play the entire game in slowmo if you'd like.

The object is still the same: Collect all the balls without dying! Every time you are clubbed by terrain it reduces your health accordingly (if the weight of an entire structure crushes you, you die in one hit. If you just get nicked by a single falling rod, it's less catastrophic). I really should put a health indicator on there or something.

Finally, Gameplay Beta

And here is something I've been waiting a while to do: A gameplay beta!

No idea if this will end up being the fun times, but here is the changes done to build 6:
  • Removed your exploding ability
  • Normalized jumping to a lower height
  • Goal: Collect all the orbs
  • You will die if you experience significant crushing damage
Have at it!

I've Surgically Removed My Stomach

Forgive me, Agnostic-friendly deity, for I have sined.

I've made a complete and utter hack in the Box2D engine to workaround the problem I had. See - the problem is - there is an internal counter in the Box2D engine. I have no idea what it's for and it doesn't appear to do anything other than count things. If this number goes below 0, it crashes the engine.

So ... I shunted in a nice little "if x < x =" 0">

Anyway, after two weeks of moving almost nowhere I felt the need to violate my code in this way in the name of progress. I've spoken with a few folks in the Box2D community; hopefully it'll be resolved at some point, but I just can't wait any longer (or figure it out myself. :/)

So here it is - what you've been missing - Build 5:

The gameplay hasn't changed too much but the interface has been given a complete overhaul, mostly thanks to Greg for all the artwork. Some highlights:
  • The game is now 16:9 (800x450)
  • New art for everything, including awesome-looking animated bits on things (and a very lively title screen!)
  • New menu icons that are persistant on the top right for ease of switching between modes
  • New level-editing interface with actual easy-to-use icon selection
A lot of other things have changed on the back end, but it's not fun talking about (or hearing about) that kind of stuff. ;) Some things that are yet to be decided:
  • What the player character will look like
  • How the player character will control
  • What the goal of the game is
But it's largely there - I kind of mused today that this is a game where you create a Fantastic Contraption and then have a player blow it to smithereens.

Wednesday, June 3, 2009

Critical Error

I'm still working on the game. I've run into a critical crashing bug in the Box2D engine - and it's one of those ones that, if unsolved, it ruins the entire premise of the game. I can't put it off and work on it later, it's going to have to be resolved before I can move on.

:(

I'm working with some folks in the Box2D community to figure out where the problem is, hopefully it'll be repaired soon enough.