Advertisement

Welcome to the GameDev Challenges Forum

Started by October 03, 2017 03:00 AM
63 comments, last by Ana Mackay 7 years ago

What is this all about?

This forum is per request from the discussion at:

Game development challenges will be posted, and this forum can be used as a gathering place for developers participating in the challenges. More to come, including rules and procedures as we work with the community to figure out how best to manage these GameDev Challenges.

Admin for GameDev.net.

This is an awesome idea.

So here's your first challenge. Make Pong. Then make the ball change a random color everytime it hits a paddle.

So. That's not seriously the challenge. But I wonder what kinda challenges are the challenges going to be.

Gameplay changes. Code architecture. Adding certain features. Something else?

Shoutout to @MarcusAseth for the excellent idea!

Beginner in Game Development?  Read here. And read here.

 

Advertisement

Awesome, thanks @khawk! :D
@Alpha_ProgDes maybe we can have all of those "flavors", and the focus can change from challenge to challenge? Just an idea :P
The thing I think is important to keep in mind while designing this is the "Why" for the challenges, I personally think a part of it should be to give begginners the opportunity to see and fiddle with good code and compare their results with everyone elses, correct their mistakes and learn in the process.
The other part of it could be more advanced challenges for the Pros to have fun, though I am a begginner so I am more concerned on the begginner side of things :D

Anyway looking forward to see what shape the rules and challenges will take and to participate in them :)

Oooh, interesting. Will there also be timed challenges as in "Challenge of the Week", etc?

Fruny: Ftagn! Ia! Ia! std::time_put_byname! Mglui naflftagn std::codecvt eY'ha-nthlei!,char,mbstate_t>

Here are some random ideas as well, just so i have a post to store my ideas which gets extended as time goes on ;-)

 

2D Game clones:

- Make a

" rel="external">picking sticks clone in any graphics style

- Make a pong clone with the same graphics style as the original from atari 1972

- Write a pacmac clone with the same graphics style as the original from atari 1980

- Make a

" rel="external">arkanoid or 
" rel="external">krakout
(breakout with extension, items and enemies) clone in any graphics style

- Write a

" rel="external">tetris clone with the same graphics style as the original from nintendo gameboy 1989

- Write a super mario bros clone

- Write a lode runner clone

- Write a marble madness clone

- Write a

" rel="external">rtype clone

 

Hardware / Software constraints:
- Limited to some fixed hardware constraints, like only 16 MB of ram, x86 or x64 only, etc. (Simulating a console environment)

- Limited to some fixed software constraints, like SDL2, SFML only etc.

- Limited by some time (30/60 minutes, etc.) and with recorded proof on youtube

- Limited by programming language (JavaScript, C++, Java, C#,  Python, etc.)

- Limited by platform (win32, linux, unix, android)

- Limited by graphics (software, opengl, direct3D, vulkan) only

- Use fixed public domain graphics assets for game X

 

Programming challenges:

- Any kind of static variables or class members are disallowed

- Write in a data oriented style only

- Write in a object oriented style only

- Write a class doing something only

- Write everything from scratch without using any libraries - except C-Runtime

- Write just a api for something without any implementation

- Make certain things as fast as possible (Optimizations, SIMD, etc.)

- Make it cross platform working on win32 and linux with proper abstractions (Compiler directives in code sections are disallowed)

- Do not use any new or delete

 

Engines / Frameworks:
- Write clone X in unity3d

- Write clone X in unreal engine

- Write clone X in whatever engine

 

Game Technology:

- Write a crossplatform command based generic renderer

- Render 50000 sprites with each a different color but same or multiple textures, grid like positioned in less than 1/60 of a second

- Write a 2D/3D renderer simulating up to 100 point lights all visible in one frame in less than 1/60 of a second

- Simulate 10000 colliding/bouncing of random moving circles in less than 1/60 of a second (Appying gravity should not make it unstable)

I personally think that the "Write X game" wouldn't be a particularly good challenge type for several reasons (not saying this is the 100% truth of things, just how I personally feel about it):

1)Too broad and hard to judge and stay "on the same page". Even just with Pong begginners users would end up with 5-10 headers? and cpp files, flood the topics with it and probably noone would have the time to go trough all of it to understand how their framework is working and give feedback on it.

2)What would be the "example" way of doing it? Maybe begginner would learn from other begginner code and start doing thing just in a different and equally bad way.

--

So I think challenges should be smaller than writing a game and focused on something specific, the whole challenge should gravitate around a single concept and everyone head should be focused on it.

Example:

Let's say a Pro users provides for us the simplest barebone framework implementation of an ECS system in C++

We could make the most out of his work and make maybe 3 to 5 different challenges on top of it, one per week.

And so now the first challenge maybe could be just the creation of the timer class and game loop. Notice the benefit, keeping the focus on this single aspect is now easy for everyone to compare their work against each other, see exacly how they could have done something better and the most important thing is begginner are now able to self-evaluate their work without actually requiring some user reading all their code, because they can easily compare against each other (without getting lost on each other's framework). Had we done an entire game, they would have no idea on where to look in everyone's else code in order to compare with their, just too much stuff going on that would have prevented it.

Not only that, now a pro user at the end of the challenge could provide everyone with the state of the art implementation of the timer class, so now everyone can see the right way to do stuff and reason about where we did poorly. So this wouldn't require someone else evaluating every project, only a single class to easily enable everyone to self-evaluate.

Next challenge it would build on top of the (ECS Framework code + TimerClass code) and maybe would be the Entity class using the components, this would imply making the paddle, brick and ball because they are pretty much similar, so in this case the focus is still not too broad. Same format, with a pro user showing us at the end of the challenge the better ways to use components, having them talking to each other (or not) and so on.

And the third challenge would build again on top of this, maybe the topic would be Collision detection :)

 

