Well, since the postmortem for my game was added to the iDevGames site, I figured I’d clean things up on my side as far as removing links to images, WIP versions, etc. from this thread. Thanks for reading …
Now a Universal Binary. Since the rules initially disallowed the use of Rosetta, I didn’t worry about a Universal Build. But since someone asked for a PPC build and the updated rules allow for Rosetta use, I flipped a switch in Unity, hit build and POOF! … a UB. Enjoy!
Increased level time from 1:00 to 3:00. So newer players will have some time left over at the end of level and be awarded some points, instead of always being awarded zero points until their speed increases.
Funny, I woke up this morning, my mind drifted to the game, and that I should make this change popped into my head. It makes sense because while I can get through all the levels in under 1:00, new players probably won’t be able to and might start getting ticked off they’re never awarded any time related points.
Just uploaded version 1.0.0 of my entry (gave the description a little tweak for good measure) and now the waiting begins …
Changes since RC2:
Added another level. Yea, I know I said I wouldn’t but seeing the way some of the other entries where shaping up I suddenly felt very inspired to sweat out another level ;)
The start-timer-line flashes white when crossed. Now there is a visible cue to go along with the audible one.
Red walls flash bright red on collision. Again, a visible cue to go along with the audible one.
Made orb-wall collisions bouncier. To give a little more “life” to the collisions.
Sped up scrolling of the credits. While I love seeing my name take 30 seconds to scroll across the screen, I’m sure others would not.
I’ll probably wait a couple of days to take a look at/vote on the other entries (I’m nervous about seeing just how well other entries finished up). Well, best of luck to everyone and may the best games win! :D
Now, if you’ll excuse me I’m going to tear open my copy of Fable II which I’ve been staring at longingly for the past few days …
The Orb now automatically follows the cursor (No need to “drag” it everywhere).
Removed damage-multiplier display and shuffled remaining two around.
Re-did “How to Play” screen.
Jazzed up the title screen/Main Menu logo.
Misc. tweaks to levels.
Misc. tweaks to game itself.
Application now has custom icon.
DMG file now in compressed format.
Having Unity build stripped/compressed versions of application (Since RC1) so app is much smaller.
I’ve decided I’m not going to add a fifth level. Time is going to be short over the next few days and
I don’t what to rush creation/tweaking of a new level.
The things left to add to the DMG file are the uDevGames08 read-me file (which is not available yet),
the license text files (which are ready to go), the games source and assets (i.e. the Unity project folder)
and a small read-me file about where to find the source files within the project folder. To this end I’ve
been cleaning of the project folder a little and getting rid of unused stuff.
I got some nice feedback about RC1; much of which led me to make changes for RC2. I’m embarrassed
to say that all of the comments about ways to improve the game, where things I was aware of but had
kinda’ passed over or blown-off for whatever reason (lazy me). Hopefully, after I post RC2 I’ll get some
more helpful comments.
One thing I’m most pleased about is the re-done “How to Play” screen. It’s gone from this:
[LINKS REMOVED]
To this:
[LINKS REMOVED]
Again, this was closer to how I initially envisioned the screen being, but I guess I got it into my head that
I would not have the time to re-do it and so just stopped considering it. Oh, well …
The size of the cursor was something I meant to address. I guess over time I just got used to it so it began to seem like not such a big deal. But your right, the cursor should be smaller as it can kinda’ get in the way. So the cursor is now a nice, simple cross-hairs.
Holding down the mouse button all the time was also mentioned elsewhere as a not-so-great thing. My reasoning was if you wanted to access the Main Menu during play, and the orb always followed the mouse cursor, moving the cursor to click the “Main Menu” button could potentially mess up your game. As I think about it now, the decision to have to “drag” the orb everywhere was made when I envisioned the game as having longer levels, more methodical play and no timer. With the game in it’s current state of shorter, faster and timed levels, the “must-drag-everywhere” decision does not seem like a good one.
I made some quick code changes so the orb automatically follows the mouse cursor and it feels/plays really well! A few little tweaks, and everything should be good to go!
Nice! I like it. The control scheme reminds me a little of Crystal Quest. (I miss that game!). A couple things that bothered me. I’m not nuts about the big mouse pointer hovering around. A la Crystal Quest, I’m not sure you need to see it at all! Secondly I find it awkward to keep my mouse button held down for so long. If you hide the pointer, you could move it immediately over your ball, then have the ball follow any mouse move, you wouldn’t have to click to start. If you decide to keep the pointer, a subtler cross hair might be a better choice. With the pointer, maybe click on the ball and it changes color and the pointer changes to a crosshair to indicate active. Click on it again to get it to stop.
-Matt
PS. I just found out that Crystal Quest has made a return but for Windows and Xbox.
And (if I’ve done this right) a short gameplay video:
[LINKS REMOVED]
All must-do’s and nice-to-have’s posted here and the dozens more scribbled in my notes here at home have been completed! If the contest ended tomorrow, I would be very pleased with my entry.
Of course I’d love to have the time to redo everything in the game: expand the features, enhance the graphics and effects, explore gameplay possibilities, and generally make the game a more complete experience. I very likely will go back and do most/all of those things, but now is not the time: the contest deadline is looming too close for me to start making any major changes or additions, so things will have to stay as they are. And things as they are, I am pleased with. :)
I’ve spent the last two days going over the source code making sure all the “TODO:”‘s are done, gathering up all credits information and getting it into the game, going over the contest rules making sure I’m not missing anything, reading over available licenses, picking one (MIT) and getting that into the credits as well, learning how to make a DMG file, learning how to capture gameplay videos (after some tests, I chose SnapzProX), learning how iMovie works just enough to edit the video a little and submitting a screen shot for inclusion with my entry description.
After I this post, I’ll attempt to make the RC1 downloadable from my games description page, probably update the game description again, give the folks over at the Unity forums, and possibly the iDevGames forums, a heads-up about the newest build and see if I can get some last minute feed back.
I’ve got layouts for two more levels spec’ed out, and will probably spend tomorrow getting those up and running. This will bring the game level count up to the desired five.
The rest of the time until final submission will be about playing and tweaking levels and getting my final submission ready: source code, resources and all. There will probably be other things, but that how it looks at this point.
Almost everything on my list from my previous entry, plus a slew of misc tweaks, has been completed. I still need to:
Get the Credits filled in.
Get visual effects in.
Design levels.
And one new one:
Tweak scoring
I have found and integrated sound effects, but I’m really not liking the bad-collision sound. It seemed “OK” when I thought the player would control some type of craft around the level, but for various reasons, the player now controls a yellow marble type thing, so now the sound effect really does not fit. (This reminds me, I need to edit the How To Play text so ‘Craft’ is not used.)
Here’s the latest build. It’s currently coded so that every time you load up the game, the top score is zero. This way you see the Top Scores screen:
[LINKS REMOVED]
And a collection of screens: [LINKS REMOVED]
Graphics wise everything is pretty much done. The only thing I’d like to do is have the floor tiles farther from the play area be darker than the closer one’s to give the effect that the play area is glowing or under-spotlights.
Drag your craft (the cyan circle) through the level collecting stars and avoiding collisions with anything red. Get to the finish line as quickly as possible as more time left means more points.
The timer does not start until you pass the starting line. You lose 1, 2 or 3 seconds for every collision (The closer in time the collisions are, the more time lost).
NOTE: Try and collect all the stars and get to the end of the level with a least 40 seconds left on the clock! ;)
Note, that currently there is only one level, repeated three times. Here’s a screen shot.
[LINKS REMOVED]
I feel really good about where the game is at his point. It’s very nearly in a completed state.
Some stuff left to do:
Get rid of the darn cyan circle and create a proper player craft already!
Add animated back drop to Main Menu
Get the How To Play, Credits and, maybe, Options menu items working
Do something more with the “New Top Score” dialog
Find and integrate key sound effects: Menu Click, PickUp collection, Bad collision, and Player craft appearance. Any sounds effects found and integrated beyond these, I will consider gravy.
Get key visual effects in-game: Pick-up collection, bad collision, and player craft appearance. Again, anything beyond these are gravy.
Create 5 levels total.
Tweak game colors. Everything is very primary at the moment.
Redo the wall tiles. The version of the tiles in the latest build I’ve fallen out of love with in the day or two since I made them.
Find additional floor tile textures. I like (not love) the one in there now but one or two more would be nice.
More tweaking.
Even more tweaking.
I should probably have all this done, except for the level creation, before the middle of next week. Leaving the remaining week and half for level creation and, you guessed it, … tweaking!
Since I’ve got it lying around, here’s a shot of the tiles I’m hoping to have time to redo.
[LINKS REMOVED]
Nothing major, just get rid of their corse, bump mapped looking surface, outline both side of the white border with black and deepen the colors a little bit.
Since my last post, it’s been all about searching for music, tweaking things visually, and cleaning up & simplifying the game code.
I did add two new features: Showing the top-score above the main menu at the start of the game, and moving the display of the Top Score out of the end-level stats dialog, to its own dialog displayed after all levels have been completed.
Cleaning/simplifying the code has involved re-working logic flow, getting rid of redundant event/status variables, rewriting some particularly messy (i.e. written at 2am) routines. None of this was really necessary, but giving the code a good going over gives me peace of mind, especially as I transition away from coding to resource creation/integration.
Speaking of resources, I’ve found all the music resources I’m going to need. Finding them involved going through several hundred music loops, to find the 6 I’m gonna use: 1 for Menu Menu, 1 for End-Level stats/New Top Score dialogs, 1 for Credits Screen, and 2-3 for during play. I’ve used Audacity to clean-up/ tweak them a little, now I need to get them into the game: playing and fading-in and fading-out at the right times.
So this is not a text only update :D Here’s one of the loops I’m going to use. This is a during-play one. It’s going to play very low: Just to set a mood, and not distract the player.
Well, it’s been a long 3 days of coding, but the game is now FEATURECOMPLETE!! Meaning everything I’m going to add features-wise is done. From here on out its working on graphics, integrating sound effects & music, working of effects and tweaking.
A number of features, even the abbreviated list I started off with, did fall by the way side either because of time and/or because the focus of game play changed.
Initially, the idea was to race your craft through an obstacle course as quickly as possible, not touching anything at all. The idea is still to race though the level, but with the added challenge of collecting pick-ups. And the surfaces you can’t touch, instead of being everywhere, will be strategically located to make getting at pick-up or maneuvering through tight spots more of a task.
I also found in my test level that waiting for rotating obstacles to move out of the way brought the game to a screeching halt and was also kinda boring. In newer test levels, there no stopping unless you want to. You can weave and flow through and around obstacles, constantly on the move, as you race from pick-up to pick-up: I think it’s much more fun!
Here are a couple of screen caps showing the last things I worked on (Everything is of course subject to change and probably will):
The Main Menu (those stars in the background rotate at random intervals): [LINKS REMOVED]
The end-level-summary dialog, and the three in-game displays (pick-up, time-left, damage multiplier) [LINKS REMOVED]
Whoops!!
As I wrote this I realized I have not yet added the on-screen button you click to access the main menu during play! What time is it … 1:27am … Hmmmm … Maybe I can get it in before I hit the sack :) Till next time ….
Drag your craft (the cyan circle) using the mouse. Collect all pick-ups (those spinning checked balls). Roll over the exit level marker (the checkered box) to move to the next level. When the last level is completed, the app exits to the OS.
These levels show the type of game play challenges I’m going for. (NOTE: you still don’t have to worry about colliding with anything.) (NOTEALSO: The first half of the 2nd, larger level is empty on purpose :) )
Misc. Keys:
ESC: Quick-Exit
Alt+Return: Toggle Fullscreen Mode
CMD+F: Will also toggle fullscreen mode, but since I can’t catch the switch before it happens the results are streached if you have a wide screen display
The numbers at the top-left corner are the FPS divided by 4 and the physics-ticks per second.
Here’s a screen shot (NOTE: those ‘Y’ and ‘C’ shaped things rotate): [LINKS REMOVED]
The attached app, include 3 VERY simple test levels I used to tweak the dragging and test level loading.
Drag your craft (the cyan circle) to the level exit marker (the checkered box). When your craft touches the checkered box, the next level will load. When the last level is completed, the app exits to the OS.
In the final game, you’ll have to avoid hitting any walls, but in this test version don’t worry about it. Also, in the final game, the levels will be larger than just one screen and the camera will pan about the level following your craft.
ESC: QuickExit
Alt+Return: Toggle Fullscreen Mode
CMD+F: Will also toggle fullscreen mode, but since I can’t catch the switch before it happens the results are streached if you have a wide screen
The numbers at the top-left corner are the FPS divided by 4 and the physics-ticks per second.
Here is a screen shot of one of the test levels: [LINKS REMOVED]
Internally, the GameInit/GameLoopMgr is pretty much in its final state; the LoadLevelMgr and PlayerCraftMgr are in very basic shape with just the essential coded. There are about six other managers just full of “stubs” (i.e. routines that don’t do anything, or do just one thing). For example, the MainMenuMgr when activated does not present the Main Menu but just signals the ‘eventSelectedNewGame’ event.
I’m coding things to be as event driven as possible. As your going through the test levels, events like “eventLevelLoading”, “eventLevelLoaded”, “eventLevelExit”, etc. are being signaled by certain managers and responded to by other managers.
In the past I’ve used state changes (i.e. treating the game like one big state machine) and while it workes, coordinating all the state changes was a pain. I feel events will keep things more loose and flexible, plus BOO makes it so simple to create custom events that it’s cool experimenting with them!
Ok, I’ve (pretty much) finalized the games internal logic (i.e. what and how things flow internally from the time the user loads up the game until they exit). I’ve used flow charts in the past, but for such a simple project, about a page of typed text sufficed.
I’ve divided the program, into 19 managers, with names like GameInitMgr, GameLoopMgr, LoadLevelMgr, BonusMgr and PlayerCraftMgr. A manager is responsible for a specific part of the game. For each manager I listed what they do or are responsible for and possibly how they might communicate with other managers. For instance, the TimeDisplayMgr notes are:
TimeDisplayMgr: --------------- * Manages the display/animation of the Timer display during gameplay * Handles end-level display of time stats * Registers with PlayerCraftMgr for notification when start-/stop-timer area are entered * Handles display of time gain/loss messages that appear above players craft * Allows the adding/removing of time * Keeps tally of total unused time *
The notes are purposely general, without a lot of details: Just enough to give me a high-level view of each manager.
I’ve also (I think) finished my resources list. The rough breakdown is: 3-4 visual effects, 2-4 pieces of music, 10-13 sound effects. If time gets short it will be closer to the lower number (possibly lower!). I’ll see what happens …
Lastly, I’ve finished up the simple versions of the game tiles. They’re currently sitting in Unity waiting to be rigged up (i.e. have physics response/interaction functional added to them).
For something else to show, here is the progress of the tiles from simple sketches to current state. Unfortunately, I can’t show the first step, the pencil sketches on hexagon graph paper, because, well, I threw them out after reaching stage 2 (Doh!)
Here’s stage 2: The tiles as created using Pixen/ Gimp: [LINKS REMOVED]
Stage 3 was taking each tile and creating 2 versions (An OK to hit version, and a not OK to hit version) and a shadow: [LINKS REMOVED]
Stage 4 was creating, what Unity calls Prefabs, of each tile. A Prefab is a collect of resources (i.e. graphics, scripts, etc.), that once created, can be used over and over again with little penalty (time or resources usage wise). Here are the tile in their Perfab versions: [LINKS REMOVED]
An finally here is a quick pic of the tiles in use (NOTE: the tiles have associated logic that snaps them to a invisible hexagon grid, making laying them out very easy) : [LINKS REMOVED]
Next, up is to rig the tiles, get a simple demo together with a simple craft being dragged around a simple level, start coding the managers, and begin scouring the internet for free sound effect/ music resources. :)
The game I chose to work on was one I’ve had in my design ideas notebook for a while: It involves maneuvering your craft through levels of narrow, twisty passage, filled with static, animated and/or free-floating obstacles while trying to avoid contact with almost all surfaces.
Control of your craft is accomplished by dragging it with the mouse. The craft is quite responsive to mouse movements but there is some lag/delay that has to be taken into account.
The challenge is too make it though each level as fast as possible, as score is based upon how much time is left on the clock at levels end. More time = better score.
I chose this game because I felt it was a nice casual one, that had simple gameplay, and that I envisioned having simple graphics, adding up to something I felt I could complete by the contest deadline.
Most of my time so far has been spent simplifying the gameplay and game-elements, trying to get the game down to its’ core elements, again, primarily because of time. I’ve also spent time doing proof-of-concept testing: Could I do, gameplay-wise and technically, what I wanted to do?
So far there’s not must to show: I’m finalizing the game internal flow, and have begun breaking the game up into managers and spec’ing out what each manager is responsible for. I’m working on creating simplified versions of the games wall tiles. I’ve also begun spec’ing out what resources (other than graphics) will be required (i.e. sound effect, music, visual effect, etc.)
Tools:
Unity – Main development tool
Boo – Scripting
Gimp – For image composition and image effects
Pixen – For pixel editing
Audacity – Audio editing
Since there’s not must to show, but I figured I’d post a few image of the artwork I’m using as inspiration for the games look and level design: Enjoy!