Quantcast
Channel: SCN : Blog List - ABAP Development
Viewing all articles
Browse latest Browse all 943

ABAP Adventure Games Framework - Part 1 - "Introduction"

$
0
0

Yes, you read it right: this blog is about ABAP and Games. I know a few people already implemented their own games using ABAP, but I always felt I also had to make a little contribution into this area. In fact, I tried doing a "contribution" by myself, but something happened along the way and I had to change my plans. In this blog I'll tell you what happened, what are my ideas, and how you can help along the way.

 

 

AS Trial Nightmares

 

Before explaining my motivations for doing an adventure game, I must say I already made this game framework using ABAP, in 2011.  But one pretty day I started my AS Trial VM and got to know that my MaxDB got corrupted, and I lost everything I had inside my AS Trial installation. I made that classical error of not backing up my sources outside the SAP system, and I got extremely mad about it. I even presented my game at the SAP Inside Track São Paulo we had in 2011, so you can imagine how nervous I got about my dumb mistake.

 

The only thing I have left of that prototype is a video I made for my own ABAP blog:

 

(it's brazilian portuguese, but you can get the idea)

 

I want to make that game again, but this time I do not want to make it all by myself. That's why I'm writing this blog: I want to get help from the community!

I'm a huge fan of OO developments, but I'm far away from being an expert. Hopefully this crazy idea can raise good discussions about software architecture, development practices and OO concepts, making me (and maybe you!) a better developer when things are finished.

 

Ready? Let the game begin!

 

 

1. Motivation

 

"Man, are you nuts? Making an ABAP game with old and ugly 'WRITE reports' when we have things like HANA, UI5, SUP, bla, bla, bla, bla?".

 

My first contact with computers where through DOS games. I remember getting extremely excited whenever my father said we were going to my grandmother's house, because I knew I would get a change of playing a game in my aunt's "bright new" 486 computer ( yeap, she was always very cool to all of her nephews). One of my siblings got a friend who could install games using 20 (or something) floppy disks, and every couple of months he came and added a few gems to my aunt's game library. That's how I got to know Warcraft, Doom, Castle Wolfenstein and Hexen.

 

But then I played a game that made me crazy about that genre until today. It all started with a little purple tentacle trying to dominate the whole world:

 

http://upload.wikimedia.org/wikipedia/en/thumb/7/79/Day_of_the_Tentacle_artwork.jpg/250px-Day_of_the_Tentacle_artwork.jpg

I still finish this game every couple of years, using scummvm

 

 

How the game works: you got some "actions" in the bottom side of the screen,, and you move forward in the game by talking to NPCs, finding new areas, combining items and using them at the right places. The NPC characters always give you clues about what you have to do next... however, can you imagine how hard it was for a 11 years old brazilian boy to solve those puzzles? As you are seeing (or reading?) I'm not a native english speaker/writer, and I didn't even know what english was about back in those days. Basically I used a lot of my time trying to do every little combination I could to advance. I'm not sure why I just didn't drop it and went back to Doom, but I guess some things are not meant to be explained.

 

Then I played things like Monkey Island, Indiana Jones and The Fate of Atlantis, Loom, Sam & Max... and I kept playing this kind of stuff until today, and the odds are I'll never stop loving this game genre (btw, try playing Machinarium it's EXTREMELY AWESOME!).

 

So every since I started programming, I always wanted to make an Adventure Game. Now, I could use some new and fancy stuff to implement this idea, but it's not about being opposite to new tools and products, it's more about gaming retro-style. Also, ABAP lists are surely *not* made for animated stuff, so it's kinda fun to overcome those limitations.

 

 

2. Framework

 

You understood by now that I want to do my own game, but Luca's Art's master move was making a engine that could be applied to many games. That's how they could launch that tremendous amount of awesome titles in a short period of time, throwing new stories at us without having to teach us how to play each of those games individually (remember: internet wasn't THAT popular at the 90's). Whenever something new was launched, you instantly got the idea and was able to play the new game from start to finish. Today that engine is shared through scummvm, please take a look if you're into that kind of geek old stuff.

 

I cannot make a huge thing like this a game engine inside SAP, but I can create a framework for adventure games using ABAP. A main program and a set of classes responsible for launching the adventure game, and serving automated methods for handling rooms, screen objects, actions, messages and such. The game you saw on the video, "Zombie Attack", was made using an initial prototype of that framework - the one I lost when my installation crashed.

 

 

3. Community Help

 

It's good to create something by yourself, but I feel I can get a lot more from this project if I share the steps of making this framework here on SCN. It will be a blog like this one, sharing the UML diagrams, initial prototypes and the source code.

 

Now that the Code Exchange is shutting down, I'm not sure where I could post releases and the final version, but this is something that will hopefully be covered by the end of this project. In the mean time, I'll use blog posts to share the progression.

 

I'll definitely hear you, so please, do share your thoughts to improve my work. Like I said I'm far away from being an expert in OO, UML, etc, so any suggestions are welcome. Of course I won't change every little thing, but that's the joy of discussing development topics (check this and this - I can spend days into good discussions!).

 

 

4. Next Steps

 

I already started drawing the UML class diagram for this project. I'll also explain in details how things are going to work inside the framework (like rooms, actions, etc). I do not want to give any dates (we're all busy on the SAP world), but let's just say I'll do my best to release it by the end of next week. If you have any ideas for this project, please share through comments.

 

The "POC game" I want to implement using my framework is "Zombie Attack". Everybody loves a Zombie Game these days, right?   The version on that video is not using any items (like a shotgun, shells, tools, etc..), but I'm thinking about adding something to handle them. Let's see how far I can get.

 

One thing I would love to see is someone else making their own game using the final framework. Even if it's a two-room game, it would make me extremely happy (that's a personal goal for this project).

 

I'll also cross-post some of the information from this blogs on my personal ABAP blog. We have a cool community in Brazil, but sadly most people still have the language barrier to use SCN, especially abap noobs (beginners). I'll do my best to forward them to where things are really happening.

 

 

Thanks for reading, and stay tuned for more gaming!


Viewing all articles
Browse latest Browse all 943

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>