GDR Forum Index
Podcast Podcast
Dev Dev Logs
Search Search
RSS RSS
Register Register
Log in Log in
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - Sparse Page 1, 2  Next
View previous topic :: View next topic  
Author Message
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Thu Aug 07, 2014 11:45 pm    Post subject: Development Log - Sparse Reply with quote

--Update 25 July 2015: Development Release Alpha 0.0.3 is out! -- Now supporting Windows and Linux (and possibly OSX sometime, too!) --

Sparse is a 2D platformer.
Sparse is also a game about building machines.
Well, will be a game about building machines; I'm still working on that.

Of course, there's more planned than just building: survival. The game takes place on a barren planet after the mysterious crash of a large spaceship. In order to achieve anything, you have to brave attacking robots and asphyxiation while scavenging debris from the crash. It's not entirely unlike Terraria or Starbound, in that regard.

There's one more goal I have for the game: it should be possible to play it through, from start to finish, without consulting anything outside the game for instruction. I personally think this is the most important objective--it seems to be unique from what I've seen, and it also sets a complexity cap on builds: the most complicated builds have to be understandable from a non-functioning in-game example and a couple paragraphs of text, which I hope will contribute to the overall flavor of the game.

But, enough nebulous plans, for now.



Currently the game isn't much more than a tech demo; it's like the version of Minecraft before 0.30 classic that we all remember (at least, I think that's a fair assessment.) Several basic blocks are in place. The game world (procedurally generated) is divided into sectors, but only one is accessible. There's definitions for items and ways to interact with the interfaces that store them. There are several rudimentary user interface controls that I've put to use in a basic main menu and a neat storage chest. There's also a whole bunch of groundwork behind all of this: the whole game state can be serialized and saved to file, there's a Flash-like graphical system behind the scenes, and the game states do suspiciously clever things when I need them to.

Right now I'm working on a more robust way of managing content--both assets like images, fonts, music, etc, but also definitions for blocks, items, and extensions to blocks and items in order to

1. Let me examine/edit these things at runtime.
2. Save those changes from runtime.
3. Make it easy to add more content.
4. Let other people add their own. (however, this is far less important)

This is something I want to do before investing a lot of time into the content, as changing the pipeline later on is only going to be more painful, and the more barriers I can remove from making good content means that the content I make will be better.

After finishing that and remaking the small amount of content that I have, I'm probably going to rethink some parts of the UI code for similar effect: the easier it is to make good UIs, the better I'll make them. With that done, I plan on extending the save/load system in order to allow travel to more sectors than the initial one. Beyond that, I figure microplanning is futile, and anyway, it's mostly a grab-bag of things that need to be done.

Wow, I'm not used to writing about the things I make. This is like my third draft and I'm still not very happy with it. I guess it's a function of practice.

I'm crossposting this from my website.

Edit: polishing some stuff up for new release. Old image here http://i.imgur.com/z3ziifa.png
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.


Edited by Will on Sat Jul 25, 2015 9:12 am; edited 2 times
View user's profile Send private message Visit poster's website
Gil
Developer

Joined: 14 Nov 2005
Posts: 2341
Location: Belgium
PostPosted: Fri Aug 08, 2014 1:37 am    Post subject: Reply with quote

Yay dev log \o/

Good job so far :)
_________________
PoV: I had to wear pants today. Fo shame!
View user's profile Send private message Visit poster's website
IMakeGames
Contributor

Joined: 13 Apr 2011
Posts: 499
Location: Austria
PostPosted: Fri Aug 08, 2014 1:51 am    Post subject: Reply with quote

Yeah! Moar platformers!!! \o/

I cannot stress how important it is to make it easy to create content. And as you said, during runtime. That streamlined my content-creating process immensely. Especially when doing playtesting. Just hitting a button to go into mapeditor mode, change what you don't like, spawn to try again, repeat.

I'm getting a Knytt vibe from the screenshot! Is that deliberate?
_________________
My current project: Hook'd
View user's profile Send private message Visit poster's website
Gil
Developer

Joined: 14 Nov 2005
Posts: 2341
Location: Belgium
PostPosted: Fri Aug 08, 2014 2:01 am    Post subject: Reply with quote

I was getting a Knytt vibe too when I was playing it. Knytt was certainly one of the best platform experiences I ever had, so let's hope that vibe stays :)

I think Will wants to randomly generate most of the world, but I'm not sure. I would personally combine random generation with crafted set pieces for something like this.
_________________
PoV: I had to wear pants today. Fo shame!
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Fri Aug 08, 2014 2:09 am    Post subject: Reply with quote

Gil's right, most of the world is going to be random, however, if I wire it all correctly, I'll be able to change the behavior of machines/blocks at runtime, too.

Also, there are going to be several crafted set piece moments as Gil talks about. I'm planning on having the player emerge and return to the wreck of the ship, so all of the interiors will be constructed by hand, as those moments are mostly about teaching the player about things coming up, and I need more control than my hastily put together map generator affords me.

