• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Spectrum (working title)

Status
Not open for further replies.
Level 20
Joined
Apr 22, 2007
Messages
1,960
Spectrum is a little puzzle platformer I've been working on for a few weeks. I'm writing it in C++ using SDL and OpenGL, and Box2D for physics. Basically, I am shit at writing and art, so I've taken a "I don't really care and I know it" approach to that kind of development, i.e. the art is low resolution and the story is tongue-in-cheek. Anyway:

Story said:
You are an important scientist at the Terrestrial Red Company, a research powerhouse. Your latest research has culminated in the creation of a solar power device which, in the right hands could mean endless energy for all, but in the wrong hands could spell the end of the world.

One sunny afternoon, you and your wife are taking a stroll. Suddenly, shit gets real, the ground starts shaking, and after several powerful flashes of light, all of the colors around you are messed up: the ground is red, the grass is blue, etc. Your wife is gone, too, and everyone else is acting strange. Someone bad seems to have activated your device from the top of the Terrestrial Red Company building. It's up to you to deactivate the device and find your wife before it's too late!
The main mechanic behind the puzzles in this game is something I've called color-relative interactions. You have the ability to change your character's color between red, green, and blue. You can only interact with objects and terrain that additively contain your character's current color, e.g. if you are red, you can interact with red, yellow, magenta, and white objects/terrain.
Some of the puzzles are also purely physics-based, and some of them are both. Additionally, more complex mechanics are introduced in later parts of the game.


I've mostly worked on coding so far, but I started working on sprites yesterday. This is practically the first computer art I've ever done, so I'd like some tips or advice.

I just finished the leg work on the main character's walk cycle. Still have the arms to do. Also, he's supposed to look like a douche with a mullet:
PUNL6.gif

HATERS GONNA HATE

EDIT1:
Arms are complete, and cleaned up the legs a bit. Let me know if it looks good:
EDIT2:
Arms have been cleaned up again. Left arm was made bigger and longer and swingier. I think it's nice.
MjNse.gif



I'll try to set up a blog or something nice to document progress in the next few days. Let me know what you think.
 
Last edited:
Level 20
Joined
Apr 22, 2007
Messages
1,960
I'm developing it on my own, on a local machine, and I don't really have a need for an SVN. It isn't open source, mostly because I'm ashamed of my code, and also because it doesn't really matter.

I'm developing strictly for Windows, though I could probably port it to Mac eventually since the libraries I'm using are all cross-platform, but I don't have the ability to test on a Mac right now, so yeah.

I wasn't sure whether to use mouse or keyboard controls at first, but after writing out the design and determining the required controls, I realized it would be better for me to strictly use the keyboard. This isn't a drawback anyway. Many highly successful puzzle platformers are keyboard only, or have strict keyboard support, e.g. Super Meat Boy, Braid, VVVVVV, etc. And if you're saying that I should add mouse support for certain levels, well that just sounds inconsistent and sloppy.

What do you think about the concept though? I know I haven't given much information, but yeah.
 

fladdermasken

Off-Topic Moderator
Level 39
Joined
Dec 27, 2006
Messages
3,688
I friggin' love the concept, considerably ingenious.
Some of the puzzles are also purely physics-based, and some of them are both. Additionally, more complex mechanics are introduced in later parts of the game.
There could be some conundrums (or puzzles if you will) found regarding emission spectroscopy, which would combine electronic configuration (atomic physics) with color-relative interaction. If you like the concept I could jot down some conundrums I had in mind, that is unless you'd rather do it yourself of course.
I just finished the leg work on the main character's walk cycle. Still have the arms to do. Also, he's supposed to look like a douche with a mullet:
PUNL6.gif

HATERS GONNA HATE
Looks like a buff umpire to me.
That's the plan. Also, a few secrets, and a lot of quick reflex stuff.
You could also test multitasking capacities, as long as you don't make a federal case out of it :p
 
