Does anyone want to collab for the LD Jam? I use Unity, I'm primarily a programmer but I can make shitty stylized art, and have been practicing lowpoly 3d. Picrelated is my portfolio, you can play my games at snekdev.itch.io/. I've done several collabs here before.
For the LD I'd like to use at least some lowpoly 3d, besides that I'm open to suggestions.
Leave a discord or email here, or message me at snek#9588.
Connor Wright
my ass itches but i cant get my fingers in between my cheecks enough because my pants are in the way, but if i scratch my bare ass my fingers will smell. what do i do?
Ian Powell
scratch over your underwear
David Howard
fucking genius
Jose Williams
Eat lots of gassy food and have your farts scratch that itch for you.
Jaxon Thomas
go to the restroom and wipe your ass with toilet tissue and then wash your hands. problem solved. if you're too lazy to do that, you're probably too lazy to make game.
Christopher Diaz
Playing video games is just research for my game, so this month wasn't wasted.
Hunter Stewart
seventh for staying up late so I can see what the LD jam is so I can decide what to do during my sleep
Brody Bell
How do I store voxels?
Jeremiah Morales
Gotta scope out the market to make a top notch GDD.
Lucas Carter
it's a 3d array retard
Robert Morgan
That game does have lovely colors. But I never really liked the complete flat shading. It just makes organic things look ugly. A game like that can still look good with some models having smooth bits of shading.
Charles Carter
>Not Ludum Dare Edition Heh, probably not even a jammer. Out of the way scrub, real gamedevs coming through.
Ryder Martinez
i can see where you're coming from. personally i love the flat shaded look. its easy to embrace where as if you use smooth shading on a low poly model, you need to fiddle to make sure it doesnt look bad but you do you user!
Isaiah Moore
sorry i'm a nodev ;)
Hudson Mitchell
Threadly reminder that if you don't store flags in strings, you're not a real dev and you'll never get $60k/year on Patreon.
Levi Adams
On a much bigger scale and optimized for size as much as possible.
I have my own idea but I was writing a post explaining it in last thread and forgot to copy it when coming to the new thread to post it.
Nathan Thompson
could be better, delete this post and rewrite it again
Nathan Sanchez
It's a 3d array of 3d arrays, retard
Jace Smith
>more than 1 hour until it even begins Bet you enjoy campaigning for elections that aren't even held in the same year as the campaign.
Mason Perez
Anybody else?
Ethan Rivera
Is it considered bad practice to use begin/end step events in gms? I have this retarded issue, that is solved by using begin step.
The dumbest part is, If I use that same code on the first line of my step event, my issue persists. I mean, there doesn't seem to be any difference in the order of execution here. Isnt it -begin -step -end? Or am I misunderstanding?
Cooper Sanders
I agree that smooth shading can be hard to achieve on low poly. Although Grown Home isn't really an extremely low poly game, those plants have enough polys that smooth shading would look fine on them.
Jonathan Campbell
Imagine working with him on a game
Robert King
Had an itch to work on my Spelunky-like a bit
Bombs now fling other bombs around
I'm sure this will have some kind of useful application
Jaxson Mitchell
I'm going to need at least $10,000 a month to refactor my post a third time.
Zachary Brooks
chunks aka 3d array of 3d arrays
Brody Edwards
...
Aiden Turner
not sure what kind of answer you are expecting
Benjamin Parker
What games are you playing for research?
Dominic Clark
Making an enemy that drops several bombs on death or something will benefit from those physics. I'm sure some players might find some other uses as well.
Mason Gray
What's your idea?
Samuel Harris
It's a 3d array of 3d arrays of 3d arrays, retard
John Collins
I suppose you could use some sort of compression when storing it, but for working with it in memory I don't see a way to avoid a 3d array, retard
Grayson Cox
>A voxel represents a value on a regular grid in three-dimensional space. As with pixels in a bitmap, voxels themselves do not typically have their position (their coordinates) explicitly encoded along with their values. Instead, rendering systems infer the position of a voxel based upon its position relative to other voxels (i.e., its position in the data structure that makes up a single volumetric image). I don't see how you could implement this as anything but a 3D array.
Jeremiah Roberts
>he implements voxels as a 3d array
Lucas Edwards
sparse map from 3d indices to 3d arrays
Henry Gonzalez
An actually useful answer. I already told you the map is going to be huge and I need to compress the shit. The terrain will be generated, so most of the voxels can be computed on the fly. I just need to store a single seed value for the entire map and all the chunks that differ.
Basically what I said above. I also have a very specific format for storing the nodes that is hard to explain. I have a global array of node type names like "stone", "dirt", ... For every chunk I store a 1D array of union { node type index; position }. After each node type index comes a list of positions of voxels of the type. Each position has an auxiliary bit that delimits the list when 0 (let's say position is x, y, z, a. If a = 0 then the next element of the array is a next node type index. Actually a is 2 bits because I store whole areas filled with voxels of a given type but that's too much complexity for one post.
Justin Bell
A dictionary of 3D vectors that map to the voxel data.
Ian Moore
>The terrain will be generated, so most of the voxels can be computed on the fly. I just need to store a single seed value for the entire map and all the chunks that differ. Nigga are you making a Minecraft clone in the year 2017?
Jordan Collins
>I just need to store a single seed value for the entire map and all the chunks that differ. See
Josiah Jackson
how would you do it?
Josiah Powell
>50 minutes It's going to be the main topic of discussion soon. YA BLEW IT
Isaiah Robinson
>all the chunks that differ for each chunk all the voxels that differ from those generated by the seed* sorry, typo
I'm just speculating, I don't know if I'm going to actually make a game, it's a huge project. I might try to help an existing Open Source project but I don't know if I'll do even that.
David Cook
>for each chunk all the voxels that differ from those generated by the seed* I knew what you meant, but thanks for clearing up
Jeremiah Turner
With that attitude, you already know that you won't get the project done. Try making a tech demo for a specific feature instead, and wrap it in the most minimal game you can think of.
Nolan Kelly
I should add that the data structure should be on-disk. If you have Minecraft-scale worlds you won't be able to store everything in RAM. Maybe a RDBMS and store the chunk data as binary data?
David Thomas
Store each chunk as a 3D array. If the space X,Y,Z is null, it is unmodified. Otherwise, it contains the new voxel.
This doesn't seem very complicated, actually. What's your problem?
>I'm just speculating, I don't know if I'm going to actually make a game, it's a huge project. Why do you want to make a Minecraft clone? There's no market for it, unless you go whole hog on the autism and include a robust programming system and some way to automate tasks with it.
Anthony Edwards
i mean come on. even his mascot who has become an icon itself is from the asset store
who the fuck buys their main character from the asset store?
Blake Reed
>This doesn't seem very complicated, actually. What's your problem? It's not compressed enough. Here comes some complexity:
>Actually a is 2 bits because I store whole areas filled with voxels of a given type but that's too much complexity for one post.
position := x, y, z, a if a = 0, that's a delimiter that I explained if a = 1, that's a position of a single voxel of the given type if a = 2, that's one vertex of a cuboid filled with voxels of the given type if a = 3, that's the second vertex. Together with a matching a = 2 they make the cuboid. a = 0 also closes any cuboid with no matching a = 3 If a voxel or a cuboid is nested in another cuboid, it cuts it.
This way I should largely reduce the size of a chunk stored. My problem is that I can't think out an algorithm that would store the voxels in this format in an optimal way.
Jason Moore
She was originally a placeholder but he let fandom memes take over.
Ayden Peterson
If anybody has a better idea than that, that's what I asked for. But it looks like nobody does. Also if somebody has an idea for an algorithm that compresses the voxels to my format, I would appreciate it. I'm not very good with algorithms.
Parker Gomez
>buy said asset pack >make bootleg Yandere sim >rake in dosh from the fans because you made the superior version
Angel Ward
everything in his game is assets/donated assets the only thing he did was the horrible code (which is now being rewritten by a competent person)
Cooper Johnson
>search for "voxel compression algorithm" >all the results are from 2011 kek
Luke Wilson
Wouldn't it be easier to just move chunks dynamically in and out of RAM? How big is your world that you can't afford to store it on the disc?
Also, I don't think I quite understand your system here - are you storing the voxel's position within the voxel itself instead of storing it relatively in a larger data structure? If so, how does each voxel know its neighbors?
Alexander Turner
>how does each voxel know its neighbors? Check all voxels and pick the one with the right coordinate, duh.
Joshua Gutierrez
And yet nobody will.
Ian Wright
I'm shit at making music. Can I just use public domain music and sounds and remix them for my game?
Brayden James
how do i pick good colors? how many colors should a character generally have, 2-3?
Jaxson Russell
If you can't make music, why do you think that you can remix it well?
Robert Watson
It's actually pretty weird that there's no other anime Hitman clone. Aping everything in YanSim would definitely be overboard not least because the game has a lot of unnecessary chaff, but "cute anime girl killing people without getting caught" is the primary draw, and that'd be easy to copy.
I'll probably be shit at remixing too. Is it okay to use completely unaltered CC0 recordings of music for my game?
Joseph Walker
look at your game's palette, try to fit your main character in with such colors that you can easily spot him at all times as a player
Jose Thompson
Yes. But don't be surprised when someone accuses you of being cheap and unoriginal. And beware that while a piece of music may be public domain, it doesn't mean that every recording of that song is PD as well. I.e. Beethoven's 5th is PD, but the Vienna Orchestra performing it in 2010 is not.
Daniel Butler
perfect, ty
Jacob White
>Wouldn't it be easier to just move chunks dynamically in and out of RAM? I'm just asking how to store them. Where to store is a different question and it's obvious that I'll store them on the disk. I don't know yet if I'll use plain old files or a database.
>How big is your world that you can't afford to store it on the disc? The bigger the better and I do store it on the disk. I don't even know what makes you think I wouldn't.
>how does each voxel know its neighbors? Basically what says. The chunks aren't that big, the only problem will be borders of chunks.
My goal is to calculate everything on server side. I want to let the server figure out what voxels the player sees to mock those that should be hidden to him and send the mocks. That means the chunks should be as small as possible to be sent over the network as fast as possible.
Josiah Morris
install bidet
Daniel Sanchez
don't worry tovarisch, the sheets are PD :^))))
Elijah Peterson
>Basically what (You) says. The chunks aren't that big, the only problem will be borders of chunks. I said so in jest! Why would you cycle through all those voxels that are definitely not the one you want?!
Sebastian Williams
Just copy color palettes from popular robots.
Liam Lee
Oh hey, it's Homestar Runner!
Alexander Hill
>Basically what says. that's dumb
You only need to store the type of the voxel, right? It has no other essential properties? You could easily store it in a short if you are storing furniture in the same way, or in a single byte if this is only for the environment. Therefore, you only need a 3D array of one primitive data type. Then you just need to find a way to compress a 3D array - I'm sure there are already algorithms for it.
Joseph Baker
People expect it to look like the left already and wouldn't think too much about it. Also the right has the characters much smaller (at least as you have it in the mockup) which seems like something you wouldn't want in a lewdgame.
How are you going to use up all that negative space you just made? How many assets have you drawn already?
Xavier Flores
Wow uh I hope you've got the money to pay for use of Notch's patent.
Asher Jackson
Your game's in-game text should be written in Esperanto first.
Not enough hype posts for LD, theme is dropping in 1 min
Scrubbos
Ian Cruz
>hype posts What is a hype post and why should we make them?
Eli Jackson
LD is a shovelware circlejerk, Who cares?
Nathan Thomas
ldjam.com is getting hammered, now we'll never know the theme
Landon Fisher
To get the juices flowing. Sexual juices.
Owen Lee
In my format each chunk contains about 16k voxels. Most of the voxels are computed on the fly from the seed and not stored anywhere anyways. Computer is not a human counting on his fingers like you. It can handle something like this. If it's too slow, I think I can avoid checking for neighbours for most task that normally do this and use something sweep line algorithms or something.
>You only need to store the type of the voxel, right? It has no other essential properties? Either store the properties after the type of voxel (the amount of space needed to store the property determined by the type, the limitation is it must be a multiply of size of voxel type (16 bits in my format), store them in a separate array or split the type into more, each with a different property. With my format I can have over 64k types of voxels, that's enough. For stuff like chests I'd just use a separate array.
I don't even know what you're talking about.
Dominic Parker
Poe's Law
Matthew Sanchez
>The only reason Klingon is impractical is because only GEEKS use it >The fact that it was specifically designed to be completely unlike any existing human language is purely incidental! Anyway, nobody speaks Esperanto except for linguistics nerds. It's easier to just make all games in English, which is the most-spoken language in the world and is taught in most countries from an early age.
Dylan Ward
the theme is running out of power
Levi Lewis
Think he did say he wanted to change her character model or some shit to look like the Persona style.
Nicholas Moore
Could have been worse.
Cameron Smith
>English, which is the most-spoken language in the world It's number three behind chinese and spanish.
Dominic Watson
how many people are gonna make a game about literally running
Joseph Hernandez
>Computer is not a human counting on his fingers like you. It can handle something like this. But it doesn't NEED to. You could simply store them in an array and the computer could always know the neighbors of each voxel. It would even be easy to compute neighbors across chunks.
>Either store the properties after the type of voxel WHAT are the properties? And can you express the properties as a series of booleans? If so, you would only need a single 8-bit or 16-bit integer with bitflags.
I'm certainly no expert on compression, but I am sure you're overthinking this.
Austin Diaz
I wrote a marching cubes terrain gen ages ago and posted about it here a few times
Since everything was procedurally generated, I needed a way to store that voxel data and load/unload chunks, as well has having some sort of Level of Detail management.
I ended up using an octree where the top level is a 3x3x3 array of root "nodes" that had 8 subnodes (2x2x2) each. I treated each subsequent child "node" as a higher fidelity level of detail (since logically each subnode is 1/8th the size of the parent).
Anyway, reason why I structured it this way is so I can center the whole system on the player. The player is kept in the middle top node [1,1,1] at all times, so if the player moves to [1,2,1] for example it shifts everything over, if that makes sense.
I'm pretty horrible at explaining this, but if you look up some tutorials to do with how octrees work you can make a pretty dynamic solution in handling terrain chunks.
Pic related, I made some pretty crazy terrain patterns
Angel Evans
Pretty shit, but I got an idea It's shit, but that's life
Ryan Gutierrez
There's a game about botched executions via electric chairs in there somewhere.
Lucas Rodriguez
>I don't even know what you're talking about. Good good, ignorance means your fines will be smaller.
Charles Ward
If some nerd offers to translate to Esperanto for free, I'd be all for it.
Xavier Lewis
That looks cool, user. Where's the game in that distorted looking world?