Tuesday, December 23, 2014

Progress Update

The past two weeks have been all title screen and save file work. The user can now create up to three save files which, so far, record which rooms have been completed and the least number of moves it took to complete. The title screen menu has a few extra options; CONTINUE takes you strait to the room you stopped at, STATS brings up a GUI that shows your record number of moves for each room and what medal/ranking you got for the room if any, OPTIONS will eventually let you adjust various things like sound and music volumes.

I was very surprised how much work it ended up being. I almost always jump into something with the judgement that it will be just a small task only to come to the realization a month and thousands of lines of code later that the task was much more than it seemed.

I've been playing this one particular game lately and am in love with the navigation system. So I've decided to base most of my navigation off of that.

The game opens with the game title and the words PRESS SPACE. You can press SPACE, ENTER, or click anywhere on the screen which will tween in the save file select.

The save file select defaults to highlighting the last save file that was used so it's as easy as pressing SPACE or ENTER again. If the user does not want that save file, they can press the LEFT or RIGHT arrow keys to highlight a different save file.

Selecting a save file will tween in the menu options. The options given are; NEW GAME, CONTINUE, ROOM SELECT, ROOM DESIGNER, STATS, OPTIONS. A menu option selector object sits to the left of whichever option will be selected and can move up and down to each option with the UP and DOWN keys. CONTINUE and ROOM SELECT are sort of grayed out and cannot be highlighted depending on the circumstances.

Also, the ESCAPE key is a big part of navigation. At any one of these title screen stages, pressing ESCAPE will back out to the previous one. I would like to implement something that will close the application when pressing ESCAPE at the opening screen but I haven't figured that one out yet.





Friday, December 12, 2014

Daily Goal

Finish the Back-and-Forth Tile

Although the Back-and-Forth Tile is built, I need to test and make sure it's working everywhere it needs to.

Work Completed (12/11/14)

The Back-and-Forth Tile is alive an functioning after one day's work. There are some wrinkles that need to be ironed out and I should probably add documentation to the manual.

Although the functionality of the Back-and-Forth Tile is fairly simple, there was SO much that had to be done in so many classes. It makes me wonder what I could do to make the code more robust so that adding a feature doesn't require adjustments in a million different classes.



Thursday, December 11, 2014

Daily Goal

Create the BackAndForthTile

I'm putting the puzzle creation on hold for now because I can't stop procrastinating on it (stop procrastinating??). I should use all this wasted time to build on other parts of the game. So I'd like to create a tile that moves back and forth between two to four different tiles after each move in game play. Hopefully it doesn't end up being too complicated.

Tuesday, December 9, 2014

Creating Puzzles ain't Easy

I'm having somewhat of a difficult time with puzzle creation. On top of that, just staying focused on it is a chore. I've only been able to knock out a few since the last post which was six days ago. This is certainly unexpected and unfortunate since the Room Designer is fully functional and I don't like wasting time. Also, the main drive to make the Room Designer was so I could easily create the puzzles by simply drawing them in. So I don't know what's damming the river of creativity.

I did, however, use some of this time to practice physics stuff. I made something that spawns randomly colored squares that move up and down and also left and right as if they're orbiting around a pole. Spawning several of these squares at certain distances from the center of gravity and at timed intervals creates a sort of cone shape.



Wednesday, December 3, 2014

Goal for the week

Create Rooms and Fix Bugs

This seems to be the goal most days so I'm just going to work on these for the rest of the week. If I get them done before the week is over, I'll start Daily Goal again.

Tuesday, December 2, 2014

Daily Goal

Fix Switch Tile Editor Bug

While creating a room yesterday, the game crashed when I tried deleting some Switch Clients in Switch Tile Editor. I'm getting started late today so this will be my only goal.

Work Completed (12/2/2014)

