torsdag 20 mars 2014

General Tweaking

Hello. I haven't done that much this week, wich is quite strange considering that there is only one week remaining of the project. I would have done more but the truth is, I’m not entirely sure what there is left to do (that we still have time to implement and test properly). So, what I’ve actually done this week is: found some memory leaks and fixed them. We store all of our game objects in 2-3 vectors in our gamestate so that we easily can use them to check for collisions and stuff like that. The problem was that we didn’t delete them after each time we’ve used them, but instead just exited the gamestate went into the upgrade state and then back to the gamestate just creating them again. I’m not entirely sure why someone havn’t done this earlier but hey, it’s there now and that’s the important part. Another thing that I will do this weekend is fix our start menu. Currently it’s a bit buggy at best. That is if you don’t hit the “Options” or the “Exit” buttons. If you do, the whole thing crashes. The other thing that I am going to work on is the mouse tracking in the main menu. Currently it’s a bit off, so when you try to click on the “Start Game” button you have to click the bottom of it for anything to happen. I kinda know what the problem is, namely the way I wrote it to check if the mouse position is on the button doesn’t include any code to calculate the frames of the window, so it calculates the buttons positions via the upper left corner of it. This is possibly a not so good idea but that is why we are updating it. Another thing that I will be doing this weekend is adding the final art to the graphical user interface and reposition the things so that they fit together nicely:



This will probably take a bit of tweaking since the background art is a bit too big for the rest of the things and needs to be scaled down a bit but I am certain that I will get it done. After all, I don’t have much else to do and coding is fun =). I thing that will have to do for this week, the last of blog posts for the Gamedesign – Intro course. Overall I’d say that it’s been a quite interesting and fun experience that I’ve learnt quite a lot from. Let’s just hope that the things stick aswell =p
Good luck with the Theme-Park in a couple of weeks.

/Robin K

torsdag 13 mars 2014

Levels och Gui

Denna vecka har jag mestadels suttit och pillat med levels. Vi tyckte att det var hög tid att lägga in detta i och med att betan är nu imorgon. Så det första jag gjorde var att skriva en level klass. Den håller koll på vilken dag och vilken vecka det är, vilket tillsammans utgör levels. Den håller även koll på hur många barn som ska finnas på varje nivå. Efter varje nivå kommer man till uppgraderings skärmen där man ska kunna välja uppgraderingar (vi har inte lagt in några uppgraderingar än, men det kanske kommer någon gång nästa vecka). För tillfället ligger där istället en bild som säger att man ska trycka på C för att komma vidare. Just nu fortsätter spelet även i all oändlighet, vilket vi också ska lägga in så att det tar slut. Eftersom vi redan har funktioner i level klassen kommer detta förmodligen att gå ganska snabbt och smärtfritt.
När jag hade lagt ihop min level klass med allt det andra upptäckte jag en ganska intressant bugg. Så fort man kom till nivå 3 och försökte läsa in den så kraschade spelet. Det tog en liten stund att lista ut vad problemet var eftersom att ”Vector subscript out of range” skulle kunna var vilken som helst av våra 5 vectorer. Jag kom efter en liten stund på att det var en kombination av alla våra vectorer some fick det hela att krascha.

 Vi hade nämligen glömt att tömma dom mellan varje nivå, så att koden fick för sig att storleken på vectorerna var större än 0 och jämförde därför listor utan något i. Detta var ett ganska klantigt misstag av mig, men jag kom ju på vad det var för fel iaf =)
När felet var hittat och återgärdat tog jag mig an uppgiften att implementera våran nya gui: 



Vi tyckte att det var ganska viktigt att få den uppdaterad eftersom vi tils idag hade använt placehoder sprites från google till större delen av våran gui. Detta kan ju ses som mindre optimalt, med upphovsrätt och så. Men förhoppningsvis är det ingen som märker att vi har använt deras bar och bestämmer sig för att stämma en hög med fattiga studenter =p

Förmodligen skulle dom inte kunna lyckas med detta, men man vet ju aldrig riktigt säkert.

Men det var allt som jag hade att skriva om den här veckan, se till att ha det bra nu under dom två sista veckorna av kursen.

söndag 9 mars 2014

Visuell Feedback

Hej igen, jag har denna vecka suttit och pillat med visuell feedback. Jag började veckan med att sätta mig ner och börja klura på hur jag skulle få animationer att fungera. Min första tanke var att använda mig av kod jag har skrivit till spelprogrammering1 men detta misslyckades fatalt, av anledningar som ingen verkar kunna lista ut. Det hela funkar som så att jag har en textfil som berättar vad av en bild som ska visas och detta laddas in och sparas som variabler i en Animations Klass. Sedan har animationsklassen en uppdate funktion och en draw funktion. Om en viss tid har gått sedan föregående animation så ska koden ställa om så att nästa bit av bilden visas på skärmen. Själva laddnings processen fungerar fin fint, men sedan när saker ska sparas i en vector blir det problem. I den delen av koden som dom blir inlästa fungerar allt som det ska, men så fort som koden är färdig med laddningen är allting som låg i variabeln borta. Detta är synnerligen underligt eftersom att variabeln är inte en lokal variabel utan global. Så med andra ord: det borde inte försvinna som det gör. Jag har kollat med flera av mina klasskamrater men ingen av dom verkar kunna komma på någon lösning. Dock har jag alltid varit bra på att komma på problem som ingen har haft eller hört om tidigare.

När jag insåg att jag inte skulle kunna komma på vad det var för fel med koden satte jag mig istället och började skriva kod för att kunna få in mer visuell feedback i spelet (vi har för tillfället inte mycket alls) då detta var en av de sakerna som Markus klagade på under pre-betan. Jag började med att fundera på hur jag skulle kunna lösa det hela och kom fram till att den bästa och simplaste läsningen vore att helt enkelt ändra transparansen på bilden beroende på hur smutsig spelaren/barnen är. Så jag tog och satte mig och gjorde en placehoder sprite (ihop slängd av lita annan art vi hade liggandes) för att kunna testa min kod och se om det skulle kunna gå att göra. det hela var väl inte överdrivet snyggt, men det är ju bara en placehoder, så här blev den iaf:



Mina första försök till transparans ändrande kod var ganska patetiska och misslyckades hårt. Men efter några försök lyckades jag komma på hur jag skulle lyckas göra det hela. Jag har inte lagt in kod för att fixa med barnens transparans, än men det kommer innan det blir måndag och beta =)


Detta var vad jag hade den här veckan, ha de gött.