Firebolt MUD Client Development of a Client Prototype for Aeonfalls Online
Total Page:16
File Type:pdf, Size:1020Kb
2005:20 HIP BACHELOR'S THESIS Firebolt MUD Client Development of a client prototype for Aeonfalls online Emil Nilimaa Luleå University of Technology BSc Programmes in Engineering Department of Computer Science and Electrical Engineering Division of Media Technology 2005:20 HIP - ISSN: 1404-5494 - ISRN: LTU-HIP-EX--05/20--SE Firebolt MUD Client -Development of a client prototype for Aeonfalls Online- Emil Nilimaa Division of Media Technology, Dept. of Computer Science and Electrical Engineering, Luleå University of Technology Luleå, December 2004 Supervisor and Examiner: Kåre Synnes Luleå University of Technology Abstract Multi-User Dungeons or commonly called MUDs (”muds”) are computer games which users can enter and explore over a network such as the Internet. Each user takes control of a computerized persona/avatar/character which let them walk around, chat with other characters, explore dangerous monster-infested areas and solve puzzles or quests. This project investigates existing technologies for text-based and graphical MUD (Multi-User- Dungeon) clients and gives suggestions and ideas for how to implement a MUD client for a text- based environment with a more user friendly and attractive interface. It also includes an implementation of a next generation client application for text-based games enhanced with features to make it the edge of today’s technology. It includes features from graphical games implemented in a way to make the text-based games more appealing to people outside of the special type that loves the mind thrilling and imaginative worlds made of text. The application implemented is developed with the Swing package and Java 1.5.0 for the upcoming Aeonfalls Online game from Mythicscape. It features a network implementation based on the protocol developed for Aeonfalls and a rich graphical interface that implements all the special features that are available in the game. 2 Preface This Bachelor of Science thesis project is part of my exam work that I have been doing during autumn 2004 between September and December. I have done most of the work at Luleå University of Technology on my laptop and in the computer labs. I decided to do this project as my Bachelor of Science thesis since it is an important part of the game that I am currently working on for my newly started company – Mythicscape. The development of a client prototype as in this project is exactly what I have been studying over the years and it seemed like a perfect end for my studies. I would like to thank my examiner Kåre Synnes who has been a good resource for help and assistance during the project. Luleå, December 2004 Emil Nilimaa 3 Preface............................................................................................................3 1 Introduction.............................................................................................6 1.1 About Mythicscape ....................................................................................................................6 1.2 Background .................................................................................................................................6 1.3 Purpose........................................................................................................................................6 1.4 Objectives....................................................................................................................................6 1.5 Document Outline.....................................................................................................................7 2 Aeonfalls Online ......................................................................................8 2.1 Description..................................................................................................................................8 2.2 Fundamental Idea.......................................................................................................................8 2.3 Technology..................................................................................................................................8 2.4 Aeonfalls Network protocol.....................................................................................................8 2.4.1 Network Protocol Classes....................................................................................................9 2.4.2 The Protocol Class ................................................................................................................9 2.4.3 The Interpreter Class ............................................................................................................9 2.4.4 The NetPacket Class .............................................................................................................9 2.4.5 Why not use Java RMI or Java Serializable network streams?......................................10 2.4.6 TCP/UDP Protocols ..........................................................................................................10 3 Specification ..........................................................................................11 3.1 Requirement Specification ......................................................................................................11 3.2 At a Glance................................................................................................................................11 3.3 High-level requirements ..........................................................................................................11 3.4 Extra features............................................................................................................................12 3.5 Performance, Quality and Appearance .................................................................................12 3.5.1 Minimum Hardware Requirements...................................................................................12 3.5.2 Download Size.....................................................................................................................12 3.5.3 Efficiency..............................................................................................................................13 3.5.4 Reliability...............................................................................................................................13 3.5.5 Usability.................................................................................................................................13 3.5.6 Appearance...........................................................................................................................13 4 Implementation of the Prototype...........................................................14 4.1 Development Model................................................................................................................14 4.2 Change Analysis........................................................................................................................14 4.3 Development Tools.................................................................................................................14 4.4 Design........................................................................................................................................14 4.4.1 Automatic Updating............................................................................................................14 4.4.1.1 Java W eb Start – Not the Solution...........................................................................15 4.4.1.2 PatchUpdate................................................................................................................16 4.4.2 Graphical User Interface ....................................................................................................18 4.4.2.1 Layout...........................................................................................................................18 4.4.2.2 Layout Managers.........................................................................................................18 4.4.2.3 Custom Graphical Components...............................................................................18 4.4.2.4 ImageButton................................................................................................................19 4.4.2.5 ImagePanel ..................................................................................................................19 4.4.2.6 TexturedPanel .............................................................................................................19 4.4.2.7 TextPane ......................................................................................................................19 4.4.2.8 Equipment Panel ........................................................................................................19 4.4.2.9 Inventory Panel...........................................................................................................20 4.4.2.10 Drag and Drop.......................................................................................................20 4.4.3 2D Tile Based Map..............................................................................................................20 4 4.4.3.1 TileHandler and Tiles.................................................................................................20 4.4.3.2 Handling Terrain Transitions ...................................................................................21