Last edited:
Level 20
Joined
Apr 22, 2007
Messages
1,960
fladdermasken said:
I friggin' love the concept, considerably ingenuine.
Ingenuine? Make up your mind! D:

fladdermasken said:
There could be some conundrums (or puzzles if you will) found regarding emission spectroscopy, which would combine electronic configuration (atomic physics) with color-relative interaction. If you like the concept I could jot down some conundrums I had in mind, that is unless you'd rather do it yourself of course.
Oh, I hadn't thought of that. Are you talking about things like interference, e.g. the double slit experiment? That actually sounds pretty sweet. I don't know how I'd include that, though, and I don't have foundation in atomic physics beyond the usual high school nonsense, but I'm accepting all the help I can get at this point. If you have any ideas, feel free to PM them to me, and we can work on them together. <3

fladdermasken said:
You could also test multitasking capacities, as long as you don't make a federal case out of it :p
:D

Also, I've decided that this project is in fact going to be a collection of video game references disguised as a game. So far, I've got Earthbound, Chrono Trigger, Deus Ex, Space Quest and Braid references lined up.
 

fladdermasken

Off-Topic Moderator
Level 39
Joined
Dec 27, 2006
Messages
3,688
Ingenuine? Make up your mind! D:
Ingenious, my bad :D
Oh, I hadn't thought of that. Are you talking about things like interference, e.g. the double slit experiment? That actually sounds pretty sweet.
As in wave propagation? That actually does sound pretty sweet. I was originally refering to electron configuration though, primarily photon emission via excitation respectively relaxation of valence electrons. Namely, atomic emission spectroscopy (atomic spectral line) - I'll see if I can't scrap together some experiments, both regarding atomic spectral lines and wave propagation.

I don't know how I'd include that, though, and I don't have foundation in atomic physics beyond the usual high school nonsense, but I'm accepting all the help I can get at this point. If you have any ideas, feel free to PM them to me, and we can work on them together. <3
I doubt I'll be able to enlighten you as far as knowledge is concerned, we could always just alter some experiment to fit the game mechanics though. Perhaps get our hands on a couple of proper conundrums. It would in addition be an interesting trivia adventure, you know, something to preach about to your aloof friends at the bar >:D

:D

Also, I've decided that this project is in fact going to be a collection of video game references disguised as a game. So far, I've got Earthbound, Chrono Trigger, Deus Ex, Space Quest and Braid references lined up.
I haven't actually played any of the afforementioned, possibly excluding Deus Ex which I have tried~ish. I've heard of them though, and I suppose Braid would be an excellent reference.

EDIT: Ah, didn't see Earthbound in there. Of course I've played Earthbound :]
 
Last edited:
Level 20
Joined
Apr 22, 2007
Messages
1,960
fladdermasken said:
I was originally refering to electron configuration though, primarily photon emission via excitation respectively relaxation of valence electrons. Namely, atomic emission spectroscopy (atomic spectral line) - I'll see if I can't scrap together some experiments, both regarding atomic spectral lines and wave propagation.
Oh, of course. Yes, that sounds badass. I also remember hearing about a particularly awesome particle-wave light experiment that convinced many people that light was a wave... not the double-slit experiment... Aha, this one, the Poisson spot.

fladdermasken said:
I doubt I'll be able to enlighten you as far as knowledge is concerned, we could always just alter some experiment to fit the game mechanics though.
Like I said, I don't know much physics. But yeah that's the plan.

fladdermasken said:
I haven't actually played any of the afforementioned
SACRILEGE.
 

fladdermasken

Off-Topic Moderator
Level 39
Joined
Dec 27, 2006
Messages
3,688
I also remember hearing about a particularly awesome particle-wave light experiment...
Oh I see what you did there.
...that convinced many people that light was a wave... not the double-slit experiment... Aha, this one, the Poisson spot.
Oh, love it. Especially the part where his plan dramatically backfires on him and he is rendered clenching his knees and squealing Mark Hamill-style :D
SACRILEGE.
I know... I know.
 
