Course Review

--Originally published at diegotc2016

I think this course was a lot more different than the Programming Fundamentals course. The first two partials were kind of easy, I just needed to learn some new concepts that with the help of lynda.com and Stackoverflow were really easy to find and learn it. The tough part came when we applied those new concepts in the project, my project isn’t finished yet, because I was working with some youtube video tutorials and the tetris series isn’t done yet. In spite of the proyect not being done, I’ve learned a lot new stuff. My team also made a Buscaminas proyect which is done, but it was kind of easy so we decided to make the Tetris too.

Here’s a youtube video of me last semester talking about how Ken’s class:


Course Review

#WSQ 13-James Glosing

--Originally published at diegotc2016

James Gosling is a very important person as Ward Cunningham is, he is the inventor of Java which is maybe the most important programming language. He says that after writing code his whole life and being a manager he still prefers coding. He’s a very prepared guy, he entered in the Computer Science when he was like 14 years old and he also has worked in very important companies like google and sun microsystems (ORACLE).

#WSQ 13-James Glosing

The rest of the video he talks about a lot of things that I don’t get it yet, as well as on the WSQ 12. I find something in common with these two guys that the teacher told us to watch the video, both of them started in a young age and they were passioned about Computer Science. Right now I’m disagree with him for what he says about management, I’ve already taken the Administration course and I really like it, I think that proyect management is really cool an important for getting a proyect done well and in time.

#WSQ 13-James Glosing

Now I know why in our study plan there are subjects like Administration and Fundamentals of Software Engineering, in these courses we don’t write code, is about planning and If I want to be a Software Project Manager in the future I will have to develop my planning skills.

He also talks that one of his first proyects was a graphic proyect, I’m really interested in the graphic stuff, If I want to develop my graphics habilities I guess I will have to know this man in a better way.

 


#WSQ 13-James Glosing

Metaobject Protocol

--Originally published at diegotc2016

According to Wikipedia the metaobject protocol provides the vocabulary to access and manipulate the structure and behavior of objects.

The main functions of the MOP are:

  • Creating and deleting new clases
  • Creating new methods and properties
  • Changing the structure of clases so that clases can inhert from other classes
  • Make or modify code for defining methods of a class

The MOP allows a system to modify the internal structure of objects.

I investigated more about the MOP and there’s a book about it which is called the Art of the Metaobject Protocol.

Metaobject Protocol

I got these information out of:

https://en.wikipedia.org/wiki/Metaobject

 


Metaobject Protocol

WSQ 12 – Ward Cunningham

--Originally published at diegotc2016

The video is about Ward Cunningham which is a very important person in the world of computing. He’s very known because he invented the “wiki” and developed part of ecllipse and small talks.

WSQ 12 – Ward Cunningham

The video is about a guy who is interviewing Cunningham and hje basiclly talks about how he created wiki and some other important technology advances.


WSQ 12 – Ward Cunningham

WSQ 12 – Ward Cunningham

--Originally published at diegotc2016

The video is about Ward Cunningham which is a very important person in the world of computing. He’s very known because he invented the “wiki” and developed part of ecllipse and small talks.

WSQ 12 – Ward Cunningham

The video is about a guy who is interviewing Cunningham and hje basiclly talks about how he created wiki and some other important technology advances.


WSQ 12 – Ward Cunningham

WSQ11 – Library Assignment Programming Fun

--Originally published at diegotc2016

I think that the web pages the teacher gave us, are going to be really usefull. During the summer I’m planning to do a lot of programming in Java, because I’m still having a lot of progblems with Java. This WSQ was more or less hard for me, the great part is that some part of the code was already done and that helped me for making the program work.

Here are some photos of the code in java:

WSQ11 – Library Assignment Programming FunWSQ11 – Library Assignment Programming FunWSQ11 – Library Assignment Programming Fun

WSQ11 – Library Assignment Programming FunWSQ11 – Library Assignment Programming FunWSQ11 – Library Assignment Programming FunWSQ11 – Library Assignment Programming Fun

Here’s the code in GitHub:

https://github.com/diegoalatorre/TC2016meromero/blob/master/Library.java

https://github.com/diegoalatorre/TC2016meromero/blob/master/book.java

I got this out of:

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/assignments/MIT6_092IAP10_assn04.pdf

