Share My Creation Project Ryu - Bulldozer Engine Tech Demo

PROJECT'S CURRENT STATUS:
- I'm working on a SQLite integration with the engine, so that everything loads from a local database. Textures, Stats, Levels, AI, Moves, Sprites, etc.

project-ryu.png
Hi everyone!!

I'm currently developing a fighting game / beat'em'up engine called "Bulldozer Engine".
My goal is to build games like Streets Of Rage, Final Fight or Street Fighter with great responsiveness and speed. I love fighting games, namely those made in Japan.

Download the latest version: September 2nd 2015
Want to run it on Google Chrome? See this post!

promo.png

Concept Art

game-screens.png

Actual Screenshots

Under the influence of Capcom, SNK and Team Ninja, I decided to create this small tech-demo. There's a lot of copyright infringement here, so this app isn't going anywhere near Google Play. There are only three stages, selected randomly. Once you defeat your opponents you win the game.

Download the latest version - September 2nd 2015
Want to run it on Google Chrome? See this post!


Controls:
help.png


Tested on:
  • PC Win7 64-Bit: Google Chrome ARC Welder
  • PC Win7 64-Bit: Andy Emulator
  • PC Win7 64-Bit: Bluestacks Emulator
  • PC Win7 32-Bit: Google Chrome ARC Welder
  • PC Win7 32-Bit: Andy Emulator
  • Tablet nVidia Shield
  • Tablet ASUS ME173x
  • Phone Sony Xperia P
Color indicates stress-test performance. Code optimization is always a work-in-progress.

Features:

  • Context-Sensitive Sprite Animator
  • Several Animation Layers
  • Dynamic Stereo Sound FX
  • In-House Collision Detector
  • In-House Physics Engine
  • In-House SlideShow Engine
  • Ergonomic Touch Controls
  • Native USB/Bluetooth GamePad Support
  • Native USB/Bluetooth Keyboard Support
  • OpenGL Rendering through LibGDX

Known Issues:

  • Currently none.
Please let me know if you find any bugs or issues.
Remember, this is not a finished product.


Technical Details:

I decided to embrace the challenge of creating a game engine from scratch. Except for the rendering part, which is beautifully handled by libGDX, I created all the remaining components, such as the sprite animator, collision detector and physics engine.
I have to say, I'm quite proud of what I accomplished so far. :D

Finally, I have to thank @Informatix for his libGDX support and game tutorials, @walterf25 for his encouragement and of course @Erel for all his tutorials, dedication to this forum and for creating B4A.

Thank you for your support, guys! :D

FAIR USE STATEMENT: In accordance with Title 17 U.S.C. Section 107, this non-profit demo uses copyrighted materials intended for evaluation and educational purposes only.
 

Attachments

  • logo.png
    logo.png
    133.1 KB · Views: 2,526
Last edited:

wonder

Expert
Licensed User
Longtime User
Thank you very much guys!!! :D

I've been working on this project since September. Creating a fully functional videogame has been my dream since I was 12, when my uncle taught me how to code back in 1994. I'm planning to add a few special moves such as the Hadouken, hopefully in the next two weeks. There's still a lot to do, but I'm very motivated and happy with what I've accomplished so far.

Once this project is complete, using the Bulldozer Engine, I'll be able create my own games with original characters and story! :)

Update:
- Added multiple background and foreground layers
- Added special effects layer
 
Last edited:

wonder

Expert
Licensed User
Longtime User
Alright guys, I'm dedicating myself again to this project!
Sorry about the broken links, everything's back online.
Check the latest update: Download Link

I smashed a few bugs and did some minor optimization to the code.
Looking forward to know your opinion! :)

Updates:

:cool: - Improved AI, the characters are now smarter and more aggressive.
;) - Came up with some interesting concept art on photoshop. Although I'm using copyrighted images, the comic-style design is entirely mine.
:D - Added an Inventory (test mode).
inv.png



New concept art:
concept-art-0.png

Player's avatar and stats. To be displayed on the top-left corner of the screen.


concept-art-1.png

This one exemplifies what could be an in-game cut-scene, for example, before a special attack.


concept-art-2.png

How it will look like, once the avatar/stats implemented.
 

Douglas Farias

Expert
Licensed User
Longtime User
Muito massa, continua esse projeto que tu vai ganha muita grana ainda ;)
Se eu tivesse o conhecimento em jogos, estaria te ajudando =)
 

wonder

