Skip to main content

14 posts tagged with "news"

View All Tags

· 4 min read

It's been an exciting week at Gamercade this past week! The big 0.1.0 release went well and we're seeing lots of growth in the community! Here's to another great week ahead.

General Updates

In this section, we discus changes and improvements which happened over the week.

0.2.0 Roadmap

We've decided on the main requirements for the next 0.2.0 release! We may add additional issues as problems or quick-fixes are found, but this is the core set of features we hope to have ready for the next major release. The main theme for 0.2.0 is "two." This includes things like 2 or more local player support, 2 or more networked sessions, and 2-channel audio support. Feel free to chime in on any of the discussions or on discord with requests or suggestions for the next release.

GitHub Sponsors Page

We've been approved for GitHub Sponsors! This is a great way to support the project. Additionally we are offering services to help bootstrap your Gamercade development process. Of course, Gamercade and related tools will always remain free and open source forever, however any donations or sponsorships will go a long way in securing the future of the project. If you want to support the project in other ways, please see our support Gamercade for more information.

Console Improvements Odds & Ends

  • Support for non-f32 output audio formats
  • Option to open raw .wasm files and use default assets.
  • Added Mouse Api Functions
  • New write_pixel_buffer function which takes a pointer, length, and start index and allows a more efficient way of calling set_pixel en masse.

Editor Improvements Odds & Ends

  • Support for non-f32 output audio formats

Website Improvements Odds & Ends

What's Next

In this section, we discus primary focus areas for the project. This includes features actively being worked on, as well as things potentially coming in the near or long term future.

Audio System Improvements & Research

Gamercade's Audio System is also due for another large improvement. In the current plan, we are hoping to add support for panning and proper stereo sound in 0.2.0. This will also lay the foundation for the audio effects system we plan on adding in 0.3.0 or later. While the console does output audio on two channels, it's the same audio just duplicated on each channel.

These additions require a bit of research, planning, and possibly some code refactoring in order to ensure good comaptibility across different kinds of hardware, while still remaining flexible and high performant as the current sound engine. We don't have anything ready to show you just yet, but things are happening behind the scenes.

Support for 2+ Player Sessions

As mentioned briefly in the 0.2.0 roadmap section, we are making a big push for supporting larger play sessions. Gamercade relies on p2p technology, which is great for small-scale multiplayer games. We also don't want to limit gamers to strictly requiring one player per game instance. This means that we can realistically support up to 4 separate console instances (possibly up to 6 in ideal network conditions), where each instance could have multiple local players. While we can't confirm what the hard cap is, we know for certain that we want to support different configurations such as (but not limited to):

  • 4 Instances, 1 player per instance, for 4 players total.
  • 2 Instances, 2 players per instance, for 4 players total.
  • 2 Instances, 1 + 3 players per instance, for 4 players total.
  • 3 Instances, 1 + 1 + 2 players per instance, for 4 players total.

The technology can support any number of players, so if there's someone out there crazy enough to organize a 4-instance, 4-player per instance, 16 player game session, we want to give you that option, but due to the networking requirements of a 4-player mesh (or more!) we don't expect this to be the norm.

Call to Action

What can you do to support the project?

  • Read the suggestions on our support Gamercade page.
  • Consider sharing the project with your friends, and getting them involved with the community.
  • Building out more examples and have them featured on our page!
  • Contributing code and documentation to the project's GitHub.
  • Hang out and chat with everyone in discord.
  • Shape the future of Gamercade! Take part in larger feature discussions.

· 3 min read

It's been an exciting week at Gamercade this past week! Here's our first update after the big 0.1.0 release! Here's to another great week ahead.

General Updates

In this section, we discus changes and improvements which happened over the week.

0.1.0 Release!

The big news is that we've reached our first release! Read more about it on the article here. Pay extra attention to the gccl CLI tool, since that one will covers some highly requested features.

