Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: SFML .Net for teaching purposes  (Read 5132 times)

0 Members and 1 Guest are viewing this topic.

lithander

  • Newbie
  • *
  • Posts: 9
    • View Profile
    • Email
SFML .Net for teaching purposes
« on: February 24, 2015, 01:17:42 pm »
Hey guys!

I'm going to teach a course dubbed "Game Programming Patterns" in a couple of weeks at a local university for the first time. There will be weekly lectures but also a lab where students will work in teams on some small scale game project to experience typical problems and established solutions (said patterns) first hand.

The students will be in their 3rd year of studying multimedia engineering (some media oriented variant of computer science) so they have some coding background in Java and basic math knowledge but I wouldn't want to take too much for granted. I tried to teach modern OpenGL once and that turned into a math crash course pretty quickly so this time we'll constrain ourselves to 2D. ;)

I'm not going to use Java even if that's what the university is teaching. But other then that a low barrier of entry is key. So I've been thinking about using C# (with VS2013 as IDE) and the .Net port of SFML as a foundation layer for our students projects.

I have no prior experience with SFML but at first glance it looks like a good fit. But please help me make a decission faster: What do you think? ;)
« Last Edit: February 24, 2015, 01:19:14 pm by lithander »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Posts: 32498
    • View Profile
    • SFML's website
    • Email
Re: SFML .Net for teaching purposes
« Reply #1 on: February 24, 2015, 01:24:07 pm »
If you think C# is good then use it. How could we know what you need better than you? :P

I don't know why you don't want to use Java, but in case you haven't seen it, the Java port of SFML is pretty usable too.
Laurent Gomila - SFML developer

lithander

  • Newbie
  • *
  • Posts: 9
    • View Profile
    • Email
Re: SFML .Net for teaching purposes
« Reply #2 on: February 24, 2015, 04:29:12 pm »
My question was mostly related to the pros & cons of SFML in my specific usecase. With a the technology that I use on a daily basis I've got a good intuition wether it's beginner friendly and what concepts are easy to grasp compared where there are pitfalls. But I lack that experience with SFML so I thought I could ask the experienced users for an opinion! How steep is the learning curve? What do new users struggle with? Have you tried teaching with it? Stuff like that.

Regarding Java I can tell you the reasons I don't want to use it. But lets not turn this into a language war. First of all there are a wealth of langauge extensions that got integrated into C# over the last couple of years that I think are almost mandatory knowledge for someone with a degree in computer science and that are not part of Java. Especially first class functions & closures come to mind. (Ironically they are important part of JavaScript.)
Another good reason for C# is that it is more widely used in game development then Java.
But the most important reason is of course that I'm much more fluent and experienced with C# then any other language. ;)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Posts: 32498
    • View Profile
    • SFML's website
    • Email
Re: SFML .Net for teaching purposes
« Reply #3 on: February 24, 2015, 04:44:54 pm »
Ok, I misunderstood your question, sorry. I thought it was about SFML.Net specifically.

All I can say is that SFML is used in many universities, and as far as I know, with success. Maybe there are student/teachers on this forum that can give you direct feedback about that.
Laurent Gomila - SFML developer

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 11034
    • View Profile
    • development blog
    • Email
AW: SFML .Net for teaching purposes
« Reply #4 on: February 24, 2015, 08:53:29 pm »
How steep is the learning curve?
The curve is IMHO very flat. The API is often self explaining and the documentation and tutorials are extensive. For detailed questions there are also the FAQ.

What do new users struggle with?
The things people struggle with are mostly unrelated to SFML itself and it's more about using libraries or general C++ questions. The high percentage of people who just started with C++ shows again that it's really easy to get into SFML's API, but it also shows that you need a certain level of C++ knowledge.

Have you tried teaching with it?
Hirua, our OS X dev, uses SFML at his uni.
Official FAQ: https://www.sfml-dev.org/faq.php
Official Discord Server: https://discord.gg/nr4X7Fh
——————————————————————
Dev Blog: https://duerrenberger.dev/blog/

Mario

  • SFML Team
  • Hero Member
  • *****
  • Posts: 879
    • View Profile
Re: SFML .Net for teaching purposes
« Reply #5 on: February 27, 2015, 06:20:55 pm »
Personally I think the biggest culprit for many (what I think, looking at these forums), is how to

a) get a basic main loop working and

b) how to use a simple state machine to switch between states/screens.

Many seem to program in a linear fashion (similar to basic console programs) and then get stuck on how to go back/forth and similar things.

