Pinball Game in Box2d Engine

Total Page:16

File Type:pdf, Size:1020Kb

Pinball Game in Box2d Engine MASARYK UNIVERSITY FACULTY OF INFORMATICS Pinball game in Box2D engine BACHELOR'S THESIS David Kratochv´ıl Brno, 2017 Declaration Hereby I declare that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. David Kratochv´ıl Advisor: RNDr. Adam Rambousek, Ph.D. ii Acknowledgements I would like to thank my supervisor RNDr. Adam Rambousek, Ph.D. for leading this thesis, his guidance and advices. Also, I would like to thank Ing. Pavel Tiˇsnovsk´y,Ph.D. for introducing me to this field and helping me to create this work. iii Abstract In this bachelor thesis I deal with the physics engine Box2D and its port into Java JBox2D. My goal is to study features of JBox2D library and then use them to create a simulation of a pinball machine. iv Keywords JBox2D, Box2D, JavaFX, physics engine, game engine v Contents 1 Introduction3 2 Box2D and JBox2D5 2.1 LiquidFun.........................5 2.2 Pooling...........................6 2.3 Serialization........................6 2.4 Phys2D and LibGDX...................6 3 Features of JBox2D8 3.1 Common module.....................8 3.2 Collision module.....................8 3.2.1 AABB.......................9 3.2.2 Shapes.......................9 3.3 Dynamics module..................... 11 3.3.1 Bodies....................... 11 3.3.2 Fixtures...................... 12 3.3.3 Contacts...................... 14 3.3.4 Worlds....................... 14 3.3.4.1 AABB Query.............. 15 3.3.4.2 Ray Casting............... 15 3.3.4.3 Impulses, forces, torques........ 16 3.3.5 Joints....................... 16 4 Application 19 4.1 JavaFX.......................... 19 4.1.1 Availability.................... 19 4.1.2 Coordination system............... 19 4.2 Configuration....................... 20 4.3 Objects.......................... 22 4.4 Contact Listener..................... 27 4.5 Sound effects....................... 27 4.6 Key Input......................... 27 4.7 Frames........................... 28 1 5 Conclusion 29 6 Bibliography 30 2 1 Introduction A simulation is a process, that tries to virtually imitate a situation from the real world and produce the possibly most accurate outcome. Simulations are integral part of researches in many scientific fields like engineering, medicine, or economy. It also plays an important role in education and training of a military personnel. Recently, simulations also found usage in entertainment industry. Video games often contain objects, that need to move on the screen and their motion have to look realistically. Physics simulations not only allow to create scenes with these ob- jects, but also add diverse properties to them and calculate their be- haviour in different environments. These calculations are performed by physical engines. There are many physical engines that can simulate either two or three dimensional scenes. Box2D is a physical engine, that allows to create physically accurate two-dimensional simulations. It has been used in many programs on various platforms. Although Box2D itself was written in C++, it has been ported in many other programming languages like Java, Adobe Flash, C#, or Java Script. Box2D and it's ports are still under developement and continuously gain new features. The application, which is a part of this thesis, is written in Java, and therefore uses Java port of Box2D, called JBox2D. The goal of this thesis is to study how to work with JBox2D library and its components and use it to create an accurate simulation of a pinball machine. The written part of the thesis consists of three chapters describing JBox2D and Box2D libraries, features and objects they work with, and the application itself. First chapter focuses on physical library Box2D and it's Java port JBox2D, components, that these libraries have in common, as well as those, in which they differ. This chapter also offers a preview of some other Java libraries, that are based on Box2D. Second chapter focuses on main features of JBox2D library, it's modules and their components including bodies, fixtures, joints and 3 collisions, their types, behaviour and how to work with them. Third chapter describes the application, individual objects used in the simulation, and how they were created, as well as some difficulties met during the developement. This chapter also focuses on how to work with the application, how the objects are loaded and how to create custom playfield. This part also mentions used graphical user interface and its combination with JBox2D. 4 2 Box2D and JBox2D Box2D [1] is a physics engine, that was created by programmer Erin Catto as a part of his presentation on Game Developer Conference in 2006. This engine is distributed under zlib licence, and is therefore available as a free software on the internet. Although Box2D is written in C++, there are many ports, that allow to use this engine in other programming languages. These ports are created and maintained by the community, which updates them according to the original Box2D engine. JBox2D [2] is a Java port of Box2D. It was created as a combination of Box2D with physics engine LiquidFun [4] and, like Box2D, is also released under zlib licence. 2.1 LiquidFun LiquidFun is a library written in C++, created by Google as an extention of Box2D with added simulation of soft bodies and particle based fluids. Although JBox2D was created as a port of Box2D, today it is closer to the LiquidFun engine. JBox2D is very close to it's original and (except different naming conventions in C++ and Java) there are only few differences in these two libraries. Main distinction are few objects that are supported by one engine but not by the other. For example, as stated before, JBox2D can use small particles connected together, allowing them to simulate water and other liquids or soft bodies that can be deformed under pressure. The application uses older version of JBox2D, and therefore misses few objects from present Box2D. These are, for example, two new joints, called motor and rope joint. Box2D also has more shapes. While Box2D can create edge and chain shaped bodies, JBox2D creates edges only as a special type of polygon shapes, and chains aren't supported at all. All these objects are, however, present in the newest version of JBox2D. JBox2D also, unlike Box2D, features pooling and serialization. 5 2.2 Pooling Pooling [5] allows to manage several instances of one resource in a pool. The pool can store data from the simulation that are not needed in the moment, but could be reused in near future. When the stored object is required, the user can request for it, removing it from the pool. After using it, instead of destroying the object, it can be returned back into the pool again. With this method, it is possible to remove bodies from the simulations and return them back later, instead of creating and destroying them every time they are needed. 2.3 Serialization Serialization [6] is a process, which allows objects to be saved into byte streams. Data stored in these streams have to contain enough in- formation, to recreate the original object. Serialization can be used to make objects persistent, create identical copy of an object, or transfer objects over a network. 2.4 Phys2D and LibGDX Except JBox2D, there are other Java libraries based on Box2D. Phys2D is physics engine based on the earlier version of Box2D, called Box2D Lite. Another option is to use libGDX as a JNI wrapper around Box2D, which allows to work with the library by translating code be- tween two languages. Since Phys2D is based on Box2D Lite, it is much more simple than JBox2D. It isn't maintained anymore, and therefore lacks many fea- tures introduced in later version of Box2D. Although Phys2D is able to create simulations using bodies with various shapes and mass prop- erties, it isn't as precise as JBox2D, and isn't very suitable for more complex simulations. Unlike JBox2D, Phys2D doesn't use continuous collision detection, which causes tunneling effect between objects more often. 6 LibGDX is a Java wrapper around Box2D, and only translates the code between Java and C++. LibGDX is therefore, unlike JBox2D, fully dependable on the native library, and can only use features from Box2D. 7 3 Features of JBox2D Jbox2D creates scenes by generating rigid bodies, modifying their mass properties by attaching fixtures to them and connecting bodies together with joints. Additionally, it also performs mathematics to compute the movement of objects and solve their collisions. All these functions are separated into three modules: Common, Collision and Dynamics. 3.1 Common module Common module contains settings with various values representing maximums of some variables, and constants used by JBox2D. The sim- ulation uses meters, kilograms, and seconds, or shortly MKS units, for calculations of objects and their properties. In code, the majority of these variables are represented as floating-point numbers. This mod- ule also manages types for vectors called Vec2, for two-dimensional vectors, and Vec3 for three-dimensional vectors and performs vector math using matrix modules. Common module is also responsible for memory management. 3.2 Collision module Collision module contains shapes, as well as functions and queries used by them. Before two shapes collide, JBox2D detects these shapes using collision detection. The collision detection system is responsible for calculating when and where the collision takes place and the normal vector between the touching objects [9]. JBox2D computes their points of contact and normal vector, and stores them into a contact manifold. Data from contact manifold are then used by contact solver to calculate the outcome of the collision. During a collision, JBox2D uses method called narrow-phase, to recieve contact points between two shapes.
Recommended publications
  • Master's Thesis
    MASTER'S THESIS Online Model Predictive Control of a Robotic System by Combining Simulation and Optimization Mohammad Rokonuzzaman Pappu 2015 Master of Science (120 credits) Space Engineering - Space Master Luleå University of Technology Department of Computer Science, Electrical and Space Engineering Mohammad Rokonuzzaman Pappu Online Model Predictive Control of a Robotic System by Combining Simulation and Optimization School of Electrical Engineering Department of Electrical Engineering and Automation Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Technology Espoo, August 18, 2015 Instructor: Professor Perttu Hämäläinen Aalto University School of Arts, Design and Architecture Supervisors: Professor Ville Kyrki Professor Reza Emami Aalto University Luleå University of Technology School of Electrical Engineering Preface First of all, I would like to express my sincere gratitude to my supervisor Pro- fessor Ville Kyrki for his generous and patient support during the work of this thesis. He was always available for questions and it would not have been possi- ble to finish the work in time without his excellent guidance. I would also like to thank my instructor Perttu H¨am¨al¨ainen for his support which was invaluable for this thesis. My sincere thanks to all the members of Intelligent Robotics group who were nothing but helpful throughout this work. Finally, a special thanks to my colleagues of SpaceMaster program in Helsinki for their constant support and encouragement. Espoo, August 18,
    [Show full text]
  • Agx Multiphysics Download
    Agx multiphysics download click here to download A patch release of AgX Dynamics is now available for download for all of our licensed customers. This version include some minor. AGX Dynamics is a professional multi-purpose physics engine for simulators, Virtual parallel high performance hybrid equation solvers and novel multi- physics models. Why choose AGX Dynamics? Download AGX product brochure. This video shows a simulation of a wheel loader interacting with a dynamic tree model. High fidelity. AGX Multiphysics is a proprietary real-time physics engine developed by Algoryx Simulation AB Create a book · Download as PDF · Printable version. AgX Multiphysics Toolkit · Age Of Empires III The Asian Dynasties Expansion. Convert trail version Free Download, product key, keygen, Activator com extended. free full download agx multiphysics toolkit from AYS search www.doorway.ru have many downloads related to agx multiphysics toolkit which are hosted on sites like. With AGXUnity, it is possible to incorporate a real physics engine into a well Download from the prebuilt-packages sub-directory in the repository www.doorway.rug: multiphysics. A www.doorway.ru app that runs a physics engine and lets clients download physics data in real Clone or download AgX Multiphysics compiled with Lua support. Agx multiphysics toolkit. Developed physics the was made dynamics multiphysics simulation. Runtime library for AgX MultiPhysics Library. How to repair file. Original file to replace broken file www.doorway.ru Download. Current version: Some short videos that may help starting with AGX-III. Example 1: Finding a possible Pareto front for the Balaban Index in the Missing: multiphysics.
    [Show full text]
  • Tree Code for Collision Detection of Large Numbers of Particles
    Tree Code for Collision Detection of Large Numbers of Particles Application for the Breit-Wheeler Process [preprint] O. Jansen, E. d’Humi`eres, X. Ribeyre, S. Jequier, V.T. Tikhonchuk Univ. Bordeaux/CNRS/CEA, Centre Lasers Intenses et Applications [email protected] August 4, 2016 Abstract Collision detection of a large number N of particles can be challenging. Directly testing N particles for 2 collision among each other leads to N queries. Especially in scenarios, where fast, densely packed particles interact, challenges arise for classical methods like Particle-in-Cell or Monte-Carlo. Modern collision detec- tion methods utilising bounding volume hierarchies are suitable to overcome these challenges and allow a detailed analysis of the interaction of large number of particles. This approach is applied to the analysis of the collision of two photon beams leading to the creation of electron-positron pairs. Keywords tree code; collision detection; QED; Breit-Wheeler process; pair creation; astronomy 1 Introduction Modelling a large number of particles often is a challenge in physics. Many-body problems are well known in astronomy, plasma physics, solid state physics and other disciplines. In astronomy a common way to overcome the challenge of simulating a many-body problem, like the movement of stars of one galaxy under each others gravitational force, is to use the Barnes-Hut (BH) method [1]. In a BH simulation space is partitioned in an hierarchic octree structure. The tree branches grow towards successive smaller volumes of space in such way as to include at maximum one particle (star) in each leaf node, while still covering the entirety of the simulation domain.
    [Show full text]
  • First Person Shooting (FPS) Game
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 05 Issue: 04 | Apr-2018 www.irjet.net p-ISSN: 2395-0072 Thunder Force - First Person Shooting (FPS) Game Swati Nadkarni1, Panjab Mane2, Prathamesh Raikar3, Saurabh Sawant4, Prasad Sawant5, Nitesh Kuwalekar6 1 Head of Department, Department of Information Technology, Shah & Anchor Kutchhi Engineering College 2 Assistant Professor, Department of Information Technology, Shah & Anchor Kutchhi Engineering College 3,4,5,6 B.E. student, Department of Information Technology, Shah & Anchor Kutchhi Engineering College ----------------------------------------------------------------***----------------------------------------------------------------- Abstract— It has been found in researches that there is an have challenged hardware development, and multiplayer association between playing first-person shooter video games gaming has been integral. First-person shooters are a type of and having superior mental flexibility. It was found that three-dimensional shooter game featuring a first-person people playing such games require a significantly shorter point of view with which the player sees the action through reaction time for switching between complex tasks, mainly the eyes of the player character. They are unlike third- because when playing fps games they require to rapidly react person shooters in which the player can see (usually from to fast moving visuals by developing a more responsive mind behind) the character they are controlling. The primary set and to shift back and forth between different sub-duties. design element is combat, mainly involving firearms. First person-shooter games are also of ten categorized as being The successful design of the FPS game with correct distinct from light gun shooters, a similar genre with a first- direction, attractive graphics and models will give the best person perspective which uses light gun peripherals, in experience to play the game.
    [Show full text]
  • Building a Java First-Person Shooter
    3D Java Game Programming – Episode 0 Building a Java First-Person Shooter Episode 0 [Last update: 5/03/2017] These notes are intended to accompany the video sessions being presented on the youtube channel “3D Java Game Programming” by youtube member “The Cherno” at https://www.youtube.com/playlist?list=PL656DADE0DA25ADBB. I created them as a way to review the material and explore in more depth the topics presented. I am sharing with the world since the original work is based on material freely and openly available. Note: These notes DO NOT stand on their own, that is, I rely on the fact that you viewed and followed along the video and may want more information, clarification and or the material reviewed from a different perspective. The purpose of the videos is to create a first-person shooter (FPS) without using any Java frameworks such as Lightweight Java Game Library (LWJGL), LibGDX, or jMonkey Game Engine. The advantages to creating a 3D FPS game without the support of specialized game libraries that is to limit yourself to the commonly available Java classes (not even use the Java 2D or 3D APIs) is that you get to learn 3D fundamentals. For a different presentation style that is not geared to following video episodes checkout my notes/book on “Creating Games with Java.” Those notes are more in a book format and covers creating 2D and 3D games using Java in detail. In fact, I borrow or steal from these video episode notes quite liberally and incorporate into my own notes. Prerequisites You should be comfortable with basic Java programming knowledge that would be covered in the one- semester college course.
    [Show full text]
  • Achieve Your Vision
    ACHIEVE YOUR VISION NE XT GEN ready CryENGINE® 3 The Maximum Game Development Solution CryENGINE® 3 is the first Xbox 360™, PlayStation® 3, MMO, DX9 and DX10 all-in-one game development solution that is next-gen ready – with scalable computation and graphics technologies. With CryENGINE® 3 you can start the development of your next generation games today. CryENGINE® 3 is the only solution that provides multi-award winning graphics, physics and AI out of the box. The complete game engine suite includes the famous CryENGINE® 3 Sandbox™ editor, a production-proven, 3rd generation tool suite designed and built by AAA developers. CryENGINE® 3 delivers everything you need to create your AAA games. NEXT GEN ready INTEGRATED CryENGINE® 3 SANDBOX™ EDITOR CryENGINE® 3 Sandbox™ Simultaneous WYSIWYP on all Platforms CryENGINE® 3 SandboxTM now enables real-time editing of multi-platform game environments; simul- The Ultimate Game Creation Toolset taneously making changes across platforms from CryENGINE® 3 SandboxTM running on PC, without loading or baking delays. The ability to edit anything within the integrated CryENGINE® 3 SandboxTM CryENGINE® 3 Sandbox™ gives developers full control over their multi-platform and simultaneously play on multiple platforms vastly reduces the time to build compelling content creations in real-time. It features many improved efficiency tools to enable the for cross-platform products. fastest development of game environments and game-play available on PC, ® ® PlayStation 3 and Xbox 360™. All features of CryENGINE 3 games (without CryENGINE® 3 Sandbox™ exception) can be produced and played immediately with Crytek’s “What You See Is What You Play” (WYSIWYP) system! CryENGINE® 3 Sandbox™ was introduced in 2001 as the world’s first editor featuring WYSIWYP technology.
    [Show full text]
  • Efficient Algorithms for Two-Phase Collision Detection
    MERL { A MITSUBISHI ELECTRIC RESEARCH LABORATORY http://www.merl.com Ecient Algorithms for Two-Phase Collision Detection Brian Mirtich TR-97-23 Decemb er 1997 Abstract This article describ es practical collision detection algorithms for rob ot motion planning. Attention is restricted to algorithms that handle rigid, p olyhedral ge- ometries. Both broad phase and narrow phase detection strategies are discussed. For the broad phase, an algorithm using axes-aligned b ounding b oxes and a hi- erarchical spatial hash table is describ ed. For the narrow-phase, the Lin-Canny algorithm is presented. Alternatives to these algorithms are also discussed. Fi- nally, the article describ es a scheduling paradigm for managing collision checks that can further reduce computation time. Pointers to downloadable software are included. To appear in Practical Motion Planning in Rob otics: Current Approaches and Future Directions, K. Gupta and A.P. del Pobil, editors. This work may not b e copied or repro duced in whole or in part for any commercial purp ose. Permission to copy in whole or in part without payment of fee is granted for nonpro t educational and research purp oses provided that all such whole or partial copies include the following: a notice that such copying is by p er- mission of Mitsubishi Electric Information Technology Center America; an acknowledgment of the authors and individual contributions to the work; and all applicable p ortions of the copyright notice. Copying, repro duction, or republishing for any other purp ose shall require a license with payment of fee to Mitsubishi Electric Information Technology Center America.
    [Show full text]
  • An Optimal Solution for Implementing a Specific 3D Web Application
    IT 16 060 Examensarbete 30 hp Augusti 2016 An optimal solution for implementing a specific 3D web application Mathias Nordin Institutionen för informationsteknologi Department of Information Technology Abstract An optimal solution for implementing a specific 3D web application Mathias Nordin Teknisk- naturvetenskaplig fakultet UTH-enheten WebGL equips web browsers with the ability to access graphic cards for extra processing Besöksadress: power. WebGL uses GLSL ES to communicate with graphics cards, which uses Ångströmlaboratoriet Lägerhyddsvägen 1 different Hus 4, Plan 0 instructions compared with common web development languages. In order to simplify the development process there are JavaScript libraries handles the Postadress: Box 536 751 21 Uppsala communication with WebGL. On the Khronos website there is a listing of 35 different Telefon: JavaScript libraries that access WebGL. 018 – 471 30 03 It is time consuming for developers to compare the benefits and disadvantages of all Telefax: these 018 – 471 30 00 libraries to find the best WebGL library for their need. This thesis sets up requirements of a Hemsida: specific WebGL application and investigates which libraries that are best for http://www.teknat.uu.se/student implmeneting its requirements. The procedure is done in different steps. Firstly is the requirements for the 3D web application defined. Then are all the libraries analyzed and mapped against these requirements. The two libraries that best fulfilled the requirments is Three.js with Physi.js and Babylon.js. The libraries is used in two seperate implementations of the intitial game. Three.js with Physi.js is the best libraries for implementig the requirements of the game.
    [Show full text]
  • Mathematical Approaches for Collision Detection in Fundamental Game Objects
    Mathematical Approaches for Collision Detection in Fundamental Game Objects Weihu Hong1 , Junfeng Qu2, Mingshen Wu3 1 Department of Mathematics, Clayton State University, Morrow, GA, 30260 2 Department of Information Technology, Clayton State University, Morrow, GA, 30260 3Department of Mathematics, Statistics, and Computer Science, University of Wisconsin-Stout, Menomonie, WI 54751 Otherwise, a lot of false alarm will be introduced in collision Abstract – This paper presents mathematical solutions for detection as show in Figure 1, where two objects, one circle computing whether or not fundamental objects in game and one pentagon, are not collided at all even the represented development collide with each other. In game development, sprites collide each other. detection of collision of two or more objects is often brought up. By categorizing most fundamental boundaries in game object, this paper will provide some mathematical fundamental methods for detection of collisions between objects identified. The approached methods provide more precise and efficient solutions to detect collisions between most game objects with mathematical formula proposed. Keywords: Collision detection, algorithm, sprite, game object, game development. 1 Introduction Figure 1. Collision detection based on Boundary The goal of collision detection is to automatically report a geometric contact when it is about to occur or has actually occurred. It is very common in game development that objects in the game science controlled by game player might collide each other. Collision detection is an essential component in video game implementation because it delivers events in the game world and drives game moving though game paths designed. In most game developing environment, game developers relies on written APIs to detect collisions in the game, for example, XNA Game Studio from Microsoft, Cocoa from (a) (b) Apple, and some other software packages developed by other parties.
    [Show full text]
  • Geometry & Computation for Interactive Simulation
    Geometry & Computation for Interactive Simulation Jorg Peters (CISE University of Florida, USA), Dinesh Pai (University of British Columbia), Ulrich Reif (Technische Universitaet Darmstadt) Sep 24 – Sep 29, 2017 1 Overview The workshop advanced the state of the art in geometry and computation for interactive simulation by in- troducing to each other researchers from different branches of academia, research labs and industry. These researchers share the common goal of improving the interface between geometry and computation for physi- cal simulation – but approach it with differing emphasis, techniques and toolkits. A key issue for all partici- pants is to shorten process times and to improve the outcomes of the design-analysis cycle. That is, to more quickly optimize shape, structure and properties to achieve one or multiple design goals. Correspondingly, the challenges laid out covered a wide spectrum from hierarchical design and prediction of novel 3D printed materials, to multi-objective optimization minimizing fuel consumption of commercial airplanes, to creating training scenarios for minimally invasive surgery, to multi-point interactive force feedback for virtually plac- ing an engine into a restricted cavity. These challenges map to challenges in the underlying areas of geometry processing, computational geometry, geometric design, formulation of simulation models, isogeometric and higher-order isoparametric design with splines and meshingless approaches, to real-time computation for interactive surgical force-feedback simulation. The workshop was highly succesful in presenting and con- trasting this rich set of techniques. And it generated recommendations for educating future generation of researchers in geometry and computation for interactive simulation (see outcomes). The lower than usual number of participants (due to a second series of earth quakes just before the meeting) allowed for increased length of individual presentations, so as to discuss topics and ideas at length, and to address basics theory.
    [Show full text]
  • Game Engine Review
    Game Engine Review Mr. Stuart Armstrong 12565 Research Parkway, Suite 350 Orlando FL, 32826 USA [email protected] ABSTRACT There has been a significant amount of interest around the use of Commercial Off The Shelf products to support military training and education. This paper compares a number of current game engines available on the market and assesses them against potential military simulation criteria. 1.0 GAMES IN DEFENSE “A game is a system in which players engage in an artificial conflict, defined by rules, which result in a quantifiable outcome.” The use of games for defence simulation can be broadly split into two categories – the use of game technologies to provide an immersive and flexible military training system and a “serious game” that uses game design principles (such as narrative and scoring) to deliver education and training content in a novel way. This talk and subsequent education notes focus on the use of game technologies, in particular game engines to support military training. 2.0 INTRODUCTION TO GAMES ENGINES “A games engine is a software suite designed to facilitate the production of computer games.” Developers use games engines to create games for games consoles, personal computers and growingly mobile devices. Games engines provide a flexible and reusable development toolkit with all the core functionality required to produce a game quickly and efficiently. Multiple games can be produced from the same games engine, for example Counter Strike Source, Half Life 2 and Left 4 Dead 2 are all created using the Source engine. Equally once created, the game source code can with little, if any modification be abstracted for different gaming platforms such as a Playstation, Personal Computer or Wii.
    [Show full text]
  • Michał Domański Curriculum Vitae / Portfolio
    Michał Domański Curriculum Vitae / Portfolio date of birth: 09-03-1986 e-mail: [email protected] address: ul. Kabacki Dukt 8/141 tel. +48 608 629 046 02-798 Warsaw Skype: rein4ce Poland I am fascinated by the world of science, programming, I love experimenting with the latest technologies, I have a great interest in virtual reality, robotics and military. Most of all I value the pursuit of professionalism, continuous education and expanding one's skill set. Education 2009 - till now Polish Japanese Institute of Information Technology Computer Science - undergraduate studies, currently 4th semester 2004 - 2009 Cracow University of Technology Master of Science in Architecture and Urbanism - graduated 2000 - 2004 Romuald Traugutt High School in Częstochowa mathematics, physics, computer-science profile Skills Advanced level Average level Software C++ (10 years), MFC Java, J2ME Windows 98, XP, Windows 7 C# .NET 3.5 (3 years) DirectX, MDX SketchUP OpenGL BASCOM AutoCAD Actionscript/Flex MS SQL, Oracle Visual Studio 2008, MSVC 6.0 WPF Eclipse HTML/CSS Flex Builder Photoshop CS2 Addtional skills: Good understanding of design patterns and ability to work with complex projects Strong problem solving skills Excellent work organisation and teamwork coordination Eagerness to learn any new technology Languages: Polish, English (proficiency), German (basic) Ever since I can remember my interests lied in computers. Through many years of self-education and studying many projects I have gained insight and experience in designing and programming professional level software. I did an extensive research in the game programming domain, analyzing game engines such as Quake, Half-Life and Source Engine, through which I have learned how to structure and develop efficient systems while implementing best industry-standard practices.
    [Show full text]