Da tools for BYTE
Hello everyone! It’s status report time!
Okaaaayy… aha… hm… well, it looks like there is not much to show right now. But everything in motion, slow but steady: artists working on game objects, our code wizard experimenting with shaders and particles for backgrounds, and me struggling to find god damn time for level planning.
So, we’ll update prototype with some new art and features next month.
Right now, I want to tell you folks a bit about our game/level design tools. Maybe you will find something useful for your own projects.
As a game engine, we chose Construct 2 – HTML5-based tool for 2D games. Extremely easy to use, yet powerful enough for small-to-mid projects, supporting all major platforms (mobile, web, PC, OS X, Linux). But even if you are using Unity (or anything else) for your 2D game, me can recommend C2 as a super fast prototyping tool, thanks to sets of game objects behaviors, drag’n’drop canvas and visual programming through event lists.
Cons: rough version control systems support (problems with parallel commits), lack of HTML5 native support on mobile, and finally C2 is windows-only.
That’s how it looks on BYTE example:
Here is a slightly more detailed opinion on Construct 2 from our coder
Although it looks like Construct 2 is marketed as a game maker for “casual” game developers, it’s still can be great for professionals.
Here are some of its pros:
- C2 is a great level editor and game-design tool in general. You can easily move objects around layouts and layers, change their various parameters and instance variables, build tilemaps and other.
- Has huge amount of built-in functionality: C2 system of plugins & behaviors provides everything you may ever need for a platformer or top-down game – just add some graphics and you have your game. It also has huge set of WebGL shader effects, which, when properly applied, can make your game look shiny.
- C2 events is visual system that can really be alternative to programming in traditional languages. I can confidently say that being programmer in many of those languages myself.
Personally I feel that professional approach to develop games in C2 should sound like “code all relatively low-level game logic into plugins & behaviors and let C2 events control relatively high-level logic, including those custom plugins & behaviors”. In other words, it may be similar to traditional game development where programmers code in C++ and game designers write some game code (quests, cutscenes, etc.) in some scripting language like Lua.
- C2 is HTML5 engine, meaning you’ll be able to run your game on almost any modern device. C2 has built-in exporters: you can export a game to upload to website, or make desktop game with nw.js, or make mobile game with Cordova / CocoonJS.
It has some cons however:
- C2 appears to be not very version control systems friendly when development goes in parallel. It’s some weird thing we can’t figure out yet. C2 keeps all its project files in XML format which should be perfectly merge-able by any modern VCS. But, surprisingly, every time we merge the project after parallel commits, it gets broken and C2 throws errors, so we have to manually edit XMLs to fix it.
- Although events system is great, it’s a bit cumbersome compared to traditional code. And it’s not simple to replace some object with another object: you either will have to edit each event block manually, or edit raw XML. Search in events list is also not very convenient in some cases: it filters-out matching events instead of going to that particular event block as done in text editors.
- HTML5 is, although believed to be perspective technology, still has not really good native support on mobile platforms, particularly in WebGL part. Mobile browsers still can’t run WebGL games, and to run your game on mobile, you’ll to wrap it into CoconJS or similar thing.
As you may noticed, BYTE has square-cell structure. And to level design maps with such structure, we are using another tool named Tiled.
Basically, Tiled is a flexible 2D map editor that supports orthogonal, isometric and hexagonal orientation. But what is more important to us, that’s the ability to use Tiled .tmx maps as a tilemap object in C2! So, we are drawing levels in Tiled (which is very convenient thanks to Tiled’s cell structure), and then importing those maps in C2 with a few clicks. Moreover, you can edit Tiled maps in C2 which is also very cool.
And yes, blue “walls”, which are visible in runtime, generates automatically thanks to our custom C2 behavior, as well as detection of those walls by cyberworm.
That’s all for now, guys. As always, feel free to questions/comments. Hope to show you something more fun next month.