WSQ11 – Library Assignment Programming Fun


WSQ11 – Library Assignment Programming Fun

Project Update #4

--Originally published at Orientierteprogrammierungobjekteundetwasmehr

So we’ve finished the tutorials and we will start creating our own game.

As a reminder, our objective in the course is to explore and learn about the Unity engine, game logic and how game objects work.

In the last couple of days we implemented a system to create different tanks in the same scene, the logic to control the game flow and audio mixers.

The tank manager is a script that controls that instantiate a tank in the scene, setting its new color, and defines several methods to modify the behaviour of the tank, like disabling control.Project Update #4

The Game Manager is a script that controls the game (duh), setting the targets for the camera (because there could be different number of tanks), and have different functions that are executed based in the current state of the game (i.e.: starting a round, playing, finishing). We can archive this thanks to coroutines, which are functions that can pause its execution and return to the normal flow of unity (updating the frame, etc.) and then continue executing where it left.Project Update #4

So the Game Manager just defines the number of rounds to win, the delay time to start (a countdown), controls the targets of the camera, instantiates the tanks and the Manager also keeps track of the state of the tanks (to finish the game when there is only one tank left in the scene).

Project Update #4

The starting delay just shows the text “tanks!”.

Project Update #4

The audio mixer is just like a filter to all the audio sources that the game have, you can just create one in the project folder.Project Update #4

You can also create sub-mixers, so you can divide the sounds of the game and apply different filters to it, in addition to the main mixer.

Project Update #4

In the output field of the audio source of the different objects you can select the audio mixer that you want that sound belong to.

Project Update #4

And as you can see in the images you can add filters, modify the pitch, level, attenuation and other things until you are satisfied with the sound effects of the game.

Project Update #4 Project Update #4 Project Update #4

The next idea is to create an interface to interact with the tank and game manager scripts. This interface will let the player to set some properties for the game (like adjusting the damage, the force and the color of the tank).


Project Update #4

Project Update #3

--Originally published at Orientierteprogrammierungobjekteundetwasmehr

We are almost on the end of the tutorials, I guess we will finish it and start creating the modified game by Wednesday. Because there are a lot of things we’ve done and there is no much time to explain everything, I’ll just add some images and briefly explain what they are.

This part is about creating the tank health, UI and logic. So I started adding a slider. Because the canvas is it’s own space it’s needed to change the Render mode to World Space.

Project Update #3

I moved the slider under the tank, changed its size and deleted the thing to move its value.

Project Update #3

I changed the default image by this one, it is a circle with a gap in the middle. Also changed the slider mode to radial (so it fills clockwise and not left to right).Project Update #3

I added the script to control the health slider, I used color interpolation to calculate the color needed in the cicle and set the value of the slider based in the health of the tank.

Project Update #3

And now you can see that the tank has a green circle around it. There’s also a explosion animation for the tank, when the healh of the tank reaches zero, an explosion animation is created in the same position as the tank and the tank object is deleted from the scene.

Project Update #3This part is about creating the shells prefabs.

First I added the shell model to the scene, added a Capsule collider to it, checked Is Trigger (to trigger a method when it collides with a tank), and also a light.

Project Update #3

Here’s some code that goes in the Shell. When it collides it searches for tanks (that are in a special layer that groups all the tanks), calculates its distance to the tanks and apply a force and a damage to the tank according to that distance. When the shell touches something, it plays an explosion animation and deletes the shell object. Also, the shell is automatically deleted after it’s been two seconds in the scene (to avoid having around shells that, for some reason, never collided).

Project Update #3

Here you can see, I dropped a shell in the scene, it exploded and the tank taked damage.Project Update #3Next part is about shooting shells, I added another slider, changed the image to the yellow arrow and set its position in front of the tank.

Project Update #3

Here’s the code that allows the tank to shoot. The tank can charge its shoot and when the player releases the shoot key, a new instance of the shell prefab is created, and its velocity and direction is calculated according to the tank position, rotation and the amount of time that the player pressed the key. It also sets the value of the slider to the value of the charge amount, so the player can see the arrow growing when they press the fire button.Project Update #3

And here you can see the tank rotating and firing shells!Project Update #3

Next in the list is creating a manager to handle the spawning of tanks.


Project Update #3