Jump to content


Project SFR a StarFox fan mod for the Source engine


  • Please log in to reply
140 replies to this topic

#126 psy_commando

psy_commando

    CDF Corporal

  • Members
  • 210 posts
  • LocationCanada, Quebec

Posted 06 April 2012 - 04:49 AM

View PostDZComposer, on 06 April 2012 - 03:31 AM, said:

I notice the weak spot is on his back. Are there plans for him to have some kind of visible head protection? I'm foreseeing players thinking his head is the weak spot.
You got a point there, we almost forgot about the head ... Thanks for the tip :-)

#127 Ala1n-J

Ala1n-J

    CDF Pvt. 1st Class

  • Members
  • 88 posts
  • Personal Text:A guy who can't stop drawing
  • LocationThe Black Hole

Posted 06 April 2012 - 08:18 PM

View PostDZComposer, on 06 April 2012 - 03:31 AM, said:

I notice the weak spot is on his back. Are there plans for him to have some kind of visible head protection? I'm foreseeing players thinking his head is the weak spot.

Good point DZ... back to the drawing board!

#128 LoneWolf

LoneWolf

    CDF Captain

  • Members
  • 2,414 posts
  • Personal Text:SFO's Resident Miyu Fanboy
  • LocationWashington State, USA

Posted 03 May 2012 - 11:03 PM

I haven't checked this thread in a while. The concept art is hella cool, but you really need to get some modelers going on your characters.

Otherwise it's cool to see this isn't dead.
Posted ImagePosted Image
Posted Image Posted Image

General Milky said:

I actually spent a good portion of my early teens in the woods.
Milky is secretly a lumberjack who lives in a tree.

#129 psy_commando

psy_commando

    CDF Corporal

  • Members
  • 210 posts
  • LocationCanada, Quebec

Posted 04 May 2012 - 01:27 AM

Quick update:

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.

View PostLoneWolf, on 03 May 2012 - 11:03 PM, said:

I haven't checked this thread in a while. The concept art is hella cool, but you really need to get some modelers going on your characters.

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 sroberson

sroberson

    CDF Sergeant

  • Members
  • 267 posts
  • Personal Text:Coalition for good StarFox canon and Fox X Krystal
  • LocationArkansas

Posted 04 May 2012 - 04:48 AM

Sheesh, wish I knew how to work on something like that. I really have a weak understanding of coding and wished all along I could work on something like game development. I R jealous. Do you have any thoughts on releasing source code?
Posted Image
Posted Image
Posted Image

#131 psy_commando

psy_commando

    CDF Corporal

  • Members
  • 210 posts
  • LocationCanada, Quebec

Posted 04 May 2012 - 04:58 AM

View Postsroberson, on 04 May 2012 - 04:48 AM, said:

Sheesh, wish I knew how to work on something like that. I really have a weak understanding of coding and wished all along I could work on something like game development. I R jealous. Do you have any thoughts on releasing source code?

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 psy_commando

psy_commando

    CDF Corporal

  • Members
  • 210 posts
  • LocationCanada, Quebec

Posted 05 May 2012 - 09:50 PM

Quick update:
We posted a news update on the moddb profile : http://www.moddb.com...may-2012-update

#133 sroberson

sroberson

    CDF Sergeant

  • Members
  • 267 posts
  • Personal Text:Coalition for good StarFox canon and Fox X Krystal
  • LocationArkansas

Posted 06 May 2012 - 10:09 PM

Awesome! I look forward to the finished product and the code to see if I can even understand any of it :D haha
Posted Image
Posted Image
Posted Image

#134 psy_commando

psy_commando

    CDF Corporal

  • Members
  • 210 posts
  • LocationCanada, Quebec

Posted 07 May 2012 - 01:01 AM

View Postsroberson, on 06 May 2012 - 10:09 PM, said:

Awesome! I look forward to the finished product and the code to see if I can even understand any of it :D haha
Do you code in java, c, c++, or c# ? Because the source code is entirely in c++, and knowing those may help you understand.