I am not saying "whole game challenges" are bad, of course users have a lot to learn from it, but those are too hard to judge because of their scope, so I don't think it's particularly well fit for a challenge where the goal is to learn from each others. And, people tend to do that on their own anyway(inbetween challenges), so it would be redundant.

Only my personal opinion :P

Advertisement
26 minutes ago, MarcusAseth said:

I personally think that the "Write X game" wouldn't be a particularly good challenge type for several reasons (not saying this is the 100% truth of things, just how I personally feel about it):

1)Too broad and hard to judge and stay "on the same page". Even just with Pong begginners users would end up with 5-10 headers? and cpp files, flood the topics with it and probably noone would have the time to go trough all of it to understand how their framework is working and give feedback on it.

2)What would be the "example" way of doing it? Maybe begginner would learn from other begginner code and start doing thing just in a different and equally bad way.

--

So I think challenges should be smaller than writing a game and focused on something specific, the whole challenge should gravitate around a single concept and everyone head should be focused on it.

Example:

Let's say a Pro users provides for us the simplest barebone framework implementation of an ECS system in C++

We could make the most out of his work and make maybe 3 to 5 different challenges on top of it, one per week.

And so now the first challenge maybe could be just the creation of the timer class and game loop. Notice the benefit, keeping the focus on this single aspect is now easy for everyone to compare their work against each other, see exacly how they could have done something better and the most important thing is begginner are now able to self-evaluate their work without actually requiring some user reading all their code, because they can easily compare against each other (without getting lost on each other's framework). Had we done an entire game, they would have no idea on where to look in everyone's else code in order to compare with their, just too much stuff going on that would have prevented it.

Not only that, now a pro user at the end of the challenge could provide everyone with the state of the art implementation of the timer class, so now everyone can see the right way to do stuff and reason about where we did poorly. So this wouldn't require someone else evaluating every project, only a single class to easily enable everyone to self-evaluate.

Next challenge it would build on top of the (ECS Framework code + TimerClass code) and maybe would be the Entity class using the components, this would imply making the paddle, brick and ball because they are pretty much similar, so in this case the focus is still not too broad. Same format, with a pro user showing us at the end of the challenge the better ways to use components, having them talking to each other (or not) and so on.

And the third challenge would build again on top of this, maybe the topic would be Collision detection

 

I am not saying "whole game challenges" are bad, of course users have a lot to learn from it, but those are too hard to judge because of their scope, so I don't think it's particularly well fit for a challenge where the goal is to learn from each others. And, people tend to do that on their own anyway(inbetween challenges), so it would be redundant.

Only my personal opinion

Challenges should always have a limited boundary and can be finished in a fixed amount of time. Also everyone should have the same environment, so that you can compare the actual details.

 

And yes some challenges require some sort of starting framework - which is the limited boundary i am talking about.

 

Also a challenge should be clear and well explained, so write a "pong clone" is not sufficient enough. It should be totally clear what the tasks are and contain room of extensions only if needed.

Thinking to what I wrote above I realized one thing, we need 2 types of challenges (imho).

--The "Make X game" should be a everlasting challenge with NO DEADLINE. Anyone can jump into it and do it when he/she feels like.

--The "Focused Challenges" I talked about above should be like the weekly or monthly event with a deadline.

Now the logical question is, if this was the case why one would have to bother and "go complete the make x game challenge"?! Answer is, Achievments! xD  Imagine if you could have a "badges" page with a nice special badge different for every game you complete, one would be kind of tempted to do it and just be able to show off on the forum, with all his badges :D

On the other hand the recurring challenges (weekly or monthly) should either provide a generic badge of participation (not unique as for the complete games) that keeps counting up, and possibly a special "best implementation" badge for the users who excell at a particular challenge.

Now to answer the question "how would one prove he actually made the game, in order to get the badge?!"

That's a tricky one, I would say honesty mixed with a link to a short video like

" rel="external">my snake attempt in unreal engine

What's staff opinion on the badge matter? I realize could be an unnecessary bother, let's say would makes thing better (imho) but is not required :)

1 minute ago, MarcusAseth said:

Thinking to what I wrote above I realized one thing, we need 2 types of challenges.

The "Make X game" should be a everlasting challenge with NO DEADLINE

The "Focused Challenges" I talked about above should be like the weekly or monthly event with a deadline.

Now the logical question is, if this was the case why one would have to bother and "go complete the make x game challenge"?! Answer is, Achievments!   Imagine if you could have a "badges" page with a nice special badge different for every game you complete, one would be kind of tempted to do it and just be able to show off on the forum, with all his badges

On the other hand the recurring challenges (weekly or monthly) should either provide a generic badge of participation (not unique as for the complete games) that keeps counting up, and possibly a special "best implementation" badge for the users who excell at a particular challenge.

Now to answer the question "how would one prove he actually made the game, in order to get the badge?!"

That's a tricky one, I would say honesty mixed with a link to a short video like

" rel="external">my snake attempt in unreal engine

What's staff opinion on the badge matter? I realize could be an unnecessary bother, let's say would makes thing better (imho) but is not required

Agree.

Question: How creates the challenges? Everyone? Mods only? Everyone but with approval of mods?

This topic is closed to new replies.

Advertisement