STK as high school course

STK as high school course

Postby a3kyle » 03 Jun 2018, 21:45

Hi Everyone!

I’m a high school teacher and I’m working this Summer on creating a course called “Open-source Game Design & Modification” using SuperTuxKart as the focus. I’m in the early planning stages for this project and wanted to start by reaching out to the community of STK developers. I understand that the developers all have lives & jobs outside of STK but I wanted to ask if anybody would be interested in collaborating with me on this project.

I’m not sure if this conversation should continue here or elsewhere so if you have any advice on best modes of communication please let me know.

Thanks!
a3kyle
 
Posts: 3
Joined: 03 Jun 2018, 20:55

Re: STK as high school course

Postby Auria » 04 Jun 2018, 01:55

Hi, maybe it would be easier to answer if we knew a bit more what kind of involvement you are looking for? Though you are right that at least for myself, I don't expect a lot of free time for such projects
Image
User avatar
Auria
STK Moderator
 
Posts: 2976
Joined: 07 Dec 2009, 03:52

Re: STK as high school course

Postby a3kyle » 06 Jun 2018, 04:58

Hi Auria!

Thanks for taking the time to reply about my project!

Like I said I'm in the early design stages but some of my goals for students in my course would be:

- to understand how collaboration happens on a global scale
- to understand how open-source development works (parameters, limitations, freedoms, etc)
- to learn and apply the tools used to collaborate with your team (things like GitHub, I'm imagining)
- to learn how STK is designed (from a "big picture" systems view and how those pieces fit together to smaller discrete necessities)
- to modify the code in their own copies of the game to better understand things like kart mechanics, physics, AI, balance, items, etc
- to create their own karts, levels, textures, sounds, and music

As far as involvement goes, I understand your time is valuable so I was planning on using the pre-existing documentation as much as possible. There are areas of the documentation that I have yet to read but I imagine information about some of my objectives are better documented than others. For example, how your team works together to design and build STK is maybe less documented than creating a kart or level.

I hope this info begins to explain my project.

I would appreciate any questions or comments you have about my objectives and ideas around our possible collaboration.

Thanks again for your time! I really appreciate it!
a3kyle
 
Posts: 3
Joined: 03 Jun 2018, 20:55

Re: STK as high school course

Postby GeekPenguinBR » 06 Jun 2018, 06:03

a3kyle {l Wrote}:Like I said I'm in the early design stages but some of my goals for students in my course would be:

- to understand how collaboration happens on a global scale
- to understand how open-source development works (parameters, limitations, freedoms, etc)
- to learn and apply the tools used to collaborate with your team (things like GitHub, I'm imagining)


Hi, a3kyle!

I think that the first three may be answered by any collaborator (including myself). I assume that there are many people who take part on this forum that can help you. Do you have an interest to know the personal experiences of non-developers too? Maybe, you should post this topic here (https://forum.freegamedev.net/viewforum.php?f=10) and complete your knowledge with replies posted by voluntray contributors like me and others who wish to help you.

You can find, also, a lot of information about open-source development browsing outside. Maybe, this:
https://opensource.org/faq (this is the basics, but it's always good to remember).
https://opensource.com/life/14/6/12-cha ... e-projects
https://gamedev.stackexchange.com/quest ... e-projects

https://opensource.com/article/18/5/art ... -no-devops
https://opensource.com/article/17/5/wha ... evelopment

https://www.quora.com/Why-arent-there-a ... urce-games
https://arxiv.org/pdf/1707.02327.pdf (this one is more related to softwares, but the principles are valid for games too).

https://opensource.com/article/18/5/cul ... ation-team

https://www.gamasutra.com/blogs/Richard ... entals.php
https://www.gamasutra.com/blogs/Richard ... _Later.php

https://www.infoworld.com/article/26123 ... money.html
https://www.networkworld.com/article/29 ... games.html

You may know that there's a certain level of "bigotry" on communities for OS games (:lol: ), since many members are fanatic by totally free and open softwares. I can see this here, on STK, where some people give a side-eye to objects that are made on proprietary software for 3D modelling instead Blender. This may even cause the rejection of a contribution, depending on the level of mind of a developer. :( Well, it's funny how day after day the control of the "freedom" falls in the wrong hands. For example, the heaven for free hosting, now, belongs to Microsoft (aka Bill Gates, the World's richest man in the official list):
https://www.nytimes.com/2018/06/04/tech ... uting.html

The last one is answered here: https://supertuxkart.net/Community. Have you seen already the guidelines?
https://supertuxkart.net/Texture_Guidelines
https://supertuxkart.net/3D_Model_Guidelines
https://supertuxkart.net/Music_and_SFX_Guidelines

Basically, it's that. The person who wants to contribute has an idea (a track a kart or a song), read the respective guidelines and starts working on his/her project. Some come here to get more detail or suggestions before starting. Some other just know (or imagine to know) how doing the right thing and start in silence until the point that his/her work in progress track, kart or song may be tested or heard by this community. Sometimes the personal projects fail due to lack of time (I have 5 different tracks to finish) or even skills or project management. Eventually, some tracks, karts or songs are rejected for not fitting the game style or the personal taste of someone who can decide what becomes part of the official game and what goes to the add-ons. All depends on the needs of the game.

The tracks are thematically free, I believe. In other words, you may start your own track based on your main motivation (eg. you may desire to drive the karts in a scene that has resemblance with some known parts of your country). Since that there are not rules like "don't start making a new track on snow, on deserts, etc., you are free to try if you have time. However, new tracks are intended to replace the old ones. In general, tracks of the same theme or environment. Eg. The first track is a candidate to replace the old "Green Valley".

As a contributor, I can tell you that, one of the main difficulties is to fit the art to the game style, because it definition's is a bit vague, inaccurate and may cause confusion, since It's "realistic, but not much", what's weird to define. In general, in my contributions, I tend to do something between "Coilbook" and "Thomas and friends" in terms of graphics. I think that this is the style of the game as desired by the leaders. So, the art maybe be not as simple as "Farmees" and not as realistic as "Assetto Corsa", "Far Cry" or "Sniper Ghost Warrior". My reference is "Giant Machines 2017", that I like and I have on my Steam.

The karts, in opposite side, are limited to mascots of other open source projects. For instance, I think they don't need another new kart at the moment (even if in my opinion, 3 karts should be replaced by other mascots). So, a new project could result in waste of time by the part of the person who try to collaborate. Maybe the same about the songs. There are two official composers (Krobonil and OzoneOne) who are used to compose song tracks according to the game style. New songs are desired and created specifically for new tracks. I doubt someone may will be successful if he appear here and say "Hi! I'm a composer and I want to contribute to STK. Take a look at my SoundCloud and choose one or more of my songs to your existing tracks".

Wait for other replies (better than this mine). Maybe another contributor may help you with more specific information.
Last edited by GeekPenguinBR on 06 Jun 2018, 07:33, edited 2 times in total.
"Making cool harmless games makes the world a better place".
User avatar
GeekPenguinBR
 
Posts: 466
Joined: 22 Mar 2014, 00:41
Location: Rio de Janeiro

Re: STK as high school course

Postby hiker » 06 Jun 2018, 06:30

GeekPenguinBR {l Wrote}:You may know that there's a certain level of "bigotry" on communities for OS games (:lol: ), since many members are fanatic by totally free and open softwares.

I agree with that, I have often seen this.
I can see this here, on STK, where some people give a side-eye to objects that are made on proprietary software for 3D modeling instead Blender. This may even cause the rejection of a contribution, depending on the level of mind of a developer. :(

I am not aware of that ever happening with STK. Some people certainly have voiced their opinion on what tools should be used, and there might have been discussions along those lines, but I don't think the main devs have ever commented negatively or even rejected any contribution because of the tools used. Of course, we only have a blender plugin to create the tracks, so whatever tool you use for track modeling, in the end you need to use blender in order to make the track usable in stk (unless someone contributes similar plugins for other tools). Our artist uses (to the best of my knowledge) some proprietary tools. We had to reject some contributions because of issues with the license(!), but not because of the tools used.

Cheers,
Joerg
hiker
 
Posts: 1435
Joined: 07 Dec 2009, 12:15
Location: Melbourne, Australia

Re: STK as high school course

Postby GunChleoc » 06 Jun 2018, 09:42

Some notes from a translator's (localizer's) perspective:

First of all, STK uses a FLOSS library (Gettext) as its translation system. Code reuse from other projects/libraries is also something you could explore in your course - if a software is licensed under the GPL, it can use code from other projects that are under the same license, and adapt it to their needs. Such adaptation has been done by the STK team on the engine - they started out with using Irrlicht and then modified it to the project's needs.

For translators to collaborate, it is good to have a dedicated translation platform. Git is great for code, but for translations, not so much. There is a FLOSS platform called Pootle, but since you have to host it yourself, most projects are using free-to-use (but not FLOSS) hosted services - Transifex in this case.

For an effective translation team, you need to develop a glossary that everybody sticks to, and then have an easy way to communicate with each other. The great thing about FLOSS translations is that if a string lacks context or needs fixing, you can easily ask the developers directly, and if you find an error in the translation, you can fix it yourself any time you please without having to go through any red tape. Getting access to current versions for testing is also easy. An example for lack of context is "Copy" - it could be a button or menu entry ("to copy") or a description of a file ("a copy").
User avatar
GunChleoc
 
Posts: 502
Joined: 20 Sep 2012, 22:45

Re: STK as high school course

Postby GeekPenguinBR » 06 Jun 2018, 13:01

hiker {l Wrote}:
GeekPenguinBR {l Wrote}:I can see this here, on STK, where some people give a side-eye to objects that are made on proprietary software for 3D modeling instead Blender. This may even cause the rejection of a contribution, depending on the level of mind of a developer. :(


hiker {l Wrote}:I am not aware of that ever happening with STK. Some people certainly have voiced their opinion on what tools should be used, and there might have been discussions along those lines, but I don't think the main devs have ever commented negatively or even rejected any contribution because of the tools used.


My text was not clear on that part. I was commenting about STK and this forum, of course, but I expanded my comment to every forum of Open Source games where, depending on the level of "zealotry", some developmer may even reject a contribution if it was not made by any FLOSS software. I should have said something like "I know that some people on this forum may dislike when I upload an art that was not made on Blender, Gimp, etc., but using a proprietary software.In some forums, this kind of contribution may be not accepted if the project leaders are "fanatics" for computer users' freedom.
"Making cool harmless games makes the world a better place".
User avatar
GeekPenguinBR
 
Posts: 466
Joined: 22 Mar 2014, 00:41
Location: Rio de Janeiro

Re: STK as high school course

Postby deve » 06 Jun 2018, 13:47

GeekPenguinBR {l Wrote}:
hiker {l Wrote}:
GeekPenguinBR {l Wrote}:I can see this here, on STK, where some people give a side-eye to objects that are made on proprietary software for 3D modeling instead Blender. This may even cause the rejection of a contribution, depending on the level of mind of a developer. :(


hiker {l Wrote}:I am not aware of that ever happening with STK. Some people certainly have voiced their opinion on what tools should be used, and there might have been discussions along those lines, but I don't think the main devs have ever commented negatively or even rejected any contribution because of the tools used.


My text was not clear on that part. I was commenting about STK and this forum, of course, but I expanded my comment to every forum of Open Source games where, depending on the level of "zealotry", some developmer may even reject a contribution if it was not made by any FLOSS software. I should have said something like "I know that some people on this forum may dislike when I upload an art that was not made on Blender, Gimp, etc., but using a proprietary software.In some forums, this kind of contribution may be not accepted if the project leaders are "fanatics" for computer users' freedom.


The problem is that if you made something in non-free software, then other people can't easily edit/improve it. For example you made a kart/track in Maya, exported it to b3d and it was included in game. But then we started to use .spm format in STK that that gives us smaller file size, better quality etc. and we had to re-export all karts, tracks, models. And what would we do with your kart/track? Nobody wants to pay a lot of money to buy Maya software and anyway there is no .spm plugin for Maya, so you won't be able to re-export it. It's just an example and I just want to say that it matters.

Anyway if someone will make everything in Maya, then import it to Blender and share .blend file then I don't care at all :P
deve
 
Posts: 268
Joined: 23 Jan 2014, 13:45

Re: STK as high school course

Postby Auria » 07 Jun 2018, 00:33

A few more general notes. It's also important to differentiate open-source development made by contributors (like STK) and open-source development sponsored by companies (they would have a very different experience from our own)

- to understand how collaboration happens on a global scale
- to understand how open-source development works (parameters, limitations, freedoms, etc)
- to learn and apply the tools used to collaborate with your team (things like GitHub, I'm imagining)
- to learn how STK is designed (from a "big picture" systems view and how those pieces fit together to smaller discrete necessities)
- to modify the code in their own copies of the game to better understand things like kart mechanics, physics, AI, balance, items, etc
- to create their own karts, levels, textures, sounds, and music


A lot of the collaboration happens on IRC, when most core developers in various timezones happens to meet at the same time. Otherwise, github and the mailing list are also used for additional planning/communication work.

As for open-source freedoms and limitations : the main freedom is that every contributor is free to work on whatever they want, and the main limitation is that every contributor is free to work on whatever they want. In a corporate environment, if there is a task that needs doing, some paid employee is assigned the task and it gets done; whereas in open-source development, only tasks that someone is interested into will ever get made. We can't afford to have detailed plans for the future as you never know who will have free time for the project or not. Making sure everyone shares a common vision can be challenging. On the other end, this can provide amazing opportunities for contributors to work on whatever they like the most, which can be very rewarding.

How STK is designed, well there isn't all that much careful planning of the code architecture due to the somewhat unpredictable nature of open source development at our scale. It's mostly incremental, adding small improvements here and there in various iterations. Once in a while some refactoring occurs to clean parts of the code that didn't evolve well
Image
User avatar
Auria
STK Moderator
 
Posts: 2976
Joined: 07 Dec 2009, 03:52

Re: STK as high school course

Postby GeekPenguinBR » 07 Jun 2018, 20:32

deve {l Wrote}:For example you made a kart/track in Maya, exported it to b3d and it was included in game. But then we started to use .spm format in STK that that gives us smaller file size, better quality etc. and we had to re-export all karts, tracks, models. And what would we do with your kart/track?


Exactly the same you will do with all the rest of 3D files with Blender format, since this is the final format I send to you. There's no difference between the 3D objects made directly on Blender by samuncle and all the contributors and the mine, made on Maya and exported to Blender ;) Yourself answered your question:

deve {l Wrote}:Anyway if someone will make everything in Maya, then import it to Blender and share .blend file then I don't care at all :P
"Making cool harmless games makes the world a better place".
User avatar
GeekPenguinBR
 
Posts: 466
Joined: 22 Mar 2014, 00:41
Location: Rio de Janeiro

Re: STK as high school course

Postby a3kyle » 13 Jul 2018, 00:40

Hi Everyone!

I've been diving into STK and wanted to give you an update on my thinking for the course.
Again I'm interested in any feedback and direction you might have for me.

STK COURSE DESIGN:
- I think I will drop collaborative/teamwork goal for this particular course b/c of the variety of students I will get in this class.
- I'm leaning towards creating 2 pathways in this course and letting students choose one. There would also be multiple levels within each pathway.

The two pathways (and levels) would be:
A) Coding Pathway
i. Editing Config files
ii. Editing & working with Scripting files
iii. Suggestions? Really specific C++ code work?

B) Art Pathway
i. Making Library Nodes (3D assets)
ii. Making a Kart
a) from pre-existing kart
b) from scratch
iii. Other (sound, music, textures)

NEW QUESTIONS:
1) I could use some help understanding how scripting is implemented in STK and how to best have students interact with scripting on their own. It would be helpful to have some specific pieces of script files to interact with and understand how they interact with the primary code. It would be great to have specific tasks or challenges for the students.

2) I could also use some help understanding how the various config files are taken into the main C++ code. Perhaps again some places where students could interact with the C++ , config integration, or script integration? It would be great to have specific tasks or challenges for the students here as well.

3) With both of the previous coding questions, having some kind of "map" of where to find various things would be super helpful. I'm guessing a map of everything would be crazy to do but maybe a map of specific area or a web that shows how various pieces are connected?

