Friday 8 December 2017

Final Thoughts


Reflections about my role in the team (as team leader):

Organizing the group is a lot of work. Making sure we communicate with each other, making sure everyone has something appropriate to do and that they are capable and comfortable doing, is also time consuming and not always easy. Also keeping everyone updated on what is happening right now, what we need to do, and hinting that we should decide a date for the next meeting (and having the final say kind of) is also time consuming and not that easy.

Additionally it takes time to always have in mind what the next steps should be, thinking of the bigger picture and the time constraints, meaning that I had thought I would have more time to code etc then I did end up having.

But I learned from working with people that I haven't worked with before, also very different kind of people form each other and from people I usually work with.

Setting ourselves an earlier deadline was probably good, even though we did not manage to finish by then. It made sure we pushed ourselves and the project a little earlier, which enabled us to have less things to fix the last week. However, there was still a lot to do the last week.
We managed pretty well in the end, but it wasn't a walk in the park exactly.

At the beginning we were pretty good at meeting etc. Towards the end, always someone  or more than one missing when we met. Problematic.
Most of the GDD was in the end written by only a few group members.
That wasn't the plan and I tried to push writing the GDD earlier, and poking people to remind them, but that strategy wasn't very successful. It worked sometimes.
Needed to really insist to get any feedback on what we had written in the GDD from those who hadn't written much in it.
I guess, since it's the end of the project, sometimes you get a little tired of your group members. Also we all had other courses in paralell with similar deadlines and needing project work time. However, I've felt in earlier projects, and that was confirmed again in this project, that simply communicating through messages doesn't work. We get so much more done and understand each other so much better when we meet in person, so I'm a little sad that we weren't as good at that in the end.


Reflections about the project work:

We didn't have any exactly defined roles, except mine as team leader, but looking back we worked with different things and there was some kind of informal division. This meant that most of us coded some at some point in the project, even if others wrote the most of the code.
The code is obviously a central part of the final product, however I learned how important and how much the documentation, the Business Plan planing, the Target Group planning etc is too.

I wrote about the Business Plan and the Target Group and such in the GDD, however I found a lot of support in the group when we planned those parts before writing them in the GDD. It was very good to have discussions about them, and get feedback from the rest of the course students, so that we knew what parts we might need to explain more. The presentations were also a great tool, because a lot of our discussions were because we were to present our ideas, so that could also be used to base the GDD on.

Reflections about other projects and course:

During the final demo it was very interesting to see what other groups had done, and how different they all were from each other. It was also interesting that you could see that the groups put different amount of focus on different parts, and there final product was shaped thereafter.
Some projects I really enjoyed hearing about was the AR pirate game and the Beat game.

KamiClones

Final Product


Here is a video of the final product, a trailer of the game (made by Alexander).




Here is the website (made by Conrad):

End of week 6


When the merging of the code was done, we needed to concentrate on writing in the GDD. We had already a lot written, but there was still a lot more to write, and it was hard to get across to the whole team, that we needed to write about parts that we hadn't specifically worked with during the project.

In the end it was Alexander and I who made the bulk of the GDD, however the others wrote about the specific parts where they had done most of their project work.

But that might have been for the best because I think we had the same vision for the GDD, and we worked well together.

I went through the GDD several times fixing the formatting, reworking parts, and adding pictures and footnotes for the references.

I also shared the almost final versions with the group to get help with proofreading and catching inconsistencies.

For the coding and the demo, there were one particular thing left to code, the saws. However we had a discussion Wednesday evening if we should change the menu or not, so that the unlocking of clones was gradual. I thought we should not add functionality so late in the project, however it turned out it was a small fix and it worked well. Daniel also fixed the gradient colors of the background, which made a big difference to the look of the game. I tweeked the colors of the objects and the background for it to look like the concept art. However, I realized after the demo, that I had reversed the colors… It would have been a quick fix if I had caught it earlier. However, that is a minor detail, the gradient was still far better than the black background.

As seen below, its the same colors mostly, but reversed. The first picture is the concept art, the second is the final Demo look.





During the end of the week I tried to keep the group updated on what was left, and tried delegating a lot of it, such as the video. However the GDD was still the biggest part where I couldn't really delegate because it just needed to be done and it would take longer to convince someone else to write something where I already had an idea of what to write.

