Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.
Resource icon

[Engine/Editor] Clockwork Engine

 
 
clockwork2s.png

Clockwork Engine
Version: 0.1.0


Index

    01 - Index
02 - Introduction
03 - Features
04 - Known Issues
05 - Plans
06 - Alpha Warning
07 - Built-in Functions
08 - License
09 - Changelog
10 - Download


Introduction

  • Clockwork is a little project of mine. I often end up using RPG Maker for non-rpg related projects simply because I prefer it to heavy-handed IDEs, and because it offers a pretty solid starting point. That said, I spend most of my time these days working around the limitations of RPG Maker rather than enjoying the benefits it provides, simply because that's the direction I have taken as a developer. So, I decided to make a tool for myself, and while doing so, realized I might not be the only one who finds it useful.

Making a project using Clockwork? Tag it with [Clockwork]!


(Return to top)

Features

  • Create commercial projects - no problem!
  • Easily create multiple projects.
  • Templates allow for creating varying types of projects (You can create a new template by copying an existing directory in {installdir}/templates/ and customizing its contents. The project file must remain named project.cwp, as the editor has to modify this for new projects.)
  • Uses Ruby (via a lightweight runtime, mruby) for scripting
  • Set the output .exe filename.
  • Supports easy switching between release and debug builds of your project
  • Headless support - use the --headless commandline switch to run in headless mode. In headless mode, any core library calls that would result in a windowing or UI action are either ignored or rerouted, while remaining logic is unchanged. Useful for running your software in, for example, a dedicated server mode.
  • Debug builds provide a console, and can be checked for in your scripts to enable additional functionality
  • Your Ruby scripts are precompiled to bytecode, script source is not distributed with your project's output
  • Thanks to precompiling, you are made aware of syntax errors any time the project is built, rather than at runtime.
  • Script sources are maintained as loose .rb files, for compatibility with source control software
  • Script sources are named and ordered, and this order is respected at runtime.
  • Project file format is human-readable JSON.
  • You can hover a script to see its filename (as opposed to script name).
  • Your project's 'output' folder is entirely rebuilt every time you hit 'Go'. This ensures the output remains clean, but this will remove any files you placed in the output directory, not just the ones the project manages. Specifically, this was done for myself because I am not sure how to track files removed from the project, and didn't want orphaned files to accumulate.
  • As a companion to the above 'feature', files in your project's "files" directory will be copied to output every time you hit 'Go'. This is the appropriate place to add content files which your project depends on.
  • Very simple interface

(Return to top)

Known Issues

  • The editor currently does not validate filenames for the output or script filenames. Please be careful with these for the moment - I am working on a decent method to validate them (the stdlib's provided feature for this accepts things that I don't find acceptable, e.g. it finds a url, or even "::::::" to be valid filenames).
  • Save, build, and run are currently all implemented by the same button 'Go'. Eventually there will be ways to do these things separately.

(Return to top)

Plans

  • Provide a game-friendly library of features (a rendering setup, and standard things like files, networking, curl, physics, images)
  • Provide a runtime for at least win/mac/linux (in a way which sets up deployment of all platforms with a single click)
  • Super secret awesomesauce (seriously you'll love this but it'll be a minute)

(Return to top)

Alpha Warning

  • If you haven't got the idea yet, this is a very early alpha. It is not recommended to use this for production code yet, but I am working hard to get it there. If you have feedback, please share it because the more dialogue we can get going the faster I'll be comfortable marking it as production-ready. But as it stands, I'm not responsible if this thing causes your computer to explode (but please file a bug report for that should it happen).

(Return to top)

Built-in Functions

  • DEBUG
    • This is a global boolean constant, which is set to true if you are running your project in debug mode, and false otherwise.
    HEADLESS
    • This is a global boolean constant, which is set to true if the commandline switch --headless has been provided, and false otherwise.
    msg_box
    • This pops an OS-native messagebox. If used with a single parameter, that parameter will be the message. You can optionally specify a second parameter to provide a specific caption for the messagebox.
    I did not exclude any included gems from mruby, so whatever it ships with you should have access to. If you really want more gems, let me know and I can look into including them.

(Return to top)

