Quantum Hearts 2d Puzzle Game For Android Os Using Opengl Es-Books Pdf

Quantum Hearts 2D Puzzle Game for Android OS using OpenGL ES
01 Apr 2020 | 18 views | 0 downloads | 8 Pages | 9.16 MB

Share Pdf : Quantum Hearts 2d Puzzle Game For Android Os Using Opengl Es

Download and Preview : Quantum Hearts 2d Puzzle Game For Android Os Using Opengl Es


Report CopyRight/DMCA Form For : Quantum Hearts 2d Puzzle Game For Android Os Using Opengl Es



Transcription

time to at least delve into this subject a bit more 3 4 User interaction. The next step was to implement some type of user interaction. The use of outside tools and libraries for this project was ex Since the goal was to move a 2D character in the four cardi. tremely minimal I used only typical Android OS for app nal directions I drew four navigation buttons on top of the. development and took advantage of the Android system s rendering surface all navigation buttons were implemented. built in OpenGL ES 2 0 implementation for graphical dis entirely on the Android side of the code and commands were. play While I certainly relied on online forums and links for then sent into the OpenGL components Navigation buttons. help throughout the way no other outside libraries or frame were overlayed on the bottom left of the landscape screen. works were used for this project for control using the player s left hand An action button. All code for this individual project was written in for using portals activating quantum tunneling events was. Java Android and I did not take advantage of the native placed at the bottom right of the screen implemented nearly. NDK C implementation at this time identically to the cardinal direction navigation buttons See. 3 3 Graphical setup, As previously mentioned since this was a 2D puzzle based. game adopting a fixed orthographic camera was a logical. 3 5 Textures, and fitting simplification seem at least in some sense from. games like the original Snake and PacMan games to sim. ple modern mobile games such as Dots 3 and Flow Free 4 Textures were then added onto the player square At first. In particular this involved setting up a viewport with di this involved a very simple single texture with no animation. mensions equal to the integer dimensions of pixels on the de and with only a single texture sprite for the player This es. vice screen during setup An orthographic projection ma sentially helped localize the player in place and helped with. trix was computed using these values once along with a basic visualization of transformations as discussed in Section. viewing camera matrix similar to our coursework A fi 3 6. nal model view projection matrix was then computed again Combining the graphical setup Section 3 3 basic user in. only once for given screen dimensions stored and used as teraction Section 3 4 and preliminary texturing discussed. the basis for all future transformations and drawing of graph here we see the initial milestone in Figure 3. ical objects In particular 6 was extremely useful in getting. this to work properly essentially this was helpful in learn. ing how to port our projective transformation code from class. to the simpler orthographic transformation here and on An. droid instead of in C Likewise 2 and 5 were essential. to getting OpenGL ES up and running on Android OS at the. As we will see in 3 6 this setup allows us to model almost. all basic drawing and transformations as simple translations. on a 2D plane ignoring depth altogether, At this point I defined basic shapes such as triangles and. squares as shown in 2 and worked on drawing them as in. the example figure in the tutorial see Figure 2, Figure 3 The initial rendering of the game world was incredibly simplistic. and basic It involved simply a background clearing color red in this image. a single textured square with no animation and only one texture sprite to. represent the player and the basic navigation and action buttons overlayed. From here progressive texturing improvements were made. to make the game much more visually appealing including. Figure 2 The initial rendering I worked to emulate to get my implementa Adding a basic background texture to a single square. tion off the ground In 2 the guide works with projection and camera view. matrices since I used an orthographic projection matrix the initial struggle drawn to cover the whole screen. was simply getting simple triangles and squares to render properly as in this. figure Adding a more aesthetic texture to the player. These minor changes can be seen in Figure 4, Figure 4 Slight texturing improvements over Figure 3 make a significant Figure 6 Initial rendering of basic portals and barriers.
difference in aesthetics,3 7 Game world interaction. To actually create some gameplay and not just have navi. gation some game objects needed to be added In particu. lar there were two types of objects that needed to be imple. Portals which reside at a specific stationary game lo. Further texturing allowed for a self orbiting effect imprac. cation and teleport the player instantly to a designated. tical to see in screenshots images the player seems to slightly. location if the player triggers the portal, orbit around the center of the cell with a slightly modified. angle at each successive frame to create this effect Details Barriers which also reside at a specific stationary. for this can be found in Section 4 game location but that simply prevent the player from. walking to that game location, Lastly by tracking the direction that the player last moved. in some effect of navigation direction was also incorporated Both types of objects were also extensions of the basic. using textures In particular the player sprite Quincy is rendering square object with the main difference from the. drawn looking in the cardinal direction of movement during player object being that neither can move like the player can. each motion see Figure 5 As discussed in Section 4 slightly more involved texturing al. lowed the portals to be drawn based on their characteristics. As a side note other texture resource links used for cre. and animated on use while barriers were textured based on. ating final textures for the portals barriers and backgrounds. the current level, are included in the code submission of this project for refer. ence The initial barrier and portal object renderings can be seen. in Figure 7, Some notion of levels was also created here with different.
levels having different hard coded layouts of game objects and. different background and barrier textures,3 6 Transformations 3 8 Game logic. A decent amount of game logic was also implemented even. for this basic game Some more important aspects included. As discussed in Section 3 3 the restriction of rendering to a. Checking and rounding of player coordinates based on. 2D plane using orthographic projection greatly simplified the. movements See Section 4, rendering of shapes and in particular transformations With. only two degrees of freedom the x and y directions in the im Preventing the player from traveling onto through bar. age transformations essentially boiled down to translations rier locations. in the x and y directions to simulate movement in the game Handling portal teleportation from one location to an. world Translation was also used to simply place objects at other. various places on the 2D map even if the objects were not Handling goal portal selection and teleportation. moving through to subsequent levels See below, To place an object square at a particular location for a In particular one major game element was the switch. given frame the base coordinates of that square are precom ing of goal portals every few seconds the duration differs. puted according to the screen dimensions and then at the per level Every few seconds a new goal portal is chosen. time of drawing we apply the model view projection matrix pseudo randomly and redrawn with the distinct pink textur. from Section 3 3 and the translation matrix from the object s ing to represent a portal that would lead Quincy closer to. desired x y coordinates Thus we can move the player as in Leah There is only one goal portal active in a given level at. Figure 5 and can also place non moving objects as in Figure any given time If this goal portal is activated by the player. 6 in time the player completes the level and moves on to the. a Looking up b Looking down,c Looking left d Looking right. Figure 5 Example images showing the player sprite looking in different directions based on the player s most recent movement. Figure 7 Example images showing the basic portals and barriers being rendered b shows a subsequent frame following a after the player has teleported. through the bottom center portal he she was standing on in a note that said portal is currently being animated in b because it was just used. I also needed to strictly track the phase of the app whether. in the initial story telling see Section 3 9 or the actual. game or outro This was particularly complicated by the has. sle of communication and timing between the UI application. thread and the underlying OpenGL rendering thread see. Another main point of logic was handling frame rate I used. the simplistic approach described in 7 where the OpenGL. thread sleeps the appropriate amount to ensure that frames. are rendered as close to the desired framerate 30 FPS here. as possible This is likely not an optimal approach since sleep. ing a thread is usually undesirable but this proved fairly sim. ple and effective,3 9 Story telling, Lastly after the essentially game had been put together an.
element of story telling and visuals was added This primar. ily involved adding introductory story slides on the Android. OS side of things before starting the game which the user. can click through before starting the first level Likewise an. outro slide was added if the user completes all three levels. Along with the added texture animations previously de. scribed adding more engaging backgrounds coloring of por. tals and barrier textures certainly helped in bringing the. game to life a bit more The final levels can be seen in Figure. 4 Challenges,4 1 Challenges conquered,4 1 1 Textures. Numerous challenges arose as I made my way through the. development of this game The primary one was by far ani. mation using textures This involved creating various sprites. for each desired animation such as the player orbiting within. a cell the player facing different directions based on navi. gation direction differing portal colors based on the goal. property and a portal being animated after use The whole. idea of sprite animation was entirely new to me Resources. such as 1 were particularly helpful in understanding how to. draw textures using OpenGL ES on Android,A decent amount of time and effort was put into. writing generalizable code for handling any number of. sprites rows columns which certainly proved useful for drop. ping in new textures for different objects as I proceeded. In particular the player s self orbiting animation was han. dled by creating 8 sprites for each direction to correspond to. 8 consecutive frames and repeating frame sets The player. circle was offset by the appropriate progressive amounts to Figure 9 Player sprites used to handle both self orbiting animation and. direction dependent rendering It might be hard to see but for each couple. give the orbiting effect over subsequent frames This off of rows corresponding to a specific looking direction the player is offset by. set was done offline so that the orbiting textures were fully varying amounts of each of the 8 sprites giving the self orbiting animation. ready to be displayed at runtime with no modification or. special handling of texture coordinates for example Player A similar approach was taken for animating portals both. direction dependent rendering was handled in much the same based on the goal property and based on use The sprites. way Both of these can be seen in Figure 9 used for the portals are shown in Figure 10 and were primar. Figure 8 Screenshots of final levels with all texturing and animations implemented The various levels represent Quincy s journey through space and time. to find Leah The first level corresponds to prehistoric times where the dinosaurs still roamed the Earth The second corresponds to times of the grand. historic civilizations such as Rome The third corresponds to a futuristic space setting where Quincy is making his final search for Leah in the vastness of. ily created using incremental rotations offline of a base portal. sprite This was a bit more complicated as portals are an. imated for about a second after the player uses them and. while the player has already begun moving at the teleported. to location To tackle this a separate timer frame counter. was started each time a portal was used and the portal was. given a modified texture based on this timer counter and the. portal s goal property One last complication was getting. the goal portal to animate after the player steps through it. to end a level exceptions were made to make sure the level. persisted while only showing the goal portal after the. player had already completed it for some specified amount. of frames loops, these tile coordinates were converted to pixels was in the. very last step when computing the transformation matrix for. each square object,4 1 3 User interaction navigation. A related issue was making sure user interaction navigation. worked properly in game For example this involved mak. ing sure the user could only trigger more movements from. proper tile corners and not while in intermediate locations. while moving between rounded tile coordinates i e no ad. ditional movement should be queued up if the user is at 15. 20 while moving between 10 20 and 20 20,4 1 4 Threads.
One other problem was dealing with the differing threads. used by the Android system when running this program In. particular since all OpenGL commands must be run on the. separate OpenGL thread while user interaction and things. like the introductory slides handling player navigation and. the outro slides were all handled in the Android UI thread. Thus something as simple as creating the game level and. game objects when the user finishes the introductory slides. was slightly complicated by having to flip switches and send. messages between the threads Having a dedicated game. engine like object the GameEngine java class in my imple. mentation helped coordinate things between these threads. but this certainly could still be cleaned up and streamlined. 4 2 Challenges remaining, Still a variety of issues still remain that would be addressed. in any future work on this game This includes, Primarily adding some sort of timer score system to. the game to make it more engaging This would for, example penalize players for sitting and waiting for a. nearby portal to become a goal portal and would in. stead encourage them to actively navigate towards the. current goal at any given point in time This could also. provide a threshold for success and failure in each level. for example the player might have to reach the goal by. a specific number of seconds after the start of the level. otherwise the player fails that level and must restart. Figure 10 Portal sprites used for handling the goal property pink is a. goal portal blue otherwise and for animating when used by the player Adding more levels would certainly be necessary It. would be interesting to have various underlying possi. ble portal networks that are chosen from randomly each. 4 1 2 Coordinates time a given level is instantiated so that the player has. Another minor complication was handling of screen coordi a new challenge each time while remaining at approxi. nates At first I was handling game locations as the intuitive mately the same difficulty since playing the same level. grid of integers where each tile approximately the width and Minorly some transformation matrices for non moving. height of the player sprite had unit length 1 However this objects could be stored instead of computing them each. proved problematic for animating incremental movement as time This would save a few clock cycles between each. this involved dealing with floats stepping from 1 0 to 1 2 to rendering. 1 4 and so on until 2 0 for intermediate steps and brought Better handling of onPause onResume system call. with it a whole slew of the expected numerical error problems backs along with screen orientation dimension changes. and inconveniences My solution was to instead deal with a None of these are adequately and thoroughly handled. grid of integers multiplied by a factor of 10 such that the at the moment leading to unpredictable behavior when. location 1 2 2 0 would instead be computed as 12 20 the device sleeps and resumes or when the orientation. which eliminated any need for decimal valued numbers and of the device changes currently the app restricts the de. was much much cleaner and effective overall The only time vice to stay in strictly landscape mode so this is some. what hack ily handled Portals http www deviantart com art. Dragon Ball Z LSW Attack Sprites 326401952, 5 Lessons learned Outro slide heart http claudias family. blogspot com 2011 09 heart wanted html, I learned numerous things about gaming what learned about.
gaming screen timing cross thread communication variable References. handling etc all difficult,1 Android lesson four Introducing basic tex. 6 Conclusion turing http www learnopengles com,android lesson four introducing basic texturing. In conclusion this was a fun and engaging project and I felt it 2 Displaying graphics with opengl es android develop. was a great first experience with mobile gaming I am happy ers guide http developer android com training. I got the chance to work on this and hopefully can continue graphics opengl index html. work on this project in my spare time in the future I felt 3 Dots A game about connection google play store. that overall this was a success even though the final game https play google com store apps details id. ended up quite simplistic short and simple It was interest com nerdyoctopus gamedots. ing to see the development of a small graphical story at my. 4 Flow free google play store https play google, own hands and I am happy I got to share in Quincy s and. com store apps details id com bigduckgames flow,Leah s little adventure. 5 Opengl es android developers guide http, I learned numerous things about gaming and computer.
developer android com guide topics graphics, graphics as a whole in the process In particular I got a better. opengl html, sense if even just an inkling of the difficulty and breadth of. problems that game developers must deal with when creating 6 A real open gl es 2 0 2d tutorial part. games such as screen timing cross thread communication 1 http androidblog reindustries com. and handling of numerous game specific variables and states a real open gl es 2 0 2d tutorial part 1. I also got a better sense for how implementations of games on 7 Stackoverflow how to limit framerate when us. mobile devices work and some of the special care that must ing android s glsurfaceview rendermode continuously. be taken in mobile settings http stackoverflow com questions 4772693. In general working with such games and interactive graph how to limit framerate when using androids glsurfacevi. ics was very intriguing and I certainly now have more desire lq 1. to continue to explore this space I feel that this project was. a very fun and immersive way to get my hands wet and I. hopefully will have time to pursue more in the future Since. this app will be soon posted on the Google Play store I hope. you enjoy this little story of Quincy and Leah too Thank. 7 Special thanks, Special thanks to my girlfriend Michelle Karpovich for help. ing me create and choose the textures used in this project. Also more special thanks to the authors of the following. links and graphics,Intro slide background https upload wikimedia. org wikipedia commons 0 0d Hubble ultra deep,field high rez edit1 jpg.
Intro slide arrow http www 4kingdoms com arrow,Dinosaur background http thedinosaursofearth. blogspot com,Rome Colosseum background http fineartamerica. com featured the colosseum and other monuments giovanni paolo panini. Rome Colosseum pillar for barrier texture https,openclipart org detail 29053 capitello. Space background http www space com,27728 around beta pictoris space wallpaper.

