Skip to main content

Final Post

In this final week, we progressed to towards the completion of our game. Some main strides where adding multiple new levels putting the total at 19. I also managed to develop a system to lock levels until the previous ones had been completed, which we had as an initial idea in the design phase but where unsure of how we would be able o implement it and whether we would have the time. Due to having finished the game we decided to add these extra tweaks. The initial locking part was reasonably straightforward, just storing the completed levels in a list, blitting a lock when not in the list and checking if the level is available before running it. Then came an intricate part in storing this data after the game was quit. The obvious idea was to write it to a text file, so I started to implement that idea by somehow writing the contents of the list into the file when quit, to then be re-accessed upon opening of the program. However, this didn't seem to work due to a large number of formatting issues and such, so I tried in my test file to purely write to the file instead of a list and access the data that way, however that caused even more issues. I ended up revisiting the list idea and managed to come up with a neat system that worked, with only temporarily opening the files when they need to be accessed and more neatly formatting the data in the text file.


Our game deemed as successful as we could have hoped for. The game works just as we expected, we no longer have any bugs or issues after extensive tests. The public was pleased with the way the game operated, and we even were able to implement our additional bonus features for if we had time.

As a group we had our strengths and weaknesses. both of our characters tend to be very assertive and strong headed which led to a large number of heated debates over both trivial and important details for the game. for example, deciding on \how to structure the code whether it be in separate files or an individual one, this ideal was changed multiple times back and forth even after the dispute was settled. This was similar in some cases. When it came to splitting up work, my partner decided to basically take over the entire project, leaving me who was very willing to do as much as I could, left with minimal tasks to do. in the early days of the development, he jumped straight into programming logic without even discussing it or providing something for me to do. so I decided to make headway on the graphics since that was what seemed available to be done without clashing with him. I steadily made progress through the graphic design, having designed well over 100 individual images while I hoped him to have made steady progress with the code. having done a fair portion of the graphics needed I was keen to implement them so testing would be easier, but he insisted that we shouldn't, and it would be better to desk check all the logic first. so, not having much to do I started to work on a menu screen and GUI myself, which worked out nicely. then once his logic was deemed ready we set out on making levels work, I make the levels display and such. once this was implemented it was apparent that most of his logic did not function as intended at all ad due to our drastically different styles of programming it was quite difficult to edit each others code in most instances. so having done most of my share, I set out on other endeavours such as the help screen while he tried to make the mechanics work. Having already spent a considerable amount of time on my share and also finishing the help screen with all parts working, I was quite dissatisfied with the amount of effort he had put into trying to fix his initial mechanics code. so I tried to playtest and find more bugs to be of some use while he was still trying to fix the mechanics and spending very little time on it. I also entered his code trying to see any problems that were causing these bugs, being able to fix some myself but struggling with some of the ways the code was unnecessarily written. eventually, the mechanics worked out, and from here we were able to finish the base development of the game. after this we decided there was more we could add, this got largely left in my hands, having to create the locking system, a second page for the menu screen, a redo of the help screen, an easter egg, a functioning reset button as well as out of game progress saving. while he attempted to design 10 new levels. having finished most of my tasks and him still working on the levels, I decided to help in the level design, designing 2 of the additional levels in the game. following the completion, I still had not managed to redo the help screen as allocated to me and have already contributed a large amount of work I tried to negotiate and he agreed to write most of the test report due to my contribution. By the end of the task, he had made up a significant amount of time due to a lot of additional mechanics that were needed as well as fixes and rewrites, putting us a lot closer to an equal contribution of the final task. overall I think we worked well together in the sense that we are both quite capable programmers and therefore were able to pull off our coincidingly grand ideas. However, we majorly lacked cooperation and communication. We didn't have super specific roles within the program as we delved into each others areas, but mainly he was in charge of the mechanics such as duplication, character movement, blockages, buttons, level design, etc. I was mostly responsible for everything else from the graphics to their implementation as well as the save system, all the interacted screens, easter egg and some level design and testing and debugging. I believe I performed well in this role, with all my tasks working as intended and well ahead of schedule. if I was to redo this assignment, i would try to plan it out more and ideally have the implemented before doing mechanics so that it was easier to test mechanics as we both agreed that it would have been much easier, as I stated much earlier int eh development process but was shut down by my partner. There were also some things that could have been done in easier ways which weren't discovered until later on in the process such as being able to resize images in the code rather than having to manually edit them in paint. As well as being able to control-click in atom to make multiple cursors and write multiple lines at once rather than having to retype or re-paste when writing and editing the code. overall, despite some issues, the program turned out just as intended if not better, with both of us being very pleased with the outcome. However, I am glad there are no more group projects.

Comments

Post a Comment

Popular posts from this blog

Final Post

This past week I've been working on fixing issues with the program to make it run as smoothly as possible. I didn't think I would get the stats for nerds page done and was going to scrap it so I could focus on getting the documentation done and fixing the minor issues so it would be more polished but I decided to do the stats for nerds page anyway and spent the past day and a half working on it. The notable issues from its development were mainly around gathering the data, in which I found some other errors in how I was collecting data such as not updating the data files when quitting the program. But i managed to finish the page as well as the rest of the program. My final solution was reasonably successful in comparison to my proposal and design, the only main things that I wasn't able to achieve was customisation of genome numbers and generation size and stuff like that, but that would have required a lot of digging through files in the libraries I was using to edit th...

Week 13

this week I’ve been mainly focused on effectively parallelizing my AI so it can run multiple tests at once and be a lot faster, however I’m having trouble interacting with the neat library in order to do this as during some of its processes I need other functions to help me keep track of different things within the program, so I’ve been trying to work out how to edit the library and I’ll continue to work on that this week and hopefully have a finished AI soon enough.

Week 17

this week I continued working on the view existing AIs page mostly, having completed most of it, it navigates and runs the AI when selected. this week ill be working on clearing AIs from the system as well as viewing their names, allowing multiple pages, and maybe even display a picture depending on what game it was trained on. however that last one will only be if i have time to work out compatibility with other games in time, as its merely a bonus detail.