I wasn't able to get around to creating rooms because I spent the time working through some bugs. I learned something critical about AS3 today while working through different SAVE CHANGES button and ADD ROOM button scenarios. The most common error I get is Error #1009: Cannot access a property or method of a null object reference which means I tried to access something from an object that hasn't been added to the world. What I'm now realizing is that this happens often due to objects adding other objects to the world in their added() function. Up until now, my thinking was those secondary objects get added to the world the same frame as their parent. However, I now think that this delays adding those secondary objects to the world until the end of the next frame. As a workaround to this issue, I've been setting an alarm to call whatever function is generating the error. That way, by the time the alarm goes off to call the function, the secondary objects have already been added to the world. The alarm only waits a tenth of a second so it would hardly be noticeable to the user but is still a cheap workaround and not the right way to do things.

Monday, December 1, 2014

Daily Goal

Create Rooms

Hopefully nothing sidetracks me today and I get around to creating rooms because I'd really like to move on to scoring and rewards for performance.

Last night I kept working past the Work Completed post to move the Room Designer switch tile outline F8 visibility toggle function from the SwitchTile class to the RoomDesigner class. Although the function was identical, it didn't turn on and off like it had been. The problem ended up being one of the conditional checks: if (es.indexText.masterAlpha == 1). Because this toggle feature is based off of update() listening for the F8 key, indexText.masterAlpha is a different value depending on which class's update is listening. So, if (es.indexText.masterAlpha == 1) needed to be changed to if (es.indexText.masterAlpha == 0).



Sunday, November 30, 2014

Work Completed

The goal was:
Create Rooms

I spent all day reworking the look and function of the Switch Tile Editor sub-menu because I didn't like that it had things in the way of the grid. The new look and function is very similar to the Switch Client Creator which has its active type and inactive type selectors at the bottom.


Old look
New look
Switch Client Creator look

Daily Goal

Create Rooms

It's time to put the creative hat on... although I'm not quite sure where I put it. I think once I start working it'll turn up. I came up with a couple ideas yesterday while working on bugs. The first idea revealed an unexpected bug. It's possible to lay a switch tile without adding any clients but I didn't code the save/load class to handle that situation. So I'll have to add something to record the outline colors.




Saturday, November 29, 2014

Work Completed

The goal was:
Testing and Whatever

I've been using RoomSelect a lot while testing and scrolling through numerous rooms to get to the one I want has become annoying. So I decided to add x10 arrows to RoomSelect that allows the user to scroll through rooms ten at a time.





I had a really tough time today with the SAVE CHANGES button in RoomDesigner. When clicking it to save any changes, its alpha should change and stay at 30% but kept changing to 100% no matter what I did. After a lot of testing, I figured out it was due to the changeState() function being called in the Button class's update(). Because the mouse pointer is over the button, the button's alpha property gets set to the hoverAlpha value which is 1 (100%). Still, nothing I did would prevent that so I ended up changing the hoverAlpha value to .3 when the save button's deactivate() is called and then to 1 when its activate() is called.


SAVE CHANGES at 100% alpha after saving



I was thinking today that I'd build an in game menu, accessed by pressing ESCAPE. This would be where all the navigation buttons and options go instead of how I have them in the corners right now. I guess the need for something like that can depend on the number of those GUI elements.

Daily Goal

Testing and Whatever

Gotta find more bugs and work them out. I know there are a few issues with the AddRoomToPlaylist class and the SaveChanges button so I think I'll start there.

Work Completed (11/28/2014)

The goal was:
Work on Bugs and Create Rooms

I didn't spend much time working on BlockPusher but I was able to squash a tricky bug. The game was crashing after completing certain rooms and I was very confused as to why. I used trace() on several things and eventually saw that some indices of my allWorldObjInThis array were blank due to some rooms having blank spaces. So when the game went to change to a new room, it first removes from the world everything that makes up the completed room. EntityPlus tried to remove all indices of allWorldObjInThis in its removed() function, and some were null.

I could just skip pushing the blank spaces into allWorldObjInThis but instead decided to make the blank spaces Hole tiles and then change their visible property to false. This should actually prevent a future problem which would happen when the user moves a block to a blank space. The move calculation will look at the blank space as a Hole tile and give the desired reaction of a blank space.