Console Improvements Odds & Ends

  • Fixed draw circle with out of bounds pixels
  • Fixed drawling lines out of bounds
  • Added utf_16 text functions
  • Fixed potential crash when fetching song lengths with empty chains
  • Automatically close the "Main Menu" Window when loading a game
  • Updated Readme with links to various language bindings.
  • Added emulation for gamepad analogs & Triggers
  • Added gamepad support for XInput devices
  • Added Quit Game Button
  • Added Reset Game Button
  • Added CLI argument to launch a game

Editor Improvements Odds & Ends

  • Adjusted Add/remove entry logic for trackers, now uses Shift + Z instead of insert and delete
  • Song Editor: fixed a display issue when clicking the row number
  • Song Editor: fixed a panic if the chain index is out of bounds
  • Sfx Editor chain index is now shown as hex
  • Sample Editor: Fixed a crash when adjusting loop modes on a zero length sample
  • Palette Editor: Now shows selected color index
  • Palette Editor: Now shows palette indices
  • Audio Editor All documentation pages added
  • Changed the logic for how the Oscilloscope processes frames, resulting in a smoother view
  • Sheet Editor: Added the ability to import sprite atlases via "Import Sprite Sheet" dialog box

Website Improvements Odds & Ends

  • Added documentation for Graphics Parameters
  • Added documentation for Audio Editor
  • Add documentation for sprite sheet atlas import.
  • Added the gamepad example, and docs about gamepad support
  • Improvements to "exporting your game" page
  • CLI tool page added

What's Next

In this section, we discus primary focus areas for the project. This includes features actively being worked on, as well as things potentially coming in the near or long term future.

Stability Fixes for 0.1.1

For this week, we will focus on stability and bug fixing. We have seen a large influx of new users since the release, and are likely to encounter interesting bugs and unique issues. We have already seen a few issues pop up on GitHub, and will continue to focus on these for the time being.

Roadmap for 0.2.0

In addition to stability fixes, we also are looking to start planning our next larger features. While nothing is set in stone yet, some things we are looking at adding are:

  • Multiplayer Improvements, like multiple local players, and >2 networked connections
  • Text & Mouse Apis
  • Audio Improvements, like Stereo Sounds, Special Effects, etc

Call to Action

What can you do to support the project?

  • Consider sharing the project with your friends, and getting them involved with the community.
  • Building out more examples and have them featured on our page!
  • Contributing code and documentation to the project's GitHub.
  • Hang out and chat with everyone in discord.
  • Shape the future of Gamercade! Take part in larger feature discussions.

· 10 min read

Gamercade 0.1.0

After over half a year in development, we are happy to announce Gamercade 0.1.0!

Gamercade, at its core, is a neo-retro Fantasy Console that runs WASM games. But it's also a bit more than just that.

The main features of Gamercade are:

  • Simple and Powerful - 2d Rendering, Input, and Audio all included.
  • Language Agnostic - Write in your favorite language and compile to WebAssembly.
  • Tool Agnostic - Build assets using your favorite tools. Bundle them with the Editor.
  • Seamless Multiplayer - Built-in p2p rollback lets you get multiplayer "for free."
  • Collaboration Friendly - Save work-in-progress as JSON, for easy collaboration.
  • Free and Open Source - Free to build, use, and play, forever.

Motivation

Imagine you are a small team or solo developer, and you want to make a multiplayer game. Here are some of the common issues you need to face in order to have a successful project:

  • Your project needs to correctly handle the complexities of online multiplayer.
  • You have to market your project well enough to ensure a large player base for short wait times.
  • Setting up server hosting, and the costs to keep them running well after release.
  • Your game needs to be fun and interesting to play.

With Gamercade, the first three requirements are removed. This creates a more modern development environment which lets game developers do what they do best: Make exciting games!

Project Goals

Every feature and function of Gamercade and its related tools are built with the goals of achieving the following:

  • Effortless Multiplayer - The main priority is developing a top-notch multiplayer experience for both players and developers. This means providing an easy-to-use networking solution for developers, and also one which is robust and high performant.
  • Empower Creatives - Gamercade is a platform for all kinds of people, of different backgrounds and experience levels. Programmers, designers, artists, and are all welcome. Gamercade should empower creators and allow them to always do their best work.
  • "Neo Retro" Game Development - Project scoping is important. Retro consoles are cool, but also constrained and complex. Gamercade provides the balance between retro and modern development. Games are limited by content, but creativity is unlimited.

