310 likes | 325 Views
End User Programming From a CASE Perspective: GameMaker as an end user development tool. Ben Brown. End User Programming?.
E N D
End User Programming From a CASE Perspective:GameMaker as an end user development tool Ben Brown
End User Programming? • End user programming refers to software tools that allow for the creation or modification of software by “developers” who may not be versed in traditional programming skills.
The classic case: • Spreadsheets. • Excel allows anyone to create simple to advanced “programs” that calculate data that it’s developers didn’t necessarily anticipate. Mass Effect 2 Character Creation MIT’s Scratch
Other types: • 3d modeling and animation software • Game mod tool kits • Visual programming languages • Game development engines
Developers: • Youth – Non experts in any field • Software focused on education – Scratch, Lego Mindstorms, AgentSheets • Content Specialist – Experts in non-programming field • Game Developer, Scientist, Accountant, etcetera
Game Development: • Why? • Money! • Game development is a $100 Billion a year plus industry • Development size and time requirements • Games are constantly increasing in scale but price hasn’t significantly increased • Development needs streamlining • Everyone is a game developer • Indie games are viable sources of income
Game Engines – Broad Classification • Professional – Costly paid versions, used widely in industry (or aimed at large scale games) • Unity • Unreal • Torque • Godot • Hobbyist – Mostly free, genre specific tools • M.U.G.E.N – Beat ’em ups • Inform – Interactive Text Adventures • Ren’Py – Visual Novels • Arcade Game Studio – Arcade Style Games
Game Engines – Broad Classification • In the middle - Used on some commercial projects, likely non genre specific, emphasis on 2d, not fully free • GameMaker • Construct 2 • RPG Maker
Game Maker • Developed by YoYo Games (recently sold to PlayTech) • Currently GameMakerStudio 1.4 • 2d game engine, free standard edition, with paid professional and master editions • Supports development for PC, Mac, Linux, iOS, Android, PlayStation (3, 4, Vita), and XboxOne • Primarily GUI oriented, with custom scripting language • Includes built in particle engine and physics
Hmm… Now What!
Creation Flow Rooms: Objects: A thing that goes into a room. • A place where objects go.
Creation Flow – Some Details Rooms: Objects: May contain a graphic, normally a sprite Can contain any number of events Each event can contain any number of actions • Contains only a background and some characteristics about the room • Can be used to create a menu, a level, a splash screen, etcetera • Can hold any number of objects
Repeat Until That’s not right…
GMS – GameMaker Scripts • sprite_index = sprite2; • image_speed = 1; • if image_index == image_number - 1 • { • sprite_index = sprite0; • } Nope – Script stops execution after collision becomes false.
GMS – GameMaker Scripts • In end step event • if (sprite_index == sprite2) • { • if image_index == image_number - 1 • { • sprite_index = sprite0; • } • }
Not much of a game • Yet • Took a surprising amount of time to make • High level of learning curve, especially for the scripting language
Conclusions? • With proper tutelage the tool is powerful, can alleviate some programming • Learning curve is high • Must think like YoYo Games thinks