• Add Review
  • Subscribe
  • Nominate
  • Submit Media
  • RSS

Devlog 82: I quit!!! ...

...NAHHHHHH! Hell, I'd rather die than quit this project, not to worry about that.

Guess what?

I’ve decided to learn how to code. That’s right, you read me right. No, the new developer hasn't quit but I figured I'd better be ready for any eventualities. I also want to help coding wise to help out the current programmer of his task. I don't think it's something I could have avoided a lot longer anyway.

I’ve gotten a few books about the topic and I’m slowly getting into it. I’ve gotten over my aversion of it and am now curious about it. It *is* very complicated for sure. I'm still struggling to figure out how it all works to be honest, the logistics of it.

As you may or may not know, STX is made with Unity and coded in C#. I didn’t actually know C# existed before I started to read about it. Three languages are available in Unity: Boo, Javascript and C#. From what I understand, C# is the “best” one. At this point in time however I’m too much of a neophyte to tell you why C# is the best I’ll admit.

I started with “Game Coding Complete” but it was clearly aimed at more advanced programmers. I then moved to another book about C# but this was also too complex, I wasn’t familiar with the vocabulary and felt lost.

I finally checked out C# for Dummies.

I learned a bunch of things but a lot stuff is still fuzzy. If you're not interested in programming, skip the following section.
_________________________________________________________________________________
-Things I Learned-

1. Apparently, by typing:
#region

#endregion
I can hide what’s between the two #.

2. Typing // is a way to indicate that what comes after is just instructions about the code, not actual commands for the program to interpret. Those are called Comments.

3. Before you use a variable, you must declare it.

4. To initialize means to assign an initial value to a variable.

5. You must initialize a variable before using it.

6. The book then talks about the Integer types. This is something I didn’t really understand. If integer can go from -2 billion to 2 billion, what’s the point of using different types of integer?


7. Integer truncation and rounding is not the same thing. For example, an integer truncation of 1.9 would be 1 while rounding would be 2.

8. We should use double variables instead of float. To be honest, as a n00b, I don’t really see a point of being so precise number-wise. I guess it’ll become clearer as I go along.

9. I’ll admit the floating point thing is sort of confusing to me. I understand that it has the advantage over an integer to take into account the decimals. According to the book you can’t count using floating points.  Also, it’s difficult to compare floating points because of the decimals. The computer doesn’t understand that 1.000001 is basically the same as 1.000000 (or 1).

10. Integer are faster to process than floating points.

11. Another option is the decimal. So basically so far we have: integer, floating-point, double and decimal.

12. Adding M after a number declares it as a decimal.

13. Decimals are the slowest.

14. a “bool” variable can either be one of two things: true or false. In C++ 0 was false and other numbers was true but not in C#.

15. C# treats letters as part of two categories:
a. char
b. string

16. ‘char’ allows to use a single character. Not too sure what would be the point of that just yet though.

17. If you put some letters after a \, you can get special functions to trigger:


18. You can’t have a string over two lines, you need to use \n.

19. String is not a value type. I don’t know what “value type” means just yet but string isn’t one.

20. char use ‘x’ while strings use “x”.

21. Unity has big list of the all behaviors the Game Objects can have.

22. The file name and the class name in the scripts must be the same.

23. Function and method in Unity refer to the same thing.

24. OOP = Object Oriented Programming

25. You need to identify variables in order to use them. Which variable contains what.

26. A script linked to a game object is called a “Component”.

27. dot syntax is when you write files like this: Cabbage.point

28. a method is a substitute for a block of code.

29. Programming grammar is called C# syntax

30. semi-colons (;) are used to end a sentence. Not periods (.) because those are used in dot syntax.

31. You can write code over multiple lines, Unity doesn’t care about that as long as you finish your statements with ;.

_________________________________________________________________________________
As you can read, I’m still far away from actually rolling up my sleeves and getting into the code per se but it’s a start. I’m already a lot less ignorant about this topic than I used to be.


In other news, I've found a programmer now who's really committed and willing to invest 30 hours a week in coding the game. We'll see how that goes.

In order to make things easier and more understandable, I've written a glossary of terms for the game along with pictures to indicate what's what, here's an excerpt (you'll notice everything is neatly organized in alphabetical order):

Battery: The battery is the energy bar of Pan. Every time a battle card is showed, energy is depleted from the Battery. It is the equivalent of the liquid butter but for energy. The battery is filled up every round. So basically, it’s always full when it’s Pan’s turn to act or defend.

Battle Cards: A battle card is essentially a vocabulary card. Each vocabulary card in the game has two ratings: the energy rating and the attack power rating. The energy rating is displayed under the lightning bolt icon on the card while the power rating of the card is displayed under the knife icon of the card.
a) Energy Rating: Every time a card is displayed during the 2nd stage of battle, energy is spent. Is the energy rating of the card is 4, than 4 units of energy are spent from the battery. The player can only attack for as long as he has energy. If he runs out of energy, the 2nd stage of battle ends and we automatically move on to the 3rd stage where the attack is triggered.
b) The power rating: Every time a card is guessed correctly, the power rating of the card is added to the battle score. If the player guesses correctly cards with the following power rating: 5, 3, 1, 2 and 6, his Battle Score adds up to: 17. This is the final damage output of his attack.