Gamercade Console

The console is the first of three applications as part of the Gamercade suit of tools. It's primary purpose is to play awesome games! It does have a few interesting features both for players and developers.

Learn more about the console specs and features here

Input & Controller

GC Controller

The standard Gamercade controller is similar to any modern game controller. It features:

  • 8-Way Directional Pad
  • Four Primary Face Buttons, A B C D
  • Two Shoulder Buttons
  • Two Analog Sticks (with press-able buttons)
  • Two Analog Triggers
  • Start & Select Buttons

Graphics

GC Animation

Gamercade supports drawing primitive shapes like circles, rectangles, and lines. It also has full support for customizable palettes, sprites, and sprite sheets.

Each palette supports up to 64 colors, including alpha on/off. Each game can support up to 256 color palettes, giving a possible total of 16,384 unique, user-definable colors. Sprites can be drawn using any palette.

Audio

Gamercade has a simple and familiar tracker-like audio interface. The console supports up to 8 channels of audio, and an additional 8 channels for background music. Each of these channels are synthesized by the console, live, at runtime. Sounds and music are generated from a number of different, fully customizable, instrument types, such as a wavetable synthesizer, an FM synthesizer, or a sampler.

Built-in Networking

GC Networking

Thanks to the Fantasy Console abstraction, each and every Gamercade game supports multiplayer! This is completely abstracted out of the game code, so writing an online multiplayer game is simple! The console removes any notion of the network, and instead exposes a simple "controller and slot" style interface. Each networked player is simply seen as a second controller to the game. If you can write a local multiplayer game, you can write an online multiplayer game with Gamercade.

Bindings, API Docs, and Example Projects

Since Gamercade gams are built from WASM code, there are many different programming languages you can use. We have compiled a list of popular game development and WASM languages, and included both sample projects and bindings to the Gamercade Api as well.

LanguageAuthorLinkNotes
RustGamercaderust_templateUses gamercade_rs
NeluaAndre-LAneula-gamercadeIncludes bindings.
ZigGamercadezig-templateIncludes bindings.
AssemblyScriptNEARworldgamercade-asIncludes bindings

Of course, if you'd like to work with the raw api itself or develop your own bindings, we have fully documented the api here.

Additional Features:

  • Variable Screen Resolutions - Pixel Perfect scaling, from 128x72 up to 1920x1080.
  • Custom Frame Rates - Adjust the console's frame rate to your liking, from 24 up to 240 frames per second.
  • Gamepad Emulation - No gamepad? No problem. Use your keyboard to simulate a gamepad, including analog controls.

Gamercade Editor

The editor is the second application from Gamercade. It is responsible for organization, creation, and editing of all assets used by the games. This includes things like setting up palettes and sprite sheets, but also creating instruments, songs, and sound effects for the games.

All in-progress games are saved in a source-control friendly format. You can open, save, and share your works freely and confidently.

The Editor is also responsible for bundling and exporting games into the format usable by the console. Learn more about the editor here

Rom Setup

Rom Setup

Adjust settings about the game itself and console configuration. Set the games graphical resolution, tweak the resolution, and define the player count for the game. All done via an easy-to-use graphical user interface.

Graphics Editor

Sprite Sheet Editor

The graphics editor is responsible for all palettes, sprites, and sprite sheets in your Gamercade games. Create sprites in whatever application or workflow you wish. Then, import them into your games using the included tools.

  • Palette Editor - For creating and editing palettes and their colors, and preview changes on sprites.
  • Sprite Sheet Editor - For defining, editing, and organizing sprite sheets. Includes a sprite atlas importer and palette previewer.

Audio Editor

The Audio Editor is responsible for all sound related things in your Gamercade Games! All instruments, background music, and sound effects, are created and modified here. But here's an example to listen to instead:

The sound engine produces all of the sounds via instruments. Think of them as a source of sound, rather than a musical instrument. Instruments can be triggered on and off, and also be set to play at specific frequencies. This can be done via game code, or by triggering songs or sfx, which playback a predetermined series of chains and phrases.

