Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
27. November 2019


I was just sent a Clockwork GameShell, it’s a build it yourself open source raspberry pi powered handheld computer.  What’s most appealling to me is how heavily focused on indie game developers this device is.  This is not a review of the device but instead a description of the build process (stay tuned for a proper review!).  So let’s take a look at the process from beginning to end and I’ll point out the few snags I encountered on the way.  If you are interested in getting one of your own, they are available on Amazon.

The underlying specs of hardware are as follows:

New ClockworkPi V3.1:Powered by Quad-core Cortex-A7 CPU, MaliGPU, Wi-Fi &Bluetooth, 1GB DDR3 Memory, 16GB MicroSD, HDMI output, GPIOs.

Keypad: Programmable Keypad and powered by an ATmega168P [email protected] with 30Pin Arduino compatibility GPIOs.

Audio: 2 Channel Stereo Speaker

Visual: 2.7-inch [email protected]

Rechargeable Battery: 3.7v, 1200mAh

Lightkey module: 5 independent IO extended keys for shoulder buttons

GameShell Shells: 1 front shell+2 back shells

MicroSD Card: 16GB

OS: ClockworkPi OS,Linux  4.1x

Debug cable: 14PIN GPIOs

Let’s look at what you get and how you assemble it.


The Box


This is a extremely minor point, but I was quite impressed with the packaging the GameShell came in.  Right away it’s generally just a higher quality of packaging and branding than I am accustomed to for these kinds of products, it does have a premium feeling as a result. Click any photo for a much higher resolution version.


IMG_20191127_112001IMG_20191127_112020



The Contents

The inside of the box is several other boxes and a collection of plastic punch out components.  In terms of equipment you need to do this build you are going to want a sharp knife at the very least.  A fine file and pair of side cutters to remove the plastic attachments are also recommended, but I got by with just a knife.


IMG_20191127_112146IMG_20191127_113033

Assembly

Now it’s time to start putting things together.  The instructions are IKEA style (but thankfully better than most IKEA!) step by step pictographic instructions.  The assembly is module by module.  The primary modules are the screen, the battery, the main system board and the controller as well as the speaker (not shown).

IMG_20191127_121439IMG_20191127_114819

IMG_20191127_115734IMG_20191127_121145

Once these 5 modules are completed, its its time to mount the modules into the backplate and connect the various power wires between the devices.  This is probably the trickiest part with one exception I will discuss in a minute.

IMG_20191127_125731

Finally it’s a matter of attaching the front plate, attaching two thumb screws and praying you did everything right.  And the final completed product!

IMG_20191127_130514

The Gotchas

Assembly was extremely straight forward with only two snags.  The first step is when creating the display module illustrated below.

ScreenStep

Notice the inset diagram shows the cable being bent backwards, while the layer diagram does not show this?  This is vitally important, you do in fact have to bend the display cable 180 degrees.

The second problem is actually around the same issue.  Connecting the display ribbon cable to the main board should be done *BEFORE* you close the case around it, making it insanely difficult connect unless you open it.

The only other issue I ran into is occasionally they mounted the plastic pieces to the plastic frame at less than ideal locations.  For example there was a mount point where the display cable needs to be fed.  I had to make a special point of filing down the excess plastic to keep it from rubbing against or puncturing the fragile ribbon cable.  It would be ideal if pieces were mounted slightly different, but its a small issue.



Now that I have the GameShell built, it’s time to start trying to develop games for it.  Stay tuned for that video in the near future.

General


17. June 2019


The nCine Engine is a C++ powered, open source MIT licensed 2D game engine that has been under development for over 7 years.  It is a lower level code based framework, although it does support Lua scripting out of the box.  The engine also integrates the ImGui framework making creating tools and UIs a breeze.  The nCine engine works on Windows, Linux, Mac and Android.

