While gamedev and coding challenges were something I've usually done on the Polish side of the mirror, I finally felt brave enough to try and invite all of my readers/viewers/visitors to participate. So, long story short, I would like to propose a month-long game development challenge - i.e. a kind of an informal (think: compo) competition where the participants (for example: you) try to create a game under a specific set of constraints written below.

EDIT: New category added 2017-08-05:
Since quite a lot of folks are asking about using game engines, game frameworks, high-level libraries for game development and other types of game makers, I have decided to add a second category to the competition: Games Created Using a Game Engine. All rules apart from "Games cannot be created in any "game maker" software or dedicated engines" still apply, and there will be a separate ranking and set of prizes (see Prizes section below) for this category. Have fun!
For the sake of this compo I will refer to the original category (the one disallowing game engines/etc) as Games From Scratch Category.
END OF EDIT

Constrains:
Game related:
• The game can be of any genre or be a mix of genres.
• The game can only use THIS (click to download) graphical art (created by Kenney; see License.txt file for licensing details, but it's CC0). Yes, this will make all the games look the same - please focus on gameplay.
• Modifying the above assets is not allowed. Exceptions: standard transformations like resizing, rotating, moving around, moving sprites to different files, converting to different file types, color transformations. When in doubt, please ask in the comment section.
• The game can use one additional font, provided that it's a monochrome font (e.g. a single color + transparency/single-background-color bitmap font or a ttf/otf/woff vector font or similar); however only characters present in the IBM 437 code page can be used. "Monochrome" requirement is related to the file - you can color the font in game as you like.
• The text in game, if any, must be in English.
• There are no rules regarding music or sound (but please make sure that you can use a given asset for commercial purposes and distribution).
EDIT: New category added 2017-08-05:
• In the Games From Scratch Category games cannot be created in any "game maker" software or dedicated engines (e.g. RPG Maker, Unity, Unreal Engine, etc). Libraries providing I/O, reading assets, rendering fonts, etc are most welcomed. If in doubt, ask in the comments.
• In the Games Created Using a Game Engine Category the above rule does not apply, i.e. you can use any "game maker", game library or game engine. All other rules apply.
END OF EDIT
• A given game MUST run on one of the following operating systems: Ubuntu Desktop 17.04, Microsoft Windows 7 or Microsoft Windows 10. One exception is: a game can run in a standard web browser (Chrome, Firefox, Edge or IE) too.
EDIT: Rules added 2017-08-05 (after discussion in the comments):
• You are allowed to use and/or create additional UI assets, however the UI must be three colors at most (one background color and two foreground colors; antialiasing can be turned on and doesn't count into the limit). I.e. please settle for a simple UI. If you are using UI assets created by someone else, please make sure the license allows you to use them for commercial purposes.
• You are allowed to use procedurally generated graphical effects (but please do not use this rule to create additional object/background assets).
END OF EDIT
Contest related:
• Games must be submitted by sending a link to a downloadable package (hosted e.g. on Google Drive or something similar) to the following e-mail address: gynvael+gamedev2017@coldwind.pl (please also add a comment under this post that you sent an e-mail - otherwise I won't know that I didn't get an e-mail and can't debug it).
• Source code MUST be included (all required binaries should be too). By submitting the game you agree to the game being re-hosted by me for anyone to download and test once the competition is over. I won't be doing anything weird with the game after the competition, but I want participants to learn from each other after the compo is over.
• Submission deadline is 3rd of September 11:59pm (23:59) CEST (i.e. GMT+2).
• Games not following above rules will not participate in the competition.
• When in doubt, ask in the comment section below.
• Gynvael's Livestream crew cannot participate in the contest (but can submit games to be showcased).

Prizes:
The prizes are somewhat symbolic, but I wanted to have some anyway:

Games From Scratch Category
Top 1: 150 USD (or equivalent) giftcard in amazon.com / .co.uk / .jp or .de (winner's choice).
Top 2: 100 USD (or equivalent) giftcard in amazon.com / .co.uk / .jp or .de (runner up's choice).
Top 3: 50 USD (or equivalent) giftcard in amazon.com / .co.uk / .jp or .de (third place's choice).

Games Created Using a Game Engine Category
Top 1: 150 USD (or equivalent) giftcard in amazon.com / .co.uk / .jp or .de (winner's choice).
Top 2: 100 USD (or equivalent) giftcard in amazon.com / .co.uk / .jp or .de (runner up's choice).
Top 3: 50 USD (or equivalent) giftcard in amazon.com / .co.uk / .jp or .de (third place's choice).

Unfortunately due to local and international laws participants from countries where this would be disallowed due to embargoes by Switzerland/European Union/Poland are not eligible for prizes (sorry). They can still participate though.

How the games be judged:
• There are no written-in-stone rules about that, but...
• I'll generally focus on the overall game quality (gameplay, creative use of assets, fun to play).
• I will totally ignore source code quality - please focus on the gameplay/etc. If the game crashes, but is mostly playable, I'll ignore the crashes too.
• I will also ignore game size / requirements, but I do expect that one of my PCs will be able to run the game smoothly (I will test the game on one/both of the following specs: i7 8-core/16-thread 128GB RAM with GTX 980 Ti and/or i7 4-core/8-thread 32GB RAM with GTX 1080 Ti).
• I will generally try my best (including consulting with the participant if needed) to make sure that the game is running as intended by the creator, as long as eventual patches / resubmissions are within the deadline mentioned in the Constraints section.
• If I will invite more judges to participate (e.g. if I feel the need for a second opinion) they will follow the same guidelines.

FAQ:
Q: Who made the game art that we'll be using?
A: It was created by Kenney. Be sure to visit his site. If you would like to donate, he has both a donation page and patreon running.

Q: Should I write in a Readme.txt / game credits about Kenney?
A: Formally Kenney doesn't require it, but it's always a nice gesture to give credit where credits are due :)

Q: I found Kenney's assets on OpenGameArt/other site and there were additional assets in the "Space Kit" you posted. Can I use them?
A: No. For the sake of the competition please only use the once linked in the rules above.

Q: Why can't I use other graphical assets? Why must I use only the one you posted (by Kenney)?
A: Think of it as a challenge! Try to be creative, focus on the game play. This one time you don't have to worry about making your game assets look super awesome - everyone will have the same assets.

Q: You said I can use resize on the assets... Can I resize each asset to 1px and then make a new asset out of that?
A: No.

Q: Can I use the assets which are available by default on Windows/Ubuntu?
A: For sound? Yes. For graphical assets? Only fonts (see above font rules though).

Q: So how about I put some new graphical assets in the bitmap font sprite? I can use one, right?
A: You can put the assets there, but you cannot use them (see the IBM 437 rule).

Q: Ah, right. So how about I convert my graphical assets to a sound file and render said sound file as a graphical asset?
A: No.

Q: But...
A: No. Please don't try to bypass the asset rule :) Instead e.g. focus on the gameplay.

Q: I've created my own game engine in the past - can I use it in this competition?
EDIT: Answer changed on 2017-08-05 (after adding the new category):
A: Yes, you can use any game engine in the "Games Created Using a Game Engine Category". In the "Games From Scratch Category" only very simple frameworks are allowed that don't do much more than SDL/SFML/etc.
END OF EDIT

Q: I'm using this AMD Radeon / Intel specific graphical option, but your specs don't cover it.
A: Yes, in such case I won't be able to run your game. Maybe there is a way for you to work around the issue and get a similar effect using more common features?

Q: Can I write my game in JavaScript for a web browser?
A: Sure :)

Q: Hey, it's me again. About new assets - can I just put some new pixel bitmap data as a byte/float/string/whatever array in the code?
A: No. Please use only the allowed graphical assets. Seriously.

Q: So how about I convert the pixel bitmap data to a series of "PutPixel" calls?
A: No. Please don't try to bypass this rule. Pretty please. With cherry on top ;)

Q: When will the results be announced?
A: Middle/late September, depending on the number of submissions. I will do a blog post announcing the winners at some point.

Q: I never took part in any gamedev compo like this. Can I still participate?
A: Sure! It's a great learning experience!

Q: Can I blog / tweet / livestream the making of my game?
A: Sure. Keep in mind that you will be revealing your ideas to other participants this way (it's within the rules to do it, but not everyone likes doing it).

Q: So what if I create a new sprite by using top-left corner pixels of various sprites shifted by small offsets and then crop it a little?
A: ...

EDIT: Entries added 2017-08-05 (after adding the UI/procedurally generated graphics rule):
Q: Can my UI elements be a part of the game world (i.e. interact with in-game elements, e.g. collide with assets)?
A: No. This would bypass the "no new graphical assets" constraint. The UI should be the UI and not part of the world.

Q: Can my procedurally generated effects interact with the world elements?
A: It depends. E.g. it would be OK for debris falling after an explosion to collide / cause damage to the surroundings. However, please do not use the procedurally generated graphics to bypass the "no new graphical assets" constraint; these should be used for graphical effects only.
END OF EDIT

See also the comment section for possibly more questions and answers. Feel free to also ask there if you have any questions.

Final words
Feel free to let your friends know about this competition - the more, the merrier.

Have fun, good luck!

Comments:

2017-08-04 22:01:56 = Michcioperz
{
The part about engines being forbidden sounds interesting, but with browser games allowed it feels like an unfair advantage to some extent.
}
2017-08-04 22:15:11 = Gynvael Coldwind
{
@Michcioperz
Various platforms will always have their differences (and one is free to choose the platform one thinks is the most beneficial one for this competition, as long as its within the rules).
In the end I would argue the browsers and e.g. C++/SDL2 (or Python/PyGame) are closer to each other than browsers and a game engine like Unity.

It's an interesting discussion to have, though this rule is actually something I copied from past competitions I took part in and I do think it's OK ;)
}
2017-08-05 00:16:12 = adiog
{
I will just leave this gem here: http://www.zachtronics.com/yoda-stories/ . Speaking about the contest: I am not in favor of ignoring the code quality - I understand that the gameplay is more important, but I believe if you could provide at least some feedback about the quality it might be really appreciated by the contestants.
}
2017-08-05 02:03:42 = Luke
{
Will SFML be OK as a graphics library?
}
2017-08-05 07:14:52 = KubenQPL
{
What about graphics for GUI, can be used some own made?cAnd what about procedurally generated graphics?
}
2017-08-05 08:30:53 = Gynvael Coldwind
{
@KubenQPL

Ad "graphics for GUI":
That is a good question. But since the boundary has to be drawn somewhere, let's settle for an additional rule:
• You are allowed to use and/or create additional UI assets, however the UI must be three colors at most (one background color and two foreground colors; antialiasing can be turned on and doesn't count into the limit). I.e. please settle for a simple UI. If you are using UI assets created by someone else, please make sure the license allows you to use them for commercial purposes.

Ad "procedurally generated graphics":
I'm OK for using it for graphical effects, but not for adding objects/backgrounds/assets. I'll add this as a rule too.
• You are allowed to use procedurally generated graphical effects (but please do not use this rule to create additional object/background assets).
}
2017-08-05 12:29:29 = but
{
but these assets are ugly...
}
2017-08-05 12:39:57 = Gynvael Coldwind
{
@but
Think of it as a challenge - can you make a beautiful game with assets you dislike? ;)
}
2017-08-05 13:14:27 = KubenQPL
{
@but this is a matter of taste. In my opinion it looks pretty nice but isometric view may restrict to some game genres, but maybe somebody will make some "weird" composition and it will turn out great (who would thought that car football can be such fun? [Rocket League])
}
2017-08-05 13:31:51 = aergy
{
Can I use LibGDX? Or should I use something smaller like LWJGL?
}
2017-08-05 13:43:56 = Gynvael Coldwind
{
@aergy
Thank you for asking :)

LibGDX would be fine if not for these three features (maybe other too):
- 2D Particle system
- TMX tile map support
- 2D scene-graph API
Given this it falls too much into 'game engine' category (and these are not allowed).

LWJGL is fine to use.
}
2017-08-05 13:52:04 = KubenQPL
{
@Gynvael Coldwind what about using libgdx without these mentioned features? We uploud source code so it can be checked.
}
2017-08-05 14:02:21 = Gynvael Coldwind
{
@KubenQPL
This would require us to have a per-library list of base features that can be used and base features that are banned.
And it also might lead to situations like a submitted game using a high-level feature which I was not aware of (but would be banned if I was) and there being not enough time to recreate the feature by the participant from scratch and re-submit the game.
Since I would prefer to avoid such situations I prefer to draw a rather strict line and ask not to use game engines (game frameworks / libraries like LibGDX) at all (even if one would not use high level features).

That said, I'm playing with the idea of making a second category for this competition: games made using game engines / frameworks / libraries / etc. It would be fun to compare both categories in the end.
What do you think?
}
2017-08-05 14:11:02 = KubenQPL
{
So long story short allowed is OpenGL/DirectX/Vulkan and libraries that solve the rendering by mentioned Graphic Libraries. Ok i did not got it right earlier. I took Libgdx as library :)

Second category is good idea :)
}
2017-08-05 15:00:21 = Maciek
{
Are teams allowed or you need to do this alone?
}
2017-08-05 15:02:53 = Gynvael Coldwind
{
@KubenQPL
I'll ask around - if there are many people interested in the second category I'll make it happen.

@Maciek
Teams are allowed :)
}
2017-08-05 16:30:56 = Deuterion
{
Is Slick2D eligible for the compo?
}
2017-08-05 16:37:30 = Gynvael Coldwind
{
@Deuterion
Not in the original category. Though might be in the added category if I'll decided to add it (I'll decide probably within an hour, but I'm leaning towards adding it).
}
2017-08-05 17:14:46 = Gynvael Coldwind
{
@adiog
While I agree, it's hard for me to provide feedback for languages I'm not fluent in.
Also, I actually want the contestants to not worry about writing bad code ;)

@Luke
Yes, it's fine.
}
2017-08-05 17:31:08 = zzzzzzzzzzz
{
Is using Tiled ( https://thorbjorn.itch.io/tiled ) or something similar allowed? That is additonal software to create levels, maps etc. obviously from required by this competition resources (for which alternative is creating these levels in notepad *afaik* )
}
2017-08-05 17:34:52 = Gynvael Coldwind
{
OK, I've just added a second category that allows game engines / LibGDX / Corona SDK / Unity / etc. This also comes with a separate ranking and prizes.
Have fun!
}
2017-08-05 17:36:54 = Gynvael Coldwind
{
@zzzzzzzzzzz
Yes, it's allowed.
}
2017-08-06 22:20:42 = Luke
{
Is it allowed to draw lines between elements of the world to signal their connection (think: switch-gate)?
}
2017-08-06 22:29:34 = Gynvael Coldwind
{
@Luke
I would consider that a part of UI, so it's fine.
}
2017-08-08 21:04:29 = yz
{
Why game engines wrote from the scratch are in Game Engine Category? I think if they aren't available for anyone, they are like a game made from a scratch. "Engines" created by one (max a few devs) cannot be competitive with UE or Unity, which are much more complex and had a great community and devs backgrounds.
What about a situation when someone creates small engine, for the purpose of the contest? They should fight with UE or Unity? What's more, I think any game could be a "game engine", because you can use it another time, and create next awesome game :p
}
2017-08-08 22:16:56 = Gynvael Coldwind
{
@yz
Well, "game engines" are in the "Game Engine Category" because they have "game engine" in the name and so does the category name ;)

More seriously though, the FAQ explains (give or take) where I drew the line:

Q: I've created my own game engine in the past - can I use it in this competition?
A: Yes, you can use any game engine in the "Games Created Using a Game Engine Category". In the "Games From Scratch Category" only very simple frameworks are allowed that don't do much more than SDL/SFML/etc.

The reason for this distinction is time. Participants writing from scratch need to first write what participants using a game engine have ready to use from the start (e.g. map rendering, collisions, particle engines, event scripting, etc).

If you wrote your own engine which has some of these features (or similar ones) and clearly doesn't fall into the allowed 'simple frameworks' box (when in doubt, ask), you can basically decide whether it gives you an advantage to use it (and fall into the "Games Created Using a Game Engine Category") or if putting the engine on the shelf for the purpose of this compo and create the game from scratch is a better idea. I.e. if you think that it cannot compete with e.g. Unity in the context of this competition (and context is important here), maybe it's worth not using it?

And while I agree that engines created by a single dev usually (I did see some very impressive ones though) cannot compete with UE or Unity, there is one thing that has to be said here: perhaps all the magnificent 3D features of UE are actually not relevant in a competition with simple 2D isometric graphics and a simple 2D isometric game engine created by a single person (that the person knows really well due to the sole fact of actually creating it) gives more of an advantage than the aforementioned UE?

Well, in the end it's an interesting discussion to have, but for the sake of this competition the line has been drawn :)
}
2017-08-11 08:47:14 = Maciek
{
What about using some icons for UI buttons, is it allowed?
And one more question about those 3 UI colors, Can I use gradients or different shades of those colors?
}
2017-08-11 08:52:53 = Gynvael Coldwind
{
@Maciek
Sure, as long as the icons are using only the 1 background + 2 foreground colors of the UI.

You shouldn't use gradient in the UI (one exception is the natural gradient that occurs when doing antialiasing of the edges - that is allowed).
}
2017-08-11 09:28:19 = Maciek
{
@Gynvael Coldwind Thanks for answer, but what about those shades? I wanted to make my buttons change colors when covered with mouse(brighter)/clicked(darker) like in most gui's
}
2017-08-11 09:37:31 = Gynvael Coldwind
{
@Maciek
Nope, 3 colors only (as in: 3 RGB values): 1 background, 2 foreground. That's it.
}
2017-08-11 17:05:17 = DeKrain
{
In font rendering, can I use fonts with shading (i.e. different light values)?
In my implementation (using FreeType), rendering fonts with single color value looks horrible. (Or maybe I did something wrong?)
}
2017-08-11 19:33:18 = Gynvael Coldwind
{
@DeKrain
Do you mean antialiasing or gradient?
If antialiasing, then that's allowed.
If gradient, then it's not (two foreground color rule).
}
2017-08-11 20:55:39 = DeKrain
{
Yes... so it's only anti-aliasing.
}
2017-08-14 14:04:46 = LuoXiahong
{
It's said that we could use only 3 RGB values. What about alpha channel (applied on UI elements or on sprites) :D ? I suppose it's forbidden, but to be sure, I wonder if you could answer my question.
}
2017-08-14 14:10:52 = Gynvael Coldwind
{
@LuoXiahong
Alpha channel is allowed in the UI under the following conditions:
- It is used either in 1-bit mode (i.e. either something is fully opaque or totally transparent).
- It is used for anti-aliasing.
Other uses are not allowed.
}
2017-08-16 22:01:16 = bartolinciu
{
Can I use assets made by Kenney in my UI?
}
2017-08-17 02:51:08 = Marek
{
Can i use Kenney's assets non-directly?
What I mean is, that I wish I could put em up together into a map and display it as one piece of graphic, instead of generating it during the run-time...

Okay, I admit - im just too lazy to write the code...
}
2017-08-17 08:20:23 = Gynvael Coldwind
{
@bartolinciu
I wanted to say "yes", but the rule seems to say:

"[...] the UI must be three colors at most (one background color and two foreground colors [...]"

So let's leave it at that - i.e. yes, you can use them, but they must use 1bg + 2fg colors at most (+full transparency as mentioned in the comments above), and these should be the same colors as the rest of the UI.

@Marek
Yes, as long as they are still recognizable (putting them together into a "pre-rendered" map sounds just fine).
}
2017-08-18 07:30:42 = KubenQPL
{
This rule with 3 colors of UI is just complicating, provided Kenney's assets should be exception from that rule, for a player selection by name is so much less comfortable than by image of specific item.
}
2017-08-18 23:13:14 = bartolinciu
{
If there is a transparent stripe on the edge of asset like shown here: https://www.easypaste.org/file/56lOAtep/2017-08-19.LI.jpg?lang=pl
can I cut it out for easier fitting the asset in the game?
}
2017-08-19 08:00:32 = Gynvael Coldwind
{
@KubenQPL
All the constrains are "just complicating" - that's the general idea, to force participants into creative approach. Ask yourself if 'selection by name' is the only possible solution - I would argue that it's not.

@bartolinciu
Yes, that's OK.
}
2017-08-28 15:50:34 = bartolinciu
{
Is it allowed to change cursor to one of system default cursors?
}
2017-08-28 16:49:11 = Gynvael Coldwind
{
@bartolinciu
Do you mean the mouse pointer? Ideally it should be in the same colors as UI, but if someone leaves it as the system default (i.e. doesn't change the cursor at all) that's OK with me.
}
2017-08-28 18:58:28 = bartolinciu
{
@Gynvael Coldwind
I mean using system default set of mouse pointers(arrow, hand, crosshair, etc). E.g changing arrow to hand when mouse pointer is over the button.
}
2017-08-28 19:10:27 = Gynvael Coldwind
{
@bartolinciu
As long as they are the default ones I guess we can make an exception.
However ideally the UI elements should be in the said 2fg+1bg colors.
}
2017-08-29 01:18:53 = someone
{
I have a question concerning background, as there are no background sprites in the pack. Is it considered a part of UI? You wrote that UI can only have one background color – does it mean that game has to have plain color background? What is considered a background color? If I display text with an outline – is any of two text colors (fill + outline) a background color?

At first I thought I could cut a fragment from a preview image (https://i.imgur.com/E2FgRam.png) and use it as a background, but then I read the rules one more time and it seems you don't allow cropping... :|
}
2017-08-29 06:21:00 = Gynvael Coldwind
{
@someone
Ad cropping:
I would say that cropping is allowed under the "standard transformations" rule.
An exception is specified the FAQ where cropping to 1x1 px would be used to create completely new assets (that said if you pick larger blocks of assets and try to combine them in a way that one still can tell which original assets were used, I would say that's barely within the rules).

Ad background:
The UI background falls under the 1bg+2fg color rule, but if you want to add a game background (e.g. under the displayed map) then you can use the provided assets to do it (or consider it as part of UI and use the UI color, I don't mind either way).

Given the above, I think that using the tile you've shown for background is just fine.

Ad outline:
I would argue that the two interpretations below are allowed:
- an outlined font can be made of 2 fg colors
- an outline font can be made of 1 fg color (outline) and 1 bg color (internal filling)

Hope this helps.
}
2017-08-29 15:51:00 = someone
{
@Gynvael Coldwind

It's a bit clearer now., but still seems complicated.
What if my background isn't a part of the world, but simply a background behind a map?
}
2017-08-30 14:28:35 = Dominik
{
Can I use one fg color in UI and second fg color for mouse over UI option?
}
2017-08-31 12:49:44 = Gynvael Coldwind
{
@someone
That's OK. I wouldn't consider map/stage/level background to be the same as UI background, so as long as it's an asset from the predefined set that's OK.

@Dominik
As long as you don't exceed the 2 fg colors in the UI that's fine.
}
2017-09-03 00:05:32 = mactec
{
Email Sent
}
2017-09-03 00:55:08 = Luke
{
Submission sent.
}
2017-09-03 05:52:43 = dontru
{
Email sent
}
2017-09-03 11:21:36 = Gynvael Coldwind
{
@mactec
@Luke
@dontru
I confirmed reception via e-mail. Thanks!
}
2017-09-03 11:43:18 = Piotr
{
Email sent.
}
2017-09-03 11:49:35 = Marcin648
{
Send!
}
2017-09-03 12:58:47 = emis
{
Email sent.
}
2017-09-03 17:32:12 = GjM
{
Email sent !

GjM && mioot
}
2017-09-03 20:43:31 = Gynvael Coldwind
{
@Piotr
@Marcin648
@emis
I confirmed via e-mail.

@GjM
Please check your e-mail - I had some trouble running the game.
}
2017-09-03 21:20:44 = GjM
{
Now it's all ok.

GjM && mioot
}
2017-09-03 21:57:55 = pr0gramista
{
Email sent.
}

Add a comment:

Nick:
URL (optional):
Math captcha: 3 ∗ 5 + 9 =