Friday, November 28, 2014

Daily Goal

Work on Bugs and Create Rooms

Nothing much to talk about. I remember some time back wanting switch tile clients to have goal tiles as one of their tile types so I could make a room with hidden goals. I believe I tried it and it worked with no issues but wasn't ready to implement it yet. So I may look into that if I have time.

I sound a little lost on what to do next but I actually have a list of things to do when I complete a goal, I just don't feel like looking at it right now.

Thursday, November 27, 2014

Work Completed

The goal was:
Add Ability to Delete Switch Tiles From RoomDesigner

Result is success. I have also started creating rooms for story mode. I ran into several bugs along the way and fixed most of them. I think tomorrow I'll work on those bugs and possibly restructure some GUI elements that have proved tricky.

Daily Goal

Add Ability to Delete Switch Tiles From RoomDesigner

I was overwriting the current saved rooms with new ones and found out I can't delete switch tiles. So that's the next thing I need to get out of the way. I also found a few interactivity conflicts and took care of those.



Wednesday, November 26, 2014

Work Completed

The goal was:
Create Puzzles

I didn't come close. After loading Room 1, I went to erase the whole thing and ran into some bugs. I ended up adjusting several things and playing clean up. It's the end of the day and I've just now fixed that bug. It does feel nice however to have some of the code cleaned up and some extra non-needed stuff thrown out.

I've decided that I need to avoid using extra non-local (dunno the correct term) variables as much as possible. They're typically created sort of as a crutch or helper to make something work properly but ends up getting in the way later because it's more stuff to manage. So tomorrow, if I have the time (Thanksgiving), I'll do some more clean up.

Daily Goal

Create Puzzles

It's finally time to start creating the puzzles for the game. I had about 20 already made but I deleted the file they were in while in a rage over a bunch of clutter. I'll also work on any bugs I come across of course.

While trying to fall asleep last night, I had the idea that in Room Designer, the user should be able to move the created room around the grid in case one side runs out space. I started coding it right away and it seemed pretty simple. Maybe I could write a function in the GridSpace class to copy the values of a neighbor GridSpace? Then I began thinking about SwitchTiles and SwitchTileClients and thought this could be a mess so went back to bed. But again, while trying to fall asleep, maybe I just need to move everything 38 pixels in the desired direction and tween the out of place spaces to the other side of the grid. Then use a function that's already in place to update all the gridIndex and roomIndex values. Yes. Maybe that could work.

Tuesday, November 25, 2014

Work Completed

The goal was:
Navigation and Testing

Things seem to be in order. I can navigate the game freely without any issues. In the process, I ended up moving a lot of GUI buttons around and creating a GUI_Constants class so there are some global constant reference coordinates for buttons.

A few nights ago while falling asleep I was deep in thought about physics and Entity's update(). I thought back to creating animations in Adobe Flash Professional and the coordinates of an object in the first frame of an animation. I realized the section for calculating speed in update() should go after the section that updates the position. I may be wrong here but I believe the frame an entity is added to the world also runs update(). If so, that means an entity calculating speed first will not start at the coordinates you specify it to start at. It will start at your specified starting coordinates plus the value of gravity.

Daily Goal

Navigation and Testing

Okay, Block Pusher hasn't been so magnetic to my interests lately but I'm going to push through that today and get some work done. The only navigation missing, that I can think of right now, is a link to the title screen in RoomSelector. So I'm going to get that out of the way and look for bugs along the way by testing.

For the times I couldn't pull myself to work on Block Pusher, I used some of that time to work on artwork for a different project I have on the back burner. Everything is made of 8x8 black outlined squares and I've been converting that to something more of a cell-shaded look.





Wednesday, November 19, 2014

Work Completed

Ugh

I spent the whole day improving the new title screen falling blocks background because I wanted the direction they fall to be randomized to up, right, down, or left when the user enters the title screen. Unfortunately I ran into several bugs along the way.