Related Books

Bank Street College of Education - Amazon S3

Bank Street College of Education Amazon S3

ou a warm welcome to Bank Street College of Education. I offer y This catalog will provide you with important information about our . many programs for those interested in pursuing a graduate degree in education. Whether you are new to the field of education, an established teacher, or considering a career change, Bank Street has much to offer. At Bank Street, you will not only develop the ...

Determination of Various Elements at Ultra-trace Levels in ...

Determination of Various Elements at Ultra trace Levels in

furnace atomic absorption spectrometry (GFAAS) would be extremely useful. Graphite furnace AAS is a highly specific and selective technique in which complex sample . matrices can be removed by the optimized temperature programs. The interferents in the sample matrix are removed and separated from the analyte, resulting in almost interference-free analysis, which leads to accurate results. The ...

Cisco Unified Attendant Console Advanced Release Notes ...

Cisco Unified Attendant Console Advanced Release Notes

Release Notes for Cisco Unified Attendant Console Advanced Version 12.0.5 OL-29385-01 Introduction Introduction Cisco Unified Attendant Console Advanced is a Windows-based operator attendant console application for use exclusively with Cisco Unified Communications Manager. Cisco Unified Attendant Console

10. CONSOLIDATION - MyWebPages

10 CONSOLIDATION MyWebPages