Eleventh meeting, 4th Dec, week 6


For this meeting I had a few thoughts from last week, about how I would like to go forward.
We had divided up the coding stuff between us, and I had taken my part as well. However, this week I'd like to concentrate on getting the GDD finished.
So, even if I'd like to code and debug the game, I feel that it makes more sense for those who've written most of the game to do that, because it will take me some time to really get into it. And at this point we don't have time which we don't have.
Anyways, my time and resources are better spent on the GDD, and making sure we get everything that we need done.

I shared these thoughts with those of the group who could make the meeting, and they were fine with it.

We talked about the fixture problems that I had,  and I asked questions about how they and the code worked. I had made a few of the objects into 3D objects, but a few of them seemed to use coordinates when being created as 2D objects, which didn't translate into the way the 3D objects worked, so they seemed to disappear. I also wasn't sure about the disposal of the 3D objects. Daniel looked at it, and said he could fix it. And I could finally focus on the GDD and rest of the planning.

We also talked about the camera and decided to have fixed camera to see whole level, to see the whole craziness of the raggdoll and physics, and be able to plan you're next move.

Finally we decided to have a meeting over voice chat on Tuesday night to make a final merging of the code, during which all those who had coded should preferably be present.

With Daniel's fixes, the game now looks like this:


The remaining work

For the rest we divided up the remaining work like this:

Emmeli
  • write in GDD,
  • fix with presentation
  • make sure we get everything done in time
Alexander
  • Finish Explosive clone,
  • write in GDD
Conrad
  • Website,
  • write in GDD
Daniel
  • fix LevelElement (so that 3D works as it should),
  • fix camera angle (wide, see whole level)
  • Colours
  • Write about Tech in GDD
Benjamin
  • Debug code?
Antonio
  • Debug code?

The demo presentation


We also prepared the last presentation, what was in it, how long each part shouls take and who should talk about what.

20 min
  • 30 sec intro video of game
  • 30 sec presentation slide (name of game etc)
  • 1. Target Group (~2min) Emmeli
  • 2. Technical reqs/platform (~2min30sec) Daniel
    • Physics
    • Graphics
    • Hardware
  • 3. Game Concept (~3min30sec) Conrad
    • Explain what the game is
    • Explain clones
    • Story (SHORT) Alex
    • USPs
    • Screenshots of relevant parts of the game
  • 4. Businessplan (~3min) Emmeli
    • Workshop Alex
  • 5. Questions + gameplay by other students (~8min)

I made the presentation and then we each wrote the text on the slides that we would talk about.

Thursday 7 December 2017

End of week 5


I was sick this week, so I did not do as much as I would have liked before the weekend.
However I got help from a friend, Albin Remnestål, with drawing the logo in Adobe Illustrator and Photoshop. I had drawn a few ideas on paper but had a hard time figuring out how to digitalise it so that it would look as simple as possible.
Conrad wanted a logo to use for the website, if that was something we wanted.


logo creation: Albin Remnestål


I was to change all the Fixtures into 3DFixtures. However, I had not coded much of this project so I needed to put myself into the code to understand how the different parts were connected and where the things I needed to change were. I was to change all the Fixtures, which were in 2D, into 3D fixtures. The blue dots in the pictures below marks the classes that used Fixtures, and the pictures below is the mapping a made of all the classes.










I ran into some problems, because the fixtures are 3D in some places but not all, and the way to create them seem a bit different, so I need to figure out the easiest way to do that so that it works for all the relevant classes.

The game is also quite buggy right now, crashing for seemingly no reason at random places…


Things I thought about while wrestling with the code was that the last week we needed:
  • to make sure we get the camera as we want it
  • the colors right, 
  • and someone(s) needs to debug the game and fix so that it at least doesn't crash.


Tenth Meeting, Nov 29th, week 5


The final deadline is looming closer, and we still have some stuff to fix with the code.

Made a list of what needed to be done related to the code, what was realistic to do and distributed those things between us.

Decided to focus on code to get a playable demo finished at the end of this week hopefully, so that we could fix bugs and test the game the last week, as well as focus on writing the GDD.

