tag:blogger.com,1999:blog-51186937024500556362024-03-13T07:47:57.939-07:00Daily DeveloperAt the beginning of the year, I decided I was going to work on developing video games each day for 15 minutes to an hour. Here is the daily proof that I've been following through.Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.comBlogger77125tag:blogger.com,1999:blog-5118693702450055636.post-5868210908936846152010-05-20T05:10:00.000-07:002010-05-20T05:10:12.169-07:00Daily Developer: Day 73Brought over "player" object from my other game and cleaned it up to compile in my new game. Will work on adding a movable component next. <br />
<br />
Duration: 00:20Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-54325561686964972092010-05-19T04:34:00.000-07:002010-05-19T04:34:56.158-07:00Daily Developer: Day 72Spent some time fiddling with the OptionsManager, the portion that reads and writes options from an XML file. Have that working again, but the place I moved it to doesn't allow for it to be accessed by other portions of the application. I'll have to work out a better location for it, or have it return an object that can be passed around. I'll likely put some effort into that tomorrow, as well as creating a new base for future games.<br />
<br />
Duration: 00:24:52Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-4614396246273280662010-05-18T05:07:00.000-07:002010-05-18T05:07:31.479-07:00Day 71: Early Morning FunI've been getting up earlier the past week or so, and today I woke up even earlier, so I had some time to spend on game development.<br />
<br />
Mostly, I was doing some pretty mundane stuff. I removed some extra things that were left over from my other game but didn't pertain to this one. I also created a base version copy of the current game to have an easy place to start from when I create other physics based games.<br />
<br />
Needed to cut it short this morning, since it was time to take my daughter to school and for me to go to work. I know I spent at least 10 minutes, possibly 20 on it today. I'll have to update my tool to automatically save the time to a file when exiting.<br />
<br />
Duration: ~20Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-38047390256395426372010-05-09T19:19:00.000-07:002010-05-09T19:19:59.139-07:00Daily Developer: Day 70 -- Back to it againMy first real obstacle with testing my consistency was the preparation of our old house for sale. Clearly, I was unable to clear the hurdle and have been spending most of my time since on getting the old house ready for sale, buying a new house, moving our stuff from the old house to the new house and putting everything where it belongs. Now, however, I am finally ready to take the steps back into my daily software development.<br />
<br />
Something I noticed about returning was that it was more intimidating than I thought it would be. Perhaps not intimidating, but I was less inclined to start back up after stopping than I was to simply continue when I had not stopped. I suppose the whole routine thing does make a difference.<br />
<br />
Today, my efforts focused on getting the menu screens into the base game and getting it to run without crashing. Then, I resolved all the StyleCop issues. I now have a base game to begin with. Tomorrow, I will start by labeling the build as a good base and then working the first version of the new game.<br />
<br />
Duration: 00:36:44Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com1tag:blogger.com,1999:blog-5118693702450055636.post-52924321569397420652010-04-01T20:17:00.000-07:002010-04-01T20:17:48.260-07:00Daily Developer: Day 69It is easy to get out of sync with routines. I am in the process of buying a new house and selling the old one, and it is providing enough of a distraction that I was able to drop my daily routine. Hopefully this will be my return to it.<br />
<br />
I started a brief design document based on the previously detailed requirements. I didn't get far into it before determining it would be a good time to create the project and add the third party elements that I knew I was planning on using. I have added the farseer physics engine, and started looking at the game state management pieces again. The game state management is less straightforward than simply including. Tomorrow, I'll pull the necessary components and get it all compiling.<br />
<br />
Duration: 00:33:59Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com1tag:blogger.com,1999:blog-5118693702450055636.post-58693060629901299482010-03-23T22:10:00.000-07:002010-03-23T22:10:21.206-07:00Daily Developer: Day 68 - The New GameNothing gets the imagination going like the start of a new project. Based on some of the accidental gameplay I discovered in my ToxicGrowth project, I started brainstorming for my new game that I am designating "Project Elasticity." <br />
<br />
While there is a lot I don't know about how I want everything in this game to behave, I did take the time to pick a starting point. I am going to use one type of gameplay to start with, with the expectation that there will be a variety of fun ways to play and styles to choose from.<br />
<br />
I used Freemind to come up with some of my general ideas, then I selected some of the details and created a basic requirements document in Google Docs that only covers the one aspect of the game I am currently interested in.<br />
<br />
My goal for tomorrow is to take the concepts outlined in my requirements document and try to solidify them a bit in a design document. Since I am working on a small portion of a game that could be pretty big, it shouldn't take too long to come up with a basic design. Though, I did notice as I was describing things in the requirements doc that there were several concepts that were much bigger than the simple sentences it took to describe them.<br />
<br />
Duration: 01:07:56Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-46420513246770275892010-03-20T22:13:00.000-07:002010-03-20T22:13:46.125-07:00Daily Developer: Day 67 - The ReturnThings have settled down enough that I am able to return to my daily routine. My task today was to simply get re-acclimated with the game and the code itself. What I've determined is that I really don't think that game as it currently is has much potential for ever being fun. So, instead of slogging along, trying to force it to be something that it will never be, I think I am going to retire it. I might post the code somewhere, in case it is interesting to anyone, but I think it is time to move on to other games.<br />
<br />
Working on this game has sparked some other ideas for other games. I think my goal for the next couple days is going to be try to nail down the details of how I want my new game to perform. I might actually *gasp* write out a quick little requirements document so that I have a guideline for what I am expecting. At the very least, I anticipate that this will help me determine what makes a requirements document into something that is truly useful, something that I think I would be able to pull over into my job.<br />
<br />
Duration: 00:15:33Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com1tag:blogger.com,1999:blog-5118693702450055636.post-30897068679717856982010-03-14T16:56:00.000-07:002010-03-14T16:56:53.676-07:00A Brief HiatusI have been taking a short break from my "Daily Developer" activity since I have had an offer accepted on a new house and am in the process of trying to get my current house "show worthy." Once I have finished this, which I am hoping will be tonight or tomorrow, I should be able to return to my game development.Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-85321624409244370232010-03-09T21:56:00.000-08:002010-03-09T21:56:35.638-08:00Daily Developer: Day 66I added an upper limit to the number of growths that can be displayed at once. This has highlighted that the issue seems to be that something isn't being cleaned up properly in the background, since even when it reaches a limit much lower than the 3000 I was seeing problems at, it eventually starts to lag like it had before. I'll need to investigate further.<br />
<br />
I also re-added the health system for the growths. Now, when they are shot, they decrease in level until they hit zero and disappear. However, I think the pool I created is causing troubles with this, since the growths stop spawning after enough are shot, since they are being pulled out of the pool with zero health. This should be easy to fix.<br />
<br />
There still might be something to this game, or maybe not. However, I at least want to get the bugs worked out before I call it "done." I have an idea that would use multiple avatars, but it could take advantage of all the work I've done already, so it makes sense to keep ironing out the issues.<br />
<br />
Duration: 00:19:16Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-61537935846439345762010-03-08T20:37:00.000-08:002010-03-08T20:37:14.735-08:00Daily Developer: Day 65I received a response to my post from yesterday. It suggested that I use a pool of enemies: instead of constantly creating new ones, when one is destroyed, put it into the pool and reuse it. I gave it a shot, but was still seeing the issue.<br />
<br />
Something else he asked was how many items I had on the screen at once. I guessed about 100, but after the pooling didn't help, I decided to print the growth count to the screen. <br />
<br />
What I had overlooked was just how quickly spawning four new growths for every existing growth would become unwieldy. Instead of being an issue at about 100, the slow down was starting at about 3000. I don't think that there will ever be a need to have that many items in the real game, so I think it is a non-issue.<br />
<br />
Next on the list of things to look at is to re-enable the collision of the growths with the projectiles and then making sure that the growths revert to previous stages first instead of simply being destroyed outright.<br />
<br />
Duration: 00:24:31Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-91275496871826749042010-03-07T20:26:00.000-08:002010-03-07T20:26:02.316-08:00Daily Developer: Day 64Today was a day of exploration. I decided that the most reasonable way to approach resolving the game freeze issue I am having is to see what others have done to avoid it. I looked through some of the posts at the CodePlex forums for farseer and have a couple of ideas, but there is nothing definitive. So, I registered and wrote a post asking for assistance. Hopefully, someone who has already solved this problem will be able to guess at what is going on.<br />
<br />
Duration: 00:21:51Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-59630960898858818982010-03-06T22:22:00.000-08:002010-03-07T10:32:32.611-08:00Daily Developer: Day 63I added the check for the boundary back for the projectiles, destroying them if they cross it. I duplicated this functionality for the growths as well. I also remove the excess object from the physics engine, so it seems that things are being properly destroyed now.<br /><br />I adjusted the collision detection for the growths to only cause a destruction if they bump something other than another growth. This needs to be updated further to properly use the health functionality instead of immediately destroying the growths. Also, the projectiles need to get similar collision detection, since they are not being destroyed until they reach the edge of the screen.<br /><br />With too many growths on the screen at once, the game bogs down and crashes. I'll need to address this. Possibly, it will be taken care of when I add the death sequence for the player. <br /><br />Duration: 00:33:48Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-46639681514092911712010-03-05T20:30:00.000-08:002010-03-07T10:32:32.614-08:00Daily Developer: Day 62I removed the old collision detection manager from the project and removed all references in the code. Added a quick test collision detection routine and it looks like it is in the right spot. I did notice that it doesn't complete destroy the objects with the calls I make. I think I've forgotten to remove both objects associated with each displayed object from the physics engine, instead only removing one.<br /><br />Also, I noticed some odd behavior in a couple of places and made some notes in the code. I also found an issue where it crashes when it tries to create a new growth in a location that one had already been created. The way it is being stored was because I was doing all my own collision detections, so I should be able to simplify that area.<br /><br />Duration: 00:31:31Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-84346904690610977792010-03-04T21:25:00.000-08:002010-03-07T10:32:32.615-08:00Daily Developer: Day 61I solved the problem of the projectiles colliding with the shooter when fired by assigning a different CollisionCategory to each. Then, I set the growths to collide with everything and the shooter and projectiles to only collide with the growths. So, now that works nicely.<br /><br />It took a bit longer than I expected, so I will pull out the old collision code and create the new collision code tomorrow. I also need to either create a barrier around the edge of the board, or to destroy anything that goes outside its bounds.<br /><br />Duration: 00:42:46Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-64767240724535853572010-03-03T20:22:00.000-08:002010-03-07T10:32:32.617-08:00Daily Developer: Day 60Following the pattern I already established, I reworked the shooter to use the Farseer physics engine. Since I have all the objects sharing the same base, and I've already re-factored it to do most of the physics stuff, it was mostly just a matter of making sure the old things weren't being called any longer and that the new properties were being set correctly.<br /><br />I still need to disable collision detection, since all the objects in the game correctly collide with one another. Because the projectiles collide with the shooter when fired, sending the shooter flying about wildly, I'll either need to recalculate where the projectiles are generated (so that they no longer originate from the center of the shooter), or just create other collision groups and make is so that the group the shooter is in doesn't collide with the group the projectiles are in. I am leaning toward the second, since it should also help with processor time.<br /><br />Duration: 00:19:46Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-16684463227987835502010-03-02T22:06:00.000-08:002010-03-07T10:32:32.619-08:00Daily Developer: Day 59I progressed at moving over to using Farseer for all the game objects. I re-factored the Growth object, moving all the Farseer specific stuff into the base object that the projectiles also share. After a bit of debugging, I was able to get the projectile created and moving properly.<br /><br />Next steps include porting the player controlled avatar to use Farseer. I need to disable and discard the old collision detection routines and then use the detection that Farseer is already doing. After that, I need to tweak some settings, since I notice significant slowdowns with a large number of items. Though, that may be reduced once the old collision routine is disabled.<br /><br />Duration 1:00:00Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-25539249505419674592010-03-01T21:32:00.000-08:002010-03-07T10:32:32.620-08:00Daily Developer: Day 58It looks like the experimentation with the sample project I created paid off. I was able to get the growths to move and collide with one another. The avatar and the projectiles now need to be moved to use the physics engine. Also, the collision detection I created needs to be disabled and reworked to use the engine. This shouldn't be too tricky, since it handles most of the work and I just need to trigger on particular collisions.<br /><br />I also noticed that if a large number of the growths form, it drastically lags the game. I need to put a check in to destroy anything that goes off screen, but I think that there might be some other optimizations that I'll need to look at, too.<span style="font-style: italic;"></span><br /><br />Duration: 00:26:04Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-50259603497909526532010-02-28T20:17:00.000-08:002010-03-07T10:32:32.621-08:00Daily Developer: Day 57I finally bit the bullet and created a new project to fool around with the farseer physics engine. After copying pieces of the simple game project that is provided at their site, I modified it to allow the addition of extra circles into the game. I think that this will help me get things moving in my shooter. <br /><br />I believe I was neglecting to create new geoms for all the new items. Tomorrow, I'll take a look and see if I can get it working correctly.<br /><br />Duration: 00:24:36Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-61146805863585855412010-02-27T21:25:00.000-08:002010-03-07T10:32:32.623-08:00Daily Developer: Day 56I had company in town and took a day off from working on my game. I was also getting a little frustrated and felt I just needed some time away.<br /><br />I found a much simpler example that I downloaded. After looking through the code, I tried to port some of the code over, but it didn't seem to do what I wanted. Instead, it now seems that the projectile and movement portion is flaky, since some is maintained by the physics engine and some is maintained by hand.<br /><br />Not sure what I really want to do from here. I would like to try to get the physics working with my game, but I don't know that it would help make it any more fun, so I don't know that I want to spend a long time working on it.<br /><br />Duration: 00:19:38Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-80061267008386203662010-02-26T07:29:00.000-08:002010-03-07T10:32:32.624-08:00Daily Developer: Day 55I stubbornly returned to trying to figure out why the physics engine wasn't interacting with my code. It looks like I am doing everything that I need to, but I am still missing something, since my test move doesn't seem to do anything.<br /><br />I think it really might be time to try to experiment outside of the game... but it just seems like I must just be missing one little thing. We'll see.<br /><br />Duration: 00:26:01Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-36760127929118986362010-02-24T21:01:00.000-08:002010-03-07T10:32:32.626-08:00Daily Developer: Day 54I moved the drawing into the Growth object. I copied over some farseer code from their examples and tried to get the growth to move, but I am not yet having success. I think I will try to create a simple project for experimenting with the farseer stuff and then use that knowledge to implement it in my game.<br /><br />Duration: 01:07:57Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-27966940676770619552010-02-24T09:54:00.000-08:002010-03-07T10:32:32.627-08:00Daily Developer: Day 53Refactored the GrowthManager to handle the drawing of the individual growths. Added the farseer physics engine into the game screen and then spent some time thinking about how to replace what was currently being done with the farseer code.<br /><br />Duration: 00:34:59Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-20487771261871058672010-02-22T20:12:00.000-08:002010-03-07T10:32:32.628-08:00Daily Developer: Day 52Downloaded the <a href="http://farseerphysics.codeplex.com/wikipage?title=Tutorials&referringTitle=Home">farseer physics engine</a> from <a href="http://www.codeplex.com">Codeplex</a>. I played around with the demos provided. I copied the engine into my solution directory and added it into SVN. Then, I added it to my game solution. <br /><br />I started looking through the way I've been doing things like creating new objects and collision detection and compared it to the way it could be done in farseer. It will take some re-factoring, but having a physics engine will take care of a lot of details for me, and will make modifying game-play elements much easier.<br /><br />Duration: 00:37:51Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-72592175337518866282010-02-21T22:29:00.000-08:002010-03-07T10:32:32.629-08:00Daily Developer: Day 51Watched the remainder of the previously mentioned video, skipping past some of the areas that I already had experience with.<br /><br />Duration: 00:32:14Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0tag:blogger.com,1999:blog-5118693702450055636.post-39792659891762959592010-02-20T23:42:00.000-08:002010-03-07T10:32:32.631-08:00Daily Developer: Day 50Watched to time mark 35:00 of the second video. Started skipping ahead since some of it really should have just been edited out. Will try to finish the rest in the next couple days.<br /><br />Duration: 00:16:11Andyhttp://www.blogger.com/profile/12705273798516697574noreply@blogger.com0