console and font changes

Posted July 9, 2007 by entityengine
Categories: console, development, screenshots

- added new [fonts] section to the ini file, which stores information for in-engine fonts
- changed the default console font to a non-monospaced one; still using a monospaced font for lists where column width is important
- boolean variables now only accept true or false as valid values

ss20.jpg

lighting engine

Posted July 6, 2007 by entityengine
Categories: console, development, graphics, screenshots, system, xml

- modified the engine to allow multiple lights per level, each having their own colour, intensity, and movement
- shadows are cast dynamically from each object for each light
- lighting is still entity-based (the entire entity is coloured and lit)
- added new console variable, s_lightShadowFactor, which sets how large the shadow offset is
- fixed a bug with the hitbox grid
- xml lighting structure has been modified heavily

ss19.jpg ss18.jpg
ss17.jpg ss16.jpg

shadows, enLight, console variables

Posted July 4, 2007 by entityengine
Categories: console, development, graphics, screenshots, system, xml

- added a new class, enLight
- added two techniques to render shadows on all entities, one that depends on the position of the light, and one that simply renders a shadow that is an offset of the actor’s position
- added four new console variables which control the rendering of shadows: r_drawActorShadows, r_drawActorMovingShadows, r_drawActorSolidShadows, r_drawActorSolidMovingShadows
- in a level’s xml file, 4 new attributes can be set at the main level child to control the level’s main light source: lightX, lightY, lightIntensity, and lightPositional
- increased the character limit for a console variable from 25 to 50 characters
- fixed rendering order to be dependent on the xml level file

- screenshots of the two lighting techniques (offset on left side, positional on right):

ss12.jpg ss13.jpg

ss14.jpg ss15.jpg

hit collision, hitbox, and xml changes

Posted June 29, 2007 by entityengine
Categories: development, screenshots, system, xml

- new hit detection algorithm that relies on the position of entities, rather than checking every entity in a level
- completely redesigned how <attack>, <destroy>, <accessFromBottom>, and <friction> operate in the engine, as well as in the xml level structure; now all four are individually set for each hitbox that an entity has defined, allowing for more customization
- new level demonstrating the speed of the new hit detection algorithm (each block is destructable):

ss11.jpg

damage, xml schema updates

Posted June 27, 2007 by entityengine
Categories: development, editor, system, xml

- added a new xml child element to <hitbox>, <damage>, which allows an entity to be destroyed when it is hit on the top, bottom, left, or right
- moved <attack> and <friction> to be a child of the <hitbox> element
- fixed a bug whereby a player jumps and hits an object, but doesn’t start falling down immediately
- cleaned up the code that loads an entity
- window size (and resolution) is now 800×608, allowing for 25×19 tiles of size 32×32 to be set
- saving a level now requires that at least 2 spawn points be present

ss10.jpg

new textures, physics, damage rules

Posted June 25, 2007 by entityengine
Categories: development, screenshots, system

- edited the attack code to determine who has hit who more accurately (from the top and bottom only for ActorSolidMovings)
- edited hit detection and the resulting physics between ActorSolidMovings to determine if two players are hitting eachother
- started adding in new textures that have a more realistic look

ss8.jpg ss9.jpg

timing and attacking

Posted June 22, 2007 by entityengine
Categories: development, system, xml

- added new functionality to the timer class (enTimer) that allows a function to be passed in that will be executed after a set delay: enTimer(functionPointer, delay)
- any solid entity (one with a hitbox) can now specify which edge causes damage by inserting <attack top="#" bottom="#" left="#" right="#"> into the entity’s xml set; the # parameter specifies how much of a percentage of the default damage amount the edge will cause (e.g. 1.0 = 100%, 0.5 = 50%)
- playing dying now has a 2.5 second delay, and upon respawn, the player will kill anybody who is standing on the spawn point (ala Quake)
- added the console variable g_actorSpeed which controls the speed at which all actors move, with 1.0 being default, 0.5 being half, etc.

abstraction of a level – enLevel

Posted June 20, 2007 by entityengine
Categories: development, screenshots, system

- abstracted the level information from the main engine to a new class, enLevel
- fixed a texture issue that occurred when jumping (still needs more generality, though)

- new screenshot of a level that I created in under 5 minutes:

ss7.jpg

code changes

Posted June 18, 2007 by entityengine
Categories: console, development, system, xml

- disabled the use of a log file for the time being (reinforcing the use of the console)
- shifted the splash page menu to the left and implemented keyboard manipulation
- all internal console constants now have default value constants
- added a spawn entity to the editor (xml tag spawn="true") which the engine will now use to determine player placement
- removed mouse selection ability on the splash page
- changeState now takes intro, play, or editor as valid parameters

- current list of console commands: changeState, clear, consoleDump, consoleSize, cvar, deleteTexture, dir, echo, exec, help, listCommands, listCvars, listEntities, listTextures, openFile, set, showHitboxes, showFPS, quit

more screenshots of development

Posted June 18, 2007 by entityengine
Categories: development, screenshots

ss4.jpg ss6.jpg ss2.jpg

ss3.jpg ss5.jpg ss1.jpg