AKA Litecraft: Take 3
AKA Codename: BrightCraft
A fork of @falkreon's GlowTest. (Thanks, man! I hate writing the basics!)
- Work alone on a project for once in my life
- Seriously. Working with others is really stressful.
- I hear that unassisted self-teaching is a really great way to learn.
- Make a voxel sandbox game, inspired by the most fun ways to play Minecraft
- Gameplay focussed around adventure OR automation
- Adventure mode
- Would force players to keep moving around by keeping players on their toes at all times
- Difficulty would ramp up in areas where players spend more of their time, spawning enemies, and allowing environmental disasters after long periods
- Updates would add difficulty as players find workarounds to challenging game mechanics
- Factory mode
- Would encourage players to stay in one place, to create factories that automate every game mechanic.
- Update would add new rewards for automation, new ways to automate, and new mechanics to work with
- Players may also use this mode to build neat structures, such as buildings to house
- Other than incentives, all features would be available in both modes
- No cheater/creative mode! Force players to prototype their stuff in real-time!
- Adventure mode
- Internal focus around modularity
- Adding things to the game should be super simple. As little as one line of code.
- Gameplay focussed around adventure OR automation
- Have fun
- My life is going horribly. I hope this makes it feel better.
- Might spice it up with some queer/furry stuff some time down the line.
- Rendering engine:
- Use someone else's open-source engine
- Saves time (oh my god I have had enough of writing boilerplate LWJGL code!)
- Potential to be a lot better than what I could write
- Use my own open-source engine
- Saves me from having to learn someone else's codebase
- Prevents potential interaction with other developers
- If N*tch can do it, any idiot could!
- Use someone else's open-source engine
- Data formats
- World save (Binary)
- Need a data format that can efficiently store binary data that represents a world.
- BSON (Binary javaScript Object Notation)
- SOD (Segregated Ordinal Data)
- Written by @valoeghese, an acquaintance of mine.
- Interesting format
- Used in the second failed attempt of LiteCraft
- NBT (Named Binary Tag)
- Same format used by Minecraft, so proven to be good for this application
- Library has a restrictive license (BSD)
- Library written by Graham Edgecombe, but format created by N*tch.
- Source code for the library seems to be lost? Subversion repository link is broken on the website.
- Need a data format that can efficiently store binary data that represents a world.
- Config/Settings/Options (Plain text)
- Need a readable data format that can store user-configurable data
that represents settings in-game, and related to the game.
- JSON5 / HJSON
- Zoesteria Config
- Another standard written by @valoeghese
- A standard I've personally wanted to try using for my projects, but never learned.
- XML
- Extremely popular standard
- Not often used for configs (at least I don't think so?)
- Overly-verbose syntax
- Multiple standards
- It's possible to implement multiple standards for configs, if need be, or is wanted.
- Increases amount of options for modders / outside collaborators who might like to use other standards.
- Time consuming to implement
- Increases project size and complexity
- Not as straightforward to implement or use
- Need a readable data format that can store user-configurable data
that represents settings in-game, and related to the game.
- World save (Binary)
- Sound implementation
- How I see it, sounds could be implemented in one of two ways:
- Traditional: Loading sounds from sound files
- Implement an OGG and/or WAV loader, probably using OpenAL
- Time consuming with little creative payoff
- Done to death, every game since the original PlayStation has done this.
- Has a tutorial
- I would probably have to learn how to deal with 3D spatial sound myself
- Use an existing 3D audio library, like Paul's SoundSystem
- Literally what Minecraft did for a long time.
- Also done quite often
- Implement an OGG and/or WAV loader, probably using OpenAL
- Game Jam FTW: Dynamic Sounds via a Java version of BFXR
- Create a Java version of the JavaScript application JSFXR, which is itself a JavaScript version of a Flash application, BFXR, which was created by a Ludum Dare participant to reduce the time needed to create audio for indie games.
- Allow this Java version to read data from [the decided plain text data format (JSON?)] files and play sounds generated by the program with that data.
- Create some sort of sequencer based on [the decided plain text data format (JSON?)] to create music from it.
- This would also give game jam participants access to these new tools, which would be cool!.
- Traditional: Loading sounds from sound files
- How I see it, sounds could be implemented in one of two ways:
This project is licensed under Mozilla Public License version 2, to match the license of my chosen render engine, Glow.
For more information, see LICENSE.
I want to use licensed music from indie artists. That will probably have its own licensing notice.