DZComposer, on 06 April 2012 - 03:31 AM, said:
Project SFR a StarFox fan mod for the Source engine
#126
Posted 06 April 2012 - 04:49 AM
#128
Posted 03 May 2012 - 11:03 PM
Otherwise it's cool to see this isn't dead.



General Milky said:
#129
Posted 04 May 2012 - 01:27 AM
Nothing visually appreciable in term of progress, mostly code, but we've been stuck on this really annoying problem :
Our guys are mostly busy with school these days, but hopefully summer's coming.
LoneWolf, on 03 May 2012 - 11:03 PM, said:
Otherwise it's cool to see this isn't dead.
Thanks. Yep, we'll get those character modeled sooner or later, its just that up to a few days ago we weren't even sure if we could get those models animated. But we finally got that covered. Also our modelers are busy with school as with everybody else.
#130
Posted 04 May 2012 - 04:48 AM


#131
Posted 04 May 2012 - 04:58 AM
sroberson, on 04 May 2012 - 04:48 AM, said:
You can be sure we'll release the full source code. I want to make it as easy as possible for other people to create with the base we've set up and make a mod of our mod.
#132
Posted 05 May 2012 - 09:50 PM
#133
Posted 06 May 2012 - 10:09 PM


#134
Posted 07 May 2012 - 01:01 AM
sroberson, on 06 May 2012 - 10:09 PM, said:
#135
Posted 07 May 2012 - 05:01 AM