Since the FallingBlock class had to be dynamic with the axis and direction for calculating the movement, I started using Point variables. Now for whatever reason, even though I set a FallingBlock's targetCoord:Point to the proper target coordinates each time it was added, if it was a recycled entity, its targetCoord would reset to the values assigned when first created. I eventually just instantiated targetCoord each time FallingBlock was added to the world.

Another tricky bug caused the addBlock() function to be called when it wasn't supposed to causing everything to be off balance. That one took too much time and effort to figure out.

But at least it's working now.



Daily Goal

More Navigation and Testing

It seems like there isn't a whole lot to do right now so I'll stick with more testing. I do have a list of things to do, most of which have been done. A few important things would be; User save files for tracking progress and scores, A room-complete splash screen after completing a room, A way for the user to delete a room they created.

Since I had so much fun with the falling blocks title screen background, I wanted to write more about it. BlockPusher game play uses a tween to move a block you push to its destination but for the falling blocks I used physics.

When I first wrote the physics in the update of the FallingBlock class, I used several booleans like willFall and atLimit to stop update from moving the block or increasing speed. I had also made a Number variable called nextY which was part of a calculation to check what would be the next y coordinate of the frame making sure the block wouldn't pass its target coordinate. I realized later that I actually didn't need the booleans or the extra nextY variable and was over complicating the process. The only variables I needed were speed, gravity, terminalVelocity, and targetCoordinate. With those:

override public function update():void
{
    if (speed < terminalVelocity)
    {
        speed += gravity;
        if (speed > terminalVelocity) speed = terminalVelocity;
    }

    if (y < targetCoordinate)
    {
        if (y + speed >= targetCoordinate)
        {
            y = targetCoordinate;
            
            // for the green flash:
            if (FP.rand(10) < 2) addFlash();
        }
    }
}

Tuesday, November 18, 2014

Work Completed

The goal was:
Navigation and Testing

I got some navigation done and worked out a few bugs. Nothing very exciting. I did add a few new functions to EntityPlus. One is centerOnTarget(_e:Entity) which will center an EntityPlus on the Entity you pass.

public function centerOnTarget(_e:Entity):void
{
        var thisImg:Image = graphic as Image;
        var targetImg:Image = _e.graphic as Image;

x = (_e.x + (targetImg.width * .5)) - (thisImg.width * .5);
y = (_e.y + (targetImg.height * .5)) - (thisImg.height * .5);
}


I spent most of my time today messing around with some background visuals in the title screen. Blocks fall from above the screen in columns stopping before the bottom and stack on top of each other. Once the stack has reached the top, the bottom of the stack falls off the screen one by one. The last one to fall will stop right before the bottom of the screen and then the process repeats itself.

Each block that falls has a 20% chance of briefly flashing a green toxic glow. I messed around with that green flash further and made it cascade down each block in its column but ended up not using that.




Daily Goal

Navigation and Testing

I'm just going to work on navigation and whatever I find out of place as I go along. And if I finish that with time to spare, I'll work on story mode things like scores, results, and secrets.

Monday, November 17, 2014

Work Completed

The goal today was:
Get the RoomSelectWorld working

Result is success. There were a couple tricky bugs along the way and some things needed to be reworked. The rules of some GUI elements still need to be tweaked. I got sidetracked a lot and worked on a bunch of things I didn't need to but they all turned into improvements.



Daily Goal

Get the RoomSelectWorld Working


I don't think it should be too difficult. I already worked on it for about an hour last night. Once I have it working, I'm going to go strait to navigation work so I can more easily move through the game while testing.

Work Completed (11/16/2014)

The goal was:
Testing

A lot of testing was done. A bunch of bugs were found. Various things were adjusted and/or improved. It's a bit of a blur in my head this morning.

I made a couple more helpful functions in my base class EntityPlus and now have a pretty nice bundle of interactivity switches. They all affect any entity the caller has added to the world.