Highlighted features include:

  • ImGui debug overlay and profilers
  • Lua integration for scripting
  • OPenGL 3.3/OpenGL ES 3.0
  • Spritesheet based animated sprites
  • Scengraph based transformations
  • Particle simulation with affectors
  • Sound and music playback
  • Text rendering with kerning
  • Support for multiple texture formats
  • Profiler graphs and statistics
  • Works on multiple platforms
  • Template containers and algorithms
  • Fully C++11 compliant codebase
  • High precision monotonic timers
  • Atomic counters
  • Thread pool creation, synchronization and affinity assignment
  • Basic math lbrary for vectors, 4x4 matrices and quaternions
  • Logging system with multiple levels and console or file output
  • GLFW 3 or SDL 2 for window and input on PC
  • Joystick support with hot swap and gamepad mappings
  • Android assets support
  • Google Test based unit tests with coverage checked with Gcovr
  • Microbenchmarked with the Google Benchmark support library
  • Doxygen based documentation with Graphviz class diagrams
  • Periodically checked with Cppcheck and Valgrind
  • Periodically linted with clang-format (previously with Artistic Style and Uncrustify)
  • Instrumentation for the Tracy frame profiler

With so many game engines on the market, you may be wondering… why another one?  Well the author explains exactly that right here.  The cCine project is hosted on GitHub and provides a Pong demo to get you started, implemented in both C++ and Lua.

GameDev News Programming


13. March 2019


Just 7 years after doing our Battle of the Lua Game Engines comparison between Gideros, Corona, Love and MOAI, we have finally done a hands-on review of the Gideros game engine.  A lot has changed in 7 years, including the fact that Gideros is now free and open source, available on GitHub.  It is a well documented, cross platform (Windows, Mac, Linux, Pi) 2D game engine capable of targeting all those platforms as well as the most popular mobile platforms including iOS and Android.  One of the biggest strengths of Gideros is it’s Player application, enabling real-time testing over Wi-Fi, vastly improving the testing and deployment phases.

Thankfully you do not have to build Gideros from source, with downloadable installers available here.  In addition to Gideros, I highly recommend you check out ZeroBrane Studio for a superior Lua development experience.

The following video shows Gideros Studio in action:


The code we created in the video above was:

local font = TTFont.new("Roboto.ttf", 64)
local text = TextField.new(font,"Hello Cruel World!")
text:setPosition(application:getContentWidth()/2,application:getContentHeight()/2)

stage:addChild(text)

function mainLoop()
	local x,y,z = text:getPosition()
	text:setPosition(x,y+1)
	text:setTextColor(0xff0000)
end

stage:addEventListener(Event.ENTER_FRAME, mainLoop)
You need to place a font named Roboto.ttf (or any ttf font, just change the parameter in the first line of code if you substitute your own font) in your assets directory for this to run.

If Gideros doesn’t appeal to you, but you are still interested in a Lua based game engine, be sure to check out our Love/Lua tutorial series available here.

Programming


3. January 2019


Corona is an open source Lua powered cross platform game engine, first released way back in 2009.  Back in 2017 Corona was released for free, after being acquired by AppoDeal earlier in the year.  Yesterday they announced that Corona will now be available under a dual licenses, GPLv3 and a proprietary commercial license.  If you require more details on the various open source licenses, be sure to check out our guide to open source licenses available here.

Details of the open sourcing:

“The transition of Corona to the open source model of development has been our long-term vision since Corona Labs was acquired by Appodeal in 2017. We believe that this move will bring transparency to the development process, and will allow users to contribute features or bug fixes to make the project better for everyone,” said Vlad Sherban, product manager for Corona Labs.

The open source model will bring more visibility and flexibility to the development process by allowing visibility into exactly what the engine team is working on and where the project is going, and by contributing valuable new features that will help spearhead Corona to the next level. Additional benefits for businesses include the potential to acquire a commercial license for source code and customize the engine for specific commercial projects.

