Sega 500 A Near TC for the GUI Jeff “Ezeikeil” Giles

Slides:



Advertisements
Similar presentations
JQuery MessageBoard. Lets use jQuery and AJAX in combination with a database to update and retrieve information without refreshing the page. Here we will.
Advertisements

1 FrontPage 2000 Online Tutorial The following tutorial aims to help you get started with FrontPage 2000 for the creation of basic web pages. The different.
Using Journal and Other Tablet PC Tools. Tools Bars in Journal To access all tool bars click on view and select each tool bar to activate each.
Computer Basics Hit List of Items to Talk About ● What and when to use left, right, middle, double and triple click? What and when to use left, right,
Customizing the MOSS 2007 Search Results November 2007 Rafael Perez.
Conversion pages Get Set Up. The first impression ad is designed to peak your targets interest Your “cheese” is something that would benefit them so they.
Click your mouse for next slide Dreamweaver – Colors and Page Properties So far things are going just dandy aren’t they? You’ve been following FST’s fun.
ABC’s of PowerPoint (Office 2007) Part 1: Basic Vocabulary Part 2: Cursors Part 3: Insert Your Text Part 4: Insert Your Pictures Part 5: Basic Tools &
Inventory Throughout this slide show there will be hyperlinks (highlighted in blue) follow the hyperlinks to navigate to the specified Topic or Figure.
Conversational Computers
Microsoft ® Office PowerPoint ® 2003 Training Playing movies [Your company name] presents:
What to do when you are done. PRINTING WITH PHOTOSHOP.
With Alex Conger – President of Webmajik.com FrontPage 2002 Level I (Intro & Training) FrontPage 2002 Level I (Intro & Training)
Games and Simulations O-O Programming in Java The Walker School
Using Journal and Other Tablet PC Tools. Outcomes Software  Intro to Sticky Notes  Intro to Ink Desktop  Intro to using Windows Journal Tools and uses.
© 2008 The McGraw-Hill Companies, Inc. All rights reserved. M I C R O S O F T ® Animating and Using Multimedia Effects Lesson 10.
Line up By Melissa Dalis Professor Susan Rodger Duke University June 2011.
Working with Numbers in Alice - Converting to integers and to strings - Rounding numbers. - Truncating Numbers Samantha Huerta under the direction of Professor.
JQuery Page Slider. Our goal is to get to the functionality of the Panic Coda web site.Panic Coda web site.
Adding Content To Your Faculty Page 1.Login 2.Create your Faculty Page 3.
Introduction to Scratch!
MICROSOFT WORD GETTING STARTED WITH WORD. CONTENTS 1.STARTING THE PROGRAMSTARTING THE PROGRAM 2.BASIC TEXT EDITINGBASIC TEXT EDITING 3.SAVING A DOCUMENTSAVING.
.:::The EA FEAR Division Presents:. When you download FEAR you should be able to load it pretty quickly, so if it’s taking long consider the problems.
PMS /134/182 HEX 0886B6 PMS /39/80 HEX 5E2750 PMS /168/180 HEX 00A8B4 PMS /190/40 HEX 66CC33 By Adrian Gardener Date 9 July 2012.
11 A First Game Program Session Session Overview  Begin the creation of an arcade game  Learn software design techniques that apply to any form.
CARLSON SOFTWARE CONFERENCE DANIEL V. SYPERSMA VICTOR GRAPHICS.
Sega 500 Close Combat weapons Jeff “Ezeikeil” Giles
Getting Started with Canvas IDIA Spring 2013 Bridget M. Blodgett.
How to use the internet The internet is a wide ranging network that thousands of people use everyday. It is a useful tool in modern society that once one.
1 IE in the Classroom The Internet Explorer Web Browser EDW647 Internet for Educators Roger Webster, Ph.D. Millersville University Department of Computer.
Chapter Three The UNIX Editors. 2 Lesson A The vi Editor.
Introduction to Arrays. definitions and things to consider… This presentation is designed to give a simple demonstration of array and object visualizations.
Alice 2.0 Introductory Concepts and Techniques Project 1 Exploring Alice and Object-Oriented Programming.
1 The EDIT Program The Edit program is a full screen text editor that allows you to: Create text files Create text files Edit an existing text files Edit.
Sega 500 Placing target boxes on the HUD Jeff “Ezeikeil” Giles
1. Chapter 4 Customizing Paragraphs 3 More Paragraph Changes Highlight a paragraph in Word by applying borders and shading. Sort paragraphs to control.
Get up to speed Get to know the Ribbon When you first open Word 2007, you may be surprised by its new look. Most of the changes are in the Ribbon, the.
Get up to speed What’s changed, and why Yes, there’s a lot of change in Excel It’s most noticeable at the top of the window. But it’s good change.
Shannon K. Basher, MLS Houston Academy of Medicine – Texas Medical Center Library.
Click your mouse for next slide Dreamweaver – Inserting and Formatting Text Inserting text is just as easy as inserting pictures If you wish to type text.
 HTML is hypertext markup language. It is a way for people to display their information with more complex pictures and text displays. Before HTML, messages.