Battle Score: The battle score is the added power rating of all the battle cards. See battle cards for more information.

Battle Phase: The battle phase is where combat takes place. It is separated in rounds.

Battle Stages: When it’s Pan’s turn to act, the player proceeds through a few stages before performing his attack in an attempt to destroy his opponent.
1st stage: The player selects one of the attacks available.
2nd stage: The timer (the clock) starts counting down while the first vocabulary card is displayed. The player then needs to type the correct answer for the card. For more information about this stage, see the “Battle Card” for more information about this.
3rd stage: Pan’s attack is triggered. The damage done will depend on his Battle Score.

Burned: One of the four status effects. Deals a 10% of damage Pan received in the turn he got burned.
For example:
If Pan gets burned by an attack that does 50 damage, he will take 5 points (10% of the 50 damage) each turn until he dies, uses an time or the battle ends.

Butter-Fly: Butter-Fly is the companion of Pan. He provides information about the game. His role is similar to Navy in Zelda.

Clock: The clock appears during the second stage of the battle. Normally, Pan would compare his speed to the foes to determine how much time he has to guess words. In the case of the demo however, we’ll just set for 30 seconds.

Experience Points (XP): Every time a foe is destroyed, Pan earns XP. Once he reaches enough XP, he gains a level. Certain performance in battle can increase the % of experience received in battle.
Exploration Phase: The game begins as an Exploration Phase. This is where the player tries to find the boss of a labyrinth and kill it to beat the dungeon he’s exploring. During the exploring phase, there is no combat. The player can check his inventory and journal (game menu) at will.

Fibre: The Fibre score represents Pan’s resistance to damage and various status effects.

Foe: I refer to the term “Foe” when talking about enemies. More than one foe can be present in battle.

Hell drier: The Hell Drier is the foe in the demo. His stats are important to know.
It has a Resistance of: 2
It has an HP: 12
It has two attacks:
a) The rocket launch:
b) The smelly breath:

Keys: Keys are symbolic units of progress. You can use keys to unlock progress in the Progress Tree.

Level: Level is an abstract measurement which represents how powerful Pan is. The more level he has,
the more he has access to abilities in the Progress Tree. Keep in mind that Pan’s stats do not increase on their own. Only unlocking passive bonuses in the Progress Tree allows Pan to become stronger.

Kung Punch: The only attack available in the technical demo.

Liquid Butter: Liquid butter is the health bar. If Pan runs of liquid butter, he dies. The liquid butter decrease every time Pan is damaged.

Journal: The journal refers to the game menu. It’s just like pressing start in most games. This is where the player can access his inventory, spend skill points in the progress tree, review vocabulary cards and so on.

_________________________________________________________________________________
We're also getting really well organized in Trello:






Posts

Pages: 1
Frogge
I wanna marry ALL the boys!! And Donna is a meanc
18536
The amount of effort you are putting into this is amazing. You are an inspiration to us all~
6. The book then talks about the Integer types. This is something I didn’t really understand. If integer can go from -2 billion to 2 billion, what’s the point of using different types of integer?

Memory usage. The variable types with bigger range/more precision take up more memory. With the exception of systems that use large amounts of variables (like hundreds or thousands) though, it's generally not something you have to worry about too much in this age of computers with gigabytes of RAM.

9. I’ll admit the floating point thing is sort of confusing to me. I understand that it has the advantage over an integer to take into account the decimals. According to the book you can’t count using floating points. Also, it’s difficult to compare floating points because of the decimals. The computer doesn’t understand that 1.000001 is basically the same as 1.000000 (or 1).

If you're saying, "If I ask the computer whether 1.000001 is equal to 1.000000 it'll say no," then of course it would, they aren't equal. X) 1.000001 is 0.000001 more than 1.000000.

Not to discourage you from learning to program -- it's something practically any designer can benefit from knowing at least the basics of, if only to communicate better with programmers and have an idea what can be done and how difficult it would be -- but it's a huge endeavor. I wouldn't count on the investment paying for itself with time taken off your dedicated programmer's shoulders within this project alone.
You hurt my red, pumping, already dead heart. </3

But I'm glad you didn't quit. And I'm not mad at you for playing with my feelings, after all I'm accustomed to that.

Keep up the good work!
author=orochii
You hurt my red, pumping, already dead heart. </3

But I'm glad you didn't quit. And I'm not mad at you for playing with my feelings, after all I'm accustomed to that.

Keep up the good work!


It was meant to be a humorous poke at a comment I got in devlog 82 :P.
Aaaah! Well then I was somehow unprepared ;_;. But don't mind, I still forgive you <3.

Also good luck with C#, it's a pretty language :^3.
I actually got a playable build yesterday. I might share a demo with some people very soon actually.
Pages: 1