#2024-game-jam

1 messages · Page 2 of 1

main sluice
#

By the way, are these solo or group projects? It doesn't say in the rules (or I missed it)

civic fractal
#

Either or, with no team size limit neuroTroll

waxen wasp
#

both are fine, you can make groups if you want

main sluice
#

Aha

#

In that case, maybe it would be easier if I just lent my services to another team as a composer and game designer?

waxen wasp
#

that could work yes

#

in my experience there is a need for music peeps

main sluice
#

Works for me!

royal jewel
#

I wonder if anyone will actually utilize Neuro RVC to make something very cool

#

Will be interesting to see what people do with it

waxen wasp
#

im planning to use it for dialogue

civic fractal
#

I'd hope our team makes use of it

royal jewel
civic fractal
#

guess we are

royal jewel
#

The model is optimized for singing, everything else is mostly untested

waxen wasp
#

it depends on how much time we'll have left mostly, but if we have the recources and use dialogue i would like to use it

civic fractal
#

And as long as we have audio working in the engine

royal jewel
#

Sounds reasonable
Note that the most optimal base voice is a female, accent-free voice

#

Just because it fits Neuro best

civic fractal
#

I guess I'll be the one trying for our team then

waxen wasp
#

thanks iggly, you're a real one neuro7

royal jewel
#

There's quite a bit that goes into this RVC stuff, that's why I added the note about just asking me to RVC something, since I know a bit about what I'm doing

#

Of course you would still need to provide the base audio in that case, but I could clean it up and do anything like that if needed

#

We'll see what comes out of it
Would be extremely silly if someone used it to make an actual song for their game

#

But that's really what it's optimized for

civic fractal
#

I mean, our team does have a composer...

#

I wouldn't mind songwriting

waxen wasp
#

audio files are supported so it should work

You can add a square image file named favicon.png in your game’s root folder to make Pygbag use it as the web package’s favicon.

Make sure all audio files are in OGG format, and all files are compressed. (that is, not in WAV/AIFF/M4A/MP3)

Avoid raw formats like BMP for your image assets, they are too big for web use; use PNG/WEBP or JPG instead.

Do not use filenames like *-pygbag.* that pattern is reserved for pygbag internal use (optimizing pass).
royal jewel
civic fractal
#

Favicon.png must be either nwero or eliv

waxen wasp
#

so we have to use pygame.mixer.Sound("sound.ogg")

waxen wasp
#

i dont think it will be visible on itchio tho

royal jewel
#

So you'll be making a web game I assume?

waxen wasp
#

yes, thats the plan

royal jewel
#

I assume you'll make the local build using my HTTP server bundler thing

civic fractal
#

That is also the plan

royal jewel
#

I think that one does appear to be able to render tab icons by the way

#

So there having a custom icon would be a cool addition

waxen wasp
civic fractal
#

Depends on if we got ideas for it, othereise we got the default stuff.

royal jewel
#

Will be very interesting to see what people can come up with
I myself don't really have the experience required for frontend and game dev, so I just provide useful stuff such as the Neuro RVC models and the semi-backend of the web bundler thing

waxen wasp
#

we're already a team of 3.5, we can add a graphic designer if needs be

civic fractal
#

I'm just glad Superbox will have us as beta testers

royal jewel
#

I have already done two successful tests of the bundler, the demo application from earlier and Neuro clicker

civic fractal
waxen wasp
#

although im hoping to get the engine done by when the subathon starts

#

i think we should discuss our ideas for the first 10 min where we're both free after the theme gets announced, and then ill modify the changes that we need. hopefully in time so that i can make some 3D models in blender

royal jewel
#

One thing I hope for is that people use what I have provided them for something cool and to enhance the playing experience of their games

waxen wasp
#

i hope so too, it would be reaaly cool to have actual neuro sounds playing im the games

royal jewel
#

Yeah, that sounds like a really cool thing since we have an extremely high quality Neuro voice model now

#

There's also progress on the updates for the Evil model, dataset pass 2 is probably completed by now

waxen wasp
royal jewel
#

We'll see if Evil V7 completes before the jam though
These models take a considerable amount of time to make datasets for (and then I train them in a few hours)

civic fractal
waxen wasp
#

i have no clue how they work, but it sounds like a lot of effort on your side

#

i respect it

royal jewel
#

There is a fairly large amount of total effort that goes into the process
And then making the actual covers takes a bunch more effort to get everything right

#

Post-Evil V7 there is something actually really cool planned for covers, but not gonna say much yet

civic fractal
#

I'm hoping on an unrelated note, to get everything automated in terms of building / bundling soon. Mainly to start on my own work for the engine.

royal jewel
#

The bundling part should be very easy to automate at least, just automatically copy the files for the bundler into the game folder

civic fractal
#

I am planning on trying to do websockets on the bundled version. So at least I'll be debugging any errors there

royal jewel
#

I assume websockets from the game client to something else

#

And not between the game and bundler

waxen wasp
#

the compiling with pygbag is also just one terminal command, it takes about 5 seconds rn

royal jewel
#

So you could automate the whole process with a batch script

#

Very simple

civic fractal
#

Atm the websockets are targrting localhost

royal jewel
#

On Vedal's thing I'm pretty sure the game will make a connection to Neuro's system, with Neuro's system being the thing to host the server

#

That being a different server from the one that hosts the game files

civic fractal
#

I'm not trying to imply the bundler has a step in that path, it is just the best option

royal jewel
#

You don't really have the ability to change the bundler code to make it do what it would have to, so you'll have to handle all the websocket stuff "client side"

#

Should be simpler to do it without a middlepoint anyway

civic fractal
#

Either way I can't test on the itch version due to "vedal is not whitelisting all of itch for the websocket connection"

royal jewel
#

I would assume all the Neuro integration games will have to run as local, so the bundler should be very useful for getting any web games that want to do that the ability to do that

civic fractal
royal jewel
#

Then the web game will handle the actual socket stuff "client side", AKA in the code that is served from the server

waxen wasp
#