Introduction to Excel Editing Your Workbook.
1 What to do before class starts??? Download the sample database from the k: drive to the u: drive or to your flash drive. The database is named “FormBelmont.accdb”
USING WORDPRESS TO CREATE A WEBSITE (RATHER THAN A BLOG) STEP-BY-STEP INSTRUCTIONS.
EQ: How can we learn the basics of formatting a college research paper in Microsoft Word? Mini Unit: Typing a Paper Diogene Date: 4/20/2015 Course: ELA-Grade.
Introduction to Half Life 2 Modding ● Seminar Seven – The story so far: ● Creating a mod via Source SDK ● Introduction to Hammer ● Hammer techniques ●
Making Python Pretty!. How to Use This Presentation… Download a copy of this presentation to your ‘Computing’ folder. Follow the code examples, and put.
Game Maker – Getting Started What is Game Maker?.
Chapter Three The UNIX Editors.
Sega 500 GUI & Menus Jeff “Ezeikeil” Giles
How to Design an Effective PowerPoint Presentation
USING WORDPRESS TO CREATE A WEBSITE (RATHER THAN A BLOG) STEP-BY-STEP INSTRUCTIONS.
1 Visual Basic Part I - A tool for customizing your program Principles of GIS
Sega 500 Scripted events and Sequences Jeff “Ezeikeil” Giles
 Columns  Rows  Cells  Ranges  Cell addresses  Column headers  Row headers  Formulas  Spreadsheet.
Sega 500 Combo Mutator Jeff “Ezeikeil” Giles
Sega 500 Precaching in UT2003 Jeff “Ezeikeil” Giles
Photoshop Actions Lights, Camera, Actions in Photoshop.
PowerPoint Basics Tutorial 2: A Slide Show In this tutorial you’re going to create a presentation from scratch. You will have to keep this presentation.
Introduction to TouchDevelop Lesson 3 – Comments & Lists Created by S. Johnson
VB.NET and Databases. ADO.NET VB.Net allows you many ways to connect to a database. The technology used to interact with a database or data source is.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
Instructional Design Center Embedding Google Documents in Blackboard.
Conversion pages Get Set Up. The 1 st rule to understand – 93% of website visitors will NOT take action on the first visit This holds true even if you.
What’s changed, and why Lesson 1 By the end of this lesson you will be able to complete the following: Get a handle on the new look of Excel. Understand.
MIS 3200 – C# (C Sharp)
How to Operate Windows 10: A Survival Guide.
Word 2007 – Tips and Techniques
Navigating NEIU Blackboard 417 – 418a
Presentation transcript:

Sega 500 A Near TC for the GUI Jeff “Ezeikeil” Giles

So far We’ve covered the core ins and outs of the GUI system in UT2003. Changed the Menus. Got functionality.

Today The presentation is going to be a little light on the graphic site of things since the GUI doesn’t like to have it’s picture taken. Also, I’m going focus on the functionality of the new stuff. Not really look at the specifics of previously seen GUI items.

The Plan We’re going to overhaul the front end of UT2003 so that it doesn’t look or behave like anything even resembling UT. Also, we’re going to make it run exclusively on a specific map, with a specific game type and mutator.

The Plan Main OptionsPlay Config Menu How our menu’s will relate: Splash Intro Movie

Getting started Our main menu is simply going to be a new background, text box and a button “begin” which takes us to the options screen. class EzeMainMenu extends GUIPage;

Main Menu The first big change is that we loaded some custom textures for the menus One for the background, one for the button. #exec texture IMPORT name=MAINMENU FILE=Textures\MainMenu.bmp #exec texture IMPORT name=BEGIN FILE=Textures\Begin.bmp

Main Menu //This menu's defaults Background=Material'MAINMENU' WinWidth=1.0 WinHeight=1.0 WinTop=0.0 WinLeft=0.0 bAllowedAsLast=true BackgroundRStyle=MSTY_Additive //begin button Image=material'BEGIN' ImageStyle=ISTY_Scaled ImageColor=(R=255,G=255,B=0,A=255) ImageRenderStyle=MSTY_Translucent Onclick=ButtonClick bFocusOnWatch=true bAcceptsInput=true bMouseOverSound=true OnClickSound=CS_Up

