Users browsing this thread: 3 Guest(s)
SOL: THE GAME
My my, I do like progress so far. Sol responds to the press of the "X" key on my keyboard like a charm~

Thanked by:
Looking good Sploder, the game engine is pretty SOLid atm, one thing i've noticed however is when you increase the scrollspeed, when the next chunk of "terrain" is created it leaves small gaps in between the terrain chunks.

I didn't necessarily fix the gap thing, but I did tweak the code a little for some cruddy random terrain generation, and I added and setup up the sprite font so now hp, paint, score and hi-score display like in Gorsal's latest mockup screen.(well almost like in the mockup screen, idk how to display 0's in front of the score when drawing it)

solgame_guyalt.gmk (I use GM8 pro, i put in the .gmk and .exe)
SolGame_guyalt
[Image: 1ZtJ9.png]

As for what Gors suggested about the tetris blocks of terrain being placed, maybe we could use ds_grid and set up some pre-defined shapes like an "L" chunk or "___", and have the terrain generation read the ds_grid and grab a random piece from the list and create it.
Thanked by: Gwen, Iceman404
I had two different ideas on how level generation could work.

1) First, you create a piece of the level that's entirely filled with blocks. Then, you create an open space on the left and another on the right. From there you can create an empty path through the leftover blocks to connect the two open spaces; the type of path (e.g. snaking, straight, straight with a gap, etc.) would be chosen randomly before making the path, and a pathfinding thing would be used to actually make the path. For the next chunk, we'll just be using the previous chunk's rightside open space for the new leftside open space and continue along like this.
The best thing about this idea is that it can make interesting tunnels. The worst thing about this is that... it can only make tunnels; it wouldn't really be able to handle anything else.
Needed variables:
Opening space (leftside)
Ending space (rightside)
Tunnel Height
Tunnel Type

2) This system is a bit more like the the Splunky system. That is, you have a predefined set of different obstacles, and then you simply choose between them for each chunk (to increase the different possible chunks, you can make the different portions smaller than a whole chunk, then piece them together to make the chunk).
The best thing about this idea is that it is much more adaptable than the tunnel system above (it also makes it really easy to add in special rooms, like the boss rooms); the worst thing is that it relies on premade portions to create the chunks, meaning that levels can get old and boring pretty quickly.


@Guy, to fix the problem with those little gaps, we just gotta add a way to keep track of the chunk's position and then spawning the next chunk, rather than just spawning the next chunk according to the scrollspeed.
Also, I don't have GM8, so I can't check out your code, but that really didn't make very good, playable levels at all (of course, I suppose it wasn't really supposed to, anyway).
Thanked by:
Shy Yeah, it wasn't supposed to make playable levels whatsoever, just give you a feel for the gameplay. (Also i noticed the sprites sink into the blocks by 1 pixel, if you'd just add +1 to the y-offset on the player sprites he stands perfectly above the blocks.)

heh heh, i feel like an amateur right now, Your ideas sound great, but why not combine the two ideas?, every time a new chunk is created, determine whether it'll be a tunnel type section or a predefined room, i.e:

time to create next segment
{
choose(scr_tunnel_generate(),scr_premade_generate(), scr_someothermethod_generate());
}

It'd add plenty more variety to the levels, also, I've got a few questions (I read through the SOL.txt but i didn't see anything on the following):

-how exactly will the boss fights be?
-does the scroll speed stop up until you've beaten the boss?
-will bosses be able to slip through gaps?
-what happens if you fall down a pit, do you die, lose some health, or simply respawn?
-will bosses drop cd's, or do they spawn rarely throughout the level?

Thanked by:
Despite having a bigger change of getting predictable, I prefer the second idea (using predefined chunks). Depending on each chunk's filesize, if it's small enough, we could make hundreds of different pieces and make them appear randomly and more than one at a time. Of course, if each chunk takes up a considerable amount of space, this wouldn't be viable... Maybe we can use both ideas (premade chunks and tunnel) together?
Spriter Gors】【Bandcamp】【Twitter】【YouTube】【Tumblr】【Portifolio
If you like my C+C, please rate me up. It helps me know I'm helping!
[Image: deT1vCJ.png]
Thanked by:
Okay guys, long post coming up!

A chunk is a whole screen's worth of level, so that's 9 blocks high by 10 blocks wide, a total of 90 blocks on the screen.
However, we'd be storing half-chunks (I call them parts or portions, since that's a bit shorter), so that'd be 45 blocks per half-chunk.

