Ben Brown END USER PROGRAMMING FROM A CASE PERSPECTIVE: GAMEMAKER AS AN END USER DEVELOPMENT TOOL
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. END USER PROGRAMMING?
Spreadsheets. Excel allows anyone to create simple to advanced “programs” that calculate data that it’s developers didn’t necessarily anticipate. THE CLASSIC CASE: Mass Effect 2 Character Creation MIT’s Scratch
3d modeling and animation software Game mod tool kits Visual programming languages Game development engines OTHER TYPES:
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 DEVELOPERS:
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 DEVELOPMENT:
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 ENGINES – BROAD CLASSIFICATION
Developed by YoYo Games (recently sold to PlayTech) Currently GameMaker Studio 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 GAME MAKER
BIG GAMES: HOT LINE MIAMI
BIG GAMES: GUNPOINT
BIG GAMES: SPELUNKY
BIG GAMES: GALACTIC MISSILE DEFENSE
LET’S BUILD A GAME!
HMM… Now What!
Rooms: A place where objects go. Objects: A thing that goes into a room. CREATION FLOW
Rooms: 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 Objects: May contain a graphic, normally a sprite Can contain any number of events Each event can contain any number of actions CREATION FLOW – SOME DETAILS
OBJECT CREATION – MAKE A SPRITE
OBJECT CREATION – ASSIGN SPRITE
OBJECT CREATION – ADD EVENTS
OBJECT CREATION – ADD ACTIONS
CREATE A ROOM
REPEAT UNTIL
sprite_index = sprite2; image_speed = 1; if image_index == image_number - 1 { sprite_index = sprite0; } GMS – GAMEMAKER SCRIPTS Nope – Script stops execution after collision becomes false.
In end step event if (sprite_index == sprite2) { if image_index == image_number - 1 { sprite_index = sprite0; } GMS – GAMEMAKER SCRIPTS
NOW
Yet Took a surprising amount of time to make High level of learning curve, especially for the scripting language NOT MUCH OF A GAME
With proper tutelage the tool is powerful, can alleviate some programming Learning curve is high Must think like YoYo Games thinks CONCLUSIONS?