On the data side of the application… In the beginning, we needed to translate the ideas for the game’s dialogue progression and how the player would interact.

Slides:



Advertisements
Similar presentations
Welcome to WebCRD.
Advertisements

Utility SQL Bin (v3.3). Agenda  Purpose  Target User  Benefits  System Requirement  User Guide Introduction Navigation Add New SQL Add New Version.
© Paradigm Publishing, Inc Excel 2013 Level 2 Unit 2Managing and Integrating Data and the Excel Environment Chapter 7Automating Repetitive Tasks.
Technical BI Project Lifecycle
WELCOME TO THE ANALYSIS PLATFORM V4.1. HOME The updated tool has been simplified and developed to be more intuitive and quicker to use: 3 modes for all.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Event Driven Programming and GUIs Part 3 CS221 – 4/15/09.
PHP (2) – Functions, Arrays, Databases, and sessions.
SIMS 213: User Interface Design & Development Marti Hearst Tues Feb 13, 2001.
Microsoft Office XP Illustrated Introductory, Enhanced Office Applications with Internet Explorer Integrating.
Efficient XML Interchange. XML Why is XML good? A widely accepted standard for data representation Fairly simple format Flexible It’s not used by everyone,
Introduction to Array The fundamental unit of data in any MATLAB program is the array. 1. An array is a collection of data values organized into rows and.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
Access Tutorial 8 Sharing, Integrating, and Analyzing Data
ADVANCED MICROSOFT POWERPOINT Lesson 6 – Creating Tables and Charts
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
1 An Introduction to TI SmartView Emulator Software (Version 2.0) Jim Eiting Developmental Mathematics Department Collin County Community College August.
By: Shawn Li. OUTLINE XML Definition HTML vs. XML Advantage of XML Facts Utilization SAX Definition DOM Definition History Comparison between SAX and.
Finding Nearby Wireless Hotspots CSE 403 LCA Presentation Team Members: Chris Scoville Tessa MacDuff Matt Mohebbi Aiman Erbad Khalil El Haitami.
JQuery CS 268. What is jQuery? From their web site:
INTRODUCTION TO WEB DATABASE PROGRAMMING
11 Games and Content Session 4.1. Session Overview  Show how games are made up of program code and content  Find out about the content management system.
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
A guide for UICET for using Wikispaces.  A wiki is a web page or collection of web pages that can be linked together as a website.  Wikis are often.
Databases C HAPTER Chapter 10: Databases2 Databases and Structured Fields  A database is a collection of information –Typically stored as computer.
1 Lesson 6 Exploring Microsoft Office 2007 Computer Literacy BASICS: A Comprehensive Guide to IC 3, 3 rd Edition Morrison / Wells.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Stimulsoft Reports.Net 20 Problems which Stimulsoft Reports.Net solves
Facilimanage Dynamics aka “Facilies” CS 499 Final Presentation Curtis McKay Manneet Singh Brad Vonder Haar.
XP New Perspectives on XML, 2 nd Edition Tutorial 10 1 WORKING WITH THE DOCUMENT OBJECT MODEL TUTORIAL 10.
In addition to Word, Excel, PowerPoint, and Access, Microsoft Office® 2013 includes additional applications, including Outlook, OneNote, and Office Web.
ADO.NET A2 Teacher Up skilling LECTURE 3. What’s to come today? ADO.NET What is ADO.NET? ADO.NET Objects SqlConnection SqlCommand SqlDataReader DataSet.
Miscellaneous Excel Combining Excel and Access. – Importing, exporting and linking Parsing and manipulating data. 1.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
1 Working with MS SQL Server Textbook Chapter 14.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Working with MSSQL Server Code:G0-C# Version: 1.0 Author: Pham Trung Hai CTD.
Text and Graphics September 26, Unit 3.
CHAPTER TEN AUTHORING.
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
SEG3120 User Interfaces Design and Implementation
CSCI 6962: Server-side Design and Programming Database Manipulation in ASP.
Why do we need good user interfaces?. Goals of User Interfaces Usable – how much effort to do a task? – example: often-used buttons easier to find – example:
USING XML AS A DATA SOURCE. Data binding is a process by which information in a data source is stored as an object in computer memory. In this presentation,
XP 1 New Perspectives on XML Binding XML Data with Internet Explorer.
11 Adding Tomato Targets Session Session Overview  We now have a game which lets a player bounce a piece of cheese on a bread bat  Now we have.
Use CSS to Implement a Reusable Design Selecting a Dreamweaver CSS Starter Layout is the easiest way to create a page with a CSS layout You can access.
XP New Perspectives on Microsoft Office FrontPage 2003 Tutorial 7 1 Microsoft Office FrontPage 2003 Tutorial 7 – Creating and Using Templates in a Web.
“The perfect project plan is possible if one first documents a list of all the unknowns.” Bill Langley.
Cross Language Clone Analysis Team 2 October 13, 2010.
EE296 – Web-based Truth Table Program Jason Axelson Bryant Komo.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
1 Software. 2 What is software ► Software is the term that we use for all the programs and data on a computer system. ► Two types of software ► Program.
Reading Flash. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also choose some.
Lukasz Kokoszkiewicz. Allow to additionally filter main table content All of them can be added by simply in a settings file Right now we have 4 kinds.
Securing and Sharing Workbooks Lesson 11. The Review Tab Microsoft Excel provides several layers of security and protection that enable you to control.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
1 Integrating Models with Domain-Specific Modeling Languages 18 October 2010 Steven Kelly & Juha-Pekka Tolvanen.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Chapter – 8 Software Tools.
Inspiration  Christine Love  Digital: A Love Story  Don’t Take It Personally Babe.
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
111 State Management Beginning ASP.NET in C# and VB Chapter 4 Pages
Databases.
Testing REST IPA using POSTMAN
What is Cookie? Cookie is small information stored in text file on user’s hard drive by web server. This information is later used by web browser to retrieve.
Access Tutorial 8 Sharing, Integrating, and Analyzing Data
Fundamentals of Data Structures
Welcome to WebCRD.
Tutorial 7 – Integrating Access With the Web and With Other Programs
Presentation transcript:

