2014年12月17日星期三

Get24: Final Deliverable

As up to the due date, the development of our Get24 pygame is finally finished. Unfortunately the GUI version of the game is not fully functioning right now. We’re still have things left to do on deleting and recreating number buttons as well as the winning scene. The last couple meetings with the team was quite stressful because of the amount of works everyone has in the end of the semester. We’re definitely down for finishing up the game afterward.

Things I would do differently if we’re coming back to improve the game:
  • Improve/fix the frustrating event handlings that we got from Fractionauts (maybe rebuild them from ground up)
  • Improve the game playability by adding sets of numbers and store them for different difficulties so we can all levels of toughness to the game.
  • Increate interactivity between the game and the user by adding animations, hovers and sound effects to the buttons.
  • Add the undo button, reset button, and possibly hints button.
  • Add leaderboards with network capabilities


2014年12月16日星期二

.gitignore.oi


So the reason I bring this up is that recently as we're developing our Get24 pygame, random .pyc files are been generated when we execute the game. I believe it is some kind of windows cache files that generates whenever the main .py file gets executed. This is really annoying because we will then keep uploading these .pyc files to our github when we commit.

.gitignore.io is a web application that creates a .gitignore file so you can use it on a github repository. The .gitignore file will contain the kind of language and file format that you want the github to ignore when you're doing a push. The .pyc files in this way will not gets puloaded to the repository which therefore makes the repo cleaner. You may use the web app for basicall any type of language and file format.

The appliation also supports a command line version. To run gitignore.io from your command line you need an active internet connection an environment function. You need to add a function to your environment that lets you access the gitignore.io API.

This application is opensourced on Github and has a copyright license. For a more completed explination and tutorial, click me.

2014年12月15日星期一

Get24: Changing scene & passing event

We're continuing working on the terrible event handlers that we got from Fractionauts since it's already in the middle of the way and we will have to reduce so much stuff to switch back. The event passing is functioning well. However, if I have time I would definitely dive back in and simplify the passing methods.

The graphics that handles the events are however great. It's nice, simple and clean to interact with. If we have more time to playtest with 4th graders I would consider adding more colors to the backgrounds and buttons so that it looks more childish. But sofar I'm satisfied with the interface we have.

Another issue that we ran into is the scene changing. This is also a division of the event handler issue that the state of the scene will not properly pass to the next scene. Additionally, when we switch out the pygame window and switch back, the handlers magically work again. Therefore we switched the type of the button so that detects the location of the click instead of handle the event that it passes.

We're definitely approaching the end of the development since we already have the model of the game done. We will soon create the numbers and operations button and implement the model to the scene.

2014年12月14日星期日

Working with team on Github


Since this semister is the first time I'm working with Github, I'm still kind of new to it. I've been having all kinds of trouble with Github on both my class repository and my team project repository. Until recent I finally found out how to successfully check my conflict files and send a pull request without creating tons of mess.

One thing I found out that having a programming project on Github could somehow be not helpful. It is definitely a benefit for a team to have a project "dropbox" that anyone can access it at anytime. Additionally, when people are unavailalbe to meet they will not having trouble access and edit the newest version of code.

However, when we're having an actual meeting and trying to work the project together, we will still have to work on one single screen together. Due to the size of the project, we're essentially editing the same file and it will obviously cause tourbhe if we're all working on the same file and stepping on each others' toe.

I'm sure there is a way on Github to work around this. However due to my level of knowledge on Github it is pretty painful to constantly resolve merging conflicts. I'm still having a positive aspect toward Github because it is essentially a great platform for project development and management. I will definitely use Github as one of my major tool for developing in the future.

2014年12月13日星期六

XO Develop: A quick look into Fractionauts


As we're developing our Get24 XO game, we're starting to look at the programming structure of the Fractionauts game. Fractionauts is an educational game for the XOPC that teaches fraction operations with rockets. Since the game is involved with many assets and animation, the structure of the game behidn the scene is actually pretty complicated.

The game is basically constructed with a main class, several scene classes, asset classes and helper classes. The main class will init and keep track of the game state. Additionally, main class will initialize a huge (HUGE) amount of listers and helper methods that are used to pass different game states and click events to rest of the scene classes. Each scene class will pass these events to their own handlers that keeps track of their own click button events and state event. They will also triger their own event that calls each helper functions to draw graphics and import assets.

I got really confused between all these event handlers because there events within events that passes events to a event handler which triggers another event in some other classes... I would definitely say that Fractionauts is a well-organized program. However I would also argue that the structure is a little redundant.

Overall I learned a lot from the codes in Fractionauts both in picking up python and integrating pygame. Hopefully I can apply some of these algorithms to the Get24 game we're developing.

Get24: "Your mom's in another computer"




We're currently in progress of debugging the game loop that runs every "frame" and ready to detect the next click event. The major issue we ran into is that whenever the mouse event is triggered, the exception will trigger and the loop will be restarted - which causes a infinite loop, memory issue and etc. Therefore we placed a print statement "your MOM" inside the loop so we could test out when the loop is running. However, after we finish testing with the loop and take out the print statement, "your MOM" is still there when running the loop. We checked every script we had looking for "your MOM" but we couldn't find her (I mean it). It was hilarious that we're constantly suggesting to each other on where "your MOM" could be found.

Solution:
  • We found out that it's the VM that we're running is causing the issue magically. Somehow the print statement is cached somwhere in the system after we removed it. After restarting the VM the print statement was gone.
  • The looping issue still exists... Just without "your MOM".

Get24 - XO Game Dev Progress

 

The development is currently in progress as we're using pygame as our framework. Plans now will be to have mainly two scenes such as initial scene and game scene.

  • The initial scene will contain the start button, help button, quit button and a game logo.
  • The game scene will be the main interface that contains the score, number buttons and operation buttons followed by minor functionality buttons such as skip, undo, restart and help.
Other minor works are also finishing up:
  • Interface and user interaction plan are now finalized
  • Game assets are finished and ready for implementation
  • Game model is now finalized and waiting for implementation once the interface is implemented
  • Created a wiki page for the game on Sugar Labs Wiki
  • Licensing has been resolved
Current Issue:
  • ok what if I did it wrong. Undo algorithm needs to be done
  • you lost my package? Scenes lost the event that needs to be passed to buttons somewhere in the middle during transfer