although i think vedal is using the same ip adress
Serving HTTP on 127.0.0.1 port 8000 (http://localhost:8000/)

misty tree
royal jewel
#

And even then you can always reconfigure the bundler port with PORT_OVERRIDE

civic fractal
waxen wasp
#

ok neuroHypers

civic fractal
#

Here I'm hoping none of our stack screws up the abillity to do websockets.

#

Which is what I'll be testing

waxen wasp
#

i should have just forwarded this, i always forget discord has that

civic fractal
#

I'm reffrring to the convo below that, saying cors will block the web requests of "allow any"

waxen wasp
#

ah, ok

civic fractal
#

So our best bet is to just use the localhost

royal jewel
#

With local you can also probably use the same environment variable method to set the server URL for where Neuro's API is

waxen wasp
royal jewel
#

So that Vedal can just go to .env or something and set it (more than one app should be able to use the same .env file)

#

The game needs to know where it needs to send the Neuro API requests to after all

tawdry apex
#

.env isn't environment variables

royal jewel
#

Oh, ok then

#

I guess then it means Windows environment variables?

tawdry apex
#

Linux also has them

royal jewel
#

Well
I have no clue how to read those on web

tawdry apex
#

.env is a config file modelled after environment variables, and is sometimes loaded into the environment variables depending on how stuff is setup

royal jewel
#

Interesting

tawdry apex
royal jewel
#

Well, then for the thing they will either have to add some sort of config file to the game folder or figure out a way to get enviroment variables from the system on web

civic fractal
#

That does help with our team, for the others. Well, we'll deal with them when it comes.

#

Superbox's bundler is supposed to be universal

royal jewel
#

It's a fairly universal web bundler
It's just a simple web server, so it can handle basically any web game that just needs files served

#

Anyway, I have to sleep

waxen wasp
#

goodnight!

hazy totem
#

neuroMonkaOMEGA making original songs?

waxen wasp
#

no not really, maybe weegee will tho. im not gonna overwork them so we'll see

main sluice
hazy totem
#

ReallyInnocent does that mean people who can sing are in demand now?

main sluice
#

I cannot sing 🙁

#

I’m pretty good at making dynamic music though, so if anyone can make use of that, I’m available

hazy totem
#

catSUS better start practicing now

waxen wasp
#

actually could be quite possible, if weegee does the instruments and superbox's RVC does vocals

#

you're so right

hazy totem
#

But who gonna sing NeuroClueless

waxen wasp
#

hmmm pepehmm

#

not it

civic fractal
#

Erm well, I'm already doing voicing...

hazy totem
#

or the whole team becomes a choir

waxen wasp
#

oh god

#

i can already imagine the 500ping delayed singing

civic fractal
hazy totem
civic fractal
#

True!

#

This is going off immeditly

hazy totem
waxen wasp
#

holy im so clossssseeee to compilingggg

#

this is the last possible part that could give errors

civic fractal
#

At least it is last and not first

waxen wasp
#

it gives the fps number to the webpage! neuroHypers

#

tbh i have no clue why its not displaying video, lemme investigate

waxen wasp
#

Ye idk, the python file is correctly compiled to wasm and running in the browser, its just not visible.

#

Goodnight neuroSleep

warm rampart
waxen wasp
warm rampart
#

For compositions I can write for orchestra or rock. Ive done a tiny bit of chiptune too

civic fractal
#

I'm sure we won't waste your talent as long as you're willing to do so.

warm rampart
#

At the end of the day I simply want to make more music, Im fine if it doesnt end up being used

#

(but itd be super rad if it was)

civic fractal
#

I intend to make your talent known

waxen wasp
#

I dont really know much about music so ill let you 2 handle it

civic fractal
#

I guess I've been picked via tribute to sing lyrics for the song.

waxen wasp
#

Probably ye

civic fractal
#

Geez I'm going to seriously be creative director I swear.

waxen wasp
#

Im glad i have other people to handle this now, cuz aint no way im gonna press random buttons in a music program till i get my "bgm"

civic fractal
#

Guess I need to pick up voice training again. Yippie neuroHypers

waxen wasp
#

Aight, so in the credits we'll have:

  • Sam: head of graphics
  • Igglyn: creative director
  • Weegee: head of music
  • Superbox: distribution managment
    neurOMEGALUL
mortal barn
#

can i join a team as moral support and get in the credits that way

civic fractal
#

It'd be interesting if we got more people. But got to save some souls for the others.

waxen wasp
torpid bridge
#

And whoever wants to use any of my asset stuff, can also credit me

hazy totem
#

neuroNOWAYING can i be in the credits too?

torpid bridge
#

I'll probably make some more generic assets stuff, maybe pixel art items

civic fractal
#

That'd help for those doing 2d, I'd want to see the least amount of AI art if I can help it.

Our group are in our own pit of hell.

torpid bridge
#

Yeah, I've made Neuro and Vedal speaking portraits and a Neuro Collectable

#

I'm also gonna make a Vedal Collectable

waxen wasp
#

most of our assets will be 3D (if the program EVER decides to WORK)

civic fractal
#

If we have a dialogue overlay then we could use some 2d assets.

waxen wasp
#

Hmmge i need to get textrendering to work too then

torpid bridge
#

I'm also gonna make some item sprites that reference jokes in the fandom

civic fractal
waxen wasp
#

I think pygame has some text stuff built in?

civic fractal
#

I seem to recall such, but not 100% sure

waxen wasp
#

Oh it tottaly does, i used it last year

leaden ledge
#

did i hear voicing

hazy totem
royal jewel
royal jewel
royal jewel
royal jewel
civic fractal
#

I wouldn't expect anything else

#

Living on the edge due to the kindness of everyone around us.

royal jewel
civic fractal
#

I do want to do some test vocals later, so I'll have to set up that pipeline.

royal jewel
#

Applio I assume

#

Applio is the core part of the RVC chain

civic fractal
#

Want to take a small break on coding before doing engine stuff after finishing my class.

civic fractal
royal jewel
#

Alright then
Let me know if you need any help and if you feel like sharing what you get as output

civic fractal
#

I'd kinda have to be comfortable if I'm planning on doing vocals. But yeah, that is the plan.

royal jewel
#

Alright then
Hopefully your voice can work as a good Neuro voice and is not too low (Neuro has no low range)

civic fractal
#

I'll try it for the lols, but I'm confident I can pull it off.

royal jewel
#

Well, will be interesting to see what comes out of that
I don't think Neuro V11 has ever been ran on non-synthetic dedicated vocals

civic fractal
#

We'll see how it's worst case comes to light.

royal jewel
#

Well, I guess I'll wait and see what happens
Let me know if you need any help with any part of the setup

civic fractal
#

Will do

civic fractal
#

Best of luck to you!

#

Solo deving the jam was hard. I'd just make sure you manage your time well.

waxen wasp
#

The guy that made the flipping thing gotback to me neuroHypers

#

Bro pulled out example programs cirSlain

cunning inlet
#

Decided to read through a list of game jam themes over the years and I've now come to a realization that there's a really high chance all my current visions might be thrown in the trash can

#

Guess my fate is in Neuro's hands lmao

waxen wasp
#

always has been

cosmic grotto
#

i pray to neuro, last year her theme was pretty good
most game jams have awful themes that are either too broad or too narrow of a subject
(or just plain boring)

#

the worst ones are that decide by poll

halcyon nest
#

I am wondering if there could be a way to test the implementation of the sdk before sending it. Was it explained somewhere on the repo and i just missed it or do i just have to thrust what i’ve done ?

cunning inlet
#

for my own sanity I hope she picks something broad this time, that way I have more freedom of expression

waxen wasp
halcyon nest
#

What did she do last time ?

cunning inlet
#

last year's theme was "Lost and Found"

halcyon nest
#

Damn thats not very precise

cunning inlet
#

I wasn't even planning on joining last time, but when her theme perfectly lined up with my vision for a game where Neuro goes missing on his PC and he visits various VTubers only to find Evil took Neuro away, I was like "this is fate"

now I wanna make a game about Vedal & Neuro teaming up to infiltrate an evil vtuber corp that kidnapped Evil, but if Neuro's theme is something like "space" or "isolation" etc, it would all come crumbling down

halcyon nest
#

What kind of game engine would be called randy ?

waxen wasp
#

it could exist ngl, there are some weird game engines out there

cosmic grotto
#

randy is my oshi

#

you could modify randy with some LLM and then it'd be more akin to neuro

waxen wasp
#

randy is basicly neuro's dumber younger brother

#

or nephew since alex made randy?

halcyon nest
#

the familly tree gets more complicated

cunning inlet
#

The family tree is a möbius strip

wary lance
unreal plinth
#

I finally got Unity WebGL to work with Randy, yayyy!
Things blocking the Neuro API to work with Unity WebGL out of the box:

  • Randy uses unsecure websockets (ws), but browsers seem to just insta-reject any non-secure websocket (wss)
  • Alex/Vedal used websocket-sharp for the Unity websocket implementation, but that doesn't support WebGL (NativeWebSocket does)

Don't think it'll be usable though, since the need to change Randy over to secure websockets would mean that Neuro would need to also swap over

#

Was hoping to be able to just make a WebGL build and have that contain everything, but I guess a standalone build is gonna be necessary to work with the Neuro API, unless Alex/Vedal decide to swap over to, or support, secure websockets :/

royal jewel
#

Even connecting to a WebSocket on localhost requires it to be sequre?

unreal plinth
#

Yup, it's super dumb

royal jewel
#

Odd

unreal plinth
#

I had to make my own self-signed certificate

royal jewel
#

What's even the point of unsecure WebScokets if the browser rejects connections from them?

#

It's like not allowing localhost over plain HTTP

unreal plinth
#

There used to be flags and settings you could set on most browsers to allow unsafe connections like that, but they all seem to be deprecated at this point. I wasn't able to connect to an unsafe localhost websocket via Chrome, Edge, or Firefox, even after setting all flags and settings I could find to their unsafe-est

#

(If anyone knows of a good way to make unsafe websocket connections work from a browser, pls do tell)

fresh remnant
#

Huh. NeuroTCG also uses unsecured ws connections and works just fine.

#

Only thing I can think of is CORS blocking it maybe

royal jewel
#

Maybe you could try if that way to connect to a WebSocket works with the Neurp API stuff
Or something like that, I don't know
Would be good for it to work in browsers, otherwise I have to make my bundler have a WS redirect or something that just passes a secure WS from the game to an insecure WS to Neuro

unreal plinth
fresh remnant
#

Its a game made by some community members. I didn't do anything special to get it working except for completely disabling CORS on the server.

#

Are you hosting the files and server on the same port?

#

because browsers treat all files (file:// urls) as their own origin and therefore CORS applies

royal jewel
#

Maybe trying it with my bundler would give different results, my thing kinda at least tries to disable CORS stuff

unreal plinth
#

I was using out of the box Neuro API + Randy basically, so Randy hosts websocket server on port 8000, while also listening to post requests on port 1337, then the Neuro API attempts to connect to port 8000 by doing a pretty standard new WebSocket('ws://localhost:8000'); but Chrome comes back with an error saying WebSocket connection to 'ws://localhost:8000/' failed

#

I was using your bundler Superbox by the way

royal jewel
#

Interesting

#

I assume you ran it according to the instructions and not by clicking on index.html

unreal plinth
#

Also CORS errors should mention CORS, I had a different header error at one point and that was called out in the error message, but this is just a straight no details fail

fresh remnant
#

Do you see an OPTION request in the network tab of your browser?

royal jewel
unreal plinth
royal jewel
#

Odd
I have no clue what that means

unreal plinth
#

(I'd send an image but I don't have those permissions yet)

fresh remnant
#

Why wss?

unreal plinth
#

oops, sorry about that, I had the wss version on my clipboard because I'm using the secure stuff now, lemme do it again but with ws

#

console.log(new WebSocket("ws://localhost:6000"));
Name: localhost
Status: Finished
Initiator: VM290:1
Size: 0B
Time: Pending
VM290:1 WebSocket connection to 'ws://localhost:6000/' failed:

royal jewel
#

Is there an insecure WS host on port 6000?

#

There needs to be a host for a connection to work

unreal plinth
#

You can try it yourself if you've got Randy installed, just run Randy and then put console.log(new WebSocket("ws://localhost:6000")); (Replace 6000 with your port) in the web console

unreal plinth
royal jewel
#

Modified or unmodified?

unreal plinth
#

I commented out my modifications, so should be unmodified

#

(Apart from changing the port)
I'll try and undoing back to the start though, so that it's fully unmodified, port and all

royal jewel
#

Odd
I have no clue what could be going wrong
Hopefully there's no CORS or something going on with Neuro's API

fresh remnant
#

After some googling, ws shouldn't even have CORS. So I have no idea why it isn't working

unreal plinth
#

...... I hate ports...... -_-
port 6000 fails, but 8000 and 8443 work....

royal jewel
#

Interesting

#

Maybe something with reserved port ranges?

unreal plinth
#

I just had to change the port before starting to develop 😭

#

Well at least that means we can use a slightly modified Neuro API to work with Unity WebGL and still connect to Neuro/Randy's websocket

fresh remnant
#

Then my guess is that it's probably your firewall causing issues

unreal plinth
#

I turned off my firewall entirely though, I think reserved port ranges or something like that are the most likely, but who knows

royal jewel
fresh remnant
unreal plinth
#

By the way Superbox, WebGL apps can't read system environment variables, but they can read the URL parameters and then set process-level environment variables.
I currently am using index.html?WebSocketPort=8000 and passing the port to the environment variables from there, which the Neuro API then reads correctly

#

You might be able to make the docker read the system environment variables on launch and redirect to ?WebSocketPort=[ENVIRONMENT VARIABLE HERE]

royal jewel
unreal plinth
#

yup

royal jewel
#

Makes sense
It's quite simple to do so

unreal plinth
#

On the Unity side it's then as simple as just putting this in an Awake that runs as soon as your game starts up

if (Application.absoluteURL.IndexOf("?") != -1)
{
    int customPort = -1;
    string urlParameter = Application.absoluteURL.Split('?')[1];
    if (!string.IsNullOrEmpty(urlParameter))
    {
        string? portValue = urlParameter;
        if (urlParameter.IndexOf('=') != -1)
        {
            portValue = null;
            string[] values = urlParameter.Split('=');
            if (values[0] == "WebSocketPort")
            {
                portValue = values[1];
            }
        }
                
        if (!int.TryParse(portValue, out customPort))
        {
            Debug.LogError("Failed to parse URL parameter!");
        }
    }

    if (customPort > 0)
    {
        Debug.Log($"Found custom port {customPort}!");
        Environment.SetEnvironmentVariable("NEURO_SDK_WS_URL", $"wss://localhost:{customPort}", EnvironmentVariableTarget.Process);
        string? websocketUrl = Environment.GetEnvironmentVariable("NEURO_SDK_WS_URL", EnvironmentVariableTarget.Process) ??
                                Environment.GetEnvironmentVariable("NEURO_SDK_WS_URL", EnvironmentVariableTarget.User) ??
                                Environment.GetEnvironmentVariable("NEURO_SDK_WS_URL", EnvironmentVariableTarget.Machine);
        Debug.Log($"WEBSOCKET URL: {websocketUrl}");
    }
}
royal jewel
unreal plinth
royal jewel
#

I have no clue what enviroment variable it should be trying to even get

#

It would probably be possible to make a build that does that though

unreal plinth
#

Basically since a web app can't access your system data, we need another way of passing that in, and having your docker grab that and pass it through as a URL parameter seems like the easiest

royal jewel
#

It would be possible
Your implementation working depends on if the environment variable contains a port or not though
And I would need to make a bit of logic to handle the case where the user wants to specify some of their own URL parameters

#

Based on the name the environment variable appears like it could contain a full URL

unreal plinth
fresh remnant
#

only problem I could see is that Vedal probably doesn't want his ws url public (assuming it isn't local) and he would have to hide the url bar

unreal plinth
#

very true, hadn't thought about that :/

royal jewel
#

A GET endpoint would solve that

unreal plinth
#

But that would require more stuff, no?
Like we'd need to have GET endpoint running on a consistent url, which would then need to respond with the data in the environment variable, and then finally we could use that to make the connection

royal jewel
#

Well, the URL would just be another URL on the bundler that can be accessed like any other as a relative path of the URL

#

Just like getting a file, but instead for environment variables

#

But I have no clue what character a URL can use that a file path can't

#

Oh, maybe $?

unreal plinth
#

Maybe just one with a complex name otherwise, and a clarification not to use paths ending in some specific sequence, like -superbox

royal jewel
unreal plinth
#

Try it out, if that does work that'd be awesome

royal jewel
#

Let's see

unreal plinth
#

If that does work out, then the only thing that would be needed for Unity WebGL to work with the Neuro API is some slight modifications to the Unity implementation

royal jewel
#

I'll need to figure out how to do get requests from HTML or JS

unreal plinth
#

Just go to the URL in your browser and it should pop up as plain text, no?

fresh remnant
#

just have in input box where you type the url before starting the game. keep the query param for testing though

royal jewel
#

It works
It can get the session PATH variable (which is literally just the JVM)

unreal plinth
#

Nice!

royal jewel
#

Time to package the full thing and add it to the public assets

unreal plinth
#

Lemme know and I'll put together a test to make sure it all works 👍

royal jewel
#

Should be a drop-in replacement, just has the env stuff as additional

#

@unreal plinth Just to make sure you saw it

unreal plinth
#

yup, am building right now, time to see if it works

#

Had to figure out how to make callouts from Unity, I'd never done any before

royal jewel
#

Well, hopefully you did it correctly

unreal plinth
#

I didn't.. neuroSad

royal jewel
#

How wrong did it go?

unreal plinth
#

It just didn't send any callout

royal jewel
#

Oh
That is very wrong then

unreal plinth
#

trying a quick copy-pasted stackoverflow fix now

royal jewel
#

You need to just send a GET request to something like /$env/PATH and you should get back the JVM folder

#

Or whatever the value of whatever other environment variable you read is

unreal plinth
#

Here's my little test function

private async void TestGet()
{
    UnityWebRequest request = UnityWebRequest.Get("http://localhost:7272/$env/NEURO_SDK_WS_URL");
    await request.SendWebRequest();
    if (request.result == UnityWebRequest.Result.Success)
    {
        string websocketURL = request.downloadHandler.text;
        Debug.Log(websocketURL);
    }
}
royal jewel
#

Note that the thing returns a 404 error if the variable does not exist

#

Should be easy enough to handle

unreal plinth
#

People will have to hard code their docker port to 7272 in the code, or whatever value they set via PORT_OVERRIDE in .env, but this way at least we can get the environment variables in the browser and without leaking them

royal jewel
#

Can they not get the full URL that is in the browser bar?

#

Then they could get the current port from there

unreal plinth
#

oooo, you're right, I can read the browser URL and that contains the port!

royal jewel
#

Yeah, should be simple enough

#

Well, I'm gonna put the new version in the assets

#

Alright, it's on there now with the bit of extra docs

unreal plinth
#

Nice
Here's my updated call from Unity, which'll use the current base URL

private async void TestGet()
{
    if (string.IsNullOrEmpty(Application.absoluteURL)) return;
    string[] urlParts = Application.absoluteURL.Split(':');
    UnityWebRequest request = UnityWebRequest.Get($"{urlParts[0]}:{Regex.Split(urlParts[1], @"\D+")[0]}/$env/NEURO_SDK_WS_URL");
    await request.SendWebRequest();
    if (request.result == UnityWebRequest.Result.Success)
    {
        string websocketURL = request.downloadHandler.text;
        Debug.Log(websocketURL);
    }
}
royal jewel
#

Well, I guess Neuro integration on web games is solved by using my bundler locally

unreal plinth
#

Imma see if I can make a clean set of changes to the Neuro API to include this stuff, and then see if I can get a PR approved, so that it can handle WebGL out of the box

#

If not then I guess I'll just have a fork that I can post in the public assets thread for people who want it

royal jewel
#

You would have to include the bundler as a requirement of the thing somehow

#

Since it depends on a feature probably exclusive to my thing

#

A fork would probably make the most sense in this case

unreal plinth
#

Not really, if anyone decides to make their own bundler or use another one, they'd just need to make sure it exposes a GET endpoint for /$env/NEURO_SDK_WS_URL that gets the environment variable
It does sound a bit weird though, so I think it'll probably stay as a fork though

royal jewel
#

Yeah
It makes more sense to just have my bundler as a dependency

#

Which can be easily achieved by putting the thing on the public assets thread as a fork and referring to the env-enabled version of the bundler as a dependency in the message you send it in

unreal plinth
#

Yeah, I'll put all that together in a couple hours and send it in the public assets thread
Might as well send a PR anyways after that, explaining what it does and the downsides, even if it'll probably be rejected for the strict requirement
The fork will at least be available for anyone that wants to make a WebGL game with Unity

royal jewel
#

Sounds good to me
You should use a message link to be explicit on what is the depended on version

bright frost
#

if anyone wants to try testing with an LLM (and maybe a less stable API implementation) instead of Randy, I made an implementation of the Neuro API and use ChatGPT for a model. If you want to try it at some point just lmk, cause I wrote no documentation for it lol

hardy siren
#

Heya gamejammers! buh

Feel free to use the MP3s I've been uploading to Google Drive for your game jam games. As of now, I've uploaded ~450 nwero eliv and Tutel sounds, and I'll likely be adding lotsa more during the subathon: https://drive.google.com/drive/folders/1fbblgWmHDEqNsJu5PF9oYeH3emrY22UF?usp=sharing (shortened link for the drive should also be in my discord profile if it isn't being blocked)