On the data side of the application… In the beginning, we needed to translate the ideas for the game’s dialogue progression and how the player would interact with it into a visual representation of the necessary data. The standard interaction involves receiving a text from an NPC, being presented with up to four options, choosing a reply, and repeat. (Multiply this by x NPCs). This involved drawing lots of these…

Simplified, shortened version of the dialogue interaction tree for a single NPC. Drawn using MS Paint and a mouse. Not pictured: carpal tunnel.

To translate this into usable game data, we needed to come up with a format that would: Represent all data necessary for the normal game flow and also inherently account for special cases. Store the data as concisely as possible, from both the programming (physical memory) and the writing (eliminating redundancy) perspectives. Make the writing process as quick and easy as possible, while still retaining the functionality of a dynamic (multiple path) script. Integrate with Marmalade without any issues. Allow the game to quickly save and access different game states for multiple characters simultaneously. Minimize the effort needed to use the data on the UI end. Minimize the effort needed to add content in the future.

Solution: Excel table. Each row is a dialogue exchange, containing the NPC’s text to receive, the ids for the four reply options (which reference another xml table), the player’s text to send for each option, and four ints, pointing to the next row of dialogue to follow each reply option. Stephen writes the entire dialogue tree for a character in this format, with one excel file for each character. We then convert the excel table to an xml file. (Marmalade has support for tinyxml)

Into code: All of the data management code is utilized through key functions in a single interface, the NPC class, an object of which represents a character. When the data for a character needs to be loaded (at the moment this is whenever an NPC object is created), the NPC class populates an array of DialogueRow objects with their respective values from the xml file with the filename passed to the constructor. The game can then be operated by simply repeatedly calling the NPC object’s member functions in order, i.e. NPC* Rick = new NPC(“Rick”); Rick->getText(); Rick->getReplyOptions(); Rick->sendText(chosenReply); The NPC object tracks the player’s progression through the array. But what if the app is shut down?

History When the NPC is created, the game also reads the data from another xml file called “ History.xml”, or creates a new one if it does not exist. Whenever either getText() or sendText() is called, the string is written to the history file along with the id of the row it is in, or the id of the row it points to, respectively, in alternating elements. If the history file has stuff in it when the NPC object is created, it will be loaded into an array of strings and update the NPC object to use the last element’s id value as the current position. The history array can then be called to load the previous text exchanges before the new getText() or sendText() call. This is how we save the game state of the player, as each NPC will have its own history file consistently updated throughout the game.

Working With a Toolset Marmalade does this thing where….it doesn’t. Billed as a wonderful toolset that allows you to develop simultaneously for multiple platforms The API is hard to navigate, and not very easy to decipher Poor Examples

Working With a Toolset Hard to find examples Hard to find answers to questions Its like a completely different language that hardly anybody speaks, and those that do speak it, don’t speak it well Functionality has changed over years and changes aren’t documented well