Instruments

Instrument Editor

Gamercade features different kinds of instruments. They can be created and edited by using the instrument editor. Each of these instruments come with their own pros and cons, and each are able to produce different kinds of sounds. Experiment with the ones you like. Gamercade features three kinds of instruments:

  • Wavetable Synth - Great for chiptunes or other complex sounds. Generate pre-defined waveforms using the generator, or click on the chart to modify them frame by frame.
  • FM Synth - A 4-op FM synth, similar to the Yamaha YM2612 found in the Sega Genesis / Mega Drive. It can be complicated to use, but can produce tons of unique and interesting sounds.
  • Sampler - Playback pre-recorded .wav files. They can be pitched and played back at specific notes. The most flexible, but also uses the most amount of space.

Tracker Mode

Tracker Mode

The tracker editor modes are responsible for defining the playable sequences in your games. All songs and sfx are composed of a series of chains and phrases, which are a series of note frequencies and the instruments that play them.

Each of the tracker modes features a similar interface: multiple rows with spaces for data entry. The track will always flow from top to bottom, playing any of the entries (if they exist) in sequence. They will continue to play until they are finished by reaching the end of the sequence.

gccl Tool

gccl Watch Mode

The third and final tool is GamerCade Command Line Interface, also known as gccl. This provides a collection of use scripts and tools for working within the Gamercade ecosystem. It's especially useful for developers who want a fast cycle of edit-build-test for their games. Learn more about the gccl here

Bundling & Console Modes

The primary use for gccl is being able to export and bundle games via the command line. This is much faster than the methods using the editor to export the game files. By using gccl bundle and providing arguments to the path of the code, assets, and output files, users can quickly and easily bundle their games for rapid development.

gccl can also be used to run the console. This is invaluable when paired with the concept of bundling above. Users can execute commands like gccl console rom [PATH TO ROM] to automatically launch the console and run the game at that desired path.

Watch Mode

By using the -w or --watch flag, the gccl can automatically re-run any commands. For example, taking the following command from above gccl -w console rom [PATH TO ROM] will automatically launch the console whenever any file change is detected on the game rom.

What's Next?

Gamercade has come a long way since the beginning. While it has all of the core features ready to go, there is still a bright future ahead. Some of the next features we want to add over the next few months are:

  • Stereo Sound Support - Left/Right panning for music and sfx.
  • Instrument Presets - Community built presets of high-quality instrument sounds.
  • Audio Effects - Slides, reverb, chords, anything to make our sound engine even better.
  • N-Player Multiplayer - Support for 3+ multiplayer games, with multiple local and networked players.
  • More Language Bindings - Bindings for other popular languages like C, Go, Odin, and more.
  • Text Api - Define fonts in the editor, and draw text easily in the console.
  • Online Games Directory & Platform - Search, upload, download your favorite games, and find other people to play with.

Of course, we are open to suggestions and comments from the community!

Join the Community

If this sounds interesting to you, consider joining the community! Currently, we're mostly active in discord. Gamercade is also completely open source and open for contributions and suggestions. We'd love to hear about all the cool stuff you're building.

Start Building!

Head on over to our downloads page to get the latest release.

Learn more about Gamercade on our official documentation page.

If you want to start coding right away, check out our examples or read about the api.

· 3 min read

It's been an exciting week at Gamercade this past week! We're going full-speed ahead for our first real release. The community is continuing to grow with more contributors and members in the discord each day! Here's to another great week ahead.

Sprite Sheet Editor

General Updates

In this section, we discus changes and improvements which happened over the week.

Push for 0.1.0 Release

As stated in our last weekly update, we are focusing our efforts on rounding out the whole experience in preparation for our first 0.1.0 release! This will be a big milestone and a culmination of a lot of hard work over the past months. There was a lot of housework-style tasks to be done, like organization of the projects, issue tracking, etc. But from now the majority of these efforts are being tracked by this issue.

From the current looks of things, most of the features are already implemented, with documentation and examples being lacking. Any issue on the nice to haves list will be great to have as additions in future updates - as these are also updates which wont fundamentally break Gamercade by introducing them.