Overall, I'd say SFML's entry level and learning curve are very low, but you'll have to ensure first that everyone knows the very basics (that aren't even directly SFML related).

Oh, and also as one thing to note: Maybe you could allow your students to pick the language of their choice? After all it's about basic game design/programming, not about learning a particular language.

Even if you don't use Java yourself, some students might feel more savvy using Java over C# or another language. Maybe give your students a choice of two or three languages to pick from (if you're feeling comfortable judging their work in those languages). In a course like the one you're describing it's less about writing the most efficient code or avoiding potential bugs like race conditions; it's about learning the concepts and how to bring your ideas to life. So even if there are a few hiccups or potential bugs you don't notice, it wouldn't matter (in my opinion).

lithander

  • Newbie
  • *
  • Posts: 9
    • View Profile
    • Email
Re: SFML .Net for teaching purposes
« Reply #6 on: February 28, 2015, 12:47:29 am »
I'm as good as sold on SFML. If a basic game loop is more conceptional trouble then the hardware interface library than the latter does a good job indeed! ;)

I'm kidding of course. The game loop is a stellar example of a game programming pattern. Most games have one while the majority of non-game applications doesn't use a concept like that.

You're right that the patterns I'm trying to teach are mostly language agnostic. What we'll do in C# could be done in Java, too. In both cases I'd have to skip most details about memory management, though, as that is rather pointless in a garbage collected language. So there'd be a good reason to use C++ even if it's a lot harder to pick up for a Java guy than C#.
I can ask the students for opinions but I can't imagine a course where every student starts of on a different OS in a different language with a different genre and game design in mind. From my experience narrow constraints really help to keep focused and on the same track.
« Last Edit: February 28, 2015, 12:52:52 am by lithander »

Mario

  • SFML Team
  • Hero Member
  • *****
  • Posts: 879
    • View Profile
Re: SFML .Net for teaching purposes
« Reply #7 on: February 28, 2015, 02:08:24 pm »
I'd start laughing at the first one going to submit an entry in Haskell. :) You're right, you should offer a limited list (if at all), but I think it won't hurt to leave them the option to use Java in case they're really used to it.

Either way, would really be interested in seeing the results later on, or some feedback where students had most issues, where something wasn't clear enough (e.g. documentation or naming convention), etc. :)

StormWingDelta

  • Sr. Member
  • ****
  • Posts: 365
    • View Profile
Re: SFML .Net for teaching purposes
« Reply #8 on: February 28, 2015, 08:42:59 pm »
It really depends on what you are up to. For starter classes having a specific language is a good idea but after that letting people pick what they like or want to use is a good idea.  My teacher let us pick what we wanted to use for a language and just did examples and ideas in C# for us to see and try to figure out.  I think I was one of a few that stuck with C# in there but at the end it was fun to see what people were using and we all got a lot done nonetheless. :)   Then again that was possibly the loosest game design class I've been in.
I have many ideas but need the help of others to find way to make use of them.

lithander

  • Newbie
  • *
  • Posts: 9
    • View Profile
    • Email
Re: SFML .Net for teaching purposes
« Reply #9 on: March 03, 2015, 12:58:40 pm »
My take on freedom of choice in teaching/learning has changed considerably of the last couple of years. At a company it's usually the most senior and qualified members that make decisions. And most of these choices are just the necessary consequences based on conditions outside their control. You try to understand the problem before you make a decision - if you don't have enough information for an educated decision don't make a decision at all. So, are my students really qualified to pick the language thats right for them? They'll most likely pick something they are allready comfortable with but not what promises the best learning experience or results.

Software engineering isn’t for someone who wants to stick with what they know. The technology is always changing, and engineers have to adapt and evolve, too.
So I think that regarding to the choice of language, project goal etc it's not only more real-world like but also better for the individual students if I chose for them. Hopefully I'm much more qualified otherwise I shouldn't have gotten the job. If that means that they can't work with their favorite language or game design that's not a problem but a chance to grow. In hindsight my favorite teachers have allways been those with a strong opinion and the ability to convince.

lithander

  • Newbie
  • *
  • Posts: 9
    • View Profile
    • Email
Re: SFML .Net for teaching purposes
« Reply #10 on: March 03, 2015, 01:15:07 pm »
Either way, would really be interested in seeing the results later on, or some feedback where students had most issues, where something wasn't clear enough (e.g. documentation or naming convention), etc. :)

If there are issues worth mentioning I'll make sure to let you guys know! But for now I'm really happy that I've stumbled upon SFML. The tutorials make a great impression!