Level 20
Joined
Apr 22, 2007
Messages
1,960
Worked on implementing basic platformer player controls today. It's really annoying to do this while working with Box2D because in particular, it's hard to find a reliable way to detect if a character is standing on solid ground. My current solution checks if the character is colliding with anything, if the character's position is above the colliding object, and if the contact normal is pointing towards the character. This seems to work most of the time.

You also have to set the character body's friction to 0 when it's in the air, so that it doesn't stick to walls while jumping.

Character bodies also consist of a circle for lower body, and a rectangle for upper body, so that a character is able to move smoothly on sloped surfaces.

There's more shit too, but yeah, it's annoying.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,201
Yeh character movement is damn touch. If you watch TAS of old games like for the NES, SNES and megadrive you will see how buggy the collision detection they used was.

You also need some way of forming a relationship between the ground and objects "on" it so that you can do moving platforms.

I would imagine maybe 2 different modes, an air mode and a land mode. Land mode sticks you to the ground below you (you get attached to it) which you then move left and right on (this could be viewed as a 1D line almost as you can eithor move or not move). Air mode is where physics apply and you can colide with ojects more freely. Breaking it into these 2 modes would potentially make some concepts easier (sticky walls, moving platforms etc).

Do not worry though if there are some collision bugs (hitting something for no reason or falling through walls). Even real games have collision bugs.
 
Level 20
Joined
Apr 22, 2007
Messages
1,960
Updates? :D

I'll be on and off this week so I'll start jotting down some conundrums when I get back home.

Well, I just got an actual job. This project was sort of intended as a thing for me to do in place of working. That said, I still have plenty of time to work on it.

My recent work was in dicking around with platformer-esque controls. Here's the jist of it.

The way I've handled player controlled motion for the game is via impulses. If you're pressing the right arrow key, I apply an impulse on the character's physical body to the right, and I only apply this impulse if your velocity in that direction is less than the player's maximum speed. This is fine.

If you hit space, I check if you're currently grounded. If you are grounded, I apply an impulse upwards, and set your friction to 0 (this is so that you don't stick to walls), and you jump. This is fine, except for the grounded check.

I had to sift through a lot of Box2D shit to get to a decent solution. I thought I had a nice solution before, but for some reason, you couldn't jump if you were standing near a corner, and sometimes your friction would always stay at 0.

I finally settled on just having a large rectangle for your upper body, and a smaller circle for your legs. The circle is sized so that, if you're leaning against a wall, the circle doesn't touch the wall. The rectangle has no friction, and the circle does. This way, your are grounded if the circle is colliding with something (this might be problematic, but I don't know yet), and I don't have to dick around with changing friction. I think this is the most stable solution.

In case you didn't know, stuff like menus, saving, and general game architecture are virtually complete. Other than that, nothing else has really been done. I've been spending most of my time celebrating the fact that I now have money to spend, i.e. drinking.

Dr Super Good said:
Yeh character movement is damn touch. If you watch TAS of old games like for the NES, SNES and megadrive you will see how buggy the collision detection they used was.
I don't think it would be so annoying if I made such a platformer movement engine myself, because they only needed really basic physics. Using something a lot more powerful, like Box2D, makes it kind of hard to replicate a minimal platformer kind of thing.

Dr Super Good said:
You also need some way of forming a relationship between the ground and objects "on" it so that you can do moving platforms.

I would imagine maybe 2 different modes, an air mode and a land mode. Land mode sticks you to the ground below you (you get attached to it) which you then move left and right on (this could be viewed as a 1D line almost as you can eithor move or not move). Air mode is where physics apply and you can colide with ojects more freely. Breaking it into these 2 modes would potentially make some concepts easier (sticky walls, moving platforms etc).
Thankfully, Box2D handles moving platforms beautifully. But yeah, this stuff was mostly my problem, and I think my solution is simpler and more elegant than yours.
 
Status
Not open for further replies.
Top