There's also this one in Mega that CJ (neuro7 ) maintained, but the last update was 5th of April this year: https://nuero.fun/noises or https://mega.nz/folder/LIo2BDoA#EowtnSDt-ULtmXEwtljEDg

tame rapids
#

neuro7 CJ

hazy totem
knotty tinsel
waxen wasp
#

everywhere i go, i see his face

royal jewel
obtuse gorge
#

what da hell, new channel NeuroClueless

royal jewel
#

Well, we'll see if someone uses that
At least the env read feature should be useful for web game devs wanting Neuro integration

fleet goblet
#

@royal jewel does this need any kind of additional setup on vedal's end?

royal jewel
#

He just needs to download the application that has the bundler, essentially plug and play

#

The webserver I made handles the envs, while the web game can just ask that to get the env, no setup needed

fleet goblet
#

do you want to add a link to the main readme with this webgl version?

royal jewel
#

You can do that if you want
I just made the webserver bundler

#

Or something like that

#

It's a couple simple things that work together to make it very easy for this stuff to function

fleet goblet
#

@unreal plinth could your fork maybe be merged into main?

unreal plinth
fleet goblet
#

so we switch from websocket sharp to native ws for the entire sdk?

unreal plinth
#

Nope, NativeWebSockets doesn't work outside of WebGL

#

So preprocessor directives to swap between either package depending on build target

royal jewel
#

I can make a link to the bundler if you want to link to that too

fleet goblet
#

what does the bundler do more specifically?

royal jewel
#

I have my own server I can host the file on

fleet goblet
#

does it open a local webserver which exposes the environment variable?

royal jewel
#

It serves the files on localhosts and gives the application env access

#

And is pretty much dependency-free

fleet goblet
#

I feel like it would be cool to move that to vedal's pc perhaps

royal jewel
#

So no fiddling with the PATH like last time

unreal plinth
#

PR sent neuro7

fleet goblet
#

To allow the games to run in webgl in itch.io

royal jewel
#

It only works if the game is ran on localhost
But takes away the need to use a separate build target for Neuro integration

fleet goblet
#

ah, because of CORS?

royal jewel
#

Because the server doesn't magically start running if you just run the game on itch.io

fleet goblet
#

i.e. have that running permanently on vedal's pc

unreal plinth
#

To call out to the server we'd need a way to know the URL to reach it though, and don't think Vedal would want to be leaking his IP...

royal jewel
#

Default is 7272

unreal plinth
#

Do you think calling out to localhost:7272 from inside itch.io would work as expected? Would be cool if so, that'd make it simpler

royal jewel
#

Basically just take the bundler and run it without modifications, assuming CORS doesn't get in the way

fleet goblet
royal jewel
#

If the server can be ran on Vedal's PC, the games would need some way to refer to localhost

#

To be able to make a call to localhost:[port]/$env/NEURO_SDK_WS_URL

unreal plinth
#

Ah, also current approach allows you to run the server on one PC and access it from another, since there's no hardcoding of localhost anywhere.
(Don't know if Vedal's gonna be running everything on the same PC)

fleet goblet
#

Yeah I looked it up, even if you chance CORS you can't really access localhost from inside a webpage

#

Which makes perfect sense

#

This would have been cool because it would have allowed vedal to play the games directly in itch

royal jewel
#

It would have been pretty cool yeah
But still, having the ability to just download a single thing and do no further setup is also cool

unreal plinth
#

Would've been cool, but makes sense you can't start mixing together stuff like that, sounds real unsafe

royal jewel
unreal plinth
#

I'd just linked your Discord message in the documentation as the source for your web server :P

royal jewel
#

That would work well too, assuming everyone is on Neurocord

#

Might be easier too since no need to copy over the docs for it either

#

Either way, this setup is probably the best we're getting with web games X env

#

Unless Vedal wants to assign a domain to his PC's local IP and then give that to everyone so they can refer to that instead

waxen wasp
royal jewel
#

Just a little bit of development of a solution to the Neuro SDK socket address env problem with web games

#

My bundler has an updated version that solves that for locally running the game now

waxen wasp
royal jewel
#

Local IP != public IP (in most cases)

tawdry apex
#

I wonder if vedal could do some cursed dns shenanegans, i.e. games first try and connect to wss://neuro_game_websocket.vedal.ai (which could probably just be an unregistered subdomain), then vedal could host a local (ssl enabled) websocket server using the certificates from his site and overwrite the hosts file to a local ip (or make an unproxied cloudflare record to a local ip, but that feels like too much effort)

royal jewel
tawdry apex
#

I don't think you can connect to plain websocket from a https site

waxen wasp
#

Idk how any of this works, ill let yall do the websocket stuff

royal jewel
#

Seems like you can from localhost though

tardy geyser
#

the main issue is crossing https (on itch) with ws://

a scuffed solution would be to create a CNAME (e.g. neurows.vedal.xyz) to point to 127.0.0.1, and get a letsencrypt cert for it

#

oh bred already posted the same idea

tawdry apex
#

smh vanor

tardy geyser
#

yh anyways, the ws server would only have to serve wss using the letsencrypt private key, and all itch io clients just have to refer to neurows.vedal.xyz

royal jewel
#

Seems like quite a lot of work for one game jam
No clue if Vedal would want to do that much

tawdry apex
#

I mean it doesn't even have to be a seperate cert

#

he can probably reuse the one he has from cloudflare

tardy geyser
#

right, he does have a wildcard cert

tawdry apex
#

iirc they're wildcard by default

#

my only worry with that is how someone other than vedal would test the integration while its hosted on itch, given they'd have to have a valid cert for whateversubdomain.vedal.ai

tardy geyser
#

skill issue clueless

tawdry apex
#

NeuroClueless vanor is it unreasonable to expect devs to create their own certificate, install it in their browser / os and use it to fake ownership of vedal.ai

royal jewel
#

Yeah, would make testing very imposssible

#

With my bundler solution testing is extremely simple

waxen wasp
#

Ye im going to sleep, this convo is too big brain for me atm, il be back in 6 hours to fix webgl bugs

tawdry apex
tardy geyser
#

ooh great shout actually

tawdry apex
#

its been a hot minute since I've last tried to use it

#

but iirc it generates a certificate and might be able to install it system wide

#

oh my god vanor even stupider idea

#

wait nevermind

royal jewel
#

I feel like using something a lot more complex than my bundler could become a massive development pain, not sure
My bundler seems like a fairly good solution already, even if it requires running locally for Neuro integration, since you can still use the exact same build files on itch and just if it can't get the env variable, it will asssume playing without Neuro integration

tawdry apex
#

if this is a workable idea, I'd be happy to dig into making it work - I don't think its actually too complicated

tardy geyser
#

altho it makes dev life alot harder immediately

royal jewel
#

Yeah
I have no clue how someone would test that properly

unreal plinth
#

Could also use the Vedal URL as default and fall back to some URL defined elsewhere that the dev could specify, no?

tardy geyser
#

so true, just code game to use fallbacks

tawdry apex
#

oh actually, given its just neuro that would need the game to autoconnect, devs could just hide a setting somewhere that's "alternative websocket location" or something

royal jewel
#

But that gets back to the reason I made the env solution in the first place, to make there not need to be any configuration on Vedal's end

tardy geyser
#

i think automatic fallback based on ssl exceptions is reasonable

#

in fact it could fall back to your bundler solution

tawdry apex
#

NeuroClueless alternatively, we could just try wss://xyz.vedal.ai, then if that fails ws://localhost:{some port defined in the sdk} - otherwise no nwero

royal jewel
#

The bundler solution is really a lot easier to implement and test than whatever that mess of redirects is

royal jewel
unreal plinth
#

It should just be like an added second of delay on the connection for devs, but allow for Neuro to play straight from itch.io, don't think there should be any issue

tawdry apex
royal jewel
tardy geyser
#

no it'll be fine, the fallback just needs to be implemented correctly ™️

misty tree
#

i just got hit with the wildest idea that could be really cool and even fit probably being neuro playable, now to just hope to god it somehow fits the theme

tardy geyser
#

anyways this is all in theory land, we have no idea if its actually viable with whatever's actually setup vedal-side kek

misty tree
#

ill plan out the idea ahead of time just in case its worth doing

royal jewel
#

I think it could be possible to combine both methods into one entity if you actually do something cleaver like use the same redirect URL Vedal would set up to point to localhost to get a URL from the env, and then Vedal could set that env variable to be the full WSS URL for the WebSocket part of the redirect, returning us to sensible testing land

#

Then since that URL would be a set URL, if it fails to get from env, try with a relative URL instead to check the bundler on localhost method, and if that fails, disable Neuro integration

#

That could be a system you can test with a simple enough setup process and allows for all of the posssible configurations to be valid

#

So the hirearchy would be

  1. url from http://[vedal-redirect-url]:[set-port]/$env/NEURO_SDK_WS_URL where Vedal has the bundler set up, possibly on the default 7272 port
  2. url from [current-site-url/$env/NEURO_SDK_WS_URL for the bundler on localhost configuration if the redirect fails
  3. no WS URL, effectively disabling Neuro integration

This method would also make it not matter if the local testing URL is not a WSS, since you would be testing from localhost

#

Thoughts?

tawdry apex
#

this is a slightly better representation of what I'm trying to suggest, incase vedal is reading this and going "bred what the fuck are you talking about"

#

I feel like that should work for any of these cases of: itch.io, other hosted site, bundler, standalone executable

#

(this is all assuming itch.io doesn't religiously block cross-site requests, which I hope it doesn't NeuroClueless )

tardy geyser
#

that diagramming speed pogs

royal jewel
#

Seems a little overly complex
The method I came up with would make the check more consistent, you could probably just use one tryConnect(envUrl: String) function or something, try it twice with the URLs I listed, if it works it should return the WS URL, if it fails both times, don't do WS stuff

tardy geyser
#

i think the both of you are saying the same thing

#

minus some nuances like retry count

royal jewel
#

Mine has a slight difference of always trying env reads

tawdry apex
#

i mean you can just reorder my if statements to get what you've got, they're basically the same

royal jewel
#

Yeah, I guess the core idea is the same, yes

#

I have no clue which would be less code to implement though
Mine uses the same check every time, so it could be, but I can't tell

#

Either way, my bundler is definitely gonna be useful for some devs that don't feel like doing a ton of extra work

#

It's designed to be easy to use, configurable and solve the Neuro SDK WS URL env problem when running the game locally with the latest bundler version

#

(the original reason I even provided it as a resource instead of just having it for making Neuro clicker run on local was the mess that was dealing with all the Python PATH stuff last time)

proud smelt
#

Yo! There are a lot of messages here, is there anything important?
Something that should be pinned

royal jewel
#

Just conversation about how exactly to handle web games X Neuro, the current functional solution is to run using my simple web bundler that exposes the env variables needed for the Neuro integration stuff
It just doesn't allow for running via itch.io, and instead needs to be ran on localhost to work

proud smelt
#

Uh! That means vedal will have to download and run the games locally for it to work?
That doesnt sound great, guess he will have to run a virtual machine again 😛

unreal plinth
#

There's a potential solution that might be able to allow Neuro to play games straight from itch.io up there in the mess of messages, maybe it'll be implemented and work

#

But Vedal was gonna have a VM up anyways for sure, the Neuro API didn't work with web games until today

royal jewel
#

Yeah, at least not as smoothly as now

royal jewel
#

Like with that it's just
Run a single batch file and the game opens on any Windows system

#

No matter if something like Python or Java is installed or not, it brings all of its dependencies bundled

#

Then the Neuro integration will be able to read the same exact env variable as any other Neuro API enabled game, because, well, the bundler includes env access

#

That is the revolutionary new feature my bundler brings that was mainly stopping web games from having Neuro integration easily before

proud smelt
#

Hopefully when all is figured out we can make some sort of guide or documentation of how to implement it so there are no issues
I imagine 1 game out of 5 working correctly.

Things like what type of games would work best for neuro to play?
And other info people who want neuro to play might want to consider before making said game 😛

royal jewel
proud smelt
#

uh! documentation is already out? 😄 nice

civic fractal
#

Backreading on this just to get an idea of what I'll have to do later.

royal jewel
#

What you'll have to do later is simply send GET request to /$env/NEURO_SDK_WS_URL

#

And then do regular Neurp API stuff

proud smelt
royal jewel
#

A link to the thread pinned here would probably make sense

civic fractal
royal jewel
#

Yeah, that will justs get you the WS address you then connect to for the Neuro API, from there on it's all "client-side"

unreal plinth
royal jewel
#

I think

unreal plinth
#

ah

royal jewel
#

Not everyone uses Unity after all

civic fractal
# royal jewel I think

We poor souls are using pygame, It's going to require a bit of porting both the websocket code and the sdk

unreal plinth
#

Then yeah, probably look at how stuff's implemented in the Neuro API. Hopefully the web changes I made get pulled into the main branch

royal jewel
civic fractal
royal jewel
#

The env stuff was the only thing really lacking on the web side that would have made things difficult

#

And all it took was adding a simple special endpoint to a new build of the bundler

#

Should be otherwise completely interchangeable between each version

#

But if you want to use env, you want to make sure to download the env-enabled version

civic fractal
#

Got it 👍

proud smelt
royal jewel
#

With the help of Wispers

#

From the Machine love example cover, you can hear how accurate my version of Neuro's voice is

proud smelt
#

Hmmm, thats fair.
Still not sure if its ok 😛

royal jewel
#

I'm quite confident it's fine
If someone was to complain, they would have

#

There's multiple Neuro RVC models out there already anyway, mine just probably is the best one

unreal plinth
proud smelt
#

I don't think he said "i don't want for people to copy their voices"
But he mentioned wanting background music/sound so it was harder to copy their voices 😛

royal jewel
unreal plinth
#

Been grabbing clips from random videos online, like I just tried a clip of Anny speaking

royal jewel
civic fractal
#

Strange emote naming

royal jewel
#

You gotta get rid of that

unreal plinth
#

Nope, no bgm

royal jewel
#

What is the output?

#

And can you give me the base to experiment on?

unreal plinth
#

Sure, I'll DM you the source, output, and screenshots of the settings

royal jewel
#

Alright

civic fractal
#

Now all we have to do is get a vedal one and we got the full family

royal jewel
#

Vedal is probably the hardests of the three to do
(also, you forgot Anny)

civic fractal
#

I misread a bit, mb

mighty lance
civic fractal
mighty lance
#

I just woke up sorry

civic fractal
#

Honest mistake I get it

mighty lance
#

people in the community are working fast there are already rust, java and javascript/typescript SDKs

#

it's not far fetched that pyGame will get an sdk as well

civic fractal
#

But on the other hand, it might be one of us doing it

#

Not like I'm opposed to doing such, in fact that is what I'm hoping to do.

royal jewel
#

(also, the Java one would be the one I used if I was doing something with it, since I work in Kotlin/JVM most of the time)

mighty lance
mighty lance
#

Are they planning to continue using your server ?

royal jewel
royal jewel
mighty lance
#

Did you read the conversation?

#

Vedal and Alex were talking about ideas in the pr

royal jewel
#

The conversation here or somewhere else?

gentle saddle
#

Wut

#

When did this existed?

waxen wasp
#

a couple days ago

waxen wasp
#

small isue with the wasm stuff, import pyrr causes ungodly loading times

#

im just gonna steall all of the functions and put them inside main.py

waxen wasp
waxen wasp
#

the models not rendering seems to be an index buffer problem, when i remove it it does render them in the browser. at the cost of the vertex order being wrong

mighty lance
#

@royal jewel I was talking about this

royal jewel
#

Interesting I guess

#

Well, at least it seems like Vedal liked the workaround I came up with for env variables

#

Nothing of particular note I can see there
If there's something I could add to my web bundler to make it more useful, let me know I guess

royal jewel
#

It says so on that link just a bit up from here

waxen wasp
#

oh, i didnt see that, I only read the top part cleliv

earnest wind
#

Still doesnt resolve the main issue which was being able to have a public server to be able to connect the ws to since connecting to the local server would be very not secure. being able to specify the URL was trivial.

royal jewel
#

Yeah, it can't connect to localhost from itch.io
But at least this solution allows for not having to separately build for local to get Neuro integration

#

Would be even better with pure JS games if someone did that for some reason

waxen wasp
#

btw, would your bundler allow for safedata to be stored?

#

cuz i dont think webgames can do that

royal jewel
#

What is that?

waxen wasp
#

i meant savedata

royal jewel
#

Could make another special endpoint for that
But can't CC do that too already?

#

And CC doesn't need a special endpoint

waxen wasp
#

what is CC?

royal jewel
#

Cookie Clicker (and the mod of it I originally made the bundler for Neuro clicker)

waxen wasp
#

i dont know how cookie clicker did that

royal jewel
#

It says in the code it uses localstorage

waxen wasp
#

ah ok, localstorage should indeed work

royal jewel
#

If CC can do it, others can do it too

waxen wasp
royal jewel
#

Guess you gotta patch the lib

waxen wasp
#

i pinged the dev (like i did 2 days ago, poor dev), ill see what he says

waxen wasp
#

he's typing neuroNOWAYING

#

he already fixed the bug apparently, thats crazy

royal jewel
#

welldoneneuro Dev

civic fractal
waxen wasp
#

something to do with pyodide having the wrong version's index.

#

its fixed on his end but the pmp-p person needs to run a command on their end too, so its almost fixed

waxen wasp
civic fractal
waxen wasp
#

the gltf lib I'm using doesn't work in browser, so I'm storing all the model data in numpy arrays.
i made a typo tho so all the files with normals are called {gltf-model-filename}VormalDataList{index}

#

its apparently also using that as the filetype cuz of the .gltf being included in the model filename VedalOh

main wyvern
#

i saw that vedal put the github thing so people can have neurt and eliv play games vs others or vs each others but i wonder if he added one where it's twins vs chat ? iirc doug already made public the code to have chat interact with games that totally won't farm bitcoin on your pc so we could take a page from his book to make fresh content using all of chat vs the twin & vedal

waxen wasp
#

he said that wont work iirc, no twins

main wyvern
#

really? i could have sworn he didn't deny the possibility in his talk with Alex, perhaps he denied later

waxen wasp
fleet goblet
#

you guys are talking about different things
nvm i misread

waxen wasp
#

im referencing this

main wyvern
#

still can do neuro vs chat at least since it will work the same as neuro vs vedal

waxen wasp
#

goodluck with that, you'd need to do some server shenanigans for that

wary lance
waxen wasp
#

i dont think there's a rule against that

#

chat integration or some stuff could probably work too

#

i will not be doing that, iggly can if he feels like he doesnt have enough on his plate already with the websocket, RVC, and possible song

civic fractal
#

Yeah, there is quite a bit I'm trying to tackle

waxen wasp
#

the websocket stuff doesnt need to work perfectly from the get-go, we'll have time for that after the game-jam

civic fractal
#

That's all I'm testing before the jam

#

via the nag vedal action

waxen wasp
#

im polishing the code rn and it will hopefully work completely by tomorrow

civic fractal
#

I'll have to hook into your keybind system if it exists yet. That's where I'd see the easiest way of adding these into existance.

#

Should write some test code for my idea just to see if my idea can be completely implemented before thr jam.

waxen wasp
#

this

#

pygame.K_d is just another way to pass "100"
they're all just ints

civic fractal
#

Is it alright if I turn this into a functionaly identical structure but allows for adding and removing binds?

waxen wasp
#

yep

#

that is what it was originaly for

civic fractal
#

I should be able to just poll it's state and generate the correct api call

waxen wasp
#

last game jam i had a menu where you could change thekeybinds, it wass really scuffed burt worked

civic fractal
#

That doesn't seem hard to add

waxen wasp
civic fractal
#

That does look scuffed

waxen wasp
#

i was a fan of using global in those days

civic fractal
#

Man, in this day and age. This entire keybindings are now a class

waxen wasp
#

i present to you the worst piece of code i have written so far.
last year i also had a window resize, this was implemented on the 28th hour of my all nighter just before i sunmitted the game

#

now this, this is art

civic fractal
#

Glad you had one, I sure didn't have a resize function neuroDespair

#

I mean it also crashed on arrow keys, but I blame my libary for that

#

It was supposed to be "linux versions of the methods for windows" but the function I used didn't exist on windows so I swapped in a replacement.

#

Shame it was a few line fix

waxen wasp
#

ye... it do be like that sometimes

#

hopefully we wont have (much) scuff this year

civic fractal
waxen wasp
#

oh even the way i typed that was scuffed

civic fractal
#

What a great start neurOMEGALUL

waxen wasp
#

ye

#

i should sleep soon

civic fractal
#

Take your rest

waxen wasp
#

oh those messages got deleted, (even the github ones? I thought that was allowed cuz there are github links in the public assets thread)

#

anyways goodnight

ornate linden
#

So

#

Never done a game jam before

#

Anyone have a advice?

copper ibex
#

mhm prepare by making a document with every feature you want in the game.
then cut out half the features. and then cut another half. and now you might actually be able to make it in time

ornate linden
#

What do you recommend to use as a GE for a beginner like me?

copper ibex
#

tink doesn't really matter. any engine can do anything you need

#

godot,unity is probably one of the better to start out with

ornate linden
#

Yes but I’m more concerned about the learning curve

tame rapids
#

most important game jam tip: don't overscope your game

#

keep it as small as possible

copper ibex
#

i personally like using godot because there is no compiling time so if you play around and test something it basically instantly changes

#

but unity is also fine since it got a butt load of tutorials out there

#

Game maker studio could also work tho i personally have no experience with it, but it does seem pretty user friendly

ornate linden
#

O well I’ll have to see if I’d have time for the game jam

#

In the process of moving

mint ice
#

Has anyone made any test mini games yet? I want to test out actual "realtime" games or games with non-forced actions. My conclusion so far is that rapidly changing contexts is confusing for an LLM. It sort of works if your game is guiding it, which is kinda pointless in my opinion.

proud smelt
#

Im not a programmer, so im still trying to understand how it works 😛

#

What do you mean by real time games though?

mint ice
#

like games that actions can happen at any time.

#

I think usually neuro plays games where you do an action then wait for the next action.

proud smelt
#

Mmmh, i guess neuro can still play those.
But she will just take one action at the time 😛
I assume the amount of actions you can have at any time should be limited
Also, for now, i dont think she can play something like a platformer

copper ibex
#

tink i assume as long as there is sufficent time between actions it should be fine... but something like a RTS or thing would be difficult for the llm

nimble dew
#

I also would prefer making a realtime game and wonder if a "half control" for Neuro would work where the game acts a bit like a turn based game. So there would be skills that Neuro can use and when they are done executing (when it's time for the "next turn") then Neuro can use another skill. Do we have any idea how fast Neuro gives new commands? Does this Randy have some delay to simulate that? If Neuros reaction time is very fast then more realtime should be possible but it's hard to make a game if we don't know.

mint ice
#

Yeah, I was thinking more like a tower defense game might work. There's a lot of time to do actions like use abilities or place/recruit defenses.

nimble dew
proud smelt
#

I would keep time as a factor out of the games neuro will play.
For example if you make a visual novel dont give her a time limit to pick an option.

I´m actually curious. Does neuro pick an action as soon as you prompt her?

Or can she choose to wait, talk, read chat, play a sound... and then send the action to the game?
I´m asking this to know if neuro picks actions based only on the game prompt
Or if some other factors can influence what she does.

mint ice
#

You can force an action which Neuro will do "as soon as possible". Forced actions can have some context sent with it, like instructions or game state.

You can send context to her also, but she doesn't have to respond to those if it is "silent". She can also use any actions registered at any time, presumably.

proud smelt
#

Ohhh roger!
So she can "learn to play" in a way and potentially use an action when she knows its there and might work

nimble dew
#

In general it would of course be good if Neuro could play realtime games. They could kinda work like fast paced turn based games: N times per second she is given the option to make an action. I don't know how much guidance she can be given. Like it could be like a DnD session where the gamemaster explains all the options with possible consequences.

proud smelt
#

This is going to be a test of how good are we at prompting 😛

#

Also, are prompts going to be filtered?
Cause people can just say weird stuff on the prompts 😛

nimble dew
#

Physical games like platformers might be very hard since you have to estimate where things will be at a given time judging by their speed and movement in previous frames. Maybe it could also be programmed somehow like an assisting AI to her. The game would be like "Moving platform A is at X,Y now." multiple times per second or even "Moving platform A is at X,Y now and moving with a speed of X,Y.". Maybe Neuro could plan a jump properly then if extended for such things somehow.

wary lance
nimble dew
#

Like an prediction and aiming computer for Neuro.

mint ice
mint ice
#

Nope lol.

proud smelt
#

Is randy an llm or just send random commands?

mint ice
#

Randy does random actions and only forced ones. It can't choose any action which is why I'm testing using an LLM.

proud smelt
#

Yeah that sounds more like a "real deal" type of test.
Is it hard to set up?
I have llama set with tavern ai (for whatever is worth)
But I'm not super savvy 😛

wary lance
#

I see so its like your own websocket server neuro api backend replacement that is interacting with Llama3.2 model

mint ice
#

Yeah I don't think it's fully functional just yet, but it works with the Tic Tac Toe example at least.

#

Also I only chose llama3.2 because it's small and fast. Other models are way way better.

zealous jolt
proud smelt
nimble dew
#

I wonder about premade/external assets and code: It would be weird to slap a ton of good looking premade stuff together and have that be ranked against a game that made every asset during the game jam. But when making a real game you can also use a lot of external stuff so disallowing that would be weird too. Also everyone is already using premade engines, being it Unity or even a premade own ones so one won't be making everything from scratch.
Maybe there should be a requirement to precisely list everything that was made during the game jam vs. stuff that was there before it.

main wyvern
#

hmmm, it's like AAA game vs indie game, the former may have more assets than the later but the later can be much more fun than the former
it's not just about the visuals and assets. if at its core your game is fun, it will much better than a game with many assets but no substance

so I am of the opinion of: use what you can but what will make a game truly fun or not is you as a game developer and how you want your game to be

nimble dew
#

Yeah I know. I mean it's hard to compare and judge things. But team sizes and experience levels can be very different as well so results will probably vary greatly.

waxen wasp
#

i think thats okay

proud smelt
waxen wasp
#

"While you can use pre-existing code or assets, refrain from writing code or creating assets specifically for this jam in advance unless you are releasing an asset pack for everyone to use. Remember that the point of the game jam is for you to create your entire project within the 72 hours period."

#

this one applies as well
Feel free to utilize pre-made, publicly available, or purchased assets, as long as you have a license for them and proper credit is given as necessary.

#

so people are mostly working on the non-game parts, like the websocket, or publicly available things, like superbox' RVC

queen juniper
#

I'm kind of curious how much context neuro gets for games like slay the spire

#

Like is she constantly getting context about her relics, or just once?

#

Maybe a good way to do context for large quantities of static data is to give her an action to recontextualize it on her own (limited to prevent spamming)

#

Does she keep all the context?

main wyvern
waxen wasp
#

indeed

hoary cargo
# main wyvern it's kermit dead and we watched it as it slowly died over these years as "shareh...

Tbh the shareholders probably played a role, but these companies played themselves by cowtowing to the political whims of black rock. Now that this money is gone, they have to survive on the merit and good will they flushed down the toilet through employee purges and passing their customers off.

It's wonderful to see the downfall.

Meanwhile I'm just a indie game(larian studio etc) enjoyer.

main wyvern
#

the game was lost the moment they went public.
there are cases of ceo losing a court case where all they did was give his employees a raise instead of buying stocks of his company to further increase the value of those stocks. those putting him to court being the shareholders of course

#

the ceo is just a puppet for the "shareholders" at that point, and they can legally remove him and put someone else instead

#

should have stayed private like Steam, Gabe is winning by litterally doing nothing and just being a proper company that don't just value short term monetary gain to please shareholders

#

well, reality is not that simple and i can think of arguments to both sides but i think it boil down to that really.

hazy totem
#

PauseSama wait, what if neuro invests in gamejam games

#

idk how that would work but neurOMEGALUL

waxen wasp
#

its one of the biggest game studios in belgium, where i live

#

i have school games from larian studios

main wyvern
#

would you look that

#

the patterns!

waxen wasp
#

it seems that we have diffrent definitions of indie

#

you define it by if the company is private or not?

main wyvern
#

ah nah, was just saying how you generally lose when you go public, and if you stay private you are not restricted by shareholders whims

#

if it counts as indie or not...hmm i can see opinions for both sides

#

they have over 300 peps iirc, so if i am forced to decide, i will say no, they are not

waxen wasp
#

idk, Tencent owns 30% of Larian

main wyvern
#

really? where did you find that?

waxen wasp
#

its somewhere on the wiki iirc

main wyvern
#

not there

waxen wasp
#

its with capital T

main wyvern
#

T and t are the same for searchs

waxen wasp
#

it worked for me

main wyvern
#

actually found it, the page was french, changed it to english and it was there

#

however the article used for that, seem to be untrue

waxen wasp
#

hmm, guess ive been misinformed

main wyvern
#

someone should change the wiki info

waxen wasp
#

welp, my bad

#

i guess larian truly is indie

#

weird

#

actually its more complicated than that

#

tencent does own 30% but its a prefernce share, so no voting rights

#

anyways, this is getting off-topic

main wyvern
#

I see, got it, well, as long as they don't have voting rights it's the same as being private. won't have a say in how they do things
true, glad we got out of this with better knowledge

waxen wasp
hoary cargo
# waxen wasp larian studios is far from indie

And old friend told me indie doesn't mean small. It just means independent from larger studios like Electronic arts, Microsoft and Sony. Meaning they don't have to bow to such weirdos. 🙂

waxen wasp
#

okay

proud smelt
#

And they are still considered indie

gentle saddle
#

Wait uhh funny question because I’m curious
Can you make the game on Roblox for the game jam?
Probably not cuz itch.io

civic fractal
#

I believe people have done links to hosted outside of itch before. I feel like you'd be able to, but I'd check if you're wanting to.

gentle saddle
#

❤️

#

My curiosity has been fulfilled

#

Also luna sucks so yea probably not gonna be using Roblox for the game jam

proud smelt
proud smelt
#

Daz fair 😛

#

Anyone is going to make their game in vr chat?

civic fractal
waxen wasp
#

Hard nope

#

Maybe next year

waxen wasp
#

openXR is available in python

halcyon nest
#

What if you submited a game made with Scratch ?

waxen wasp
#

Thats allowed, happened last year iirc

mighty lance
#

So xddShrug

#

Just keep in mind that the Neuro SDK does not support scratch

waxen wasp
#

It doesnt, but it actually does

halcyon nest
#

I was just joking but im suprised that it could be theoretically feasible.

mighty lance
proud smelt
#

Is there a good database or wiki with all the neuro verse references and such? 😛

warm rampart
#

^this would be useful

bright raven
#

Text input-based games (you type in commands like "get key" or "go west") could be a neat genre for Neuro to try. Are there any existing systems that help with simplifying handling the input? (E.g. that could process "pick up the key")

hazy totem
#

nwero "win the game"

civic fractal
#

Honestly, we don't have much tooling at all for it. The only things that exist are language binds and a few validators.

bright raven
#

That's why I'm trying to look for a more flexible parsing tool on the other end.

proud smelt
civic fractal
tardy lava
#

make her play doki doki literature club

#

i want to see who she romances

main wyvern
#

make her play all of umineko (just press the next button for 120 hours)

proud smelt
#

Yeah, every visual novel is just a text based adventure in the end for neuro 😛

tardy lava
#

can neuro recognize bountiful assets in a woman, thats my question

#

tbh i'm not sure how the ai/bot interfaces with a video game. im assuming it just has data fed in on how to play and can only send out rudementary commands?

civic fractal
#

Vision is not enabled for those that use the API to have her play, so you'd have to send that in as context.

tardy lava
#

i should probably look up how basic bots work, huh
(def not for botting in runescape ;;;;;)))) )