“Corona Labs will continue to have a dedicated team and infrastructure to support our flourishing plugin ecosystem and infrastructure, as well as to keep up to date with the ever-changing requirements and updates coming from applications stores. Powered by the new open source model and supported by the development of new features and bug fixes will make Corona more community driven — but not without our help and guidance. Ultimately, going open source will provide confidence in the future of the engine and an opportunity to grow community involvement in engine development,” said Vlad Sherban, product manager for Corona Labs.

Corona is available under a split license:

  1. You can download the Corona source code under the GPLv3 license and build your games and apps, however, those games have to be distributed under the GPLv3 license, i.e you have to make your source available. Games and apps based on the open source distribution of Corona have to be distributed using the same license (GPLv3).
  2. You can download the Corona source code, negotiate a commercial license agreement with Corona Labs, and build a version of Corona that has a custom feature. You can then distribute your games and apps without opening your own source.
  3. This does not apply to daily builds and releases. Their license remains unchanged. You can download builds to freely build and distribute your apps as before. The new changes only apply to the source code of the engine which is now available.

The last point is important, as it means existing customers using the free engine can continue to use the binary releases for free, so long as they don’t touch the source code.  Speaking of source code, the code is now live on GitHub.

GameDev News


24. September 2018


Defold is a free 2D Lua powered game engine made by King.  If you are interested in learning more about the Defold game engine, be sure to check out our existing Defold Tutorial Series, and stay tuned for our upcoming Defold Crash Course, currently available in preview form for Patreons.  The 1.2.137 release includes a new angular velocity mode for particle systems, new build options and the removal of Linux and OSX 32 bit version.


Full details from the release:

Engine

  • DEF-1593 - Added: New particle orientation mode for angular velocity.
  • DEF-2477 - Added: Engine build variants - debug, release and headless in Bob and Editor bundle dialogue
  • DEF-3487 - Changed: Removed 32 bit Linux+OSX engines from bob.jar.
  • DEF-3496 - Fixed: Missing iPad Pro 10.5" launch images.
  • DEF-3047 - Fixed: Log spam on Android 8+ devices related to CPU profiler.
  • DEF-3494 - Fixed: http.request() failed under certain conditions.
  • DEF-3456 - Fixed: Cloned spine nodes were not getting correct skin and animation.
  • DEF-1966 - Fixed: Collection proxies did not handle input consumption correctly.
  • DEF-3489 - Fixed: X11 context initialization for the Linux engine.
  • DEF-2929 - Fixed: on_input in GUI was missing accelerometer fields.
  • DEF-3464 - Fixed: Bug with stored notifications were not received on Android.
  • DEF-3479 - Fixed: Added API check before attempting to login with Facebook.

Editor

  • DEFEDIT-1420 - Changed: Long-running tasks such as bundling, building and saving are now performed on a background thread.
  • DEFEDIT-1420 - Fixed: The editor will no longer overwrite external changes when saving if it has not detected them.
  • DEFEDIT-1420 - Fixed: Broken library URLs are now reported correctly when bundling or building for HTML5.
  • DEFEDIT-1420 - Fixed: Sometimes the progress bar could disappear, leaving only the percentage-label visible.
  • DEFEDIT-1427 - Fixed: The Property and Outline panels could stop redrawing while a Particle FX or animation was playing.
  • DEFEDIT-1430 - Changed: Visibility Filters now have separate toggles for components inside or outside of GUI scenes.
  • DEFEDIT-1432 - Fixed: Improved progress reporting in several areas.
  • DEFEDIT-1437 - Fixed: Fixed occasional “File Not Found” errors when returning to the editor after switching branches.
  • DEFEDIT-1439 - Fixed: Updated autocomplete definitions for the Code Editor.
  • DEFEDIT-1440 - Fixed: Bundling a project with native extensions reported Ready too early.

GameDev News


AppGameKit Studio

See More Tutorials on DevGa.me!

Month List