#135 sroberson

sroberson

    CDF Sergeant

  • Members
  • 267 posts
  • Personal Text:Coalition for good StarFox canon and Fox X Krystal
  • LocationArkansas

Posted 07 May 2012 - 05:01 AM

I have a basic understanding of C++ and have been learning some C#. My problem with programming is I get pretty confused and weak when object orientation comes around. Never did like Java though, just the idea of running a virtual environment within an OS and calling the language "cross platform" really grinds my gears.
Posted Image
Posted Image
Posted Image

#136 psy_commando

psy_commando

    CDF Corporal

  • Members
  • 210 posts
  • LocationCanada, Quebec

Posted 07 May 2012 - 11:36 PM

The Source engine is based on object oriented C++, you should look it up, its not that complicated. Its just a way to approach problems and solve them with code.

There's also a very good little faq on C++ and its features : http://www.parashift.com/c++-faq-lite/

#137 DZComposer

DZComposer

    Lead Admin and Slippy Fan

  • Administrators
  • 5,362 posts
  • Personal Text:Ribbit! Thanks fer the save!
  • LocationTexas

Posted 08 May 2012 - 01:39 AM

View Postsroberson, on 07 May 2012 - 05:01 AM, said:

I have a basic understanding of C++ and have been learning some C#. My problem with programming is I get pretty confused and weak when object orientation comes around. Never did like Java though, just the idea of running a virtual environment within an OS and calling the language "cross platform" really grinds my gears.

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.

Posted ImagePosted Image

I CHOOSE YOU, MISSINGNO.½×WäÙ@Æä¾œÇ€a6`èàƒáS{dؘ¶¡Ña~ßÜbÉ¬Šª–TKO«1Ð43+’| ’ä§ƒYþ½¼Wá.6¥¤R\ˆ:©_~


#138 sroberson

sroberson

    CDF Sergeant

  • Members
  • 267 posts
  • Personal Text:Coalition for good StarFox canon and Fox X Krystal
  • LocationArkansas

Posted 08 May 2012 - 02:11 AM

View PostDZComposer, on 08 May 2012 - 01:39 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 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).
Posted Image
Posted Image
Posted Image

#139 DZComposer

DZComposer

    Lead Admin and Slippy Fan

  • Administrators
  • 5,362 posts
  • Personal Text:Ribbit! Thanks fer the save!
  • LocationTexas

Posted 08 May 2012 - 03:36 AM

EDIT: I just realized this could go very OT. I don't want to derail this thread, so if you have any further questions, PM me or create a new thread.

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

  • Attached File  oop.jpg   79.47K   1 downloads

Posted ImagePosted Image

I CHOOSE YOU, MISSINGNO.½×WäÙ@Æä¾œÇ€a6`èàƒáS{dؘ¶¡Ña~ßÜbÉ¬Šª–TKO«1Ð43+’| ’ä§ƒYþ½¼Wá.6¥¤R\ˆ:©_~


#140 sroberson

sroberson

    CDF Sergeant

  • Members
  • 267 posts
  • Personal Text:Coalition for good StarFox canon and Fox X Krystal
  • LocationArkansas

Posted 09 May 2012 - 01:38 AM

Apologies for kind of derailing the original topic, and thank you :)
Posted Image
Posted Image
Posted Image

#141 psy_commando

psy_commando

    CDF Corporal

  • Members
  • 210 posts
  • LocationCanada, Quebec

Posted 09 May 2012 - 02:14 AM

View Postsroberson, on 09 May 2012 - 01:38 AM, said:

Apologies for kind of derailing the original topic, and thank you :-)
As far as I'm concerned, I don't mind. :)




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users


The content of user comments and posts is solely that of their authors.

StarFox-Online, it's staff, and it's owners are not responsible for user-posted content.


Star Fox, it's story, music, and characters are all ©1993-2011 Nintendo Co. Ltd.

Original Content ©2006-2011 StarFox-Online.