epActive() uses Entity's active property to turn on or off the update
epVisible() uses Entity's visible property to turn on or off the render (visibility)
epInteractive() turns the Entity's hitbox on or off

All three require one argument, a Boolean, to specify on or off. They can also take two optional arguments; _includeThis:Boolean = true in case you don't want the parent entity to be affected, and _exclude:Entity = null in case you want a particular entity besides the parent to be unaffected.

There's a fourth function to go along with this bundle: epInteractiveAndVisible() which simply calls both epInteractive() and epVisible().



Sunday, November 16, 2014

Daily Goal

Testing

After such a major overhaul, there are bound to be some problems. So I'm just going to test as much as I can and work out any bugs I come across.

Oh yeah, I might try to get the RoomSelector working again with this new setup. Currently clicking on the Room Select button in the title screen does nothing.

I also wanted to write about over complication. I think, naturally, when you're learning something you don't understand you over complicate a process even when the easier solution is sitting in the drawer right next to you. Some time back, while working on Taunt (I think it was), I added a Boolean property called 'busy' in my basic Button class. 'busy' was something I used to toggle the interactivity of a button object by simply changing 'busy' to true or false.

override public function update():void
{
    if (!busy)
    {
         updateInteractivity();
    }
}

Now, this could still come in handy if I have some things in update I want to run and some I don't but there's a Boolean property that comes with Entity called 'active' that toggles update. So I could have just set 'active' to false if I wanted to stop the interactivity of a button. And I've been using a Boolean property that comes with Entity called 'visible' for some time now which toggles the visibility of an Entity so that's why I say 'active' was right next to me the whole time.

Saturday, November 15, 2014

Work Completed

The goal was:
Rework the RoomDesigner class into PuzzleDesignerWorld

So, I did A LOT of work. A lot of renaming and moving things around. A lot of cleaning up and throwing out the trash. A lot of prep work in other words. Then it was more cleaning up and adding in code that would make a new world and pass the needed data to it.

After all that, on my first execution, the game started up and PuzzleDesigner loaded! Now it's to testing, ironing out components like the PuzzleNamer, and more testing. Then I can get to the navigation. Although, after this, I feel like I could finish navigation in like ten minutes easy.





Daily Goal

Same as yesterday:
Rework the RoomDesigner class into PuzzleDesignerWorld

RoomDesigner just feels like one big mess, but I think I'm ready to get at this after reworking GameManager, SwitchTile, and SwitchTileClient. I expect to have a much better understanding of it after this and. And I think that understanding will alleviate that messy feeling.






Work Completed (11/14/2014)

The goal was:
Rework the RoomDesigner class into PuzzleDesignerWorld

I didn't feel comfortable with reworking RoomDesigner without first reorganizing a good portion of the game's file structure and splitting the SwitchTile and SwitchTileClient classes each into two. So that's exactly what I did and was very pleased with how well it went.

After reworking the GameManager class, splitting SwitchTile and SwitchTileClient was a breeze. I wanted each to have one version for game play and one version for the puzzle designer. First I copied the class to have a backup. Then I removed anything in the original that was specific to game play and puzzle designer leaving only variables and functions that were needed for both. Next, in the backup, I put a comment marker next to each variable and function that was remaining in the original. Now, with a base class to work off of, I extended that into two separate classes. Finally, in each of those classes, I looked into the backup and copy-pasted anything specific to its scenario.





Friday, November 14, 2014

Daily Goal

Rework the RoomDesigner class into PuzzleDesignerWorld

I'm getting a pretty late start today so I'm not sure if this is going to happen but I'm going to look over it in hopes to find some motivation. I might instead start splitting the SwitchTile and SwitchTileClient classes each into two. One meant for RoomDesigner and one meant for Puzzle (game play). Right now there are many conflicting event listeners that make them difficult to manage.



Thursday, November 13, 2014

Work Completed

The goal today was:
Navigation and Testing

While thinking about navigation, I realized that I wasn't able to put off that needed revamping of the game managing classes. I started picking at some variables to see who used them and how important they were. After a while I got a decent feel for what was reliant on what.