If people had the time would be great if they wrote some in the GDD, too, but we should try to get the game finished as early as possible.

The list we got can be seen below. In it I tried to emphasis what things could wait, and what things were urgent. Since it's nearing the end, we all pitched in to take some responsibility for the code.

The Code:
  • Go through all fixtures and convert them to the 3D version EMMELI
  • Fix crashes (C problems in Java because, box2D runs native, with C)
    • Disposals has to be done together with the body
    • Debug the whole game
  • Fixing Graphics DANIEL
    • Spikes are cones
    • Make a good example of raggdoll class DANIEL
    • boxFicture class is good
  • UI, to switch clone types during gameplay, when respawn ANTONIO
    • (secondary menu for switching levels, next week)
  • Freezing clone and level 3 and 4 by friday, BENJAMIN
  • Encrease height of breakable wall BENJAMIN
  • Last harder level and website CONRAD
  • Clones we have = normal, bouncing, freezing
  • Exploding clone? WHO (“just” apply a force away from explosion 
point to everything in the world) ALEXANDER
    • Clone will explode when it dies
  • Explodable walls thinner
  • Fix the jump, so that you can’t jump of off wall ANTONIO
    • One wall jump
  • Bouncing clone changing how it works, advanced contact listener, 
apply force upwards, we would need to mark raggdoll : hard! Skipp this.
    The GDD:
    If time, it’s great if you go in and write stuff!


    Ninth Meeting, Nov 27th, week 5


    For this meeting I had made a todo list with things I wanted to talk about.

    We talked about my proposed deadlines/last weeks timeplan.

    Alex had talked to Björn, we discussed what had come up then, which were:
    • Do we need to have a level editor for the Demo?
      • Maybe not.
      • Idea: We probably won’t have the time to implement it.
      • BUT, we could maybe have a proposal of how it would look graphically?
    • We need to get the USPs through loud and clear, and the game concept
      • These things are: the level editors worth
      • The raggdoll physics
      • The clone killing puzzles + different clones   


    We made a technichal status list, with priority listing and questions about what the status was now.
    This meeting was only Alex, Conrad and I, and the three that couldn't make it because of collidig classes had done most of the coding at that point. So we three couldn't answer those questions.

    We also looked through the GDD and made a status list of that as well (a GDD progress document), to see what parts of the GDD were still empty and see what parts we maybe needed to focus a little more on.

    I then shared the technical list on slack and asked for an update.

    The technical status list looked like this:

    What is the technical status?
    • Graphics, status?
      • We need to focus on this!
    • How’s it going with the menu?
      • Might not be important, especially not for the demo. Only thing that’s really important 
    is being able to change clones.
      • If there is time, make a screen/menu between levels, where the player can see how 
    many stars he gets for the level, based on how many clones he’s used. [ ONLY if time ]
    • Levels, what is the status?
      • How many levels do we have?
      • How many more do we have time to make. 3 easy levels max + 1 hard.
      • Do we want a last hard level? (where you need to use all clones)
    • Clone types?
      • How many do we have right now?
      • How many more can we make, do we have the time to make, what type. 
      • Max 4 type of clones.

      Additional stuff:
      • Music?
        • Background music
        • Or sound effects (death, jump)
      → not this week, if there is time only, next week.

      Status-Update 1, Nov 23rd, week 4


      During the presentation we got mostly feedback about level editor that we want to incorporate in our game concept.

      After presentation, decided next meeting would have to be next lecture, the next week.
      Until then, we had the following things to do that we had said to wait with till after the status update presentation:
      • Benjamin: two more levels
      • Someone explosive clone? (no-one right now)
      • Antonio: menus (Benjamin said you wanted to look into that)
      • Daniel: implementing graphics, look into businessplan
      • Conrad: website (you said you could start looking at that?)
      • Alex: synthesizing the story
      • Make latex GDD - Emmeli

      I made the GDD latex, which took so much time, because just copying and pasting is really time consuming.
      I also needed to figure out how to get all the subsections I wanted, because latex only allows a certain number at first.
      One team mate wanted to learn latex, so I might need to do a small how-to, if I have time. Otherwise I will make sure all the parts in the GDD latex code are well documented and structured, so that someone could look at the code and understand what does what.
      I then shared it with the group on slack, since I we had decided to use an online editor that enabled sharing (Overleaf.com).

      Planning the work thats left!

      A part from fixing the GDD I wanted to plan the work that was left, that we would need to do the last two weeks. 

      I wrote to the rest of the group, proposing that we put ourselves our own deadline at the end of week 5 to be completely done with the demo in good time

      To do that we needed to first determine what features to include in the game for the demo, meaning what we think we will have the time to finish.
      Second we needed to get the 3D graphics working so that it looks good ( which Daniel wanted to do) 
      So, what things to implement for the demo, and then who does what, was what we needed to start the next week with deciding.

      Other things to do were:
      - Setting up the website (@Conrad wanted to do this)
      - Keep filling in the GDD and fleshing it out

      My reasoning behind setting ourselves an early deadline was:
      • That way we can really focus on just testing and bugs the last week, which is also the presentation week. And since its still a Demo, so some bugs are probably okay.
      • Also this leaves space for everyone to pitch in with writing the GDD, and reserving a good chunk of time for that is probably a good idea.


      Eighth Meeting, Nov 22nd, week 4


      We talked about what we needed and wanted to have on website, because Conrad had asked me to ask about it, and he had already said before when I asked that he could do the website.

      We also prepared the, based on what we had written in the GDD.
      Some parts were still missing, but it was enough for to make a presentation out of.
      I made it during this meeting and discussed with the others what to have in it.
      The things we discussed were:
      --> The tech, because hadn't written anything there, so couldn't do too much  (before we had only decided we should have a extra part for physics engine)
      --> Talked about state of the art /competitor games, and how much of it to have in the presentation
      --> Marketing Plan, that I had written about, but needed to clarify parts of and wanted input from the others.
      --> We also talked about pricing, level editor etc. Fleshed this part out a bit
      --> Target group, where I also wanted input from the others.

      We had talked about marketing plan and target group before, and then I had written in the GDD the things I retained from those discussions and concluded were important to talk about, but I wanted to make sure it was still the same vision as the others had, so that we were all on the same page.

      Seventh Meeting, Nov 20th, week 4


      In preparation for first status update:
      We divided up stuff to write in GDD between us, so that we could use that for the presentation, and I then tidied that list and put in the corresponding section numbers.
      The first status update was a great tool to get us to write more in the GDD, since it's more fun to code, plus the chaotic structure or sheer size of the GDD, wasn't easy to get group to write in GDD; but this helped.

      I took on:
      • Target group
      • Marketing plan
      • Management
      And I wrote some about risk analysis too.

      The whole list looked like this:
      GDD:
      • Levels (5.3.) - BENJAMIN
      • Target hardware (6.1.) - DANIEL
      • Interface (5.5.) - ANTONIO
      • Development Hardware and Software (6.2.) -ANTONIO?
        • Hardware (like PC, or whatever computers we develop on?)
        • Software (short about like Eclipse and other software we use? git?)
      • Game Engine (6.4.) -DANIEL
        • LibGDx
      • Physics Engine (6.5.) -DANIEL
        • Box2D
        • (contact listeners? Maybe not)
      • Story/characters/personalities (5.2.) -- fill in those ALEX
      • State of the art (7.3.1.) (copy from blogs!)
        • CONRAD
        • ALEX-copy paste about LifeGoesOn from blog
      • Target Group (7.3. and/or 4.4.) -EMMELI (look at Alex’s blog)
        • (also part of the Target sector?)
      • Game Art (5.4) (CONRAD?)
      • Marketing Plan (7.5.) -EMMELI
        • We are not dependant on steam
        • Could release ourselves and host
        • Level editor /steam workshop
        • Community sharing of folders, platforms
      • Management (8) - EMMELI
        We had also made list of other things we need to do, that we looked at, but decided to focus on GDD till after the first status update.


        Thursday, Nov 16th, week 3

        Later that week, Thursday, right before first demo

        I made the presentation.
        Sat with part of the group and merged branches, fixed stuff in the code
        Laughed at the raggdoll physics and the crazy stuff

        Here is two example videos.






        In preperation for the Demo:
        • I made sure we divided the slides of the presentation between the group.
        • I made someone had the responsbility to bring a computer on which to play the game.
        • I made some specific feedback questions
        • I made sure someone would take notes on the feedback, because usually I take notes, but I wouldn't be there.
        This week I learned a lot about git and branches, and using git in Eclipse, which I never seem to master, but I'm definitely closer to mastering it now, which is really great!


        Sixth Meeting, Nov 13th, week 3

        For this meeting we discussed some things about game.
        One of the things we talked about was how to control death. Should there be a kill switch or not? We decided that, yes, we needed a kill switch, otherwise the clones couldn't be killed in the strategic places.
        We also talked about:
        • Should the player be able to move a corpse, or should do you need to die in exactly the same place?
        • Should the exploding clone explode when it dies or when pressing a button of some kind, X for example.
        • Should the explosion be instantaneous or have a little delay (too get cool chain reactions maybe)?
        • Reset button if you get stuck.

        We also decided about what controls to use:
        • Arrow keys to move, <- , ->
        • ^ to jump
        • Space is the kill switch


        I had asked Conrad to make levels, and he had 4 level-ideas, for introducing 4 kind of clones. Based on that we decided that this amount of clones is enough to demo the game, but that we might want to add one or two complex levels.

        I also started to plan the First Demo, especially since I wouldn't be able to be there!

        What needed to be done so that we would have a palyable demo?
        Who would do what?
        What things we were still missing, what was reasonable to do?
        This is what we decided we needed for the demo:
        • Implement some level based on Conrad's design
        • We need clone-corpse types:
          • one normal
          • one bouncing
        • We need the player to be able to move
          •   Merge key-input with game.
          •    Jump.
          •    Kill switch (die).
        • Coloring of the game art

        It turned out the rest a of the group implemented more than this the night before the demo. It turned out well, but I made a mental note to be careful about this for the final demo, since we would need to focus on the GDD then as well, which we didn't need for the first demo.

        We also talked about what was needed in the presentation:
        • Quick update what the game is about,
          • name,
          • defining factors relevant to the demo
        • Playable game
        • Someone needs to take notes on the feedback we will get


        Saturday 2 December 2017

        Fifth Meeting, Nov 9th, week 2


        This meeting we made sure everyone had the project up and running, because there had been some hickups with files that were needed to compile and run the project but not being included when in the github project.

        We also started talking about and planning more details of the game, such as the raggdoll physics which I made a quick sketch of to help us visualize.


        We also talked about the look and feel of the world, the camera position, the level design, if we wanted checkpoints for the levels or something else.
        For the look and feel we talked about pastels, and how to distinguish between different clones, maybe having them in different colors, and what kind of light source we wanted.
        We also decided that our game would look 3D but work like a 2D game.

        This meeting I also made sure we started delegating programming tasks and design tasks for next time, in the following way:
        • Raggdoll Player - Daniel
        • A StaticObject class - Benjamin
        • Contact listeners - Antonio (if he has the time)
        • Player class - Emmeli
        • Start drawing, designing levels , lo-fi - Conrad (and Alexander?)
        • Cut scenes/drawing text - Alexander


        I was to look at the Player class, which at this stage consisted mostly of the key input.
        I wrote a KeyInput class, but couldn't test it on an object since I didn't have the raggdoll object, and I wasn't sure how the clones movements would be powered. After talking with my project members, it was by applying a force to the clone body that we would get it to move. However, at this point I had realized that LibGdX had an already implemented IsKeyPressed method, meaning that we could use that instead!

        Before this meeting we had made the First Pitch presentation, where Alexander and I presented.

        The day before I had drawn a two logo ideas, one based on Alexanders idea and one my own, which we included in the powerpoint.


        We had also decided on a name for the game the day before.
        We had the following names up for vote on slack:
        • Playing with Corpses
        • Clone Corpses
        • Suicidal Corpses
        • Euthanasia
        • KamiClones
        The more names we came up with, the more macabre they got, and in the end KamiClones, based on the japanese Kamikaze, was the one most of us liked best.

        I had also made a copy of the GDD template and gone through highlighting the different parts in different colors depending on if I thought we would keep it or not. We went through it again, together, during the meeting and got a understanding of what we thought was relevant for our game and how we could organize the GDD.