Game comp ideas for Comp May 4th to Jun 30th

Started by Qube, April 19, 2018, 16:44:20

Previous topic - Next topic

iWasAdam

Here's a list of genres
Roguelike
Sim/simulator
Adventure
Real-Time Strategy (RTS)
Puzzle
Arcade
Remake
Retro
Low-poly
Cards
Card Collection
Tower Defence
Platformer
Strategy
Action
Mario
Endless
Stealth
Shooter
Match Games
Combat
First Person Shooters (FPS)
Sports
Role-Playing (RPG)
Educational

Derron

#61
nice list - I would remove "Low-Poly"/retro as it is a graphical limitation and might look "odd" if you want to create a low-res/retro (2D) game already and now also need to make it "polygon style".
Also you (or I if desired) might add chances that "ambience" _or_ "theme" are left out (eg. 30% to skip ambience - and if not skipped, 30% to skip theming)

So you have genres - want to add "ambience" or a "theme" too?
"dangerous", "foamy", "bright", "frightening", "cute", "delicious"...
"Clowns", "Springs", "Animals", "Cars" ...

So the final generation might become:
dangerous
Clowns
Roguelike or Arcade

----

foamy
Animals
Adventure or Puzzle

----

Cars
Cards or Tower Defence


----
and so on.


One could even add another "option list to choose": lundum dare themes. So someone could use the LD generator and create a list of 20+ entries (or proposals from here in the forum). Then with X percent change a random theme from there is choosen instead of a random "ambience theme genre" mix.



@ video
If you use a video you could replace array access with a simple rand(0, count($arr)) :-).
What we could do too, is that eg. "I" create a script which creates a random file with a random number - a new one each day at UTC 0:00 and cached for further responses. I also host this script, so "a second person" is part of the random-challenge. The script on Qube's side is having a secret key _I_ do not know, and my script is using a key Qube does not know. Qube's script is then requesting a random seed from my (external) script. Gets a number which is very specific to that day (all people requesting the number on that day and afterwards will get this number). With this number and Qube's secret key we can generate a "seed" used for the calculation.
As Qube could manipulate the formulas to calculate stuff, the script must fetch it's stuff from external sources too - or the whole script is running somewhere publically (eg. a jscript on github pages) and is then fetching the two keys (eg. one from www.syntaxbomb.com and the other one from my www.gamezworld.de). The "key scripts" do return "0" in the case of the competition not being started yet (and the js could interpret it then).

Hmm, sounds also a bit overcomplicating just because of "trust". Think I would stay with the approach to provide a "daily random number"-script on my site + Qube's personal key. So neither me nor Qube can "precreate" something (but Qube _could_ still manipulate somehow). If the "generation script" (except used $key) is made public here, everybody could then validate the results, as soon as Qube posts:
- results
- his used $key for this competition (and my $remoteKey in case of a downtime on my site or so)
This is working as my key will be valid for the whole time.
To avoid "Qube is changing his key until a nice combination is found" I could have my skip save the used key too - and prints it out on request (so people could validate if there was manipulation on this side).

This is also overcomplicating _for_now_. But if there is interest I could code such things.


bye
Ron

col

#62
For a random number seed, or the random number itself, that no one is really going to know until you generate it you could run a Sha256 algo over the text of the past <hours/days/weeks/months> posts?
You can then do all kinds of things with the bytes/bits to come up another number within a range. Everything can be transparent if people really wanted to calculate the result themselves too.

Just throwing some 'random' idea out there :))
https://github.com/davecamp

"When you observe the world through social media, you lose your faith in it."

Derron

As the "posts of the past" are constant if nobody posts, you could fetch the hash eg. at 23:50 (assuming nobody posts between 23:50 and 0:00). Also the post data is not "public", so it is the same trust-chain than with Qube just outputting a random number by a script he hosts. This is why you needed more chain elements for the trust chain (means more providers of "randomness") - or a trusted 3rd party (eg. a website nobody of us knows about). This is what I described with "one key by Qube" and "another part of the key by Mr. X".
So best thing would be a website, which offers something "new" at exactly 0:00 UTC (so automatically created). It does not have to be a number. We could create hashes out of everything, a little cartoon, a random joke ... If someone knows such a webservice, we could "use" it to our advantages :)

bye
Ron

col

#64
I guess many files would be a bit much, but that's not really my point... you could just as easily use something more accessible to everyone such as the URL of our posts

https://www.syntaxbomb.com/index.php/topic,4450.msg16080.html#msg16080
F0 46 86 94 3F 5C 0E AB E2 0A 7C 88 81 A0 D5 D9 EF 78 F2 E9 C4 5E 18 BE 9D 80 BD 3E 0D 5A B1 C6

or my previous post
https://www.syntaxbomb.com/index.php/topic,4450.msg16078.html#msg16078
FF E6 60 05 92 97 2E 90 E2 D0 5E B8 05 75 41 76 D9 CF F6 99 03 44 EF BA F4 A6 DD 6C 02 0B 05 4D

You have 32bytes and 256 bits there that you can use in any way imaginable.


One idea is...
Say there are 32 genres you could use the highest of the 32bytes to be an index into the genres, sub genres: you can use the lowest of the 32 byte values as an index for a sub catogery, if there are more factors then its easy to come up something else - modulos of highest, lowest, mean values or index positions of the highest, lowest mean. That part is still open to debate of course - my point is a Sha256 algo can used easily to generate a truly random number and everyone can verify it using the generator at https://passwordsgenerator.net/sha256-hash-generator/

