Well, I had some problems with villages compiling for the judges, but I believe I found a solution (they haven’t posted if it runs yet). With that behind me I can now create the post I wanted outlining the lessons I learned during the competition.
C++ – This was my first real project in C++, and I believe I got a lot out of it. Most of all I think I’ve gained experience in diagnosing various errors that show up so I can quickly turn around and fix them. Before it would sometimes take 30 min or more to even figure out exactly what was causing an error, much less actually fixing it.
CMake/Cross-Platform development/Linux – Before this I had not really developed anything on linux despite a few small school projects that maybe amounted to a couple hundred lines, all of which were command line based. Villages turned out to over 6,000 lines! While lines of code really don’t mean much, it is important to note the order of magnitude difference. Furthermore, this projects had be developing on two operating systems at the same time. Even after I was done I continued to be exposed to linux in the form of distribution across the multiple distros.
Full design to distribution – This is the first real project that I’ve gone from start to finish, excluding maybe Shadow Warfare several years ago. I always get working on a project I think is ‘cool’, and then get bored after only a few months for various reasons. This contest allowed me to stick to a small design and carry it all the way through to completion and simple distribution.
Well, I just submitted villages to the contest. The documentation for the images was way more than I thought, pretty much taking out the need for my credits screen, but oh well 🙂 Hopefully the judges will have no problems in compiling the game with cmake and make. I’ll be back tomorrow to make a “What I learned” post. That should be a nice long list!
An extra day! The contest owners gave a 24-hour grace period for submitions! This is awesome. I was able to complete 95% of the list I laid out yesterday, but this will allow me to play-test the game and make it just that much better! Most importantly this will give me the time to test the same make script that cmake generates on both Ubuntu and Fedora. An experienced linux developer would probably tell me I would be fine, but since I’ve never done anything big on multiple platforms, this working across multiple linux distributions will be a big moral boost for me since I’m still worried the judges will run into some random problem compiling that I never did.
Well, with one day left to, I’m fairly confident I’m in a good position. I’ve finished all the features except for the credits page that I outlined in my design document. There are 2 errors I know of, but they do not inhibit game play. I was also able to compile in Ubuntu after a few changes, so I could technically turn in today’s project if something bad happens tomorrow. Seems the contest ends tomorrow at midnight PST, so I actually have till 2am to turn in my submission. (Hopefully not too long of a night tomorrow :P) Below is the full list of the things I want to get done tomorrow.
– Setup caves/forests on map
– double the width of the map
– start the map scrolled ‘near’ the center of the map
– Look at fixing button onClicks not firing
– PRovide states for number joining/leaving
– PRovide reasons for leaving
– Give hover ‘tips’ for the buttons, including gold/wood costs
– Provided other helpful hovers with images
– Make sure it compiles on fedora
– Make the credits screen work
– Give proper error messages on the assign screen
– fix villager joining to make sure more people don’t join than there are jobs and houses
– Increase efficiency of map drawer
– Provide a ‘You Won!’ image
– Prepare stuff for turnin
– Allow multiple roads to be placed at once
– Fix end-game exception currently being raised
Another successful day! Seems I get a lot done just sitting down in the evening and watching the Olympics 🙂 I was able to confirm one thing today though, I will def not get the new buildings in. Instead I will be spending the extra time to make the game more (hopefully) balanced, and easier to learn/play. I was finally able to get the castle and wonder images in as well. The wonder will be a ‘demon gate’, but in all parts of the game will only be referred to as a wonder. Tomorrow will be the big day. I plan on getting the wonder in as well as the gold/wood costs for buildings. Then I’ll make sure that the game compiles and works in linux and will make a package zip file. That will leave the last day, Tuesday, to make the game more ‘friendly.
That is all for now!
Another pretty good day. I’ve been adding a lot of little things to the design doc, which is taking a bit of time. Some are ‘ahah!’ things, but others are enhancements to make things easier to understand. With these extras, the chances of getting some of the buildings back into the game are lessening more and more. I was able to get both the road path-finding and the guardtower coverage area (well sorta, buildings know if they are in them at least). These were the two most difficult things left to do really, so I’m feeling pretty good about that. Hopefully tomorrow will serve to be just as productive!
Pretty good day today! Last night I decided that I was going to remove a few buildings from the game. This included the entertainment buildings, the market, and all the industrial buildings except the blacksmith that creates weapons for guard stations. I may add some back if I get the time, but I don’t know at this point. I have admittedly taken quite a bit out of the game with this going 12 buildings down to 7, but I figure a polished smaller game is better than a non-finished bigger one. Furthermore with all these buildings, it would be hard to have a proper ‘tutorial’ system setup in time that would explain what each one did. With the reduced number of buildings I should be able to get away with just a few pages before you place your castle that lists each building. IT is also important to note that these extra buildings don’t do a whole lot in themselves (at least most of them), so if I got a few hours, they might easily get added in.
Beyond all the cutting out, I was able to make great progress today with the villagers. They now are assigned to the work type of your choice (Farm, mine, etc), freely join your city based on several factors, and also leave your village because of other factors like running out of food etc. Hopefully the next few days will be just as productive and I can add back some buildings 🙂
Well, with the days counting down, I seriously have some doubts on my ability to have a finished game in time. It seems working 40hr/week and taking a class all while doing this contest might have been too much. Today I was able to get most of the UI work for the assignment of population to jobs. I was able to also fix several bugs that I found in the engine that I hadn’t tested before. Hopefully I’ll have a lot more to report tomorrow! *crosses fingers and toes*
Got some decent preliminary work setup for the ‘algorithms’ portion of the game. It really feels like this last few days will be really busy, but hopefully pretty fun. The main ‘feature’ I’m worried about the most is the ‘pathfinding’ for roads, but hopefully it should just be an easy implementation of an A* (Read A-Star) algorithm.
Was finally able to finish the zoom feature of the game and have moved onto the actual population. Now that I think about it, this part of the process is more than just algorithms, I have to make a series of UI’s as well. I remember having the silly idea of finishing all this in 2 weeks, to leave room for other things at the end of the contest. Well it looks more like I’m now going to have a ‘deliverable’ release monday morning. Hopefully I can get some testing by some friends monday/tuesday, and still get in a working/enjoyable submition by Tuesday night!.