I have not played Knytt (though I am now). So far, I've been trying to color-code most things; things you make are green, things from the crash are purple, things from the soil are blue, but there's not much in yet, and that may or may not be worthwhile in the long run.
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9328
Location: Not Finland
PostPosted: Sun Aug 10, 2014 7:45 am    Post subject: Reply with quote

How exactly did I miss this thread? Dafuq :(


Quote:

Wow, I'm not used to writing about the things I make. This is like my third draft and I'm still not very happy with it. I guess it's a function of practice.


In time you figure out what people want to read about in-development projects, and your brain begins spitting out bullet points on demand :) It's cool.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Gil
Developer

Joined: 14 Nov 2005
Posts: 2341
Location: Belgium
PostPosted: Sun Aug 10, 2014 10:19 am    Post subject: Reply with quote

Will wrote:
I have not played Knytt (though I am now).
Best version of Knytt is Knytt stories btw, jump physics were pure absolute brilliance in that game.
_________________
PoV: I had to wear pants today. Fo shame!
View user's profile Send private message Visit poster's website
IMakeGames
Contributor

Joined: 13 Apr 2011
Posts: 499
Location: Austria
PostPosted: Sun Aug 10, 2014 10:38 am    Post subject: Reply with quote

Quote:
Best version of Knytt is Knytt stories btw, jump physics were pure absolute brilliance in that game.

Agreed! And if you're already into Nifflas games, definitely check out "Within A Deep Forest". Very similar artstyle and IMHO his masterpiece.
_________________
My current project: Hook'd
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Tue Feb 24, 2015 3:28 pm    Post subject: Reply with quote

Well, it's spring break, and I've more-or-less finished some of the biggest portions that needed to be rewritten (working on-and-off over the winter break and various weekends, too). I'm not ready to do a complete write-up about the changes, but here are some screenshots showing off some of the new cool stuff:




_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9328
Location: Not Finland
PostPosted: Tue Feb 24, 2015 4:28 pm    Post subject: Reply with quote

As I don't see a mouse cursor in those shots I presume you're using a gamepad to direct the tractor beam?
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
sonrisu
Moderator

Joined: 31 Aug 2005
Posts: 4955
Location: Silicon Valley!
PostPosted: Tue Feb 24, 2015 7:58 pm    Post subject: Reply with quote

Very cool. I want to try! Is there a Mac build? :]
_________________
loomsoft :]
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Tue Feb 24, 2015 10:24 pm    Post subject: Reply with quote

No mac build yet; I haven't set up a Mono/.NET environment on my ailing MacBook. It wouldn't take too long to get a Linux build set up, but I'd like to finish reimplementing some of the more important things (some basic UI stuff, save/load of the world) before I start porting.

The screenshot software I was using didn't capture the mouse pointer. It wouldn't be difficult to hook in gamepad support though, which is certainly something I'm going to do down the line.
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Thu Mar 05, 2015 9:45 pm    Post subject: Reply with quote

I've finished all the features I wanted to put in, now to polish it up and fill in some of the gaps. After that, I'll have a build you all can play (Win + Linux, certainly, hopefully OSX).




_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Sat Mar 07, 2015 6:14 pm    Post subject: Reply with quote

Well, I've finished everything important. Just need to configure MonoDevelop on Linux/OSX and build. Should have something up today or tomorrow.

Edit: Welp



That throws a wrench in the plan. I'll try some different things, but right now, I'm releasing Windows-only until I figure it out.
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Sat Mar 07, 2015 9:21 pm    Post subject: Reply with quote

Here it is: http://contrabassgames.com/t/development-release-alpha-0-0-0/24

Have fun; I'll start writing up a devlog about it.
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Wed Mar 11, 2015 10:53 pm    Post subject: Reply with quote

Long time, nothing written!

This is the development log for Alpha 0.0.0 of Sparse.