bright raven
civic fractal
#

I'm going to be real, that was a knack to the person above saying that it has to be fun for everyone.
I like the idea of text-based adventure.

lapis meadow
#

You've been eaten by a grue.

civic fractal
#

Here's our basic action

#

In theory you could set the schema to accept an arbitrary action and describe it as such.

#

The toughest part is updating the context of the game.

pale iron
#

does anyone know the amount of people allowed on a team?

civic fractal
#

No team size limit

#

There was a joke in the start of this channel about a 20 person team

civic fractal
civic fractal
waxen wasp
#

Oh btw igglyn, the index buffer fix for pygbag+zengl means the web needs to run python 3.13, and there isn't a compiled version for numpy that supports 3.13 yet. So if it doesnt work by when the gamejam happen im gonna just not use index buffers

#

It will be slower and use more vram, but shouldnt be noticable

fleet goblet
#

This does mean that what you wanted to do is probably not possible

#

But the schema needs to be kept simple for Neuro to be able to understand it

waxen wasp
#

so not neuroHypers ?

civic fractal
#

I was trying to help with a text based adventure. The person seemed keen on not having any real actions, wanting to have neuro type a response or something.

proud smelt
waxen wasp
#

would it work if you supplied the possible actions first?

fleet goblet
civic fractal
fleet goblet
#