A quick example... the highest byte value for your number is at index position 19 [F2], the lowest is position 10 [0A].
For my number the highest is at index position 1 [FF], the lowest is at 21 [03]
So if there are 32 genres with 32 sub-genres you would pick 'genre 19 sub-genre 1'.

If there are collisions, say in my number 05 is the lowest, then you have positions 4, 13 and 31. You could calculate (4 + 13 + 31 Mod 31) + 1 to get to an index between 1 and 32. Use any formula you can think of get a range between 1 and 32 as it doesn't need to be what I have suggested here.

The picking formula would still need to be debated of course.

Another idea using the URL approach is that you could use the URL of the post that Qube decides to announce the competition itself. If anyone is truly worried that someone can predict the URL then they can put up some posts as a countermeasure. If someone has the smarts to predict the results of the genres in advance ( in order to get a head start ) using a similar method then they deserve to win :))

As I say... just an idea to ponder on.

https://github.com/davecamp

"When you observe the world through social media, you lose your faith in it."

Derron

Threads can get precreated (hidden forum) so you need to take into account something not manipulateable. In other words: you need data which is not under control of one of the contestants. Even if you had a "people online at x:y 01.05.2018" counter you could still not use it as seed as long as Qube is the one hosting the counter script. Of course I trust Qube to not do bad things, but this thread evolved into a "how to create random data at a predefined time and make it constant from then on" thing (@Qube feel free to detach the script+discussion into a new thread).

So as said instead of using stuff here from syntaxbomb.com we needed to use a "not by us modifyable websource". It must be something which is created every day but from then on "constant" (so people could validate the number _externally_).

Whether it is sha, bcrypt or whatever should not really matter as we just need a simple (big) number - which we could modify then to create some "Pseudo Random Number". "random.org" creates 8mb of random data each day, perfect for use - but needs subscription. Maybe there is another little service around the world doing similar stuff - or free.


bye
Ron

STEVIE G

I thought the idea was to allow the dev to pick 2 genres from a list (such as Adam's above) and the theme (or selection of themes) to be decided randomly? 

Sod all this fancy nonsense I say - just print the list of themes and genre's, fold them up, stick them in a bowl, let the Mrs pick them and post the results ;D

Qube

Quote from: STEVIE G on April 25, 2018, 17:44:12
Sod all this fancy nonsense I say - just print the list of themes and genre's, fold them up, stick them in a bowl, let the Mrs pick them and post the results ;D
Lol, I just wanted it to be random and then it turned into a code fest :P

Never fear there will be a long list like Adam provided and there will be three options of mixed genre. A nice scope of and something for everyone :)
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Derron

@ Stevie G
You are on a programmers forum, so things like "randomness" and "security" might become center of a discussion. Excuse us (and as said Qube could tear our beloved posts apart of this topic ...).


@ Multiple Genres
I would say: pick 3 random XYZs - and the developer has to choose 2 of 3 to use in his project.
retro + vampire + racing (game)
-> retro racing game
-> retro vampire game
-> vampire racing game (my favorite ;-) - "blood stations" like schools/nursing homes to refill your tank)

But I am also not against some creative limitation: "auchlocaustrophobia", "like ice in the sunshine", "block-buster" ...


bye
Ron

Xerra

I'm already plotting my game design based on "anorexic" "religious" "chicken" because I just know these random choices are going to work out bad for me. So who wants fried or scrambled eggs? They're currently cooking on a big bush and don't have many calories, honest !! ... :-)
M2 Pro Mac mini - 16GB 512 SSD
ACER Nitro 5 15.6" Gaming Laptop - Intel® Core™ i7, RTX 3050, 1 TB SSD
Vic 20 - 3.5k 1mhz 6502

Latest game - https://xerra.itch.io/Gridrunner
Blog: http://xerra.co.uk
Itch.IO: https://xerra.itch.io/

Rooster

Quote from: Xerra on April 26, 2018, 00:29:49
I'm already plotting my game design based on "anorexic" "religious" "chicken" because I just know these random choices are going to work out bad for me. So who wants fried or scrambled eggs? They're currently cooking on a big bush and don't have many calories, honest !! ... :-)
I prefer Baked grasshopper myself. :P

blinkok

Make a 2D version of a 3D game or visa versa

Derron

Make a game about:
- an ecological or economical 1st world problem - keyword: "leaving a footprint"
- exploration (of the unknown) - so could even be a puzzle/arcade game in a laboratory (hmm....ideas forming ;-))
- warfare

bye
Ron

Matty

The easiest way to randomise the list is to pick the lottery results from the weekend nearest the comp and modulus the sum of the numbers by the list count and select that index.  Agree on which lotto results before its drawn.

Derron

@ Matty
This does not solve any problem. We do not have issues fetching a "random" entry. The problem is that it needs to be unknown until competition start - and needs to be fixed/constant ("replicateable") from then on. So using a lottery number of "some days" ago is similar to saying: "ok, 4 days to go until competition, here is the number we agreed on to calculate used genres/themes".

In short:
- need a random number (or multiple)
- must be unknown (best is "not existing yet") until Date X
- must be constant from Date X on


bye
Ron