Expert
Licensed User
Longtime User
UPDATE:
I've been rewriting my physics engine. I am now using real Newtonian laws to simulate the interactions between objects.
Let's have a look at the actor attributes:
B4X:
HP_MAX(active_actor)                     =  Rnd(2000, 4000)         'points
HP(active_actor)                         =  HP_MAX(active_actor)    'points
PUNCH_ATK(active_actor)                  =   16.0                   'points
KICK_ATK(active_actor)                   =   28.0                   'points
DEF(active_actor)                        =    9.0                   'percent: of the opponent attack will be ignored
GUARD(active_actor)                      =   90.0                   'percent: of the opponent attack will be ignored
SPD(active_actor)                        =  160.0                   'percent of the actor height
ATK_SPD(active_actor)                    =    6.0                   'attacks per second
JUMP(active_actor)                       =  330.0                   'magical anti-gravity units
STA_MAX(active_actor)                    =  Rnd(90, 110)            'points
STA(active_actor)                        =  STA_MAX(active_actor)   'points
REC_SPD(active_actor)                    =    4.0                   'points per second
MASS(active_actor)                       =   93.0                   'kg
PUNCH_MASS(active_actor)                 =   4.94                   'percent of body weight
KICK_MASS(active_actor)                  =  16.68                   'percent of body weight
PUNCH_VELOCITY(active_actor)             =  230.0                   'percent of the actor height
KICK_VELOCITY(active_actor)              =  180.0                   'percent of the actor height

As you can see, each character has its own mass expressed in kilograms.
Every time the Collision Detector signals a collision between two objects, the following formula is applied to each axis:
B4X:
Dim u1, u2, v1, v2, m1, m2 As Float       
Dim x = 0, y = 1, z = 2 As Int

For axis = x To z           
    u1 = host_initial_velocity(axis)
    u2 = guest_initial_velocity(axis)

    m1 = host_mass
    m2 = guest_mass
          
    v1 = ((u1 * (m1 - m2)) + (2 * m2 * u2)) / (m1 + m2)
    v2 = ((u2 * (m2 - m1)) + (2 * m1 * u1)) / (m1 + m2)
          
    host_final_velocity(axis) = v1
    guest_final_velocity(axis) = v2
Next
REPLIES:
Muito massa, continua esse projeto que tu vai ganha muita grana ainda ;)
Se eu tivesse o conhecimento em jogos, estaria te ajudando =)

English: Really cool! If you carry on with this project you'll be making a lot of money! ;)
If I had game design experience, I'd be glad to help you. =)
Thank you so much, Douglas! Your motivation is really important to me! :)

Nice!

One small advice, though: Don't use the triangle, square, circle, cross symbols for the buttons, or you risk getting some nasty Sony attack lawyer paying you a visit.
Thanks for the advice! :) However, since this is nothing more than a private demo of my Bulldozer (physics/game) Engine, I won't be using these graphical assets for the finished product. Everything will be re-skinned. ;)
 
Last edited:

Troberg

Well-Known Member
Licensed User
Longtime User
UPDATE:
I've been rewriting my physics engine. I am now using real Newtonian laws to simulates the interactions between objects.​


Cool, very cool!

Thanks for the advice! :) However, since this is nothing more than a private demo of my Bulldozer (physics/game) Engine, I won't be using these graphical assets for the finished product. Everything will be re-skinned. ;)

No problem, just wanted to give you a heads up. A friend of mine got a very nasty call from Sony because his garage band used those symbols in a music video and on their stage backdrop. Apparently Sony see them as an important part of their product image.
 

wonder

Expert
Licensed User
Longtime User
New version online: DOWNLOAD LINK

Updates:
- New moves: Heavy Punch and Spin Kick
- Physics: I have completely re-wrote my physics engine according to Newtonian physics, namely the law of conservation of momentum.
- AI: The AI engine was also completely re-written. I've added way more complexity to the opponents behavior and decision making. They're getting smarter day-by-day.
- Special Move: Slide your finger from CIRCLE to TRIANGLE for a super kick.
- Visuals: I've added a status bar which displays the current location, HP and Stamina.
- Misc: Whoever wins the fight, will throw random taunts and the WIN/KO screen.
Work In Progress:
- Collision Detector: I'm currently working on a "Vector Collision Detector", which should be more accurate than the current one. More details soon.​
 
Last edited:

wonder

Expert
Licensed User
Longtime User
You are one bad ass wonder, LOL :D:D:D:D
Walter
Ahahah!! Thank you so much, Walter!!

New version online: DOWNLOAD LINK

Updates:

Native Keyboard support (Arrow Keys + A, S, D, C)
It now runs on (Windows 64-bit) Google Chrome through the Arc Welder extension!! :D
- Step 1: Download and install Arc Welder for your Google Chrome.
- Step 2: On you Google Chrome apps, open Arc Welder and install the Project Ryu apk file.
- Step 3: Run and enjoy.​

 
Last edited:
Top