So instead of something like

{
  "oneOf": [
    {
      "properties": {
        "do": { "const": "pickup_item" },
        "item": { "enum": [ "item1", "item2" ] }
      },
      "required": [ "do", "item" ]
    },
    {
      "properties": {
        "do": { "const": "pickup_object" },
        "object": { "enum": [ "object1", "object2" ] }
      },
      "required": [ "do", "object" ]
    }
  ]
}

you would do something like

{
  "properties": {
    "do": { "enum": [ "pickup_item", "pickup_object" ] },
    "item": { "enum": [ "item1", "item2" ] },
    "object": { "enum": [ "object1", "object2" ] }
  },
  "required": [ "do" ]
}

and then ask neuro nicely in the description field to specify item if she does pickup_item and specify object if she does pickup_object

lapis meadow
#

do you have to ask nicely?

civic fractal
#

Preferably

fleet goblet
waxen wasp
fleet goblet
#

So its in her best interest to do what the description says

#

So I would say you dont have to ask nicely

civic fractal
#

I'd only say be nice in action forces

earnest wind
#

Be as rude as possible NeuroTease

lapis meadow
#

Rig her response by bribing her with cookies in the description

fleet goblet
#

these messages should mostly be objective though, without any kind of emotion

civic fractal
#

👍

unreal plinth
#