I copied the head honcho GameManager class and then rewrote it. I liked how it looked so I took the plunge; broke the class into two, extended other classes from those, wrote some new worlds, and then executed.

There was a long list of errors that popped up but they were mostly just broken references which are easy fixes. A couple hours later sifting through those and the game is working!

So I'm feeling pretty comfortable about breaking everything up into separate worlds. There's the PuzzleWorld, the PuzzleDesignerWorld, the PuzzleSelectWorld, and the TitleScreenWorld. Tomorrow I'll be working on the PuzzleDesignerWorld which is the most complex.




Daily Goal

*draws from a hat*
Navigation and Testing

Actually, I think I'm going to pick at revamping some major classes. And I say "pick at" because I don't want to get lost in a sea of stealthy bugs and crashes. So I think one variable at a time is the way this will go.

The overall idea I have in my head about this is that I have only one world instead of several. That one world adds a few major classes that manage the major sections of the game. From what I understand, these major sections or classes should be separate worlds. And although I'm not going to change them into worlds, I want to have one class in the world at all times as a 'Game Manager' and then everything else will be added and removed to the world when needed. I believe this will help resolve various class and variable conflicts.



Wednesday, November 12, 2014

Work Completed

The goal was:
Finish Manual

Success. The manual isn't all I wanted but is complete. I threw out most of the text I thought wasn't completely necessary. The interactivity of it and certain sections of the game need to be tweaked so keyboard and mouse actions don't affect the background.




Daily Goal

Finish manual

In the process, I'm going to trim down the amount of text. I would like only one page of text for each section. This isn't a strategy game so I don't believe the user should have to read a novel to understand how to play it. With saying that, I should also look into maybe simplifying the controls? We'll see.

Also I would like to note that Lightbox (the Blogger app that overlays an image onto the page when you click on it) has stopped working on any post past November 9th. Searching for a fix, it looks as if it breaks about once a year. I really love Lightbox because even though I have to first upload images, it's my answer to Windows Photo Viewer. With WPV, if I want to view my images without an annoyingly bright background, I have to use the slideshow feature which re-sizes the images. I believe with Imgur, if I don't want any compression, I can't view my images in gallery form. Lightbox gives me a dark background, no compression is automatic, gallery viewing is simple keyboard arrows scrolling... Please stop being broken Lightbox.









Dang. Still doesn't work. 11/13/14: Found a solution in the forums. In the HTML code, in the image URL, the 's' in 'https' needs to be removed from both the 'href=' and 'src='.

Tuesday, November 11, 2014

Work Completed

Today's goal was:
Create an easy access manual

Holy cow that was a lot of work. The manual needs a lot of tweaking but it works.




I wrote out all the text into several multidimensional arrays. Each section of the game that needs instructions has its own page number which corresponds to an index of an array. So when the 'i' key is pressed, the manual is added to the world and it gets 'manualPage:uint' from the GameManager class. It uses that number to access the proper index of the arrays.



Daily Goal

Create an easy access manual

This is in response to my dissatisfaction with the look and function of the UI in general. The game is 800 x 600 only and the puzzle grid takes up most of that leaving very little room for UI elements. Having a manual that can be accessed simply by pressing a key like 'i' will free up some room and get rid of clutter. I may also work on navigation while working on the manual.




I have contemplated bumping up the game resolution but I think that's for a different time. Having a completed game is priority, optimization and certain improvements come after.

Monday, November 10, 2014

Work Completed

The goal was:
Get the Switch Tile Client Creator working with the Switch Tile Client Editor

Result is success. There were a few bugs along the way. Most being mismanagement of what got added and removed at various points and what should belong with what.

That add/remove mismanagement got me thinking more about code organization. I had built add and removal automation but still get confused in certain situations. This one being what I would call a multi-level GUI.