10-1 10. CONSOLIDATION 10.1 INFLUENCE OF DRAINAGE ON RATE OF SETTLEMENT When a saturated stratum of sandy soil is subjected to a stress increase, such as that

Loading & Lashing Cargo - Hapag-Lloyd

Loading amp Lashing Cargo Hapag Lloyd

aagoyd Loading & Lashing Cargo 2 This guide is for your information and guidance concerning the stuffing and securing of cargo on Hapag-Lloyd flat-racks. It contains basic requirements only, which may differ from cargo to cargo. In case of questions please contact the Hapag-Lloyd Special Cargo Department as follows: special.cargo@hlag.com. This guide is based on the CTU code and our experience

UNDAMENTALS OF ONSOLIDATION - UMass Lowell

UNDAMENTALS OF ONSOLIDATION UMass Lowell

D2435-11 Standard Test Methods for One-Dimensional Consolidation Properties of Soils Using Incremental Loading ... 14.330 SOIL MECHANICS Consolidation

UNIT 5 Calculus - Northgate Math Website

UNIT 5 Calculus Northgate Math Website

Calculus Calculus is one of the most important areas of mathematics. There are two branches of calculus, differential calculus and integral calculus. Differential calculus deals mainly with variable, or changing, quantities. Integral calculus deals mainly with finding sums of infinitesimally small quantities. This generally involves finding a limit. Chapter 15, the only chapter in Unit 5 ...

