Game Programmer

Tomorrow Engine

The Tomorrow Engine is a custom cross platform C++ turn based stratergy engine with the focus on implementing deterministic card games with flexible gameplay scripting using Lua.

The turn based engine went through three phases, concept phase, pre-production phase and finished in the production phase which resulted a game being produced using the engine: "Reptoads".

Duration:

16 Weeks - February to July 2019

Team Size:

11 Programmers, 5 Designers, 8 Artists and 1 Producer

Engine:

Custom Engine: Tomorrow Engine

Role(s):

Engine Programmer, Gameplay Programmer

Language(s):

C++, Lua, JavaScript

Technologies:

Lua Scripting, Online Crossplay Multiplayer, Event/HTTP/UI handling with PS4 Support.

Roles

Engine Programmer
Gameplay Programmer
Network Programmer

Team Responsibilities

Create code that is multi-platform for both PC and PS4.
Guide designers and gameplay programmers with the scripting implementation.
Handle personal game data and implement most of the gameplay networking code.
Design and implement the core engine architecture together with other engine programmers.

Lua Scripting Pipeline

One of the biggest goals for the project for me was to have a custom engine where the gameplay can be customized in an easy and flexible manner. The best way to achive this in my view is to allow players and developers to script gameplay behaviour.

Using a handy C++ library 'Sol 2.0' the process of binding and extending functionality from C++ towards the scripting environment in Lua.

With a range of functionality exposed from gameplay programmers towards designers to use in Lua script files a small team of three designers were able to implement card gameplay behaviour with the 'Reptoads' game we developed.

Building a small engine from scratch

At the start of my second year of the Buas programming education all programmers would form small teams to create prototype game engines based on a genre in mind. Together with two other programmers Jonah and Jorn we took the 'Turn based stratergy' genre.

During this time I was mainly in charge creating basic setups for resource handling, finetuning input and getting the first steps into scripting. At the time using a different framework.

After 8 weeks we had built a small framework that could deliver a turn based stratergy game with functionality similar to 'sid meier's civilization' to a very basic level.

Creating C++ 17 helper functions

One of the biggest goals for the project for me was to have a custom engine where the gameplay can be customized in an easy and flexible manner. The best way to achive this in my view is to allow players and developers to script gameplay behaviour.

During this project I created two small helper classes that would help programmers with handling the behaviour on the server side combined with variables being processed through scripting.

The Gameplay and Match helper both tried to do small things effectively, handling card decks, setting up games through with console commands and handling specific containers and classes quickly.

Handling PlayStation 4

Our biggest goal for this engine was to have most of it's codebase to be compatible working cross platform on the PC and PS4.

I was in charge to make sure the Lua scripting setup would work on both platforms, building the language into a special library file for the PS4. Other important features I made multi-platform was handling HTTP(S) web-requests and gameplay specific code so that both platforms could be identical in the workings.

For all the features to work I had to work with the PS4 SDK and make sure all the code I created was following the TRC and the general guildlines set by Sony.

Made with the engine: Reptoads

The biggest achievement from this project was that our engine was chosen by multi-disciplinary team to develop a small turn based stratergy game for. This turned out to be a card game called 'Reptoads'.

Together with other programmers, designers and visual artists guided by a producer we were able to handle the engines pro's and cons to publish using solely the engine and it's libraries.

The game created is a coop experience based on the 'Dark Souls' board game and 'Chronicle: Runescape Legends' where each player has to place cards to either fight the monster, boost themselves or back-stab the second player. Each having their own benifits and fitfalls.

Live cross-platform demo

After 16 weeks of hard work in a big team we were able to create a nice engine with an impressive feature set and have a game be developed with that engine.

During the production I was listening to the needs of the team and create prioritizations and goals to make sure both could have their deliverables on time.

We had a live demo of our game where we had 6 laptops that could create lobbies, join a lobby and play a coop game together to the end. It was possible to also play together with a laptop and PS4 during a demo.

Contact me!

Website created by Jesse Roffel.