I'm trying to better understand this multi-level GUI by visualizing a grid of tiles with various different blocks placed on some of the tiles. I highlight only the ones that belong to a group. With those blocks in front of me, I am looking at an editing hub that gives two choices; add more blocks to the group or change the properties of any number of the blocks I picked out. Selecting either of these choices and making changes will need to be translated back to the hub. So, do I leave the hub open and halt any actions in it while editing or do I just consider the hub a third separate system that gets removed while editing?

Daily Goal

Get the Switch Tile Client Creator working with the Switch Tile Client Editor

I would also like to test various areas of the game to make sure they still work now that I'm using the new client creator.

I'm still bothered by much of the GUI, most especially the way information like user instructions are displayed. I was thinking about implementing a manual/instructions button with hot-key to bring up the manual. The manual may have several pages, each pertaining to a certain section of the game. Like the puzzle select area of the game, the user can simply press the right and left arrow keys to scroll through the pages or click arrow buttons on each side. Also, depending on what section of the game the user is in, pulling up the manual will go strait to the page containing instructions for that section.

Sunday, November 9, 2014

Work Completed

The goal was:
Get the new Switch Tile Client Editor working

It seems to be working just fine. Some things are off and some things need to change but it functions properly. I haven't had the chance to test much further than laying some clients down and clicking the 'DONE' button.



Daily Goal

Same as yesterday:
Get the new Switch Tile Client creator working

I would like to add to that goal to have the rest of the game working properly after implementing the new creator. I did pretty much have a full working game before I started this task. Revamping things can cause unexpected reactions and errors in areas that were previously working fine.

Work Completed 11/08/2014

The goal was:
Get the new Switch Tile Client Creator working

I completed most of the work and was sifting through some errors up until I had to leave. Everything I did is a bit of a blur in my head. A lot was changed and a lot was thrown away.


One huge change was the SwitchTileCustomizer class which had been handling just about everything with Switch Tile Client creation up to this point. Switch Tile Client creation is now handled by a new class called SwitchTileClientCreator. This class branches off into two children in order to handle two different situations; STCC_STC (for when a new Switch Tile is laid), and STCC_STE (for when editing the clients of an existing Switch Tile).

This does simplify things for the user and a lot of the code. I often come across areas of the game and code that could be restructured making things more; user friendly, dynamic, and robust. It's difficult sometimes to stop myself from getting distracted by those things and end up catching myself working on them instead of my task. I've read that you should focus on finishing the product first and then optimize later.

Saturday, November 8, 2014

Daily Goal

Get the new Switch Tile Client adder working

Getting the old one working was incredibly difficult in itself so I'm expecting this to be tough. It's always scary revamping something so complicated because the old version may have been put together like your refrigerator's ice maker. Why did you break?? And why does nothing in the manual fix you???



Friday, November 7, 2014

Work Completed

Today's goal was:
Add the ability to add clients in the Switch Tile Client Editor

Well, I certainly did work towards the goal but didn't work on it. While thinking about how I would make it work, I realized the process I currently have in place should be revamped. So I started working on a new way to add clients.

Laying a Switch Tile will not open any prompts. Instead, an image of the active tile type for the client will sit under the mouse pointer. In the upper left and right will be images of what the active tile type will be and what the inactive tile type will be. Each will have arrows to the left and right of them. These arrows can be clicked to scroll through tile types. The user can also scroll through tile types with the A, S, Z, and X keys. A and S for inactive type. Z and X for inactive type. The tile image that sits under the mouse will have the number of moves the clients will stay active. The user will be able to type in the number of desired moves.

Daily Goal

Add the ability to add clients in the Switch Tile Client Editor

Right now the only way to add clients is when a new Switch Tile is laid. This will automatically trigger a prompt that asks the user what type of tile they would like a tile to change to when a block touches the Switch Tile. Then another prompt will ask for how many moves do you want it to stay active. The user is then able to place clients on the grid.

That prompt and Switch Tile Client Editor are two completely separate classes. I would like to merge them into one system that allows the user to add, delete or modify clients. Today's goal however is to just give the Switch Tile Client Editor the add more clients ability.