Saturday 25 July 2009

Engine preview and some afterthoughts.

Writing programs in C# is much easier than in C++, but it's still a toil.

I barely made anything so far, but it's still something. Displaying graphics, movement, collision detection are among those little things I managed to make.


The picture here presented is a screenshot of an early build of my current engine written in C#. The number on the top-left side of the window displays the numerical value of the key pressed and is for testing purpouses. The Blue square is movable by using arrow keys. The gray box is a wall on which collision detection can be tested. The interactive objects use the System.Windows.Forms.PictureBox class to operate.

I'm not pleased with the pace of the project. The idea of building the entire engine from scratch has too many disadvantages. First of all, it might be too complicated and time-consuming to do. Secondly, since it is I who will be making it, this leaves me with no documentation, common issues and fixes to problems if they will occur (not counting the confusing .NET documentation that doesn't help that much). Lastly, I'm aware that there are people who made bigger, better and more potent engines. The thing is, what is a better thing to do, to make the engine from scratch and have full controll over it, or find a better one that is more professional?




The second picture shows an engine made in Scirra's Construct. The whole idea behind that engine was to eliminate loading times by loading "rooms" instead of "levels" providing a seemless transition from one game area to the other, creating a feeling of a big, free-roaming world. Similar engine (namely Gex Engine) was used in Eidos' infamous "Soul Reaver" game to create a seemless, free-roaming experience. The blue box in the center is movable by the player. The green squares are solid and can be walked on. The object to the right of the player object is used when loading the next "room". The rooms and wall textures are competely customisable and loadable from a file. This provides enormous flexibility to the game engine and new levels can be added without altering the core program. Working in Construct and The Games Factory was a pleasure due to the speed in which things could be implemented (unlike programming in C#). As an extra note, Construct is point-and-click, event-driven RAD (Rapid Application Development) tool which can be expanded using Python programming language.

Stay tooned for more info.

No comments:

Post a Comment