Console Improvements Odds & Ends

  • Implemented flip_x and flip_y for drawing sprites.
  • Added as_raw_state and related functions for better performant input handling.
  • Removed a few unimplemented API functions:
    • draw_text - this will be added again at a later date
    • bgm_is_active & channel_is_active - this functionality has been replaced
  • Added get_length style function on data api for audio, which returns either the length in seconds or game frames, for a bgm or sfx.
    • bgm_length_secs
    • bgm_length_frames
    • sfx_length_secs
    • sfx_length_frames

Editor Improvements Odds & Ends

  • Palettes can now be renamed.
  • Removed unimplemented "Rename" and "Export" buttons for Palette Editor

Audio Engine Improvements Odds & Ends

  • Phrases now correctly use "volume levels" when playing back.

Website Improvements Odds & Ends

  • Added reference updates for new api functions.
  • Removed references to removed api functions.
  • Major updates to the entire graphics editor documentation.
  • Major updates to the Rom Settings documentation.
  • Added Nelua bindings and examples to their relevant pages.

What's Next

In this section, we discus primary focus areas for the project. This includes features actively being worked on, as well as things potentially coming in the near or long term future.

Continuing First Release Prep

Same as this week, we will continue improving the projects documentation and examples to provide a much better user experience for all future users! Of course, any critical bugs will be resolved if found. Again, the expectation of the 0.1.0 release is sooner rather than later. From a tech standpoint, Gamercade is ready! But we really want to ensure a solid developer in order to make a stronger impact during the big announcement.

Call to Action

What can you do to support the project?

  • Consider sharing the project with your friends, and getting them involved with the community.
  • Building out more examples and have them featured on our page!
  • Contributing code and documentation to the project's GitHub.
  • If you're interested in contributing, please prioritize the issues outlined on here first!
  • Hang out and chat with everyone in discord.
  • Shape the future of Gamercade! Take part in larger feature discussions.

· 3 min read

It's been an exciting week at Gamercade this past week! We've wrapped up much of the audio features in both the editor and console. The community is continuing to grow with more contributors and members in the discord each day! Here's to another great week ahead.

General Updates

In this section, we discus changes and improvements which happened over the week.

Audio Editor

Since .gif doesn't have sound, start by watching this video:

This video showcases the current state of the editor in regards to audio features. This includes all of the instruments:

  • Wavetable: Generate or draw waveforms on the waveform chart. Great for chiptunes or other complex sounds.
  • FM Synth: A 4-op FM synth, similar to the Yamaha YM2612 found in the Sega Genesis / Mega Drive. It can be complicated to use, but can produce tons of unique and interesting sounds.
  • Sampler: Playback pre-recorded .wav files. They can be pitched and played back at specific notes.

It also includes the tracker-style editor UI, which allows users to create and edit phrases, chains, songs, and sound effects. One great thing about this is that trackers are very efficient in data size. Another interesting point about the way the editor and console is setup, is that it uses the exact same code to generate (synthesize) the sounds on both applications! This means what you hear in the editor is exactly what it will sound like in-game.

Console Improvements Odds & Ends

  • Updated the project readme with motivation & project goals sections.
  • Improved how the audio engine handles rollbacks to further reduce popping/clicking when the state changes.

Editor Improvements Odds & Ends

  • Audio Editor has been implemented!
    • Ability to create and edit three kinds of instruments: Wavetables, FM Synth, Sampler.
    • Ability to create phrases, chains, songs, and Sfx.
    • Oscilloscope view to see actual sound output.
    • Piano roll for testing and playing instruments.

Website Improvements Odds & Ends

  • Adjusted Audio Api Pages
  • Added groundwork for future audio editor pages

What's Next

In this section, we discus primary focus areas for the project. This includes features actively being worked on, as well as things potentially coming in the near or long term future.

First Release Prep

Now that audio exists in a functional state in both the console and editor, we have completed the entirety of the core features! It's time to start preparing for our first official release! Much of this is going to involve documentation updates, usability fixes, major bug patches, and other cleanup style tasks. So for the time being, we will pause development on new features in favor of these. While we don't have a specific date set in mind currently, we do expect it to be a matter of weeks, not months.