Chapter 5 Resource Masters - KTL MATH CLASSES

Chapter 5 Resource Masters KTL MATH CLASSES

The Chapter 5 Resource Masters include the core materials needed for Chapter 5. These materials include worksheets, extensions, and assessment options. The answers for these pages appear at the back of this booklet. All of the materials found in this booklet are included for viewing and printing in the Advanced Mathematical Concepts ...

USE OF DYNAMIC CONE PENETROMETER IN SUBGRADE AND BASE ...

USE OF DYNAMIC CONE PENETROMETER IN SUBGRADE AND BASE

USE OF DYNAMIC CONE PENETROMETER IN SUBGRADE AND BASE ACCEPTANCE Shin Wu and Shad Sargand Prepared in cooperation with the Ohio Department of Transportation Office of Research and Development and the United States Department of Transportation Federal Highway Administration State Job Number 14817(0) April 2007 Ohio Research Institute for Transportation and the Environment . 1. Report No. FHWA ...

Multivariate Statistics Summary and Comparison of Techniques

Multivariate Statistics Summary and Comparison of Techniques

Multivariate Statistics Summary and Comparison of Techniques PThe key to multivariate statistics is understanding conceptually the relationship among techniques with regards to: <The kinds of problems each technique is suited for <The objective(s) of each technique <The data structure required for each technique <Sampling considerations for each technique <Underlying mathematical mo