From Test-Scratch-Wiki

(Uploading Page)
 
(Automated edit: Updated Test Wiki copy of English Wiki page.)
 
Line 1: Line 1:
 
{{:Eng:Alternatives to Scratch/translate}}
 
{{:Eng:Alternatives to Scratch/translate}}
 
{{External Programs}}
 
{{External Programs}}
{{Wiki Standards|This just seems to be a random collection of languages that people ''might'' use. There's not really any unifying theme or anything about their relation to Scratch, especially in the text-based language section.}}
+
'''Alternatives to Scratch''' are other programs and languages used for similar purposes. Though Scratch can be an amazing resource for learning to code and expressing one's talents, if one is very serious, they may need to advance to other languages. Most of these alternatives are free like Scratch, but some of them cost money to use.
'''Alternatives to Scratch''' may be wanted if one gets bored with Scratch, or wants a more challenging programming tool. Though Scratch can be an amazing resource for learning to code and expressing one's talents, if one is very serious, he or she may need to advance to alternative, other languages. Most of these alternatives are free like Scratch, but some of them cost money to use. Additionally, some may find Scratch confusing and want alternatives.
+
 
 +
{{note|Engines and programming may be hard to master and like, so it is most likely best to stay dedicated to an engine/programming language you are trying to learn if you want to master it.}}
  
 
In software development there are two main fields:
 
In software development there are two main fields:
  
 
* Programming {{-}} the code for the application
 
* Programming {{-}} the code for the application
* Modeling / Art {{-}} the visual interface of an application
+
* Modelling / Art {{-}} the visual interface of an application
  
Just as Scratch can be used to make [[Eng:Game Projects|games]], [[Eng:Animation Projects|animations]] and more, there are also many other good programs that can be used to create them.
+
Just as Scratch can be used to make [[Eng:Game Projects|games]], [[Eng:Animation Projects|animations]] and more, there are also other programming languages that can be used to create them.
  
 
==Programming Alternatives==
 
==Programming Alternatives==
  
===Learning the basic syntax===
+
===Drag and Drop Programming===
[http://www.codecademy.com/ Codecademy.com] teaches the basics of coding in a fun and interactive way. It has interactive helping guides and even its own code compilers. It teaches several languages, one of which is JavaScript, which is often used in many game engines and webpages and is quite similar in to C++.
 
  
[http://blogs.kent.ac.uk/mik/category/joy-of-code/page/2/ The Joy of Code] tutorials teach basic Java syntax with video tutorials. The program used is [http://www.greenfoot.org/ Greenfoot], a Java-based game creator.
+
==== 2D ====
 +
{| border="1" cellspacing="0" cellpadding="4"
 +
! Program
 +
! Description
 +
! Code On
 +
! Code For
 +
|-
 +
| [http://snap.berkeley.edu/ BYOB/Snap!]
 +
| [[Eng:Snap! (Programming Language)|Snap!]] is an advanced [[Eng:Scratch Modification|Scratch Modification]] with lambdas, first class data, procedures, recursion, and many other features. Version 4.0 was renamed Snap! and was rewritten in JavaScript, and is thus no longer considered a Scratch modification.
 +
| Desktop, Mobile
 +
| Desktop, Mobile
 +
|-
 +
| [https://developers.google.com/blockly/ Blockly]
 +
| A drag and drop language made by Google. It is used on many websites. It converts the Scratch-like language to another text-based language in real time. This could be useful in learning traditional languages such as Javascript or Python. This is being used for the new [[Eng:Scratch 3.0|Scratch 3.0]].
 +
| Desktop, Mobile
 +
| Desktop, Mobile
 +
|-
 +
| [http://www.appinventor.mit.edu/ Android App Inventor]
 +
| The Android App Inventor by Google allows Android apps to be created with a simple, Scratch-like interface. In fact, it was based on Scratch and coded by a team at MIT.
 +
| Desktop
 +
| Android
 +
|-
 +
| [http://www.stencyl.com/ Stencyl]
 +
| Stencyl has an interface similar to Scratch, but it has slightly more advanced editing features.
 +
| Desktop, Mobile
 +
| Desktop, Mobile
 +
|-
 +
| [http://gamefroot.com/ Gamefroot]
 +
| An online game creation software for creating side-scrolling games. It has a drag and drop [[Eng:Blocks|block]] editor for advanced scripting.
 +
| Desktop, Mobile
 +
| Desktop, Mobile
 +
|-
 +
| [https://pocketcode.org/ Pocket Code]
 +
| A visual programming language and app for Android, iOS, and Windows Phone smartphones, tablets, and HTML5 enabled mobile browsers. It is inspired by Scratch and developed by the Catrobat team as free open source software.
 +
| Android
 +
| Android
 +
|-
 +
| [https://www.gethopscotch.com Hopscotch]
 +
| An iOS-based application which is similar to Scratch but is simpler and easier to use. It's somewhat based in the middle of Scratch and ScratchJr. Hopscotch is primarily for iPad, with the player being the only thing accessible on other devices.
 +
| iOS
 +
| iOS
 +
|-
 +
| [https://gamesalad.com GameSalad]
 +
| A drag-and-drop programming software, aimed at inexperienced coders, which allows anyone to create games easily.
 +
| Desktop
 +
| Desktop, Mobile
 +
|-
 +
| [http://www.yoyogames.com/gamemaker GameMaker Studio]
 +
| A drag-and-drop game-making software that can be used by inexperienced coders to create video games of many genres. Also uses "Game Maker Language", a CUI programming language used to add more advanced features to a game.
 +
| Microsoft Windows
 +
| Desktop, mobile, Xbox One, PlayStation 4
 +
|}
 +
 
 +
==== 3D ====
  
===GUI (Drag and drop editing)===
 
*[http://snap.berkeley.edu/ BYOB/Snap!]: [[Eng:Snap! (Programming Language)|Snap!]] is an advanced [[Eng:Scratch Modification|Scratch Modification]] with lambdas, first class data, procedures, recursion, and many other features. Version 4.0 was renamed Snap! and was rewritten in JavaScript, and is thus no longer considered a Scratch modification.
 
*[http://www.stencyl.com/ Stencyl]: Stencyl has an interface similar to Scratch's, but it has slightly more advanced editing features.
 
 
[[File:Alice logo.png|thumb|75px|The logo of Alice.]]
 
[[File:Alice logo.png|thumb|75px|The logo of Alice.]]
*[http://www.alice.org/ Alice]: Alice features 3D projects. This is much harder than 2D Scratch programming because one must learn about 3D programming: occlusion, vectors, etc. which are important topics.
+
*[[Eng:BeetleBlocks|BeetleBlocks]]: A GUI-based programming language, based off Scratch, which can be used for 3D modelling, unlike Alice.
*[http://www.appinventor.mit.edu/ Android App Inventor]: The Android App Inventor by Google allows Android app creating with a simple, Scratch-like interface. In fact, it was based on Scratch and coded by a team at MIT.
+
*[http://www.alice.org/ Alice]: Features 3D projects. Created by Carnegie Mellon.
 
*[http://education.mit.edu/starlogo-tng/ Starlogo-TNG]: Supports 3D models and terrain. Block-based, and meant for simulations and education purposes. Created by the MIT STEP group.
 
*[http://education.mit.edu/starlogo-tng/ Starlogo-TNG]: Supports 3D models and terrain. Block-based, and meant for simulations and education purposes. Created by the MIT STEP group.
*[http://www.squeakland.org/ Etoys]
 
*[http://gamefroot.com/ Gamefroot]: An online game creation software for creating side-scrolling games. It has a drag and drop [[Eng:Blocks|block]] editor for advanced scripting.
 
*[http://www.designblocks.net/ DesignBlocks]: Online, based on Scratch, TurtleArt and Processing. Developed by the Lifelong Kindergarten group at the MIT Media Lab.
 
*[https://pocketcode.org/ Pocket Code]: A visual programming language and app for Android, iOS, and Windows Phone smartphones, tablets, and HTML5 enabled mobile browsers. It is inspired by Scratch and developed by the Catrobat team as free open source software.
 
*[https://www.gethopscotch.com Hopscotch]: An iOS-based application which is similar to Scratch but is simpler and easier to use. It's somewhat based in the middle of Scratch and ScratchJr. Hopscotch is primarily for iPad, with the player being the only thing accessible on other devices.
 
*[https://developers.google.com/blockly/ Blockly]: A drag and drop language made by Google. It is used on many websites.
 
*[[Eng:BeetleBlocks|BeetleBlocks]]: A GUI-based programming language, based off Scratch, which can be used for 3D modeling, unlike Alice
 
*[https://gamesalad.com GameSalad]: A drag-and-drop programming software, aimed at inexperienced coders, which allows anyone to create games easily
 
  
===CUI (text-based editing)===
+
===Text-Based Programming===
*[http://microsoft-visual-basic.en.softonic.com/ Microsoft Visual Studio 2013 (also known as Visual Basic)]: An advanced, professional program created by Microsoft designed for creating C#, C++, F#, and more code. Though it is mostly text-based, it has a graphical interface that helps with the placement of objects and automatically adds some typically inconvenient-to-write code.
+
<!-- Please only add programs/languages that are widely used. -->
[[File:Greenfoot logo.png|thumb|The logo of Greenfoot]]
+
<!-- Also, please keep the editor section simple to avoid confusion. -->
*[http://freepascal.org/ Pascal]: Pascal is a powerful and fairly advanced programming language with beautiful syntax. <!-- I'm linking to the FPC website mainly because it is a popular compiler :P I'm not sure where else to link as most other compilers cost quite a bit. -->
+
Text-based programming is done through a [[Eng:Programming Language|programming language]]. Here are several:
*[http://www.greenfoot.org/ Greenfoot]: Greenfoot is a simple Java development environment with extensive documentation. It is focused on graphics and interactivity. Is is perfect for beginners to Java.
+
 
*[http://www.justbasic.com/ Just BASIC/BASIC]: BASIC is an old language used to teach programming. It has simplistic graphics, focusing on vector graphics rather than sprites.
+
{| border="1" cellspacing="0" cellpadding="4"
*[[Wikipedia:Javascript|JavaScript]]: JavaScript is the standard language for interactivity in web applications. JavaScript features many new programming concepts such as functions, recursion, lambdas, object-oriented programming, atomicity, and browser-compatibility. Using the HTML5 Canvas API, it is easy to make graphics similar to those in Scratch, with sprites and vector graphics.
+
|-
*[http://processing.org Processing]: Processing is a Java-based language which originated at MIT, like Scratch. It is designed to be very visual and usable by both non-programmers and beginning programmers.
+
! Language
*[[wikipedia:Logo programming language|Logo]]: Logo was the predecessor to Scratch, created by MIT. It was text-based, however, the commands closely resembled those of Scratch. It provided a single [[Eng:sprite|sprite]], a turtle, which was used to draw via a set of [[Eng:Pen|Pen]] instructions. It had procedures and recursion.
+
! Description
*[http://www.yoyogames.com/make GameMaker]: GameMaker is quite similar to Scratch, except it also allows the option of typing commands and features commands geared more towards making games, whereas Scratch is more open. It is a good introduction to text-based programming and debugging. It is not free, but a free version is available with less features.
+
! Implementation(s)
*[http://www.python.org/ Python]: Python is easy to pick up and run, and does not need any installations on OS X or Linux. It has many libraries for various purposes like network connections, etc. There are also [[Eng:Python|libraries]] available for communicating with Scratch and reading/writing Scratch files.
+
! Editor(s)
*[http://www.adobe.com/products/flash/ ActionScript/Adobe Flash]: A commonplace language used everywhere from browsers to games. Flash is easy to use to create games and visualizations, and provides powerful libraries for graphics and animations. It is, however, not free.
+
|-
*[http://www.flashdevelop.org/ FlashDevelop]: FlashDevelop is a free, open source Flash IDE. It is more complicated than Adobe's IDE, however.
+
| Java
*[http://unity3d.com Unity3d]: Unity3d is a free, though expandable, program that is used for the making of 3D games. One can create create code in it through three languages, which are Javascript, C#, and Boo. It may also be confusing to a beginner due to all the new features in comparison to Scratch, but after some time, this should wear away.
+
| Java was originally created and popularised as a platform-independent programming language. In modern day, Java is a general purpose language.
*[http://smallbasic.com Microsoft Small Basic]: Microsoft Small Basic is a simplified version of Microsoft Visual Basic and also created by Microsoft.
+
|
*[http://www.lua.org Lua]: Lua is a lightweight programming language which uses multiple paradigms. Lua is used in many games such as [http://roblox.com ROBLOX].
+
*[https://java.com/en/download/ Java Runtime Environment]: Software developed by Oracle for running Java that includes a virtual machine for interpreting compiled Java programs
*[https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html Applescript]: Applescript is a Mac-only software which comes free with all Macs.  It is generally used to automate tasks that users would do anyways. It is similar to Automator, but is more text-oriented.  It is a fairly easy language.
+
*[http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Java Development Kit]: Software for developing Java programs, that includes a Java compiler
 +
|
 +
*[http://www.greenfoot.org/ Greenfoot]: Greenfoot is a simple Java development environment with extensive documentation. It is focused on graphics and interactivity. It is often used with Java beginners.
 +
* [https://eclipse.org Eclipse]: A professional and widely-used Java IDE.
 +
|-
 +
| Python
 +
| Python is a general-purpose coding language with emphasis on readability. There are also [[Eng:Python|libraries]] available for communicating with Scratch and reading/writing Scratch files.
 +
|
 +
* [https://www.python.org/ CPython]: The Python interpreter
 +
|
 +
* Command Line: This approach, although very advanced, does allow for the use of any Text Editor, like vim.
 +
* [https://www.jetbrains.com/pycharm/ PyCharm]: A cross-platform Python IDE.
 +
|-
 +
| C
 +
|
 +
C is a language originally praised for its portability. It was created by Dennis Ritchie and used to program Unix. C is also used in Linux. C# and C++ are based on C. Nowadays, they are often used in operating systems and embedded systems. They are also commonly taught languages.
 +
|
 +
* [https://gcc.gnu.org/c99status.html GNU C Compiler]: A part of the GNU Compiler Collection
 +
|
 +
* Command Line: This approach, although very advanced, does allow for the use of any Text Editor, like vim.
 +
|-
 +
| C++
 +
|
 +
C++ is a programming language based on C that features object-oriented programming. It was invented by Bjarne Stroustrup.
 +
|
 +
* [https://gcc.gnu.org/projects/cxx-status.html G++]: The C++ compiler in the GNU Compiler Collection
 +
|
 +
* [https://www.gnu.org/software/emacs/ Emacs]: A text editor
 +
* [http://www.codeblocks.org/ Code::Blocks]: A C++ IDE
 +
|-
 +
| C#
 +
|
 +
C# is a programming language by Microsoft that is based on C.
 +
|
 +
Visual Studio has a C# compiler.
 +
|
 +
* [https://www.visualstudio.com/ Microsoft Visual Studio]: An advanced, professional IDE created by Microsoft designed for the languages Visual Basic, C#, C++, and F#. Though more languages may be added.
 +
|-
 +
| ActionScript
 +
| ActionScript is a general purpose programming language for Adobe Flash. Flash provides powerful libraries for graphics and animations. It is, however, not free.
 +
|
 +
* [https://get.adobe.com/flashplayer/ Flash Player]: The Flash player for playing Flash applets
 +
|
 +
* [http://www.flashdevelop.org FlashDevelope]: A Flash IDE.
 +
|-
 +
| Lua
 +
| Lua is a lightweight programming language which uses multiple paradigms. Lua is a very popular language in programming video games and is used as the main programming language for [http://roblox.com ROBLOX].
 +
|
 +
* [https://www.lua.org/download.html Lua]: The Lua compiler
 +
|
 +
* [https://studio.zerobrane.com ZeroBrane Studio] - A lightweight Lua IDE.
 +
|-
 +
| HTML & CSS
 +
| Websites are coded in HTML & CSS. The basics are simple to learn.
 +
|
 +
* [https://www.google.com/chrome/ Chrome]: A browser by Google
 +
* [https://www.mozilla.org/en-US/firefox/products/ Firefox]: A browser by Mozilla
 +
|
 +
* [http://brackets.io Brackets]: A simple, clean web IDE.
 +
* [https://atom.io/ Atom]: A text editor by GitHub
 +
|-
 +
| Javascript
 +
| Javascript is a language used for making interactive web applications. Any web editor should be good for JavaScript.
 +
|
 +
Modern browsers should support JavaScript.
 +
|
 +
* [http://brackets.io Brackets] - A simple, clean web IDE.
 +
|-
 +
| [[wikipedia:logo (programming language)|Logo]] <!-- Included due to historical connection to Scratch. -->
 +
| Logo is the predecessor to Scratch, created by MIT. It is text-based, with commands closely resembling those of Scratch. It provides a single [[Eng:sprite|sprite]], a turtle, which is used to draw via a set of [[Eng:Pen|Pen]] instructions. It has procedures (which may output values), recursion and first-class lists.
 +
| n/a
 +
| n/a
 +
|-
 +
| QB64
 +
| QB64 has a large variety of applications and can be easily be picked up by beginners to text based programming. It is very similar to Python and is a offshoot of BASIC.
 +
|
 +
* [http://www.qb64.net/ QB64] - The original QB64 compiler.
 +
|
 +
* The compiler comes with an IDE but any editor such as [https://notepad-plus-plus.org Notepad++] will work fine.
 +
|-
 +
| Haskell
 +
| Haskell is an ML-style functional programming language used in academia. It features pattern matching, lazy evaluation, closures and partial application, and an expressive type system.
 +
|
 +
* [https://www.haskell.org/ghc/ Glasgow Haskell Compiler]
 +
* [https://www.haskell.org/platform/ Haskell Platform] "Haskell with batteries included" - Includes the Glasgow Haskell Compiler, the Cabal build system, the Stack tool, and common Haskell modules
 +
* [https://www.haskell.org/downloads Downloads page]
 +
| [https://wiki.haskell.org/IDEs List of IDEs and text editors]
 +
|-
 +
| Rust
 +
| Rust is a systems programming language that ensures memory safety via compile-time tracing of object lifetimes.
 +
|
 +
* [https://www.rust-lang.org/en-US/install.html The Rust compiler]
 +
| n/a
 +
|}
 +
 
 +
==== Tutorials ====
 +
 
 +
To learn how to code in text-based programming languages, try:
 +
 
 +
* [http://www.codecademy.com/ Codecademy.com] teaches the basics of coding in a fun and interactive way. It has interactive help guides and built-in code interpreters. It teaches a variety of common languages, from Javascript to Python.
 +
 
 +
===Game Engines===
 +
*[http://www.yoyogames.com/make GameMaker]: GameMaker is quite similar to Scratch, except it also allows the option of typing commands and features commands geared more towards making games, whereas Scratch is more open. It is a good introduction to text-based programming and debugging. It is not free, but a free version is available with fewer features.
 +
* [http://unity3d.com Unity3d]: Unity3d is a program that is used for the making of 3D games. It supports coding in three languages: Javascript, C#, and Boo. It may also be confusing to a beginner due to all the new features in comparison to Scratch, but with time, this should wear away.
 +
*[https://godotengine.org Godot]: Godot is an open-source game engine. Godot uses its own programming language, GDScript.
 +
*[https://developer.valvesoftware.com/wiki/Source The Source Engine] is a Game Engine in which the MP version is free, it includes things like faceposing, volumetric lighting, an I/O system, and more things that can be used to create a mod/game. It does things like Fresnel water effects and dynamic rendering for you.
  
 
===Other lists===
 
===Other lists===
Line 59: Line 206:
 
===3D Animation===
 
===3D Animation===
 
{{See also|Three Dimensional Projects}}
 
{{See also|Three Dimensional Projects}}
{{Note|Before trying 3D animation, it is recommended to master 2D animation, as some aspects of 3D animation can be confusing.}}
+
{{Note|Before making 3D animation, it is recommended to learn how to animate in 3D, as some aspects of 3D animation can be confusing.}}
 
{{Note|3D animation software can be rigged to make 2D animations.}}
 
{{Note|3D animation software can be rigged to make 2D animations.}}
 
*[https://www.blender.org Blender]
 
*[https://www.blender.org Blender]
Line 67: Line 214:
 
===2D Animation===
 
===2D Animation===
 
{{See also|Two Dimensional Objects}}
 
{{See also|Two Dimensional Objects}}
 +
<!--*[http://animationpaper.com Animation Paper]-->
 +
*[http://www.adobe.com/products/animate.html Adobe Animate]
 +
*[http://flipnotestudio3d.nintendo.com Flipnote Studio 3D] (only compatible with [[Wikipedia:Nintendo 3DS|Nintendo 3DS]], availability can be varied, can be also used for 3D animation)
 +
*[https://opentoonz.github.io/e/ Opentoonz]
 
*[http://www.pencil2D.org/ Pencil2D]
 
*[http://www.pencil2D.org/ Pencil2D]
 
*[http://www.synfig.org/ Synfig]
 
*[http://www.synfig.org/ Synfig]
<!--*[http://animationpaper.com Animation Paper]-->
 
*[http://www.adobe.com/products/flash.html Adobe Flash Professional CC]
 
*[http://flipnotestudio3d.nintendo.com Flipnote Studio 3D] (only compatible with [[Wikipedia:Nintendo 3DS|Nintendo 3DS]], availability can be varied, can be also used for 3D animation)
 
  
 
===Other lists===
 
===Other lists===
Line 81: Line 229:
 
*[[Eng:Alternatives to the Paint Editor|Alternatives to the Paint Editor]]
 
*[[Eng:Alternatives to the Paint Editor|Alternatives to the Paint Editor]]
 
[[Category:Other]]
 
[[Category:Other]]
 +
[[ru:Альтернативы Скретч]]
 +
[[de:Vergleich von blockbasierten Programmiersprachen]]

Latest revision as of 10:32, 6 December 2017

Translate: - English 
SandCastleIcon.png This page has links to outside of the Scratch website or Wikipedia. Remember to stay safe when using the internet as we can't guarantee the safety of other sites.

Alternatives to Scratch are other programs and languages used for similar purposes. Though Scratch can be an amazing resource for learning to code and expressing one's talents, if one is very serious, they may need to advance to other languages. Most of these alternatives are free like Scratch, but some of them cost money to use.


Note Note: Engines and programming may be hard to master and like, so it is most likely best to stay dedicated to an engine/programming language you are trying to learn if you want to master it.

In software development there are two main fields:

  • Programming

— the code for the application

  • Modelling / Art

— the visual interface of an application

Just as Scratch can be used to make games, animations and more, there are also other programming languages that can be used to create them.

Programming Alternatives

Drag and Drop Programming

2D

Program Description Code On Code For
BYOB/Snap! Snap! is an advanced Scratch Modification with lambdas, first class data, procedures, recursion, and many other features. Version 4.0 was renamed Snap! and was rewritten in JavaScript, and is thus no longer considered a Scratch modification. Desktop, Mobile Desktop, Mobile
Blockly A drag and drop language made by Google. It is used on many websites. It converts the Scratch-like language to another text-based language in real time. This could be useful in learning traditional languages such as Javascript or Python. This is being used for the new Scratch 3.0. Desktop, Mobile Desktop, Mobile
Android App Inventor The Android App Inventor by Google allows Android apps to be created with a simple, Scratch-like interface. In fact, it was based on Scratch and coded by a team at MIT. Desktop Android
Stencyl Stencyl has an interface similar to Scratch, but it has slightly more advanced editing features. Desktop, Mobile Desktop, Mobile
Gamefroot An online game creation software for creating side-scrolling games. It has a drag and drop block editor for advanced scripting. Desktop, Mobile Desktop, Mobile
Pocket Code A visual programming language and app for Android, iOS, and Windows Phone smartphones, tablets, and HTML5 enabled mobile browsers. It is inspired by Scratch and developed by the Catrobat team as free open source software. Android Android
Hopscotch An iOS-based application which is similar to Scratch but is simpler and easier to use. It's somewhat based in the middle of Scratch and ScratchJr. Hopscotch is primarily for iPad, with the player being the only thing accessible on other devices. iOS iOS
GameSalad A drag-and-drop programming software, aimed at inexperienced coders, which allows anyone to create games easily. Desktop Desktop, Mobile
GameMaker Studio A drag-and-drop game-making software that can be used by inexperienced coders to create video games of many genres. Also uses "Game Maker Language", a CUI programming language used to add more advanced features to a game. Microsoft Windows Desktop, mobile, Xbox One, PlayStation 4

3D

The logo of Alice.
  • BeetleBlocks: A GUI-based programming language, based off Scratch, which can be used for 3D modelling, unlike Alice.
  • Alice: Features 3D projects. Created by Carnegie Mellon.
  • Starlogo-TNG: Supports 3D models and terrain. Block-based, and meant for simulations and education purposes. Created by the MIT STEP group.

Text-Based Programming

Text-based programming is done through a programming language. Here are several:

Language Description Implementation(s) Editor(s)
Java Java was originally created and popularised as a platform-independent programming language. In modern day, Java is a general purpose language.
  • Java Runtime Environment: Software developed by Oracle for running Java that includes a virtual machine for interpreting compiled Java programs
  • Java Development Kit: Software for developing Java programs, that includes a Java compiler
  • Greenfoot: Greenfoot is a simple Java development environment with extensive documentation. It is focused on graphics and interactivity. It is often used with Java beginners.
  • Eclipse: A professional and widely-used Java IDE.
Python Python is a general-purpose coding language with emphasis on readability. There are also libraries available for communicating with Scratch and reading/writing Scratch files.
  • Command Line: This approach, although very advanced, does allow for the use of any Text Editor, like vim.
  • PyCharm: A cross-platform Python IDE.
C

C is a language originally praised for its portability. It was created by Dennis Ritchie and used to program Unix. C is also used in Linux. C# and C++ are based on C. Nowadays, they are often used in operating systems and embedded systems. They are also commonly taught languages.

  • Command Line: This approach, although very advanced, does allow for the use of any Text Editor, like vim.
C++

C++ is a programming language based on C that features object-oriented programming. It was invented by Bjarne Stroustrup.

  • G++: The C++ compiler in the GNU Compiler Collection
C#

C# is a programming language by Microsoft that is based on C.

Visual Studio has a C# compiler.

  • Microsoft Visual Studio: An advanced, professional IDE created by Microsoft designed for the languages Visual Basic, C#, C++, and F#. Though more languages may be added.
ActionScript ActionScript is a general purpose programming language for Adobe Flash. Flash provides powerful libraries for graphics and animations. It is, however, not free.
Lua Lua is a lightweight programming language which uses multiple paradigms. Lua is a very popular language in programming video games and is used as the main programming language for ROBLOX.
  • Lua: The Lua compiler
HTML & CSS Websites are coded in HTML & CSS. The basics are simple to learn.
  • Brackets: A simple, clean web IDE.
  • Atom: A text editor by GitHub
Javascript Javascript is a language used for making interactive web applications. Any web editor should be good for JavaScript.

Modern browsers should support JavaScript.

Logo Logo is the predecessor to Scratch, created by MIT. It is text-based, with commands closely resembling those of Scratch. It provides a single sprite, a turtle, which is used to draw via a set of Pen instructions. It has procedures (which may output values), recursion and first-class lists. n/a n/a
QB64 QB64 has a large variety of applications and can be easily be picked up by beginners to text based programming. It is very similar to Python and is a offshoot of BASIC.
  • QB64 - The original QB64 compiler.
  • The compiler comes with an IDE but any editor such as Notepad++ will work fine.
Haskell Haskell is an ML-style functional programming language used in academia. It features pattern matching, lazy evaluation, closures and partial application, and an expressive type system. List of IDEs and text editors
Rust Rust is a systems programming language that ensures memory safety via compile-time tracing of object lifetimes. n/a

Tutorials

To learn how to code in text-based programming languages, try:

  • Codecademy.com teaches the basics of coding in a fun and interactive way. It has interactive help guides and built-in code interpreters. It teaches a variety of common languages, from Javascript to Python.

Game Engines

  • GameMaker: GameMaker is quite similar to Scratch, except it also allows the option of typing commands and features commands geared more towards making games, whereas Scratch is more open. It is a good introduction to text-based programming and debugging. It is not free, but a free version is available with fewer features.
  • Unity3d: Unity3d is a program that is used for the making of 3D games. It supports coding in three languages: Javascript, C#, and Boo. It may also be confusing to a beginner due to all the new features in comparison to Scratch, but with time, this should wear away.
  • Godot: Godot is an open-source game engine. Godot uses its own programming language, GDScript.
  • The Source Engine is a Game Engine in which the MP version is free, it includes things like faceposing, volumetric lighting, an I/O system, and more things that can be used to create a mod/game. It does things like Fresnel water effects and dynamic rendering for you.

Other lists

Animation/Art Alternatives

3D Animation

See also: Three Dimensional Projects


Note Note: Before making 3D animation, it is recommended to learn how to animate in 3D, as some aspects of 3D animation can be confusing.
Note Note: 3D animation software can be rigged to make 2D animations.

2D Animation

See also: Two Dimensional Objects

Other lists

See Also