Call to Action

What can you do to support the project?

  • Consider sharing the project with your friends, and getting them involved with the community.
  • Building out more examples and have them featured on our page!
  • Contributing code and documentation to the project's GitHub.
  • Hang out and chat with everyone in discord.

· 3 min read

It's been an exciting week at Gamercade this past week! We finally got audio playback in the console! Audio Editor features are coming next (with active development happening now). The community is continuing to grow with more contributors and members in the discord each day! Here's to another great week ahead.

General Updates

In this section, we discus changes and improvements which happened over the week.

First Community Made Gamercade Game

Bubbles Gameplay

User mpg from discord created the first community Gamercade game! Bubbles is a short little collection game. The goal is to collect 15 of the green bubbles, while avoiding the other ones.

Bubbles Pause Screen

Check out that pause screen! It also features, a life tracker, a score tracker, and some nice messages if you manage to win the game.

Sound Engine in Console

It's official! Gamercade Console now has sound! After a bit of a monster PR, we finally have sound effects playing and triggerable by games! This also includes the rolling back of the sound state, should that be necessary in some multiplayer gameplay. While the rollback is not completely perfect, this is an exciting milestone, since proper sound and music support is a necessity for any successful game (and game engine or library).

Console Improvements Odds & Ends

  • Sound Engine now exists on the editor.
  • Sounds can be played by following the Audio Api spec.
  • circle_filled function added.

Editor Improvements Odds & Ends

  • Minor changes and preparations made to support the audio editor in the future.

Website Improvements Odds & Ends

  • Added Audio Api page.
  • Updated Raw Api documentation page with Audio and circle_filled functions.
  • Added circle_filled for draw api.

What's Next

In this section, we discus primary focus areas for the project. This includes features actively being worked on, as well as things potentially coming in the near or long term future.

Audio Editor

Audio Editor WIP Image

Now that sound exists within the console, we have started development on the audio editor. This is currently being tracked on this pr. Once it's done, game developers will be able to create and edit instruments, and use these to create songs and special effects. This is also following a "what you see is what you get" kind of approach, where the code used to playback sounds in the console is the exact same as that in the editor. Gamercade takes its audio seriously, and you can learn more about the coming features on the Audio Spec page.

Call to Action

What can you do to support the project?

  • Consider sharing the project with your friends, and getting them involved with the community.
  • Building out more examples and have them featured on our page!
  • Contributing code and documentation to the project's GitHub.
  • Hang out and chat with everyone in discord.

· 4 min read

It's been an exciting week at Gamercade this past week! We are continuing to make solid progress on the audio tech that will power the engine the editor, and the community is continuing to grow with more contributors and members in the discord each day! Here's to another great week ahead.

General Updates

In this section, we discus changes and improvements which happened over the week.

Hoppy Announcement

We are excited to announce that the Gamercade team has partnered up with Spicy Lobster to collaborate on a game project: Hoppy! A spiritual successor to Jump n' Bump or Super Mario War, Hoppy is a fast and fun game about running, jumping, and bonking your friends. It's an ideal match, since Gamercade makes writing small, networked games simple and fun. The project is actively seeking contributors, and will be a completely open source developed game.

New Centralized Monorepo

We have combined all of the main Gamercade repository into a single place! gamercade_console is the new repository which combines all of the separate projects into a single one. This helps with organization of issues which span across multiple projects, as well as making sure that each project, and their dependencies, are all compatible with one another. From this point onward, everything related to Gamercade itself, will take part in this repository.

Audio Engine

After quite a large rewrite, the audio engine is getting much closer to hit a state where it's usable in engine. Who knew audio programming was so difficult? We didn't, but we do believe that the current solution fits the unique requirements of Gamercade much much better: Lightweight, retro-style sounds, while also supporting full gameplay rollback with minimal sound glitches. There is currently a draft PR open on the main repository, so expect to see (or hear) audio in your favorite games soon!

Console Improvements Odds & Ends

  • Minor changes and preparations made to support the Audio Api in the near future.

Editor Improvements Odds & Ends

  • Minor changes and preparations made to support the Audio Api in the near future.

