Sign in to follow this  
jerome

OfficeGames project

Recommended Posts

Hi people,

I'm glad to introduce you to my new project : OfficeGames.

http://officegames.eu

snapshot.png

Well ... 3D games for office computers (not only, though). As said in the text, there's only one game for now and it's not even finished.

I need your feedback and ideas to improve it and get it to the right direction.

So please let your opinions, comments, criticisms, wishes, whatever in this thread. I won't answer everyone but will read them all for sure.

Have fun ;)

[EDIT] FYI, my best score ever is 10200.

Share this post


Link to post
Share on other sites

REALLY nice, Jerome!  Congrats and well done.  I love the "random" of the targeting reticle.   It has a wonderful "Why did I have so much coffee this morning?  I got hand shakes!" -feel.  heh.

Enemy ship explosions are fantastic... the best I've seen in webGL.

I wonder what got all these guys... pissed at me?  Did I sleep with someone's wife/girlfriend?  Did I talk smack about their pets? 

If I push the "offer to buy shots of booze" button fast enough, can these guys be calmed and negotiated-with?  Do they need pot?  :)

Then again... "office games" are often unnecessarily combative.  :o   So, yeah, I guess "shoot first, ask for explanations later" is an apropos game theme.  heh 

Share this post


Link to post
Share on other sites

Well, I refactored an old project to get at least (almost) one first game to publish, even if it's not finished yet. 

Some other less combative will come. It's just the first step to provide something already running else the procrastination will always win and nothing will arise out from my coding attempts ;) 

The target platforms are explained in the site. The process to publish the games is not explained though but is simple : once a game is playable even not finished, it's published. Then it's improved and worked according to the user feedback if any... continuous improvement and fixing, you know.

[EDIT] Johnk helped me to write a correct english text, I'll publish it  next monday.

Share this post


Link to post
Share on other sites

back

For some personal reasons this project was delayed for while, but now I'm back again (slowly) on it.

FYI : Although not many things have changed in the first and only current game, I refactored a bit the code and implemented an early prototype of a SceneManager, a light tool to switch from a BJS scene to another one according to some logic. Maybe when the tool is working fine and stable, I will propose it for a PR in the core or at least as an extension.

FYI also : I disabled the user FPS log in the database.

just click to start a new level : http://officegames.eu/StarFighter/StarFighter.html

... the program still remains far from achievement

Share this post


Link to post
Share on other sites

Nice!  All this angst, though!  I feel "pressured" when those enemies are shooting at me.  Can't we all just get along?  :)

Jerome... ya just gotta add:  "Invite enemy to Dairy Queen for free coffee-flavored malts" -button.  heh.

Or maybe "Here, try some of this skunky kush" button.  There's just no options in your game... for establishing cooperative ice cream trade... where we can aggressively tariff each other... until space wars begin again.  :)

Then one of us can pour sand into space until we make a new planet, and the other can do dangerous war-craft fly-bys... taunting/antagonizing/terrorizing each other... regarding the ownership of the space near the new planet. 

Off-topic:  Wouldn't ya just LOVE to sail a Dairy Queen ship... into the middle of that South China Sea tit-for-tat BS?   Ice cream truck... the great universal "Bring everyone in the neighborhood together" device.  It's an amazing machine/phenomena. 

Maybe a soft-serve submarine?  heh.  Just surface in the middle of the tension, and start handing-out malts, cones, and sundaes.  End of aggression... start of good ol' American obesity.  Yay!  Ice cream diplomacy.

An interesting feature might be to allow the ship to turn a bit faster... IF user is NOT holding-down fire button.  Perhaps even allow faster held-button gun-firing... IF the enemy is more straight-ahead of player ship.  In other words. the further the reticle is... from screen center... the slower the repeating-speed of the gun.  *shrug*  Goofy tweaks.  :)

I bet Jerome wants feedback on his "SceneManager", though.  Although NOT a working PG, in line 516+ area, you can see J's SceneManager... here:  https://www.babylonjs-playground.com/#1MTLJW#1

 

Share this post


Link to post
Share on other sites

Some kinder games to come later 😉 promised. I have already an idea to make some orbital station resupplying simulation from the same "engine". Here are, in french, my current ideas for OfficeGames : https://github.com/jbousquie/OfficeGames/issues/26

Not sure I'll be able to code all of them. At least, having a classical car race game (OutRun-like) would be a nice challenge for me.

About StarFighter, I intend to write a little story to explain why the player has to destroy all these "enemies". Actually, in my mind, as a space force officer, you're ordered to "pacify" a zone in the space where some insurgents, called the "MorVorsKers" (or other frightening name), keep on defending this area. In fact, they name themselves the "BeeLooLaBy" in their own language, but, here, at the Federation HQ, we prefer not to call them by their original name : how would you convince people to kill aliens whose name sounds like "lullaby" ? that's why our spin doctors invented the name "MorVorsKers". They are peaceful civilized gentle people but they simply refuse to apply the federal rules, to share the natural resources from their native planet because they prefer to keep them unexploited to save the natural ecosystem sustainability and they want to live quietly in their original planetary system without  trading with the rest of the universe. In brief, all those arguments that we, humans, can't tolerate.

That's why we need to destroy them to teach them the good manners.

And, good news, their weapon technology is lower than our : their ship shields aren't that strong and their lasers (how ridiculous, these little rotating red stars) not that powerful compared to our heavy muscle spaceship.

 

So nothing new in this low world : just play the bastard thinking he acts for a good cause. :D

 

Share this post


Link to post
Share on other sites

About the SceneManager, it's for now a really light tool like this :

SF.SceneManager = function() {
    this.scenes = {};           // scene objects storage
    this.sceneNb = 0;
    this.currentScene = undefined;   
};
SF.SceneManager.prototype.addScene = function(name, scene) {
    this.scenes[name] = scene;
    if (this.sceneNb == 0) {
        this.currentScene = scene;
    }
    scene.setSceneManager(this);
    this.sceneNb++;
};
SF.SceneManager.prototype.removeScene = function(name) {
    this.scene[name] = null;
    this.sceneNb--;
    if (this.sceneNb < 0) {
        this.sceneNb = 0;
        this.currentScene = null;
    }
}
SF.SceneManager.prototype.renderCurrentScene = function() {
    this.currentScene.render();
};
// Scene orchestration
SF.SceneManager.prototype.notify = function(messageObject) {
   // put your own logic or scene orchestration here
}

And it's initialized like this :

var sceneManager = new game.SceneManager();
// assuming you created some BJS scenes before, add them to the manager
sceneManager.addScene("game", BJSGameScene);            
sceneManager.addScene("levelTextScreen", BJSLevelScene);

// start the first scene
var startScene = sceneManager.scenes["levelTextScreen"];
sceneManager.currentScene = startScene;

// render the current scene in the render loop
engine.runRenderLoop(function(){
  sceneManager.renderCurrentScene();
});

Then you only need to add a finish condition in each of your scenes : the scene simply notifies the manager with some message object of your own (note the scene can notify the manager even when it's not finished, just to pass some message).

 

 

// in the scene logic, at some moment

    // message to be passed to the manager for example
    var that = this;
    this.notificationMsg = {
        level: that.level,
        emitterName: "level",
        message: "completed",
        emitter: that
    };
   // notification to the manager of this scene
   // note that the legacy Scene Object has been extended by the property "sceneManager"
   this.sceneManager.notify(this.notificationMsg);

And just add the scene orchestration in the method notify() of the SceneManager :

if the emitterName of the message is this scene and the message is, say, "over" or "completed", then switch the current scene to the GAME OVER or next level screen for instance

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.