This should be patched now, sorry about that. Let me know if you still have any issues with the latest build.
Pixel Vision 8
Recent community posts
With all the changes happening to the Game Creator, it's been hard to keep the documentation up to date. So I've just created 40 mins worth of videos showing off the Game Creator v7.6.0, how to get it set up and what each of the tools do. You can watch it at https://www.youtube.com/playlist?list=PLgPMXP3b5lzOMSJP6vA-s008CzSTFrFH_&disable_polymer=true.
Hope you find it helpful when getting started!
This is an untested build of the Game Creator allowing developers to test out early features going into v0.8.0a. Make sure to backup your workspace before using. For this update, you should create an entirely new Workspace folder. Find the default location and remove the old bios and core workspace, then start up v0.7.6 to let it recreate the workspace from scratch.
The Game Creator UI was completely rebuilt from the ground up. There is a new UI framework, and a lot of the tools have been simplified to help fix issues in the workflow. You can now use the UI in your games, and there are a demo project and new system tool to show you how.
Most of the changes are undocumented at this time. You can find example projects in the new File tool under the System tab. Each project has been updated to take advantage of changes to the PV8 API.
DrawSprite and DrawSprites have been changed. You no longer need to pass in a bool to flag rendering sprite data above or below the background layer. You can now pass in DrawMode.Sprite/DrawMode.SpriteAbove or DrawMode.SpriteBelow for this to work.
DrawTile and DrawTiles have been added as an alternative to Tile/UpdateTiles. This focuses solely on drawing tile data to the tilemap, the tilemap cache or the new UI layer. You can call DrawTile(id, c, r, mode, colorOffset) or DrawTiles(ids, c, r, w, mode, colorOffset) to use it. These APIs require the position in column and rows. It accepts DrawMode.Tile, DrawMode.TilemapCache or DrawMode.Layer.
There is a new UI layer designed for adding HUDs and overlays to games. The UI layer sits above the tilemap but is below sprites. You can draw pixel data, text or tiles to it by supplying DrawMode.UI as the render option. The UI layer is the exact side of the screen and does not scroll. You can clear it by calling ClearUILayer() which is not done automatically when calling RedrawDisplay.
PV8 archives now live in the Workspace/Games folder. The game you are editing will be stored in the Workspace/Sandbox folder. These paths are customizable in the bios but were changed to accommodate a new file system structure being implemented in a future build.
There is a new File Browser and Save Tool. The File Browser will now show you tabs for different folders inside of the workspace. The first tab will show your games, the system tab has built-in demos, and the last is for anything in the trash. Games in the trash can now be permanently deleted or restored back to the Workspace/Games folder.
You can now launch games in the File Browser by double-clicking on them. This allows you to play the game without having to edit it. In the save tool, double-clicking on a file will automatically open that file in the appropriate editor.
All of the chip settings have been moved into a central location called the Chip Editor. You can access this by going into a project’s save tool and double-clicking on the data.json file. Any changes you make here will be applied to the project. There is also a lock option which allows you to finalize the system specs and not edit them while working.
Creating a new game automatically moves the contents of the Workspace/Games folder into the trash. Trash is no longer automatically emptied when shutting down the Game Creator so you can restore backups of accidentally deleted projects at any time.
All of the tools have been migrated over to the new UI Framework and were optimized so they should load 4 to 5 times faster than before.
The Sprite Editor now allows you to compress your sprites and will create a new optimized sprites.cache.png file. Once this file is created, it will be used instead of the default sprite.png file. If you want to rebuild the cache, you’ll need to delete that file then re-compress the sprites.
Each project can now store its own SpriteBuilder folder. This allows you to keep all of the resources that belong to a game in one place but it will not count against your project’s total. Only core files are counted.
There is a new Tile Map editor with support for creating a Tiled friendly json file. You can do this by clicking on the Compress button in the Tilemap Editor. Once you click this, it will convert the tilemap.png file into a tilemap.json file and link up the sprites and collision flags. When you open this file in Tiled, you can make all of your changes there and anything saved will automatically be re-loaded into the game the next time you run it. The old tilemap.png file will be ignored, and this new json file will greatly speed up load times for your game.
There were over 180 issues resolved in this build making it the largest one to date. Now that the new UI framework is in place, updates to the Game Creator should be a lot easier. The goal is to return to updates every two weeks. You can track all of the open issues on the Github issue page and file any bugs you see there as well.
Settings tool crashes if launched when a game isn't being edited.
The music settings are not fully functional. They are currently not mapped to the correct values. While you can make some changes to the music generator, some settings may throw an error or have unexpected results.
Unable to edit the wave type for SFX settings. There is no UI for this, and it currently displays a slider which will throw an error if it is used. This will be addressed in a future build.
You can now keep folders in your workspace instead of .pv8 zip files. This features is experimental and may not work as expected.
It's been a while since I've released a new version of the Game Creator. While it has been helpful to release experimental builds to find bugs and get feedback, I've decided to take a step back and clean everything up in preparation for the final build of the v0.7.X branch. The goal is to have a stable beta by the end of November in time for Ludum Dare. A lot of work has gone into the current unreleased build, here is just a short list of all of the changes:
- Fully rebuilt workspace browser
- Cleaned up designs for all of the tools
- All new import tool for copying assets projects into your games
- New Chip Editor for configuring your game's hardware specs
- Cleaned up save and export workflow
- Simplified tools to focus on specific tasks and moved all chip config into the Chip Editor tool
- Added build-in demos
- Updated the Sprite Builder to allow you to have 'SpriteBuilder' folders in the root of your workspace and in the game project folder
- Support for controllers, system short cut keys and better keyboard support
- Trash manager to see what has been deleted and to restore files before emptying the trash completely
- Ability to lock game specs so you can create hard limits for games to be built around specific specs
- New plugin for Atom editor allowing code completion for Lua API
- All new UI framework was rewritten from the ground up in Lua making it easier to create your tools
- All new UI layer to draw sprites, tiles and raw pixel data too to have HUDs in games that don't scroll with the background
- All new website to share games, read docs and learn more about the engine itself
Moreover, there is a lot more coming. I want to thank everyone for their support of the project during these past few months as I have tested out ideas, cleaned up features and experimented with the current workflow. The plan for the beta is to get the entire Game Creator running and stable enough to use external editors with. Once stable, the next phase will include adding built-in editors so you can do everything you want inside of the Game Creator. This last part will take some more time to realize fully, but we have already begun working on an all-new design for Pixel Vision OS v2 and are excited to share that with everyone as soon as it is ready.
In the meantime, continue to use the current builds of the Game Creator. The API has been locked for months now so there will not be any big changes as we head into beta. I also have a special surprise to everyone that purchased a license during the early access so keep your eyes out for that during the next release!
Thanks for the suggestion. I think once I get this into beta I can look into better ways to handle importing colors. I have some ideas around how to better support palettes as well.
To your point about cells color limits I agree, that was on my list. The tilemap does allow you to set color offsets (which is PV8's way of shifting colors to emulate palettes) but it is currently set to single tiles. The nest actually limited the colors to 2x2 blocks so you wold see some color bleed based on what you were rendering to the background.
Once I get a better handle on the tile map editor and how that will work I can better support that. The end goal will be to have a separate file that defines color offsets in the tilemap, similar to how the tilemap-flags work and you can emulate this feature by hand too.
That is really strange. I've seen a few issues with Unity on Linux. I'm heads down on a major refactoring which will probably take me into next month before I can push a new update. Email me at firstname.lastname@example.org and I can look into getting you a refund. I'd hate for you to have bought PV8 and not be able to use it :(
The pro features are the additional debugging tools. Right now I am still working on building out the code, sprite and tilemap editors. The sfx and music editors are already in. I'm working on a big UI overhaul that will help me add in the missing features a little faster so the experimental builds have ben a little bit unstable. Hope to have all of this back on track by the end of September so I can finish off the editors.
Also free scaling the window has been removed. You can now scale the window by going into the settings tool and selecting a scale.
Hope that helps?
I've discovered some issues cased by compiling the Game Creator with Unity 2017.1 and have reverted to the last stable version of Unity. I should have a new build with exporting restored by the end of the week. Going to see what other small bug fixes I can do as well. If you are having issues with v0.7.3 I'd hold off until Friday's v0.7.4 release.
Is anyone having issues with v0.7.3a on Windows? I've been getting reports of the app not opening or loading to a grey screen. If you see this on Windows or any platform send me an email email@example.com so I can help trouble shoot any issues.
This is an untested build of the Game Creator allowing developers to try out early features going into v0.8.0a. Make sure to back up your workspace before opening/installing it. For this update, you should create an entirely new Workspace folder. Find the default location and remove the old bios and core workspace, then start up v0.7.3 to let it recreate the workspace from scratch.
- Completely new Workspace API. The entire system has been rebuilt in preparation of v0.8.0.
- System Tool and Demos are now not part of the build. This will help reduce file size. You can download them and manually install only what you want/need. Future builds will automate this.
- Creating a new game will now warn you before overwriting an existing one.
- Creating a new game will automatically archive the existing game and move it into the trash. The trash may be set to delete when exiting the game so check your settings.
- File picker action buttons have been rebuilt. They now disabled when no action can be performed and enable based on the context.
- Import and Launch have been removed from the File Picker and will be added back in a future build.
- All built in tools are now located in the Game Creator’s data/StreamingAssets folder which is different based on the OS it’s running on. This allows tools to be built into the Game Creator itself and makes updating them easier in the future. If you use an existing workspace, you can remove the old .pvt files from the archive folder.
- Fixed Copy and Paste help text in Settings screen for workspace path panel.
- Fixed bug in Sprite Builder that would not create a new sb-sprites.lua file from scratch.
- Fixed scale InvalidCastException which happened after changing the scale and reloading the settings tool.
- Fixed issue with DrawSprites and scrolling along the Y position.
- New bios which is built into the GameCreator and manages core settings. The bios file in the Workspace now overrides any default values. This will make adding new properties to the bios easier in future updates.
- All system tools are now defined in the bios including error messages and more. In future builds you will be able to load in custom tools for specific tasks.
- Escape button now stops a running game and load the last tool. Escape will not reload the game, you’ll need to use Ctrl + 1.
- Fixed issue when drawing tiles outside of the tilemap boundaries. Now the tile will wrap to the opposite side.
- New internal URI system for loading game. There are two root locations, System (built in) and Workspace (user defined) allowing more control over how and where games are loaded from.
- New Load APIs exposed to the global runner. You can call LoadGame(), LoadTool() and EditGame() from global and pass in the Game Creator URI path.
- Workspace/Lib folder is now Workspace/Libs folder. The previous framework UI scripts have been moved into the Game Creator’s system folder and each component is now its own Lua file.
- Fixed Sprite Builder button to only show up when a SpriteBuilder folder exists.
- When archiving a game, all files in the Workspace/Game folder are saved including folder structure. Past versions only saved core files. This now allows you to save all external files associated with your game but are not needed by the Game Creator in a single place. Any files that Game Maker can’t use are ignored and do not count against the file size limitation.
- Exporting games to HTML5 is disabled until the new runner can be updated.
- Preloader hangs on large games. This is a known issue and while the preloader was rebuilt in this version, there is still work to be done to optimize this.
I've been trying to get on a two-week release schedule which would make the v0.7.3a updates due today. Unfortunately, the build isn't ready. Figured I'd do a quick post about what I'm working on and highlight the features being added:
- Rebuilding the workspace logic - This has been on my list for some time. While you may not notice the changes, there is a lot of optimization that needs to go into cleaning up the workspace APIs under the hood. The long-term goal is to get the built in demos, tools, and systems out of the user's workspace folder and move them into a dedicated space which is part of the app. This means that the user workspace will only contain your own work, making it easier to switch between workspaces without the need for the engine to copy over all the core files or check for them on boot up.
- Fixing tool and game boot-up times - Right now loading tools is taking too long. I have already increased the boot time for games and tools by 4x but there is still more that can be done. The biggest thing is that I'll be caching tools in memory so when you return to a tool, it will instantly load. The only thing that will always be reloaded from scratch is the contents of the Workspace/Game folder. There are still some issues to work out but the goal is to make working with tools a lot more seamless but still retain the flexibility of each tool still being a PixelVision8 "game".
- New UI in tools - a lot of the UI is still hard coded which is making changes very difficult. I'm working on adding contextual buttons to the bottom of each tool and these will be dynamically generated. For the most part, it should be a transparent change that will greatly improve UX. Clicking on an item may add or remove options and static options that can't be used will be properly disabled or enabled based on the use case. Long-term, this will help you create your own tools a lot easier instead of having to rely on hard coding everything.
- Bug fixes to the sound and music tools - during the last major release, the sound, and music tools ended up with some bugs. The music tool, in particular, has some show stopping issues when you go to the configuration screen. I'll be addressing all of this before the next release.
- DrawSprites method - there is a helper method for drawing sprites to the display which allows you to create graphics bigger than 8x8 pixels. There are some bugs where this method doesn't work when scrolling the screen on the Y axis. I'll be fixing this but possibly moving it over to an external lua file. While this will be transparent for the most part, I want to try and break out helper functions into external code libraries so they are easier to patch and show others how to add functionality to the core APIs.
- Clean up the runners - Right now the export option is still very experimental. While I like the idea of using pre-compiled runners, they added significant size to the installer and I still can't get the Mac wrapper to work correctly. I may rebuild this so that the only pre-compiled export option is WebGL and you can use the open source git project to manually compile your own game for different platforms in Unity. I don't think I'll sort this out fully for v0.7.3a but expect to see the other options disappear and only have WebGL and src remain until I can figure out the best way to approach this.
There is a lot here and my plan is to just roll this out with the next milestone in 2 weeks to stay on schedule. If you run into any bugs in the stable or experimental builds, please file them on the github page here .
Those tools are still under development. I hope to be able to get preview versions of them in next month. The ideal solution for right now is to really use external editors. Still debating if that will be the main workflow moving forward or if I'll be adding in better support for in-app editors.
Thanks, the tools use overscan to hide the mouse. I bet I have some issues with trying to draw the cursor position outside of the texture boundaries I can address in a future release. I appreciate the extra details.
Thanks for the reminder. I added this to the release due at the end of the month. I want to clean up some of the workspace logic and once I do that I'll add in a better way to define the collision flags so they work correctly and you can define your own colors.
This is really great so thanks for sharing. I could actually use this to help with testing out the tilemap logic. I have a few bugs still in there I need to hunt down and was going to try to port over some of my own map generation code to do it.
Thanks, I've seen that before but haven't had a chance to fix it. Think I introduced some issues when I refactored the tilemap code in 0.7.0. I'll add it to the list when I get a chance.
Can you tell me what tool you were in and which side of the screen it happened on?
Sorry about that. I noticed that bug a few days ago but forgot to log it. There is something wrong with scrolling on the Y axis and the DrawSprites method where it tries to hide stuff that it thinks is offscreen.
I'll add it to my list for the next update which is in 2 weeks. I'll update it here if I figure out a solution quicker.
I've logged the bug here .
Can you please file this bug on the github project page so I can track it a little better? Also, are you adjusting for the scroll Y when you redraw the sprites? There may be a bug in DrawSprites(). I noticed that the mouse wasn't rendering correctly on the Music Tool's config screen which is shown by changing the scroll Y position. That logic could do with some more testing.
This is an untested build of the Game Creator allowing developers to test out early features going into v0.8.0a. Make sure to back up your workspace before using and you may need to create a new workspace to get access to the new Save and Settings tools, or just manually delete them from your Workspace’s Archive folder. Here is a list of features:
- New save tool which allows you to preview a game’s files, archive the project and export it.
- New export workflow which supports creating Pixel Vision 8 runners for Windows, Mac, Linux, and WebGL.
- Redesigned Settings Tool with support for fullscreen and scaled window mode.
- New API to get the frames per second value. Call editorBridge.fps and it will return a read-only int for the current frames FPS.
- Various bug fixes to tools.
I know, it's hard to build a game engine on a moving target. The goal is to be in beta by end of the summer so I can start focusing on cleaning up all the issues by the end of the year. I'll see what I can do to fix the background in the next release. The plan is to tackle smaller scope and get releases out every two to three weeks.
I'm working on a better way to do screen split like this. I won't have a fix for a build or two. I really need to rethink how clear and background rendering work because the current implementation isn't going to be good for a game like yours when you need a mouse in a part of the screen where scrolling isn't happening.
This is a good idea. That is sort of what the Game Creator does with the editor. It exposes a whole set of APIs that are not part of the final game. Over time I'll continue to flesh that out more so it will be easier to debug games.
Glad to hear it worked. I'm slowly migrating all of the tools over to use it plus the SpriteBuilder now generates its data into an external lua file you can just import to help keep your main code clean.