License


  • Summary: Producing commercial projects with Clockwork is fine. Your project's contents (including scripts) are yours to do with as you like, I claim no ownership of any kind over them. Your rights regarding the runtime binary, detailed in the agreement, are very permissive - I merely retain ownership of the intellectual property to ensure I can continue to develop and distribute it myself, and disclaim liability for your use/distribution of it. The editor remains my property, which you are permitted to use to make stuff with. The EULA does not cover third party dependencies- I will try my best to keep you informed of any requirements they might have. I'm not responsible if you do anything crazy - everything is given to you as-is. This summary is not an extension of or substitute for the license agreement, please read it - I've tried to keep it as brief as possible.

    Clockwork Editor - Copyright (c) 2017 aphadeon. All Rights Reserved.

    End-User License Agreement:

    Please read this carefully - use of the Clockwork Editor ("the software", henceforth) in any form will be considered your acceptance of these terms, unless otherwise agreed upon in writing.

    The term "the software" includes the editor computer software, and any associated media and documentation, and does NOT include your project's contents or scripts, or the runtime software which allows your projects to run. aphadeon makes no claim to your project's contents or scripts, its full ownership and/or responsibility remains with you. The term "the software" also excludes dependant or bundled software which is owned by third parties.

    The software is protected by copyright laws and international copyright treaties, and other intellectual property laws and treaties. The software is licensed, not sold. This End-User License Agreement ("EULA", henceforth) is a legal agreement between you (as an individual or single entity) and aphadeon with regard to the software. You acknowledge that no title to the intellectual property in the software is transferred to you, and that title and full ownership rights remain the exclusive property of aphadeon, and that you gain no rights to the software except as expressly set forth in this agreement.

    If you do not agree to the terms of this EULA, do not download, install, or use the software. Installing or using the software is agreeing to the terms of this EULA. If you do not agree to the terms of this EULA, aphadeon is unwilling to license the software to you.

    The software is licensed solely to you, with no right of further distribution, licensing, or sublicensing. (Again, the term "the software" does not include the output of your project or the included runtime used to operate it.)

    You are permitted to use the software in compliance with this agreement. Your license is non-transferable and non-exclusive. You may not loan, rent, or lease the software. Modifying the software for reasons other than compatibility or interoperability is not permitted- you agree not to create derivative works based on the software.

    The software is provided on an "as is" basis without warranty of any kind- express or implied, and specifically disclaim warranties of merchantability, fitness for a specific purpose, and non-infringement of third-party rights. Any risk as to quality or performance of the software is with you. aphadeon does not warrant that the functions of the software will meet your requirements or that the operation of the software will be uninterrupted or error-free. aphadeon is not obligated to provide any updates to the software. aphadeon's entire liability and your exclusive remedy under this EULA shall not exceed the price paid for the software, if any. In no event shall aphadeon be liable to you for any consequential, special, incidental, or indirect damages of any kind arising out of the use or inability to use the software, even if aphadeon has been advised of the possibility of such damages, or any claim by a third party.

    If the software is updated, your use of the software remains governed by the EULA. aphadeon may, at their own discretion, choose to update this EULA at any time and without notice or warning. If you are made aware of new or updated EULA terms in an update or installation procedure, download web page, or otherwise, your use of the software beyond that point constitutes your agreement and acceptance of the updated EULA terms.

    If your use or distribution of the software is in violation of this agreement, you agree to indemnify, hold harmless and defend aphadeon from and against any claims or lawsuits, including attorneys' fees that arise or result from the use or distribution of the software in violation of this agreement.

    The term "the runtime software" includes the binary file and any dependant files which enables your project's contents or scripts to run, and excludes any bundled or dependant software which belongs to third parties. The term "the runtime software" does not include your project's contents or scripts, which are your property and/or responsibility. The term "the runtime software" does not include the remainder of "the software". Intellectual property ownership of the runtime software and associated rights remain with aphadeon and are not transferred to you. You are, however, licensed to use, modify, reverse engineer, redistribute, and sublicense the runtime software indefinitely and without limitation, for any purpose, commercial or otherwise. The runtime software is provided on an "as is" basis without any warranty of any kind, implied or otherwise. Any and all risks associated with your use, modification, reverse engineering, redistribution, or sublicensing of the runtime software is with you.

    If any part of this agremeent is found to be unenforceable, then that unenforceable statement or segment shall not apply, but the enforceable remainder of the agreement remains in effect.

    The runtime uses the following libraries, please ensure that you comply with their license terms (trying to stick to only permissive-licensed dependencies):
    • mruby
    • all the ruby gems that ship with mruby source are included
    • the standard windows system libraries (for the windows runtime) like kernel

(Return to top)

Changelog


  • v0.1.2 - Added headless support
    v0.1.1 - Added 'Rename...' to script list context menu; added eula.txt
    v0.1.0 - Initial release

(Return to top)

Download

[/list][/list]

(Return to top)
Author
aphadeon
Views
3,733
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from aphadeon

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top