Main Menu Adding some functionality We need something to happen when our button is clicked…e.g. something for the delegate to point to.

Main Menu This simply causes a menu to open if the controller in index 2 is the caller. function bool ButtonClick(GUIComponent Sender) { //jump to next menu if ( Sender==Controls[2] ) Controller.OpenMenu("eze.EzeGameConfig"); return true; }

Main Menu We also trap the keyboard so the if escape is pressed, we can back out of the game. function bool MyKeyEvent(out byte Key,out byte State,float delta) { if(Key == 0x1B && state == 1)// Escape pressed { return true; } else return false; }

Main Menu And just for fun, we add a scroll box to the screen which is initialized here… var GUIScrollTextBox scrollbox; function InitComponent(GUIController MyController, GUIComponent MyOwner) { super.InitComponent(MyController, MyOwner); scrollbox=GUIScrollTextBox(Controls[3]); scrollbox.SetContent("Boo-ya!|Opening a can of whoop-ass",); }

Main Menu And declared pretty much like any other button Begin Object Class=GUIScrollTextBox Name=PlayerScroll WinWidth= WinHeight= WinLeft= WinTop= CharDelay= EOLDelay=0.5 bNeverFocus=true End Object Controls(3)=GUIScrollTextBox'PlayerScroll'

Options menu Right, we’ve told our menu to open another menu, time to create that one. class EzeMainMenu extends GUIPage;

Options menu Most of the contents of this page are pretty much the same, so no point in talking about them. Really, the buttons have different pictures and locations, that’s about it…

Options menu The newness really lies in the functionality of the ButtonClick function.

Options menu function bool ButtonClick(GUIComponent Sender) { //Open Mutator menu if ( Sender==Controls[3] ) Controller.OpenMenu("eze.EzeBounceConfig"); //Begin Game if ( Sender==Controls[1] ) { Console(Controller.Master.Console).DelayedConsoleCommand("open DM- Antalus?Mutator=eze.adrenalinbounce?numbots=4"); Controller.CloseAll(false); } return true; }

Options menu So waz going down? This simply opens a menu, just like we said a second ago. //Open Mutator menu if ( Sender==Controls[3] ) Controller.OpenMenu("eze.EzeBounceConfig");

Options menu But this is a bit different Nut Shell?...It opens our level and closes the menu… //Begin Game if ( Sender==Controls[1] ) { Console(Controller.Master.Console).DelayedConsoleCommand("open DM- Antalus?Mutator=eze.adrenalinbounce?numbots=4"); Controller.CloseAll(false);

Options menu DelayedConsoleCommand accepts a string which is parsed buy the ‘?’ is used to determine how the game runs. "open DM-Antalus?Mutator=eze.adrenalinbounce?numbots=4"); Which map to open, use a mutator and the number of bots.

Using our menu So, how to we get UT to use OUR menu? Not hard, but it does take another file and a mod to the UT2003.ini

Using our menu Here’s the whole file Simply specify which menu class to use… class EzeGames extends GameEngine; defaultproperties { MainMenuClass="Eze.EzeMainMenu" }

Using our menu And now in the UT2003.ini we make a change to this line. [Engine.Engine] GameEngine=Engine.GameEngine

Using our menu Replace with this So if you run from a map it show up. Yet the is a problem… [Engine.Engine] GameEngine=Eze.EzeGames

Using our menu Our menu doesn’t show up on the 1 st run. No matter what Here’s why…

Recognize this guy?

Using our menu Well, this is actually a level. A scripted sequence to be exact, which is running a unrealgame.cinematicgame. If we open it (NvidiaLogo.ut2) up in the editor we’ll find a AIScript tag. Once opened, here’s what you’ll find.

Using our menu Under the AIScript tab

Using our menu This causes a specific menu to open when the script is done. Here’s my preferred solution: Make a copy of this level. I called mine EzeIntro.ut2

Using our menu And in this copy, point the script at our menu class.

Using our menu Lastly, in the UT2003.ini. We tell UT to use OUR map too. [URL] Protocol=unreal ProtocolDescription=Unreal Protocol Name=Player Map=Index.ut2 LocalMap=EzeIntro.ut2

Using our menu And, yeah. You can totally customize the intro map if you like.

Using our menu Great! Your menu’s are now in place. Time to waste hours of our lives figuring out where to place the buttons & stuff by yutzing with the X and Y coordinates… There has to be a better way…

a better way… Yeah…there is… Here’s an snipit from an online forum by a fella named Dr.Sin… You’ll need to be running the debug *.u’s for this by the way.

a better way… Just move you current *.u’s (the retail build) into a temp folder and dump the debugs into the system folder. (if your at school, you should be good to go)

a better way… First things first… all mod authors please do the following: 1. In UT2003.ini look for the header [XInterface.GUIController] 2. Add this to the section: bModAuthor=true

a better way… This will unlock the GUI placement and debug code. Once there, at any GUI page you can do the following.. Press CTRL-ALT-D to enter design mode.

a better way… Hold CTRL and click on any control on the page. The GUI will highlight (from the outermost inward as you click) the different controls under the cursor.

a better way… >OH….my god….debug info….for which menu the mouse is over….my god!<

a better way… CTRL+Cursors move the control CTRL+ -/= size Y CTRL+ +/- size X Holding ALT will size/move 5x faster. Holding ALT will also allow you to move the control via the mouse.

a better way… >>> GASP!!! <<< Wait, there’s more. Press CTRL-C to copy the dimensions & position of the control to the clipboard.

a better way… Yes…you can cut and paste your screen coordinates. WinWidth= WinHeight= WinLeft= WinTop=

a better way… And…yes…there is a god >>>Thud!....passes out from shock and dismay…<<<

a better way… What Dr.Sin says about the GUI… “Makes designing menus much easier.”

Actually, he says a bit more… A GUIPage is the main menu container that holds other menu components. It's what the controller tracks on the top most level. To make a new menu, create a new page and start adding GUIComponents to it.

Actually, he says a bit more… The GUIComponents get defined in the default props and need to be assigned in order to the Controls[x] array.

BTW Word has is, Dr.Sin is someone at Epic.

Lastly… Time to deal with the splash screen.

And that loading screen… Dealing with this fella is actually really easy once we get the EzeMainMenu in place…because, this file also specifies the loading page to use. Just add yours… LoadingClass="Eze.EzeLoading"

And that loading screen… But there is one slightly odd thing…The loading screen is derived from a vignette…and there isn’t a since doc in the code explaining what a vignette is in the context of UT Figures don’t it?

And that loading screen… Fortunately, it’s a very simple class made up of 2 functions: And if you look at how it’s currently used in TestVignette.uc, you’ll see you can do all sorts of stuff with it… simulated event Init(); simulated event DrawVignette( Canvas C, float Progress );

And that loading screen… But, it really just boils down to displaying a picture and some text…but you can make it all snazzy if you like But keeping it simple, means we can pack everything into one function…

And that loading screen… simulated event DrawVignette( Canvas C, float Progress ) { c.DrawTile(Background, C.SizeX, C.SizeY, 0, 0, Background.USize, Background.VSize ); C.Style = ERenderStyle.STY_Alpha; theFont =Font(DynamicLoadObject("UT2003Fonts.FontLarge", class'Font')); C.Font = theFont; C.DrawColor = c.MakeColor(255,128,0); C.FontScaleX = 1; C.FontScaleY = 1; c.setpos(c.ClipX/7, c.clipY/4*3); c.drawtext("Think you can take me?... Be-otch!"); }

And that loading screen… Nothing complex, but does the job nicely…

Lastly… Previously, we thought this image to be locked up in a dll. Turns out it’s not. Just in an odd place.

Lastly… Look in your ut2003\help directory. Just open this up in Photoshop and have fun…

Lastly… Ok, this isn’t really a programmer solution, but we should know about it. And no. Image size doesn’t seem to matter Go big or go home!

That’s a wrap Et Voila! All the steps required to create your own total conversion of UT. Hope this meets all your GUI needs. But first…

A word to the wise… Before you lay into the overhauling the menu’s for UT, consider this first. Just because you can, doesn’t mean you should.

A word to the wise… What I mean by this is: Modify the menu only where appropriate to do so. There is no faster was to get people to stop playing your mod that Hosing their GUI!... Particularly if they feel this means a reinstall of UT!

A word to the wise… This extends into even talking about the game art. Don’t graffiti up their stuff. Some people actually like the look of UT. …despite how tempting the splash screen is, unless your doing a TC...leave it alone in your distribution.

A word to the wise… For an example of very good moding a game and menu system…just look at how Half life was integrated with counterstrike…The mod played nicely with the existing system.

A word to the wise… In addition to this, we already know how to get around this buy using command lines to specify which ini files to run. And you can even take it one step further if you feel the need…all your assets and source code can be included in your own custom paths.

A word to the wise… I’ll get off my soap box now…