4) As mentioned before the main code for STK is pretty dense. So my question is if you think there are any specific places in the C++ code that would be good for students to interact with? Maybe with respect to adding and implementing their own script/config files?

5) For someone brand new to how games are put together, I have a goal of my students better understanding how the different pieces of code layer on each other and interact with each other. If you have any ways of visualizing/explaining that, let me know.

Okay well that's what I have at the moment.
Thank you in advance for your time and thoughts!
a3kyle
 
Posts: 3
Joined: 03 Jun 2018, 20:55

Re: STK as high school course

Postby QwertyChouskie » 13 Jul 2018, 02:51

http://supertuxkart.sourceforge.net/doxygen/index.html is supposed to have a visual overview of the components, though it seems to be missing for some reason. (I filed an issues for it here: https://github.com/supertuxkart/stk-code/issues/3343)

A simple "starter project" that might get a good laugh from the students would be to have the "GIve up race" button in the pause dialog call:

{l Code}: {l Select All Code}
Online::LinkHelper::OpenURL("https://www.youtube.com/watch?v=dQw4w9WgXcQ");


:D There are probably some other good starter projects to allow your students to get familiar with the code (for those doing the code part). When in doubt, look through https://github.com/supertuxkart/stk-code/issues for some easier issues to tackle, e.g. https://github.com/supertuxkart/stk-code/issues/3319.
Contributor to/fan of STK (Upstreamed Cartoon theme, numerous random big fixes/tweaks)
User avatar
QwertyChouskie
 