The big space between this and the prototype I was sending out was due to a very hectic year of university, which is now cooling down, and a large restructuring of the code. I was getting very unhappy with the architectural choices I made when starting out; partly because of more experience with the platform (C#, SDL2) and partly because of new features I plan on implementing, I decided to rewrite most of the game. As such, Alpha 0.0.0 features a lot of new stuff that wasn't in the old prototype, but doesn't have some of the cool things from the old version.



  • Tools: previously, I was shoving stuff into the Update function, but now, no more! Tools are better defined as a special type of item that maps certain delegates to certain events. There's a lot of room to explore here, and I could write a whole post about just these. Currently, there's a tool for breaking blocks, placing blocks, and moving objects in the world.

  • Navigation: this early version shows off a slice of a world map. You can travel to a large number of sectors in the game, and they're all saved to and loaded from the hard drive individually. This preserves the Minecraft idea of "things only happen close to the player" which helps with general performance and player understanding.

  • Persistent block damage: another area with a lot to explore, both design-wise and technically. Having to build and maintain structures as they get damaged is something I haven't seen done (perhaps for good reason), but even if structures don't sustain continuous environmental damage, persistent damage makes things like splash damage effects more interesting.

  • Small graphical changes: little things: the player's tool actually points, the player has can look up now, there's an icon in the corner showing the player's tool and whether they can leave the current sector.

  • Packaging: the new version includes a system that scans and includes packages consisting of assets (images, music, fonts, text, etc), and JSON definitions for blocks, items, tools, and other stuff. Soon, I'll add a way for modders to include .NET assemblies that'll expand the capabilities of the game. This is the biggest change behind the scenes, as it required me to separate traits and functions of everything I wanted to be exposed. It was also the main goal I laid out back in Devlog #1, and it's coming along nicely from that, but is still maybe half finished.

  • Not included: a bunch of UI stuff. I'm still messing with bits and pieces of the display system, and the game currently doesn't have a way to render text. This makes nice UI components difficult, and UI is usually less exciting than gameplay.

  • Not included: inventories and items. This is partly because I haven't finished the UI yet, partly because the game doesn't exactly have a use for such things yet, and mostly because I haven't gotten to it yet.

  • Not included: some small movement stuff. I haven't bothered reimplementing float yet, and there isn't a cap on energy. The physics in the world is pretty close to stock settings, unlike the highly tweaked version I was using in the old prototype.



My current priority is fixing, documenting, and extending code when appropriate, cleaning up after my rush to release on Saturday. After that, I'll implement some UI components and add more hooks to definitions: sectors are assigned a biome when they're created, but they don't do anything with it yet. Too, I can generalize a lot of tool functions, and expose them to JSON quite easily.

I'm also investigating different binary serialization methods on C#. System.Serialization isn't completely implemented under Mono, which means I can't release on Mac. This, combined with some issues it has with versioning (ie: it can't), means I think it's not suitable for an application where people are going to be upgrading saves with every release. Right now I'm looking into a C# wrapper over Google's Protocol Buffers (protobuf-net), but I haven't delved into that yet. However, I don't think the game is going to support upgradable saves until it enters beta, or at least until there's enough to do to warrant saving a world.

This was a lot easier to write than the last devlog, perhaps because I have a lot more to say.

(crossposted from contrabassgames.com)
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Gil
Developer

Joined: 14 Nov 2005
Posts: 2341
Location: Belgium
PostPosted: Fri Mar 13, 2015 11:21 am    Post subject: Reply with quote

Ooooh, shinies. I'll check it out in the weekend :)
_________________
PoV: I had to wear pants today. Fo shame!
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9328
Location: Not Finland
PostPosted: Sat Mar 14, 2015 7:48 am    Post subject: Reply with quote

Seriously, I need to stop and put in some time with this and Mike's game.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9328
Location: Not Finland
PostPosted: Sat Mar 14, 2015 2:14 pm    Post subject: Reply with quote

Okay, thanks for sharing the build!

That's a good start you've got. Working physics, solid collision detection, and once I figured out I could change tools I got to digging around and playing with the landscape. I like how the tiles automatically change their trim based on their neighbors. I wish more games would do that. I had a lot of silly fun just picking up the purple blocks and seeing how far I could fling them :)

When I booted the game for the first time I hit backspace and the game crashed immediately. After that I had no problems. I'm guessing something important was/wasn't set, and after I went through one cycle it sanitized what it needed to... heh.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Sat Mar 14, 2015 4:09 pm    Post subject: Reply with quote

I never tested that case; it was trying to delete a nonexistent folder, which throws an error in C#. It's fixed now--thanks!
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Wed Apr 01, 2015 9:16 pm    Post subject: Reply with quote

Got a bit of time to work on stuff this week. First on the list was 9-slice scaling to make resizable UI controls easy.
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Thu Apr 23, 2015 7:58 pm    Post subject: Reply with quote

Here's a little bit of the stuff I've gotten working this week.
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Mon Apr 27, 2015 1:12 pm    Post subject: Reply with quote

New release up! Featuring a bunch of cool stuff; I'll have a devlog up about it soon, and probably a small tutorial on how to add stuff to the definition files.

Edit: Screenshots here
_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Will
Member

Joined: 28 Nov 2013
Posts: 60
Location: California
PostPosted: Fri May 01, 2015 1:51 pm    Post subject: Reply with quote

Alpha 0.0.2 up. This is a smaller release than last time, since I'm about to embark on some big changes, and I didn't want to leave some of the small ones forgotten until I'm finished with the next release.


_________________
Parents of young organic life forms are warned that towels can be harmful, if swallowed in large quantities.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9328
Location: Not Finland
PostPosted: Sun May 10, 2015 1:37 pm    Post subject: Reply with quote

Is there a list of command keys? I found tab, which opens the sector select (and it works!). I also remember Q and E which cycle your tools.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - Sparse Page 1, 2  Next

Use this link to get a Sign-On Bonus when you get started!

All trademarks and copyrights on this page are owned by their respective owners. All comments owned by their respective posters.
phpBB code © 2001, 2005 phpBB Group. Other message board code © Kevin Reems.