smgorden
|
|
« on: March 26, 2014, 07:24:34 AM » |
|
Theme An eight year old boy, sick with a fever, falls asleep and wakes up in a cold, mysterious world. The boy must explore the darkness of caverns that weave through the land and the bitter cold outside. He's barefoot and has only his wits to defend him. Technical A few years back, I decided I'd like to try writing a software renderer. And as I happened to be on severe nostalgia kick, I targeted a look very similar SNES style for color and effect. I got some cool stuff working, but the first draft was slow, and I decided to simplify. A couple engines (and as many years) later, I arrived at a relatively authentic NES-style tile renderer using 4-color palettes. This had the added benefit that sprite art would be simpler to design. So I'm going with it. That being established, I knew that I wanted to play in a dynamic environment and showcase something that wasn't possible on the NES. So I wrote in a dynamic light and shadow system. I'm pretty happy with it. Gameplay Primary mechanics all revolve around the manipulation of light and heat. The first object the boy finds is a lamp. The boy cannot create fire, and so must use fires that are available. The first cavern creatures are ghosts which wait around blue ghostfires, but will stalk the boy to absorb his heat. Player Death If the boy loses too much heat, he'll huddle down, turn blue and freeze. He then wakes up in his bed, sheets on the floor, and shivering. Continuing the game will pull the sheets back up and the boy will fall asleep again, and drop back into the other world. Narrative In short, there's a talking crow that wants the boy to walk up a mountain and steal the sun. The crow claims to be a cursed magician, and that he will restore prosperity to the land with the power of the sun. In order to survive the trip up the mountain, the crow must guide the boy to find items of clothing that will protect him from the elements. However, each time the boy makes progress, a bodiless shadow glides over the snow and speaks warnings to the boy about the dangers of the mountain. The shadows says the crow is a deceiver and a manipulator. Who is to be believed? Art Design Colorful. DevLog So I was at GDC last week. I made the rounds at the IGF pavilion each day and talked to a fellow who got a lot of value out of keeping his devlog here on TIG. His advice was "it's never too early to share." So yeah, gonna give this a go. Other Stuff I have an archive of prototypes and demos I made to develop this concept. I'll probably post links to those here with notes. The first one will probably be my original gameplay prototype, from end-of-year 2010 which explores ideas for outdoor exploration and environmental interactions. Screenshot
|
|
« Last Edit: May 26, 2018, 09:51:35 AM by smgorden »
|
Logged
|
Makin' games.
|
|
|
oleomingus
|
|
« Reply #1 on: March 26, 2014, 08:25:32 AM » |
|
I really like your game title ! and manipulation of heat sounds intriguing. Good Luck.
|
|
|
Logged
|
|
|
|
smgorden
|
|
« Reply #2 on: March 26, 2014, 08:31:35 AM » |
|
@oleomingus Thanks!
I just got a reminder a bit ago that I did not post anything about Music. So here's a bit on the approach for the soundtrack.
Music After mulling over the age old question- "to chiptune or NOT to chiptune?" (and contacting several talented folks in the world of chiptunes), I decided to make use of my collection of hobbyist recording equipment and do a live soundtrack.
I do live recordings every so often at a local university (Illinois State), usually Senior Recitals for vocal students. After one such recital, I was out relaxing with my musician friends at local restaurant and met a student who took a serious interest in my game project and signed up to compose.
The first recording was done last week prior to GDC. The only piece we could schedule at the time turned out to be the last one composed, which is the End Credits Theme.
Check it out at the link following:
|
|
« Last Edit: October 02, 2017, 10:53:29 AM by smgorden »
|
Logged
|
Makin' games.
|
|
|
dukope
|
|
« Reply #3 on: March 26, 2014, 09:34:14 AM » |
|
So I was at GDC last week. I made the rounds at the IGF pavilion each day and talked to a handsome and scholarly fellow who got a lot of value out of keeping his devlog here on TIG. His advice was "it's never too early to share." So yeah, gonna give this a go.
Interesting. I already like the look of this. I'm curious to see how the dynamic light and shadows work in motion. I can just make out some cast shadows in that screenshot. The name & logo are top aces. Narrative and gameplay sound great. Music is nice too.
|
|
|
Logged
|
|
|
|
melos
|
|
« Reply #4 on: March 26, 2014, 10:19:07 AM » |
|
Got a gameplay video of any sort? Curious about the heat and light working, like others here! Anyways I like the devlog style so far. The live music is nice and an interesting juxtaposition to the graphical fidelity.
|
|
|
Logged
|
play hydlide 2
|
|
|
smgorden
|
|
« Reply #5 on: March 26, 2014, 10:32:28 AM » |
|
@dukope He was definitely the most scholarly fellow present at GDC. His fledgling beard had a ways to go, though. [see avatar at left for beard reference] Thanks for the feedback. I will figure out how to do the whole video-capture-to-gif thing shortly and get a sample up here. The shadows really come to life in motion (also the lovely fire and particle effects, which are fun).
@seagaia. Yes! See above about the video. As for the heat, I've got a very basic thermodynamic system going which is based on ambient temperature for the loaded level and heat sources with a radius (no falloff, it's in-or-out for clarity). Also, certain terrain tile types have a fixed temperature, usually one that is colder than the air (snow, ice, water). It's working pretty well as a proof of concept.
There is one indicator of temperature, which is that when the boy moves into an area that is is colder than his body temperature, he starts to emit little frosty breath particles. Sound effects will pronounce that further when the time comes. Also, I've got the code in for snowboy freezing. It's the saddest code I have ever coded. Still makes me sad when it happens.
I obviously need to get a video up here, so I'll get on that. Stay tuned.
|
|
« Last Edit: March 26, 2014, 10:44:24 AM by smgorden »
|
Logged
|
Makin' games.
|
|
|
smgorden
|
|
« Reply #6 on: March 26, 2014, 01:03:17 PM » |
|
Video GIFsThis is my first attempt at doing video-to-gif conversions. Hopefully these results are sufficient. Of note: There's a ghost in this demo. He follows the boy any time the boy is warm enough to be of interest. In which we see the lighting of the lamp. https://i.imgur.com/tjZJEZ9.gifvIn which we see the ghost in pursuit. Also a light-absorbing crystal. https://i.imgur.com/HcvxQBS.gifvIn which we witness the boy's demise. https://i.imgur.com/hyPFDOi.gifv
|
|
« Last Edit: October 02, 2017, 11:20:22 AM by smgorden »
|
Logged
|
Makin' games.
|
|
|
mason
Level 1
|
|
« Reply #7 on: March 26, 2014, 01:26:48 PM » |
|
wow this looks really cool. the title caught my eye too.
|
|
|
Logged
|
|
|
|
smgorden
|
|
« Reply #8 on: March 26, 2014, 01:33:41 PM » |
|
@Raycast Thank you! I agonized over the title of the game for quite a while before taking the plunge, as it were. Tell me, was it the title itself or the title graphic/logo at the top that caught your eye?
|
|
|
Logged
|
Makin' games.
|
|
|
smgorden
|
|
« Reply #9 on: March 27, 2014, 07:54:41 AM » |
|
PrototypeAs mentioned at the top, I have some early materials to share. Here's the first gameplay prototype with tile rendering where I was looking for interesting overworld interactions. This also included the first tests of interactive temperature and weather. Notes: This was two engines ago, tech-wise. Each time the app starts up, it generates a new terrain layout. Download [Windows Only]: (LINK BROKEN, will replace when available)
|
|
« Last Edit: October 02, 2017, 10:54:15 AM by smgorden »
|
Logged
|
Makin' games.
|
|
|
dukope
|
|
« Reply #10 on: March 27, 2014, 04:58:56 PM » |
|
I realize this is early yet, but these cast shadows feel out of place and don't mix well with the rest of the lighting. Area lighting is chunky but the shadows are sharp and look stuck on. Also, the long thin shadow shapes reveal the 2d-ness of the sprites to make them feel more flat. I think the lighting could benefit from more unification. Chunkier shadows, better integration with the lighting palette instead of an overlaid alpha'd sprite, faked thickness for casting, etc. An alternative would be to simplify the shadows to Zelda-style comets: .. but the idea of proper cast shadows is kinda cool, especially given the game's theme.
|
|
|
Logged
|
|
|
|
TNERB
|
|
« Reply #11 on: March 27, 2014, 07:20:06 PM » |
|
This looks really awesome.
|
|
|
Logged
|
|
|
|
smgorden
|
|
« Reply #12 on: March 27, 2014, 11:40:56 PM » |
|
@dukope I'll have to think this over. The illumination is done per-tile on the background terrain layer (as well as on sprites). The shadows are done per-pixel as a middle step between background and sprite rendering. There's lots of hackery going on to get the shape of the shadow to stretch and move around "properly", which means there's plenty of things that can be cleaned up there. Fixed Constraints: I'm using 8bit color, the 256 available using 3-3-2 (RGB) encoding. All rendered colors are in that palette. Technique: Shadow pixels are blended onto the background, which means that the end result is product of the background color, the shadow color, a contextual blending heuristic, and the limited palette shown above. The most recent version of the shadow code was tweaked for better results in the new "outside maps" (which are not yet shown here). Those changes ended up with darker shadow in the cave setting. Experientially, darker shadows tend to stand out a lot (probably too much). Previously, the shadows were more subtle, less distracting. I should probably head back in that direction. I already have a flag in the level data that says whether it's an inside or outside level (important for the lighting model). It's worth considering an indoor and outdoor shadow model to get the best results in both cases. I'll keep your notes in mind as this system gets updated. Hopefully there'll be a sweet spot that'll improve overall effect the scene. Thanks! @TNERB Thanks for commenting! Much appreciated.
|
|
|
Logged
|
Makin' games.
|
|
|
smgorden
|
|
« Reply #13 on: March 27, 2014, 11:44:05 PM » |
|
@dukope I'm thinking more about the long, thin shadow effect you mentioned. I think that's been in the back of my mind, too. Too much stretching. I'm basing total shadow height on the height of the sprite, and it was originally designed with just the boy casting shadows. When I put the ghost in, which is twice as tall, I got a ton of extra long shadow that weren't expected to be exaggerated so much. I'm thinking I should cap the shadow height, or similar.
|
|
|
Logged
|
Makin' games.
|
|
|
smgorden
|
|
« Reply #14 on: April 27, 2015, 07:51:46 PM » |
|
A little update post... I'm still alive. I went indie last year, which resulted in way more lifestyle shifts than anticipated, and lots of work (blog post with details on that... http://smgorden.no-ip.org/?p=406, if that's of interest). Update on The Boy Who Stole the Sun The script language has had a significant update. The way I process script commands in the engine now has a distinction for certain high-level goals that can be executed over time. In the previous version, scripts were required to code things in a way-too-specific nitty-gritty way that wasn't any fun. Now I can write up a keyword like "Follow" and when it executes, it can pause the script and do work on the entity associated with that script until the command is satisfied or times out, when it will resume executing the next line in the script. This should make iteration and expansion of the script commands more fun. Aside from basic math and program flow, all the command keywords and special object names are in defined a text file. Enumerations of those values are auto-generated for use on the C++ side. This adds up a pretty decent way to make powerful commands that should can be implemented once and used in any other scripts that require such behavior. The editor, ElderSmith, has some nice flood fills and selection boxes, and copy and paste (all edit actions supporting UNDO/REDO- about which am quite excited- first time I've coded up undo logic, so that's cool both as a coding feature as a thing that helps iterate and try out ideas). A view of terrain editing mode A view of collision editing mode
|
|
« Last Edit: October 02, 2017, 10:55:38 AM by smgorden »
|
Logged
|
Makin' games.
|
|
|
smgorden
|
|
« Reply #15 on: February 23, 2017, 07:54:10 AM » |
|
Well, it's been another chunk of time since I've posted, but this project is still going. Most of the work of the last couple months has been debugging endlessly, both game and tools code. But I'm working toward the vertical slice, where I all my basic systems of interaction are in place. (And goodness... solo gamedev takes a while -_-;) Recent screenshot... Test map launched from the editor, showing some little dudes running around, and some decor objects on the map like the bridge. Simplified the outdoor shadow casting a bit.
|
|
« Last Edit: October 02, 2017, 10:56:25 AM by smgorden »
|
Logged
|
Makin' games.
|
|
|
Panurge
|
|
« Reply #16 on: February 23, 2017, 09:38:52 AM » |
|
I'm just seeing this for the first time and it looks great! I really love the premise and the hot/cold, sleeping/waking mechanics. Solo gamedev can be a long and thankless grind but I really hope you see this through to completion. I'd certainly like to play it!
|
|
|
Logged
|
|
|
|
qMopey
|
|
« Reply #17 on: February 23, 2017, 09:52:03 AM » |
|
|
|
|
Logged
|
|
|
|
MaxTexeira
|
|
« Reply #18 on: February 23, 2017, 11:38:04 AM » |
|
Wow, are you using pure c++ to make the game? I love the retro feel!
|
|
|
Logged
|
|
|
|
smgorden
|
|
« Reply #19 on: February 23, 2017, 11:53:28 AM » |
|
@Panurge : Thank you! I've been at this for a long time, but I love the theme and story enough to keep chippin' away at it. I appreciate the encouragement greatly @qMopey : Sweet. This represents my first-and-only attempt at pixel arts thus far in life, but I'm learning things. Hopeful that the end product will be functional enough to deliver the story. @MaxTexeira : Yes- 100% C++. Software renderer. Custom texture format. Building this beast from the ground up.
|
|
|
Logged
|
Makin' games.
|
|
|
|