Posts: 559
Joined: 29 Jun 2016, 14:57

Re: STK as high school course

Postby MTres19 » 13 Jul 2018, 04:30

Hi a3kyle,

As a high school student that has also done a bit of work with STK, (I (re)wrote much of the art documentation, so I can give you pointers if you can't find an answer) I can try to give some insight as well.

Because of the huge variation in possible projects your students could work on, I think you'll have difficulty teaching any students who are not familiar with learning things on their own. As has already been mentioned, Blender. Blender is a thing that could have a class of its own, but I will assume that's simply not possible. So, your students who wish to do 3D art will need to learn by themselves (Wikibooks has a great Blender guidebook by the way). Same goes for 2D artwork—whether they use Photoshop, GIMP, Krita, or some other program—and for programming, whether they use C++, AngelScript, or PHP (which is what the add-ons server is written in). To filter out kids willing to put an effort into your class, I recommend talking with your principal/counseling department/whoever is in charge, and asking to be allowed to make students apply for entry to your class. Even if you accept everyone who applied, I am 90% sure you'll ensure that your students are only those who are at least willing to put forth some minimum amount of effort.

Now, to answer some of the questions:

(1) Scripting uses AngelScript, which allows C++ classes, methods, functions, etc to be used from AngelScript scripts. I think the API is documented on the STK website. For an example see the library node stklib_fitchBarrel_a. Look at the scripting.as file.

(5) It's honestly kinda difficult if the students have never dealt with object oriented programming and C++ in particular. As is fairly standard for C++ applications, different "tasks" (such as handling config files, rendering the GUI, rendering races) are generally put into separate classes (sometimes with separate theads as well) and there is a "main loop" which dispatches user input events to everything else.
User avatar
MTres19
 
Posts: 191
Joined: 17 Aug 2015, 20:15

Who is online

Users browsing this forum: NickerAban and 1 guest