#136
Posted 07 May 2012 - 11:36 PM
There's also a very good little faq on C++ and its features : http://www.parashift.com/c++-faq-lite/
#137
Posted 08 May 2012 - 01:39 AM
sroberson, on 07 May 2012 - 05:01 AM, said:
I don't like most explanations about OOP because they are too theoretical and all the new OOP terms thrown in in the initial explanations I think do more to confuse people who are new to OOP. It isn't hard, but if you're used to procedural programming, it's a different way of thinking.
There are three OOP words you should know off the bat: Property, Method, and Instantiation. Properties are the "variables" in a class. Methods are the "functions" in a class. In most languages they are defined the same way as a variable or function respectively. Instantiation is the act of calling a class. This creates an independent instance of the class that can be manipulated separately. In many languages, this is done by declaring a variable with the class as the datatype.
While I know this explanation isn't 100% technically correct, I think it is a good start. Once you wrap your head around this, it will make the other, more technical, explanations easier to understand.
Think of a class as an independent code file with it's own variables ("Properties" in OOP Speak) and functions ("Methods" in OOP speak). Methods manipulate the properties (and any data passed into them from the calling code), and pass the result back to the code that called it.
You reference a class by instantiating, "calling," it. But, unlike a normal function, you declare it like a variable. This is what makes OOP awesome: You can call the class multiple times, but each time with a different name storing different values.
The idea behind OOP is to leverage this awesomeness to reduce the amount of code you have to write. Also, it makes making changes easier, and allows you to do things you just can't do procedurally. The idea behind classes is that in general,. you want to divide your program into what I am going to call "entities." An entity can be a thing, IE an enemy, or it can be a set of instructions to do some specific aspect of back-end processing.
Here is a thought experiment: Can you imagine trying to track the status of like 50 enemies simultaneously using procedural programming? I don't even want to think about that. But, with OOP, you just declare 50 instances and manipulate them as needed.
It does get a little more complicated, particularly with subclasses and such, but you should make sure you understand the basics before you start delving into that stuff.
Laugh if you want, but I think VB.net is actually a pretty good language for learning OOP basics. I wouldn't commit to VB programming whole-hog, but its simple syntax will help, and visual studio express is free. I can't speak for C#, but as a .NET language itself, it may be a good place to learn as well. The only C-type language I have any experience with is Java, and I don't have that much. One of these days I'll learn C++. lol
EDIT: A repressed memory came back: I took an iPhone development class. Sorry Apple fans, but Objective-C sucks balls. I liked Java better.
#138
Posted 08 May 2012 - 02:11 AM
DZComposer, on 08 May 2012 - 01:39 AM, said:
There are three OOP words you should know off the bat: Property, Method, and Instantiation. Properties are the "variables" in a class. Methods are the "functions" in a class. In most languages they are defined the same way as a variable or function respectively. Instantiation is the act of calling a class. This creates an independent instance of the class that can be manipulated separately. In many languages, this is done by declaring a variable with the class as the datatype.
While I know this explanation isn't 100% technically correct, I think it is a good start. Once you wrap your head around this, it will make the other, more technical, explanations easier to understand.
Think of a class as an independent code file with it's own variables ("Properties" in OOP Speak) and functions ("Methods" in OOP speak). Methods manipulate the properties (and any data passed into them from the calling code), and pass the result back to the code that called it.
You reference a class by instantiating, "calling," it. But, unlike a normal function, you declare it like a variable. This is what makes OOP awesome: You can call the class multiple times, but each time with a different name storing different values.
The idea behind OOP is to leverage this awesomeness to reduce the amount of code you have to write. Also, it makes making changes easier, and allows you to do things you just can't do procedurally. The idea behind classes is that in general,. you want to divide your program into what I am going to call "entities." An entity can be a thing, IE an enemy, or it can be a set of instructions to do some specific aspect of back-end processing.
Here is a thought experiment: Can you imagine trying to track the status of like 50 enemies simultaneously using procedural programming? I don't even want to think about that. But, with OOP, you just manipulate the instance.
It does get a little more complicated, particularly with subclasses and such, but you should make sure you understand the basics before you start delving into that stuff.
Laugh if you want, but I think VB.net is actually a pretty good language for learning OOP basics. I wouldn't commit to VB programming whole-hog, but its simple syntax will help, and visual studio express is free. I can't speak for C#, but as a .NET language itself, it may be a good place to learn as well. The only C-type language I have any experience with is Java, and I don't have that much. One of these days I'll learn C++. lol
EDIT: A repressed memory came back: I took an iPhone development class. Sorry Apple fans, but Objective-C sucks balls. I liked Java better.
My biggest problem was when I was learning object orientation in class, was that the teacher was chronically sick and we constantly had teaching assistants coming in and their explanations were jumbled up and confusing to say the least. Due to my inability to get a decent explanation (and just because I kind of required guided learning for me to learn much of anything at that time) I think I was intimidated by it and learned to hate it simply because I didn't understand. When I took the next level of programming, I got a bit of a better idea on simple structures to try and create various types of linked lists but reading more professional code I realize I am leagues behind (I think I might not have the best mind for big development projects to tell the truth, I like to work with smaller bits of code and systems).
Would you agree that overall object orientation is just a means of organizing data types? That's the way I always felt about it honestly. I know there is probably some secure programming features that can be implemented by writing private classes but I never really put much thought into security when I can't really write a sizable program in the first place. I pretty much viewed a structure or a class for example, like a house. You can have rooms within the house that are each for their own use, but they can be identified by belonging to said house.
I was spending some time recently on C# to try and figure out how to make forms, but I got brick walled by the problem of creating multiple child threads and gaining inheritance from the parent threads (example: I was having a problem with C# trying to load multiple forms, then open a Windows explorer and kept getting errors about it not being in the same thread). Got distracted from learning more about it though since I got into working on a LAMP server for inventory management at work. I might have to break down and try and start from the basics with other programming books just so I can make sure I didn't miss anything. I will definitely have to look at VB to see if I can at least get a better feel for object orientation.
Thank you for spending some time to try and work with me on understanding OOP, it really has been something I wish I had a better understanding of.
P.S. I don't think I would ever learn Objective-C unless it could be use for serious developments on other platforms, and if Apple wouldn't have such a stranglehold on their development market. Besides, with Android slowly consuming the market share of smart phones I figure the only way to really go is Java if I had to learn either of them (or is it a derivative of Java?...I can't remember).


#139
Posted 08 May 2012 - 03:36 AM
Object-orientation is not about data types, it's about tracking things simultaneously and independently.
I think games are the perfect example for teaching OOP concepts because they are visual. I have attached an image of a simple room with a player and a few enemies.
A class represents a type of entity. In our example, we have a player entity type and an enemy entity type. Thus, we will need two classes, players and enemies. If we were coding this for real, there would be more, but let's keep it simple.
The player class will contain attributes (Called "properties" in OO-Speak) about the player character: HP, Level, equipped weapon, etc.
The enemies class will contain properties about enemies.
To use the classes, you instantiate, a fancy word that means "create an instance."
In our "game" we have 1 player instance, and 5 enemies. So, we'd do something like this (exact syntax varies by language):
$player1 = new players; $enemy1 = new enemies; $enemy2 = new enemies; $enemy3 = new enemies; $enemy4 = new enemies; $enemy5 = new enemies;
We wrote the code for enemies once, and we can use it as many times as we need to. Each $enemy is independent of the other. Each of these variables is called an object. An object is simply an instance of a class. The word "new" is the keyword in many language that means to instantiate the class, which means to create a new object that conforms to the class specified after the word new.
If I do this:
$enemy1.hp = $enemy1.hp - 12;(The period in this case represents that what follows it is a property, you call methods this way in many languages as well)
This line subtracts 12 hp from Enemy 1. Enemies 2-5 are unaffected.
But wait! There's more! You can include logic within functions, called methods, into classes. This way, the class can contain code to manipulate its properties, or even external data based on the value of its properties. This is the real power here.
There are three "default" methods: The Constructor, The Getter, and The Setter. The Constructor runs when you instantiate (Call the class to crate an object). Thus, you can use it to set initial values or whatever. The Getter returns the value of properties. The Setter changes the value of properties. Of course, you can create your own methods as well. In most languages, they are defined using the function syntax, though constructors, getters, and setters can vary by language. In many languages, you will also need to do some handling when the object is destroyed, so your class may also need to contain a destructor (Objective-C is an example).
This is why OOP is awesome. It reduces the amount of code you need to write, and makes it easier to do multiple things. In fact, an entity doesn't have to represent a character or a thing. Many other things are entities in programming, such as connections, system calls, and other things. Thus, you can use classes for pretty much everything.
You mentioned LAMP. Believe it or not, PHP is object-oriented. I wouldn't call it the best language for learning OOP, but if you're familiar with it, it may help you avoid running into issues like you are with C#.
Android is Java. Though, it is important to note, and you'll see this on many platforms, that Android is built on what is called a framework, which is a fancy word for a library of pre-defined classes. Microsoft's is called .NET.
Frameworks are nice because a lot of the basic program, like memory management or database connections, or whatever, is already written. You simply instantiate the classes and call the methods you need.
Attached Files
#140
Posted 09 May 2012 - 01:38 AM


1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users