Website Improvements Odds & Ends

  • Various minor spelling and grammar fixes.
  • Additions to main features and FAQ pages.
  • More detailed Audio Spec.

What's Next

In this section, we discus primary focus areas for the project. This includes features actively being worked on, as well as things potentially coming in the near or long term future.

Console & Editor Audio Engine Integration

Similar to the past few weeks, the main focus area is on both console and editor audio integration. We are getting closer to finally having sound as the next major feature and are working hard to get this ready as soon as possible. Expect to hear some rudimentary music and sound effects in console games soon, with the editor to follow shortly after. Take a look at our audio specs to see what's coming.

Improved Community Outreach and Support

Gamercade is starting to make its way around! We've had numerous questions and suggestions made in the community Discord, and both user count and engagement are growing. It's important to have a strong community in a project like this, so we will continue to do what we can to keep things as strongly as they are now, or even better.

Call to Action

What can you do to support the project?

  • Consider sharing the project with your friends, and getting them involved with the community.
  • Building out more examples and have them featured on our page!
  • Contributing code and documentation to the project's GitHub.
  • Hang out and chat with everyone in discord.

· 3 min read

It's been an exciting week at Gamercade this past week! Not only is great progress happening on the tech side of things (namely, audio), we've also seen our community double in size! Maybe you saw our entry in the This Month in Rust GameDev #36 article? Here's to another great week ahead.

General Updates

In this section, we discus changes and improvements which happened over the week.

Audio Engine Progress

The team has been very busy over at Gamercade Audio building out the entire audio system from scratch. And over the week we've reached a great state with many of the most important features implemented:

  • Wavetable sampler, and FM synth instrument support, each with fully adjustable parameters and ADSR envelope.
  • 8 + 8 Audio channels, each with configurable instruments.
  • Tracker-style playback of songs and sounds, bpm, and instrument swapping during playback.
  • Sound State rollback, which is vital for networked games.
  • A simple data serialization format to support saving/loading of sounds and editor values.
  • All of this packed into an easy-to-use SoundEngine abstraction which handles the audio thread completely.

Collaboration Project

While some of the details are still being ironed out, a few other members of the Rust Gamedev community has contacted us with hopes of building a collaborative, open source game together. We can't share too much about this yet, but expect good things coming soon. With this completed, we will see an even bigger rise in community outreach and more chances for collaboration with the community.

Console Improvements Odds & Ends

  • Minor preparations being made to support Audio Api in the near future.

Editor Improvements Odds & Ends

  • Improved handling of images with multiple "colors" with each set to a zero alpha value. No longer rejects these images.

Website Improvements Odds & Ends

What's Next

In this section, we discus primary focus areas for the project. This includes features actively being worked on, as well as things potentially coming in the near or long term future.

Console & Editor Audio Engine Integration

While the foundations for audio are in place, they still need to be integrated into the engine and editor. This includes designing and implementing the audio api, editable parameters, as well as building out the entire audio editor feature set for the editor. Both of these tasks are quite a big undertaking, but solid progress is being made in all areas. We are also making minor tweaks and enhancements to the audio engine to support cool new things like stereo output and special effects.

More Complex Examples & Showcase

We are continuing to work on showcase examples to really show off the intended use case of Gamercade. Currently, this is primarily the collaboration game featured above, with actual 2d art assets, and a proper game loop. We are still working on a cutting-edge 3d example game to show off the raw power of WASM, with all Gamercade features pushed to the limit.

Call to Action

What can you do to support the project?

  • Consider sharing the project with your friends, and getting them involved with the community.
  • Building out more examples and have them featured on our page!
  • Contributing code and documentation to the project's GitHub.
  • Hang out and chat with everyone in discord.

· 5 min read

We're going to start posting weekly updates, starting from today! This one is a bit special because it will contain two weeks, but expect normal weekly updates from this week onward.

It's been an exciting week at Gamercade these past two weeks! We had our initial release, open sourced the project, and also made a lot of great additions to the editor, console, and example projects. Let's take a look at some of the cool things that happened recently.

General Updates

In this section, we discus changes and improvements which happened over the week.

