Monday, December 19, 2011

Scrabble Nights

Scrabble Nights!  see more
Play the Classic Family Puzzle Game, Scrabble! 
Test your word skills and knowledge against yourself the computer or friends and family.

Simply select the tiles you wish to use and move the mouse over to the board. Right click to rotate verticlay or horizontaly and the game will automatically position the tiles and indicate if the word and placement is valid or not.

Left click or simply select differnt tiles to form a word or exchange or pass that turn.

Wednesday, November 2, 2011

Update

Finally posted 2 releases of the BadKid Core Libray.
Feel fee to use and play and most importantly let me know of any issues or changes needed.

The BadKid game engine is still being worked on but is always being reviewed.  watch this space because a GUI will be built into it and It should be used for The Scrabble nights game (working though not realesed just).  Reason being....  Umm no I'm not saying anything just yet.

Saturday, July 2, 2011

Status update.

Making some changes to the engine at the moment.
Currently I am writing up a simpler version along side it to experiment with ideas and the following things will be implemented as a result.
Textures will be loaded as Sprites and are referenced through a Sprite Library.
The good thing about this is I will be able to cache and dispose and reclaim required spites when required.
The sprite library also uses either atlases or textures but can both be used identically so that's a benefit.
The variant of the sprite batch I'm working with also z-sorts prior to posting to the graphics device this should save some hassle.
Also I have just built the particle system, logging system. and working on inputs.
Sprite and Primitive batches can both take a camera input which make rending worlds easier and i have attach a simple tracking system for the camera so it can follow any target IE the mouse.
These all need to be re-integrated in to the engine but it's all looking good.

Next up is GUI interfaces and better collision detections.
As it is the collision system works very well and can detect collisions with objects even if they are
projected differently allowing game object to interact with UI elements.

I should really work out a road map.

Friday, June 17, 2011

Engine Core Rebuild.

Changes being implemented.
Removing anything XNA I was having to many issues with it and really wanted to take advantage
of shader model 4 which XNA was not allowing me to do.

Unfair Render/Update methods.
I am making this important change because XNA operates on a 1:1 ratio of update and then render.
I don't really like this because would like to have an update method that can do some actual thinking without causing jitters.
I also see positive benefits for networking and GameStratergies.
That's all for now I obviously have much to do.

Saturday, June 4, 2011

Core Updates.

Whilst working on the BadKid Game Engine I have made some changes to the Core Library.I hate working in radians so I have stated to introduce Units of Measure.
for example you can write
var z = Maths.TwoPi.ToTau(Angle.Radian);      // 1 cycle.
The Angle.Radian can be ommitied as it already the default parameter but be carefull the functions do not know the uom you are working with. they are assumed.

Easy setting of display modes. in BadKid GameEngine.
The base constructor is now as follows

public GameEngine(int width = Preferences.DefaultScreenWidth,
       int height = Preferences.DefaultScreenHeight,
       bool fullscreen = Preferences.DefaultToFullScreen)

So all you have to do is create a constructor such as
public MyGame():base(320,200){
Alternativly you can set the DisplayMode using and Display mode available in the DisplayModes enumeration.
DisplayMode = DisplayModes.First();

Saturday, May 28, 2011

Example

Example of how things are shaping up.
using System;
using BadKid;
using BadKid.Engine;
using Core;
using Core.Math;
using Core.Utilities;
namespace Example{
     public class Test : GameEngine{
             private PrimitiveBatch _primitivebatch;
             private SpriteBatch _spritebatch;
             private Surface _surface;
             private Polygon2D _polygon;
             public override bool Initialize(out Process<bool>[] asyncProcesses){
                    _spritebatch = new SpriteBatch(this);
                    _primitivebatch = new PrimitiveBatch(this);
                    _surface = LoadContent<Surface>("Example.back-air.gif"); //As embeded resource
                    _polygon = GeometricGeneratorFactory.CreateKochSnowflake(
                                        new Vertex2D(400, 300), 200, 2, 0, new Color(255,0,0));
                    asyncProcesses = null;
                    FullScreen = true;
                    return true;
             }
             public override IComponent Update(TimeSpan gameTime){return this;}
             public override void Render(TimeSpan gameTime, Camera camera){
                    Clear(Maths.Randomize<Color,Color>());
                    camera.Rotation += 0.05f;
                    camera.Zoom += 0.05f;
                    if (camera.Zoom == 5) camera.Zoom = 0;
                    _spritebatch.Begin(camera);
                    _spritebatch.Draw(_surface, Center);
                    _spritebatch.End();
                    _primitivebatch.Begin(camera);
                    _primitivebatch.FillPath(GeometricGeneratorFactory.CreateRandomHull(
                                        new Vertex2D(400, 300),300,300,20));
                    _primitivebatch.FillPath(GeometricGeneratorFactory.CreateStar(
                                        Center, 10, 50, 200, 0, Maths.Randomize<Color, Color>()));
                    _primitivebatch.End();
             }
             public static void Main(string[] args){
                    new Test();
             }
     }
}

Friday, May 27, 2011

Still Working.

Quick Update.
2 Libraries, Considering I had way to much code for 1 project I have split the whole thing into 2.
There is the Core Lib which contains anything that can be considered generic and re-usable and the BadKid lib which is still the initial goal.
A lot of work has been done and the primitive batch is working but I am noticing some lag so I will be working on optimising that and the sprite batch is also working.
The XNA option params issue has been defeated though not entirely sure how I just kept buggering around with it and now when you extend the GameEngine class you are free to code in C# 4.0 without any annoying issues.
I will publish the Core Lib as soon as I implement Vector3D, Vertex3D and Matrices but only as binary and debug because I am sure this will be worked on further, logic is BadKid is the only other library I have using it and I can find things I want to change.
Anyway would blab more but I'm still working.

Saturday, February 12, 2011

Progress

Quick Update.
Implementations.
Update by player to allow future network development.
Camera.
Current WIPS
Very simple scripting language.
Console being added and planning on putting in an onscreen keyboard both QWERTY and TXTstyles. Good thing is will be able to use some predictive function already in the engine. Will mean a re-write of the debug pipe but will make debugging easier.
Future implementations.
Render textures and gradients to polygons.
Debug context loader.
Completion of sprite batch and deferred renderer.
Particle engine.
Prefabs shaders and post compile shaders.
Sound inclusion of XACT audio and external audio.

Tuesday, February 1, 2011

Polyfun

Finally added Polygon and primative functionality into the engine.
Also added a console system however after all the changes it's probably about time I considered a re-coding the whole thing. I find it's the best way to find bugs.