Does anyone have some idea of how the game state, context, etc. is stored on the Neuro side?
Like when we specify context, is that stored permanently, until the next context message, for some time frame, added to Neuro's chat history, etc.?. Should we be specifying the entire game context, like long-term overarching objectives and stuff, and also short term in the moment happenings, or is there some differentiation in how we specify the 2 things?
The docs on the context are a bit vague in just saying a "message that describes what is happening in the game"

fleet goblet
unreal plinth
#

I see, so probably should just include the entire game state whenever the context is updated then
Good to know

lapis meadow
# fleet goblet

so this means neuro purposefully chooses to not remember how to spell anny's name correctly mhm

main wyvern
#

hello space anny neuro7

fleet goblet
#

@unreal plinth why did you say native websockets doesnt work on windows build target?
nvm it didnt work for me either

timber tapir
unreal plinth
unreal plinth
fleet goblet
#

wait

unreal plinth
#

It's explained in the "Usage" section on the GitHub, I just had glossed over that and assumed it was WebGL only

naive walrus
#

Hi neuroWave, im apart of a team of 3 programmers. It would be great to have a artist and composer onboard but any help will do. If you interested feel free to dm me.

proud smelt
naive walrus
winter aurora
#

I'm part of that team and yeah, we were the team that made Neuroshock (ranked 39 overall)
with the biggest mistake being a 3d unreal engine game with ligh source that consumed a loooot of computing power and being the first time coding in ureal for us
I would like to preferably focus on a 2d game on unity of godot.
and just to note: I don't know for the other but I have no experience in unity of godot so it will be a good learning experience ! (outside of vrc avatar but that do not count)

nimble dew
#

Do it like me and try to learn the engine before the game jam

winter aurora
#

good idea tbh. (and last year I got myself to familiarise with unreal before the game jam. but not enougth)

hazy totem
#

Tho I don’t know what their current availability status is

hazy totem
#

neurOMEGALUL also made my pc overheat

winter aurora
#

yeah mb cerbyDead

#

we got new, lighter graphic after the game jam but tbh I was not the one handling these things and it changed look and was strange by how the light object was place. 100% there would been a better way to do things and look better but I'm not into graphics cerbyLUL

hazy totem
#

FOCUS it was fun tho

#

I totally wasn’t trying to find ways to break the game

waxen wasp
#

or just make the engine you'll be using NeuroClueless

winter aurora
#

making a engine specially for the game jam only for it to break rule 5 cerbyLUL (refrain from writing code or creating assets specifically for this jam in advance unless you are releasing an asset pack for everyone to use)

winter aurora
waxen wasp
#

i was planning on having released something by now but its still cooking

winter aurora
#

oh so you ARE making a game engine cerbyWow

#

Good luck ! cerbyPeek

waxen wasp
#

thanks, we're focusing on web compatibility now

winter aurora
#

I tried mine a long time ago. failure/20 since the start cerbyLUL

waxen wasp
#

my first attempt wasnt great either, but i managed to get a pretty high score anyways on graphics on last years jam

hasty drift
#

Heya vedalWave
I made <Neuro's RAM Rescue> which ranked #17 in last years game jam.

Last year I bothered an artist friend to make some few pixel art additions for the game but this year she is on vacation during the holidays. That is why I wanted to ask if any other artist would be interested in teaming up.

My goal is to make just a small game, hopefully with the Neuro SDK implement.

So if anyone is interested in collaborating with a bad solo dev, hit me up in DM's or something.

civic fractal
winter aurora
waxen wasp
#

neuro7 even im not crazy enough to do that

winter aurora
royal jewel
winter aurora
#

I don't see why would you not use the java version for kotlin tbh

#

still need to finish writing proper usage doc and make things pretty cerbyDead

royal jewel
#

Sometimes it's more convenient to have a lib designed around usage with Kotlin

#

Either way, I have no Kotlin game engine, so I won't be making anything

winter aurora
#

yeah maybe
at least I won't make one bc too lazy too and would use the java way anyway bc used to java cerbyLUL

royal jewel
#

I'm a Kotlin main when it comes to programming

winter aurora
#

ohhh nice !
I only used kotlin like for one of my project and heavily mixed with java bc still prefer it sometimes by habit

hasty drift
royal jewel
#

Maybe if I figure out how, I should make a proper game engine in Kotlin one day
Would have to use something like OpenGL directly probably though
I don't know, but I do know I won't be doing something like that any time soon

winter aurora
hasty drift
#

Hmm, don't remember exactly either

winter aurora
royal jewel
#

I don't know
Never worked directly with a graphics backend

#

We'll see, could be interesting to try to make an actual proper game engine in Kotlin
Currently there's only like one terribly badly documented thing that exists for Kotlin

tardy geyser
#

feelsStrongMan clap good to see recurring participants

scenic berry
#

we back

foggy hearth
lapis meadow
foggy hearth
lament ermine
#

Heyo! Team of 3 here, we're looking for an artist and sound designer!

#

We have @winter aurora and @naive walrus rn

#

They are devs, and I am also a dev but also a 3D artist

fleet goblet
#

I excluded description because it would just be extra tokens

#

For now it should be fine to just use the description of the action itself as you said.

#

_ _
@royal jewel is your bundler on github somewhere?
so i can link that in the readme instead of the discord url

civic fractal
#

Not as far as I'm aware

sleek reef
#

hello! i'm a new game dev wanting to join this year's game jam, and i'm looking for a team to work with. I am familiar with using godot & unity engines, but im open to learning other stuffs

civic fractal
#

I'm sure this channel will be more active once the subathon starts.

sand lotus
#

got the neuro api working with gamemaker

royal jewel
royal jewel
torpid bridge
#

If anyone wants me to make event specific art and sprites once it starts, lemme know once the theme is announced

misty tree
#

on a random note, is there any known visual representation of staz? hes such a key neuroverse character now but i dont even know what id use to reference him

rotund rampart
#

how does this work? as in how do I join etc

waxen wasp
#

the itch link its pinned

#

there you can press join

#

we already have more people that joined than last year, and the subathon hasn't even started yet

rotund rampart
#

The theme will be decided on the start date right?

waxen wasp
misty tree
waxen wasp
#

true

#

idd go for the right one, cuz the turtle mask could be confusing

misty tree
#

i think it would be so funny if staz pops up in some way anytime any dialogue has the word vedal in it

waxen wasp
#

staz is in neurocord so you could also just ask him directly

misty tree
#

oh huh

#

this one? just wanna make sure i dont go pinging/messaging some random person lol

waxen wasp
#

im pretty sure thats him ye

misty tree
#

@slate knoll vedal vedal vedal 👀

slate knoll
#

Yeah

misty tree
slate knoll
#

I don't

misty tree
#

hmmm, i see

#

guess ill just have to figure out something then, thank you for your time~

slate knoll
#

P3r drew me as eyes honey drew me as a camera

misty tree
#

makes sense, eyes cuz ur always watching, or camera because ur a clipper.
also if i fake a twitch chat again, i guess i could just sneak in a message from staz.

fleet goblet
#

Game jam period might be delayed by 1 day to start on the 27th

#

To avoid the 26th

waxen wasp
#

what's happening the 26th?

fleet goblet
#

Second day of Christmas

waxen wasp
#

wasnt the planned first day the 27th tho?

unreal plinth
#

Christmas really snuck up and decided to land on the 25th, right in the middle of Neuro's birthday

fleet goblet
#

That will be updated

waxen wasp
#

ah ok, no prob

worldly sinew
#

hi chat

waxen wasp
#

hi neuroWaveA

worldly sinew
#

are we allowed to work w others during the Game Jam

#

i myself am a coder but not an artist

waxen wasp
#

yes

worldly sinew
#

now to find a friend

#

impossible challenge

torpid bridge
#

I do a lot of anime and cartoony art

nimble dew
#

I already wondered why the jam starts on the 26th which is a holiday here in Germany and wondered if there is no second day of christmas in the UK or whatever. One day more to learn the engine 😉

cerulean jetty
#

@worldly sinew what are you working with?

worldly sinew
#

Gamemaker

#

because most other game softwares dont work with linux

cerulean jetty
#

Yeah, last I worked with Godot on linux so I won't be learning that xD

worldly sinew
cerulean jetty
worldly sinew
#

i will be up for using Godot instead

hasty drift
#

just found out I could get github copilot for free for vs code, this will be usefull lol

waxen wasp
#

explain please?

#

for free? how?

worldly sinew
#

github has copilot?

hasty drift
worldly sinew
cerulean jetty
worldly sinew
hasty drift
#

better than nothing ig

cerulean jetty
#

I rarely use vs code anyways so.

worldly sinew
#

why are you wanting to use AI to code

#

especially when its not neurosama your using

hasty drift
#

why not

worldly sinew
#

because it takes the masochism out of it

#

and thats not nice

cerulean jetty
#

I'm perfectly content with the one that is integrated into intellij as a part of intellisense.

worldly sinew
#

what coding format does VS use?

cerulean jetty
worldly sinew
sage bane
#

looks like cursor

cerulean jetty
worldly sinew
#

ok

cerulean jetty
#

Does the godot client for Neuro work from the browser?

worldly sinew