I am teaching C# and object oriented programming and OOAD on a beginner’s level.
For a course that I run, I would like my students to make a game as their last assignment, in 2D or 3D.
I initially thought of using Farseer physics and Silverlight, but as Silverlight is not developed anymore, I looked elsewhere and stumpled upon Unity.
My question is, would there be too much to learn about Unity itself before being able to program? After all, the course is about OO and C#, not Unity.
I’m thinking that the students scould perhaps add object graphically, click them and enter some C# code. Prefereably, this should also inlcude the OO conspet (inheritance and so on), but everything still rather basic.
Unity’s component/behaviour type a approach is not OO; of course its C# in the end and you can use an OO approach in conjunction with (or almost completely in lieu of) Unity’s component system. However as a teaching aid I think there is potential to confuse your students.
On top of that you have the overhead of learning Unity’s interface and percularities. For a student learning a new language and new concepts this is just one more hurdle in the way.
Although I’m sure its workable, I don’t think Unity would be the best approach for begginers trying to learn C# and OO design.
C# within the Unity framework is limited in my opinion. But please bear in mind I don’t consider myself an expert with Unity or C#.
I have used C# for numerous years now, and when I need to do onetime type tasks, C# is the language of choice. Also I share your opinion regarding Silverlight, I used it, and it was a disappointment. I would recommend XNA since that is highly integrated with C# and Microsoft has plenty of examples that are fun and easy to pick up: http://xbox.create.msdn.com/en-US/
I have now looked into XNA, and also Duality. Of course Unity is a much more competent framework than Duality - there’s no question about it - but for my purpose, this might be a bit big, this time at least,