I suppose, a portion file (.prt or something? extension doesn't really matter...) could be a text based file storing:
--- Portion type (a number the game would use to determine what kind of portion this is, such as platform, big gap, wall, etc.)
--- Difficulty level (another number the game would use to determine when to use this portion)
--- The portion data itself (this would be a 2d array/table of numbers listing the block arrangements, as well as any enemy or item hooks)

Of course, when I say number, I actually mean character, but those are just represented by a byte-sized number anyway.
Here's a sample portion file.
So yeah, a portion file that has only the bare minimum could get away with being about 58 bytes; one with comments would be longer, but even then, a typical portion file with comments discussing only the type of the portion (and credits, if the person making these is a credits-whore) would still be likely under 150 bytes.
I could reduce the filesize of every portion to a standard of around 47 bytes if we don't want text-based portion files, but then I'd have to make a level-editor for people to use to make these things, or everyone would have to use a hex-editor to make the binary files directly.

EDIT: Though, I'm thinking I might need to store the left and right side open spaces in these portions as well, so that the game can better place the portions within a chunk. That is, if one portion has its rightside space higher than the next portion's leftside space, it will move that next portion to be higher.

From there, the game would load all of these as it opens, and the game would then generate chunks by choosing two of these portions for each half of each chunk. The portions it chooses would be determined by the current type portion type we're on (this changes gradually, so that we can slowly go between different level construction types) and the difficulty level we're currently at (the difficulty gradually increases as the game continues).

BTW, the difficulty level works like this: when the game makes a chunk, it adds the difficulty levels of the two portions it has picked together; if the total exceeds the game's current difficulty, we have the game pick another pair of portions until we come up with a pair of portions with a low enough difficulty. In order to keep this from slowing the game down too much, the game won't be able to pick any portions that already have a difficulty equal to or higher than the current difficulty level, though this might still be a bit slow. Another possibility is for the game to pick one portion first, then pick only a portion with a low enough difficulty level for their total to be less than the current difficulty level (did that make any sense?) for the second half.

Difficulty will also affect the likelihood of items and enemies spawning in their respective hooks.

@ Guy, if I remember correctly, I did actually try to shift the sprite around so it wouldn't sink like that, but then I occasionally got instances where he would float a pixel above the ground. Precise collisions hate me.

As for how bosses would work, I figured that a special boss room would occasionally spawn with the boss in it. Once you enter the room, the battle would begin and the game would stop scrolling (I'm thinking it might be nice for the game to slowly stop, instead of jerking to a stop). Then, once you beat the boss and shit, the game starts scrolling again.

I was also thinking that, when you fall down a gap, you'd lose a point of health and respawn next to the pit you fell in.

@ Gors, I suppose there could be special tunnel-type chunks that would use the tunnel generator.

Whew! Long post is LONG.
Thanked by:
I think we could separate the chunks' difficulty into like, 5: 1 being the easiest and 5 being the hardest.

This way, the game could spawn them linearly in difficulty (for example, throwing a bunch of level 1 chunks with some level 2 appearing ocasionally, then increasing levels until it hits level 5; after that, the game returns into picking level 1 chunks, but now with a faster scrolling). Maybe we then night need to do like, 100 chunks for each level as a rough estimative.

The tunnels could appear between the level changes, and could sport a different tileset; at this point, the tunnel engine starts running and produces a random path for a x amount of time (maybe 1 minute?). Enemies will spawn less frequently and will be limited to the walking ones.

The boss room could also work like the tunnel; it ocasionally appears between the levels and entering it will cause the game to stop scrolling and randomly choose a boss to fight. Boss rooms would be like the Megaman boss rooms: a huge box that locks the entrance once you enter it. Defeating the boss will cause a hole to appear on the right wall. But I also think some bosses could be fought without this room; the screen continues scrolling and spawning blocks, but the boss will float up and down while throwing attacks (think on Gradius' Big Core, but with moving levels). I need to specificate which bosses can be fought in a locked room and which can't.

@Guy Floating bosses won't collide with blocks whatsoever. They'll simply pass through them.

Also how did I forget about the gaps?? Sol will either die falling on a gap in normal~hard difficulties and lose a HP on easy difficulty.

Bosses will drop items when defeated, ranging from HP, paint (both common) and CD (rare).
Spriter Gors】【Bandcamp】【Twitter】【YouTube】【Tumblr】【Portifolio
If you like my C+C, please rate me up. It helps me know I'm helping!
[Image: deT1vCJ.png]
Thanked by: Guy, ThePortalGuru
Hey guys! Guess what!

I got off my lazy ass (silly donkey) and made the chunk editor!
People can start making some chunks now.

http://www.host-a.net/u/Sploder/SoLLevelEditor.zip

Readme (in case the ingame one is too small to read)

I'll be working on getting the level generator working this week. If people make some good chunks this week, I can put them nice and easily.

@Gors, do you think you could split the songs from their intros (i.e. save each song in one file and its intro in another one)? If you could also turn 'em into oggs, that'd be even better, but not necessary.

EDIT: Note that the game is really only in early alpha at best, not beta at all.
Thanked by: Guy
but alpha is already Tyvon's trademark



also holy shit, this is awesome :o This shall be another step for the glorious completion of this game!

[EDIT]

uh-oh, i get this every time I try to lad a chunk

Code:
ERROR in
action number 1
of  Step Event
for object obj_menuhandler:

Error reading real.

can you fix it asap please?
Spriter Gors】【Bandcamp】【Twitter】【YouTube】【Tumblr】【Portifolio
If you like my C+C, please rate me up. It helps me know I'm helping!
[Image: deT1vCJ.png]
Thanked by: Garamonde
If you're trying to load a chunk you made before I made this program, it probably won't work. First off, you gotta make sure it has the difficulty level and the chunk type at the beginning, then the 45 separate numbers for the map itself. Also, it can't have any non-number characters in it, so no comments in it (comments aren't really necessary anymore, now that there's an editor anyways).

However, if that's not what you're doing, I think I'll need a bit more information in order to fix it. Like, what exactly did you do?
Thanked by: Gors
oh, I think this happened because of the number I put in the name

will try it later without a number
Spriter Gors】【Bandcamp】【Twitter】【YouTube】【Tumblr】【Portifolio
If you like my C+C, please rate me up. It helps me know I'm helping!
[Image: deT1vCJ.png]
Thanked by:
Welp, I've got the chunk loader and generator working in the main game.

Now I just need tons of different chunks a major feature of the game will be pretty much done (tunnel system was scrapped in favor of tunnel-type chunks, so yeah)!

hint hint

But yeah, I'm thinking we'll need some help to make enough chunks. It really doesn't help that I suck at level design.

@gors, try loading this chunk file and see if it works: http://www.host-a.net/u/Sploder/flat02.tsr
Thanked by:
Uh, what do you mean by "chunks" exactly? I haven't done it yet (I'd love to but don't have time). Does that refer to the level designs or the tiles?
[Image: sweet-capn-cakes-deltarune.gif]
Thanked by:
(05-04-2011, 09:19 PM)Sploder Wrote: Welp, I've got the chunk loader and generator working in the main game.

Now I just need tons of different chunks a major feature of the game will be pretty much done (tunnel system was scrapped in favor of tunnel-type chunks, so yeah)!

hint hint

But yeah, I'm thinking we'll need some help to make enough chunks. It really doesn't help that I suck at level design.

@gors, try loading this chunk file and see if it works: http://www.host-a.net/u/Sploder/flat02.tsr

weird, it loaded alright

but when I edited it a little and attempted saving, it gave the same error again

also chunks are pieces of the levels that spawn randomly.
Spriter Gors】【Bandcamp】【Twitter】【YouTube】【Tumblr】【Portifolio
If you like my C+C, please rate me up. It helps me know I'm helping!
[Image: deT1vCJ.png]
Thanked by:
Chunks are 5x9 parts of a level that are randomly chosen from to make create the levels. They're created using that level editor I posted up a few days ago.
@gors, think you could open one of those chunk files you have in notepad and tell me what you see, please?
Thanked by: Garamonde


Forum Jump: