# Adapting a Games Jam



## kpedersen (May 18, 2020)

Over the last few years at the University I have run some events known as "Game Jams" for my students. These have also become increasingly popular over recent events.
For those of you who have not heard this term, it is basically a 24hr/48hr hackathon where the participants, either individually or as part of a team, get to test out their skills and any new ideas to make a game based on a theme (such as "Waves" or "Time Travel"). The students generally love them (as do quite a few members of staff who take part).

They are not graded on it but they do get to win a few prizes (from the department budget). A larger scale example is here: https://globalgamejam.org

I was wondering if anyone on these forums would be interested in similar. In particular I was even thinking that if we set the theme to something less game related and more like "Utilities", we could end up with some cool results. For example if we got 20+ people involved and we each wrote a tool like a text editor, calculator, app menu, etc. We would have a fairly decent start to a FreeBSD specific desktop environment. We can perhaps also build on this in the next "Games Jam".

Some random ideas:

This format would also be ideal for those who do not develop software professionally or might be a bit rusty. Writing a simple image viewer is a much easier task to accomplish in a day or so compared to fixing a full featured one from Gnome. It should be fun and "light" rather than a chore.
If people like the idea of a prize, perhaps we can just donate tech "junk" to the winner. I have stuff ranging from novelty pens, all the way up to older graphics cards. I am sure we all do 
If we do decide on desktop utilities rather than games, we could possibly agree on a widget toolkit (and a language) before hand to keep things consistent. However I think this should be fairly flexible to keep it "fun" rather than "correct".
If people prefer to write games, fair enough, we could have the theme being "Beastie" or "FreeBSD awareness" to keep it slightly on track! 
Can a text editor be written in 24hours? Yes, if the scope is kept small (like Microsoft Notepad). This itself could actually be a really unique way to reduce "open-source bloat". Likewise developing our (winning!) entries in isolation prevents it becoming a modular monolith (like libgnome, libxfce4util, etc).
Big tasks involve a File Manager, Window Manager. However I am sure some here are up for the challenge. Most importantly having an extremely basic file manager rather than none at all is still cool (and might win!). The window manager could even just be a simplified hack of OpenBox or lesstif's mwm.
At the uni we also provide an "art" prize for the 3D modelling students. Potentially we could so similar here.
Should we give it a try? What do you guys reckon?


----------



## a6h (May 18, 2020)

Regardless of the project itself, I think it is best to limit, the scope of development environment to FreeBSD tools from the base system. i.e. POSIX SH, Clang C and if necessary assembly (although fasm is far superior) besides common FreeBSD tool chain and utilities.
Web oriented technology and ad hoc scripting languages will clutter the project up with complexity.


----------



## kpedersen (May 18, 2020)

vigole said:


> Web oriented technology and ad hoc scripting languages will clutter the project up with complexity.



I tend to agree but at this point, I am mindful that people don't always like to develop in C/C++ so "base-only" could potentially exclude quite a few participants.

As a compromise, we could go for base system *and* Xorg (which we can assume is installed if we go for the GUI desktop tools theme). Now interestingly enough Xorg (probably erroneously) drags in so many things (Python 2, Python 3, Perl, etc) that this isn't much of a limit at all. Which does provide the much needed flexibility to make this fun.


----------



## Jose (May 18, 2020)

I think this is a great idea! Something I might work on is a front-end for bhyve. I get the idea that might be useful from watching this: https://forums.freebsd.org/threads/options-for-virtual-machines-on-freebsd.75453/#post-463581


----------



## kpedersen (May 19, 2020)

Jose said:


> Something I might work on is a front-end for bhyve.



Nice, that sounds like a cool idea. I was hoping for things like this that are pretty unique to FreeBSD. 

Unless anyone else was going to attempt similar, I was leaning towards a minimal GUI jails management tool that was mostly all done through a system tray icon.


----------



## Mjölnir (Sep 25, 2020)

I would not agree to limit development to languages & tools from _base_.  Instead, it makes sense to take new, advanced languages & technologies like _D, Rust_, or _QML_.  Keep in mind that a major issue/task in software development is to write, apply & pass _tests_.  E.g. IIRC the _RedoxOS_ kernel (written in _Rust_) is proven/verified to conform to it's specifications.  Such verification is nearly impossible in traditional languages, and much easier in modern ones.  For the realm of GUI, a rule-based approach is very natural & well suited; for a long time I thought _ECMA Basic/JavaScript_ is only for the web, until _Qt_ came up with _QML_.  Currently, there is the _Lumina Desktop_ written from scratch to get rid of linuxisms & apply to BSDs.  Nevertheless, it makes sense to use the collected wisdom from projects like _freedesktop.org_.  So my 2¢: anyone who wants to help BSD desktop GUI, get involved with _Lumina_.


----------

