/agdg/ - Amateur Game Development General

Indented servitude.

> Previous Thread
> Next Demo Day 16
itch.io/jam/agdg-demo-day-16

> Play Demo Day 15
itch.io/jam/agdg-demo-day-15

> Play Monster Jam
itch.io/jam/agdg-monster-jam

> Play AGDG games on Steam
homph.com/steam/

> Helpful links
Website: tools.aggydaggy.com
Fanart and stuff: drive.google.com/drive/folders/0B6j4pcv3V-vfb3hKSlhRRzlLbFE
New Threads: Archive: boards.fireden.net/vg/search/subject/agdg
AGDG Logo: pastebin.com/iafqz627

> Previous Demo Days
pastebin.com/JqsQerui

> Previous Jams
pastebin.com/jAByvH3V

> Engines
GameMaker: yoyogames.com/gamemaker
Godot: godotengine.org
UE4: unrealengine.com
Unity: unity3d.com

> Models/art/textures/sprites
opengameart.org
blender-models.com

> Free audio
fantasymusica.org
freemusicarchive.org
freesound.org/browse
incompetech.com/music

> How into .webm
OBS: obsproject.com
Webm for retards: gitgud.io/nixx/WebMConverter

Other urls found in this thread:

snekdev.itch.io/.
support.steampowered.com/kb/9334-YDXV-8590/dota-2-workshop-character-art-guide
tay.kinja.com/esperanto-should-be-the-official-language-of-video-game-1440861881
twitter.com/SFWRedditImages

Reposting

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.

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?

scratch over your underwear

fucking genius

Eat lots of gassy food and have your farts scratch that itch for you.

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.

Playing video games is just research for my game, so this month wasn't wasted.

seventh for staying up late so I can see what the LD jam is so I can decide what to do during my sleep

How do I store voxels?

Gotta scope out the market to make a top notch GDD.

it's a 3d array retard

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.

>Not Ludum Dare Edition
Heh, probably not even a jammer. Out of the way scrub, real gamedevs coming through.

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!

sorry i'm a nodev ;)

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.

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.

could be better, delete this post and rewrite it again

It's a 3d array of 3d arrays, retard

>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.

Anybody else?

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?

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.

Imagine working with him on a game

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

I'm going to need at least $10,000 a month to refactor my post a third time.

chunks aka 3d array of 3d arrays

...

not sure what kind of answer you are expecting

What games are you playing for research?

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.

What's your idea?

It's a 3d array of 3d arrays of 3d arrays, retard

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

>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.

>he implements voxels as a 3d array

sparse map from 3d indices to 3d arrays

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.

A dictionary of 3D vectors that map to the voxel data.

>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?

>I just need to store a single seed value for the entire map and all the chunks that differ.
See

how would you do it?

>50 minutes
It's going to be the main topic of discussion soon. YA BLEW IT

>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.

>for each chunk all the voxels that differ from those generated by the seed*
I knew what you meant, but thanks for clearing up

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.

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?

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.

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?

>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.

She was originally a placeholder but he let fandom memes take over.

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.

>buy said asset pack
>make bootleg Yandere sim
>rake in dosh from the fans because you made the superior version

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)

>search for "voxel compression algorithm"
>all the results are from 2011
kek

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?

>how does each voxel know its neighbors?
Check all voxels and pick the one with the right coordinate, duh.

And yet nobody will.

I'm shit at making music.
Can I just use public domain music and sounds and remix them for my game?

how do i pick good colors? how many colors should a character generally have, 2-3?

If you can't make music, why do you think that you can remix it well?

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.

3-5 + shades

support.steampowered.com/kb/9334-YDXV-8590/dota-2-workshop-character-art-guide

3, 1 major 2 minors

I'll probably be shit at remixing too.
Is it okay to use completely unaltered CC0 recordings of music for my game?

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

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.

perfect, ty

>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.

install bidet

don't worry tovarisch, the sheets are PD :^))))

>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?!

Just copy color palettes from popular robots.

Oh hey, it's Homestar Runner!

>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.

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?

Wow uh I hope you've got the money to pay for use of Notch's patent.

Your game's in-game text should be written in Esperanto first.

tay.kinja.com/esperanto-should-be-the-official-language-of-video-game-1440861881

Not enough hype posts for LD, theme is dropping in 1 min

Scrubbos

>hype posts
What is a hype post and why should we make them?

LD is a shovelware circlejerk, Who cares?

ldjam.com is getting hammered, now we'll never know the theme

To get the juices flowing.
Sexual juices.

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.

Poe's Law

>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.

the theme is running out of power

Think he did say he wanted to change her character model or some shit to look like the Persona style.

Could have been worse.

>English, which is the most-spoken language in the world
It's number three behind chinese and spanish.

how many people are gonna make a game about literally running

>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.

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

Pretty shit, but I got an idea
It's shit, but that's life

There's a game about botched executions via electric chairs in there somewhere.

>I don't even know what you're talking about.
Good good, ignorance means your fines will be smaller.

If some nerd offers to translate to Esperanto for free, I'd be all for it.

That looks cool, user. Where's the game in that distorted looking world?