Gamercade is open source!

As mentioned in our previous blog post, we've open sourced the project! We believe this is the best direction for the project both from a community and technological standpoint. You can see all of our official repositories (including this site) on our GitHub page. We are actively seeking contributions of all kinds.

Automated Edge builds for Windows, Mac, and Linux

While you can build the project from source, not everyone wants to clone from Git and build the entire project. We've also added automated edge builds for all major platforms. Check out our downloads page for more details about this.

ROM files are now much smaller than before

Output from the editor is now compressed. While this is a breaking change, we will now see a drastic reduction in size in the output .gcrom files that the editor produces. This means that all projects will need to be rebuilt by a newer version of the editor in order to be used by the most recent iterations of the console. This makes it much easier to share and download games.

Transparency On/Off fields for Palette Colors

While using the transparency mask for drawing sprites does work, it did become a bit of an annoyance having to set one up for each and every palette. Now both the console and editor support using specific colors with zero alpha, creating a much easier workflow for working with transparency. This only affects draw sprites, and does not break existing transparency mask functionality.

gamercade_rs helper crate published

We've published and will maintain the gamercade_rs crate, which provides some helper functionality and a safe abstraction over the raw Gamercade Api. If you're a Rust developer looking to make games for Gamercade, we definitelly recommend using this crate as it can help remove much of the complexity when dealing with the Rust-to-WASM gotchas.

Console Improvements Odds & Ends

  • TextApi has been started! Send text messages to the console, helpful when debugging.
  • RandomApi has been implemented! Easily generate random numbers in a multiplayer friendly way.
  • MultiplayerApi has been implemented! Query information about the active game session.
  • init, update, and draw functions are now optional. Now it's possible to build a game which only uses some of these functions, removing the need to export empty functions in your code even if they aren't used.
  • Fixed with height of high resolution to properly be 640 x 360. Previously it was incorrectly set to 640 x 320.

Editor Improvements Odds & Ends

  • Multiple sprites can now be imported at once. Simply select multiple sprites when trying to import them.
  • Optimizations in how image data is stored in the .gce files, now use base64 for image data
  • Added UI elements to view and adjust color alphas.

Website Improvements Odds & Ends

  • Api Reference has been updated to match the newest specs, with additional documentation.
  • Modified the downloads to better reflect the current state of downloads.
  • Added links on the setup page.
  • Various additions to examples

What's Next

In this section, we discus primary focus areas for the project. This includes features actively being worked on, as well as things potentially coming in the near or long term future.

Audio Spec & Support

We are investigating and building prototypes for the audio system to lay the foundation for sound and music in Gamercade. While we don't have a set deadline yet, we do hope to get this in everyone's hands as fast as possible. However, we can confirm that we do want to support the importing of sounds as samples (as well as generating your own!) and the ability to play them back as individual notes like a keyboard & tracker.

Community Building & Onboarding Process

While our community is still small, we are still actively trying to increase awareness of the project and help streamline the onboarding process for game developers, players, and contributors. Expect to see more information about the project on your favorite places!

More Complex Examples & Showcase

We are continuing to work on showcase examples to really show off the intended use case of Gamercade. Currently, this includes some more feature-rich and complex multiplayer games, with actual 2d art assets, and a proper game loop. We are also working on a cutting-edge 3d example game to show off the raw power of WASM, with all Gamercade features pushed to the limit.

Call to Action

What can you do to support the project?

  • Consider sharing the project with your friends, and getting them involved with the community.
  • Building out more examples and have them featured on our page!
  • Contributing code and documentation to the project's GitHub.
  • Hang out and chat with everyone in discord.

· One min read

Gamercade is officially open source! You may have noticed the addition of the GitHub at the top of the page.

After a lot of discussion, we believe that this is the best choice of action for the future of Gamercade, as we are a community driven project. By open sourcing the project, we move much of the power and direction into the hands of the community. With your help, we can make Gamercade the best it can be!

If you want to contribute to the project, consider checking any of the issues listed on official project repositories. This isn't only limited to developers! Documentation, tutorial, and example suggestions are welcome. We are happy for your contributions!