entelect-challenge-tower-defence.git
3 years agoFixed dependency for bot submission
Justin Worthe [Sat, 21 Jul 2018 16:49:58 +0000 (18:49 +0200)]
Fixed dependency for bot submission

3 years agoRemoved bitfield comment
Justin Worthe [Sat, 21 Jul 2018 16:46:09 +0000 (18:46 +0200)]
Removed bitfield comment

I tried implementing it and it made things slower

3 years agoDisabled benchmarking on expressive engine
Justin Worthe [Sat, 21 Jul 2018 15:58:52 +0000 (17:58 +0200)]
Disabled benchmarking on expressive engine

3 years agoRemoved need to load settings for the bitwise game engine
Justin Worthe [Sat, 21 Jul 2018 11:34:23 +0000 (13:34 +0200)]
Removed need to load settings for the bitwise game engine

It's all constants now.

3 years agoAdded an index, to make the missile towers a proper circular buffer
Justin Worthe [Sat, 21 Jul 2018 10:37:56 +0000 (12:37 +0200)]
Added an index, to make the missile towers a proper circular buffer

3 years agoPulls a change out of a loop
Justin Worthe [Sat, 21 Jul 2018 10:22:13 +0000 (12:22 +0200)]
Pulls a change out of a loop

3 years agoBroke dependency on settings in constructing building
Justin Worthe [Sat, 21 Jul 2018 10:18:27 +0000 (12:18 +0200)]
Broke dependency on settings in constructing building

3 years agoFlipped bitfields on the opponent side to make implementation more concise
Justin Worthe [Sun, 15 Jul 2018 20:55:55 +0000 (22:55 +0200)]
Flipped bitfields on the opponent side to make implementation more concise

3 years agoDecreased running time of monte carlo test
Justin Worthe [Sun, 15 Jul 2018 20:08:41 +0000 (22:08 +0200)]
Decreased running time of monte carlo test

3 years agoImplemented shooting teslas in the same order as the game engine
Justin Worthe [Sun, 15 Jul 2018 20:05:19 +0000 (22:05 +0200)]
Implemented shooting teslas in the same order as the game engine

Order by age

3 years agoChanged other bitwise stuff to use constants
Justin Worthe [Thu, 12 Jul 2018 21:41:58 +0000 (23:41 +0200)]
Changed other bitwise stuff to use constants

3 years agoUpdating bot to use more named constants
Justin Worthe [Thu, 12 Jul 2018 21:17:45 +0000 (23:17 +0200)]
Updating bot to use more named constants

3 years agoStarted moving constants to a constants file
Justin Worthe [Sun, 8 Jul 2018 11:23:18 +0000 (13:23 +0200)]
Started moving constants to a constants file

3 years agoChanged default implementation used by main to be bitwise
Justin Worthe [Sat, 7 Jul 2018 09:26:56 +0000 (11:26 +0200)]
Changed default implementation used by main to be bitwise

3 years agoAdded handling of tesla towers
Justin Worthe [Thu, 5 Jul 2018 22:30:42 +0000 (00:30 +0200)]
Added handling of tesla towers

3 years agoMade the choice of random building spots be based on a more efficient algorithm
Justin Worthe [Wed, 4 Jul 2018 19:25:00 +0000 (21:25 +0200)]
Made the choice of random building spots be based on a more efficient algorithm

Still lots of work that can be done here.

3 years agoAdded tests of indexing into random bitwise building
Justin Worthe [Wed, 4 Jul 2018 17:37:35 +0000 (19:37 +0200)]
Added tests of indexing into random bitwise building

3 years agoTurned on debugging symbols for release mode
Justin Worthe [Mon, 2 Jul 2018 20:18:14 +0000 (22:18 +0200)]
Turned on debugging symbols for release mode

To make it easier to profile and improve

3 years agoInitial drop in replacement implementation
Justin Worthe [Mon, 2 Jul 2018 20:08:51 +0000 (22:08 +0200)]
Initial drop in replacement implementation

It's faster than the other one! Doesn't tesla yet, but still! Yay!

3 years agoGame engine working, except for teslas and choosing a move
Justin Worthe [Mon, 2 Jul 2018 19:29:52 +0000 (21:29 +0200)]
Game engine working, except for teslas and choosing a move

3 years agoContinued filling in bitwise game engine
Justin Worthe [Sun, 1 Jul 2018 21:58:52 +0000 (23:58 +0200)]
Continued filling in bitwise game engine

3 years agoStarted filling in bitwise simulation logic
Justin Worthe [Sun, 1 Jul 2018 20:39:44 +0000 (22:39 +0200)]
Started filling in bitwise simulation logic

3 years agoRead missiles from the json into bitfields
Justin Worthe [Sun, 1 Jul 2018 20:28:14 +0000 (22:28 +0200)]
Read missiles from the json into bitfields

3 years agoJSON parsing of bitwise buildings
Justin Worthe [Sun, 1 Jul 2018 20:24:49 +0000 (22:24 +0200)]
JSON parsing of bitwise buildings

3 years agoStarted implementation of reading bitwise from json
Justin Worthe [Sun, 1 Jul 2018 19:37:24 +0000 (21:37 +0200)]
Started implementation of reading bitwise from json

3 years agoBuilt bitwise game state from current game state
Justin Worthe [Sun, 1 Jul 2018 19:07:07 +0000 (21:07 +0200)]
Built bitwise game state from current game state

3 years agoSet up (failing) property test for working of new game state
Justin Worthe [Sun, 1 Jul 2018 16:06:05 +0000 (18:06 +0200)]
Set up (failing) property test for working of new game state

Unfortunately, for this test to work, I still need to implement the
function that reads the game state and goes from one to the other.

3 years agoRenamed tests to follow underscore convention
Justin Worthe [Sun, 1 Jul 2018 10:11:51 +0000 (12:11 +0200)]
Renamed tests to follow underscore convention

3 years agoImplemented tesla count for bitwise
Justin Worthe [Sun, 1 Jul 2018 10:06:21 +0000 (12:06 +0200)]
Implemented tesla count for bitwise

3 years agoCreated data structure for bitwise game engine
Justin Worthe [Sat, 30 Jun 2018 20:45:05 +0000 (22:45 +0200)]
Created data structure for bitwise game engine

3 years agoMoved 'expressive' specific building logic out of generi code
Justin Worthe [Sat, 30 Jun 2018 14:10:40 +0000 (16:10 +0200)]
Moved 'expressive' specific building logic out of generi code

3 years agoUpdated benchmark to only take constant map size into account
Justin Worthe [Sat, 30 Jun 2018 13:38:45 +0000 (15:38 +0200)]
Updated benchmark to only take constant map size into account

3 years agoInitial stab at putting game engine behind a trait
Justin Worthe [Sat, 30 Jun 2018 13:09:25 +0000 (15:09 +0200)]
Initial stab at putting game engine behind a trait

3 years agoPruned dead functions in the engine
Justin Worthe [Sat, 30 Jun 2018 11:52:34 +0000 (13:52 +0200)]
Pruned dead functions in the engine

3 years agoRemoved deconstruction from the list of commands considered
Justin Worthe [Sat, 30 Jun 2018 11:33:36 +0000 (13:33 +0200)]
Removed deconstruction from the list of commands considered

I don't think deconstruction is a necessary part of a viable strategy
for now.

3 years agoAdded test of newly functioning tesla towers
Justin Worthe [Sat, 30 Jun 2018 11:07:30 +0000 (13:07 +0200)]
Added test of newly functioning tesla towers

3 years agoAdded rule on maximum two tesla towers
Justin Worthe [Mon, 25 Jun 2018 19:17:11 +0000 (21:17 +0200)]
Added rule on maximum two tesla towers

3 years agoUpdated test cases and made engine work correctly according to tests
Justin Worthe [Mon, 25 Jun 2018 18:26:05 +0000 (20:26 +0200)]
Updated test cases and made engine work correctly according to tests

I don't think a tesla appeared in this match. I need to contrive a bot
to build one.

3 years agoCompilation, allowing new moves to be chosen, and missile move order
Justin Worthe [Mon, 25 Jun 2018 17:04:29 +0000 (19:04 +0200)]
Compilation, allowing new moves to be chosen, and missile move order

3 years agoAdded functioning of tesla towers
Justin Worthe [Mon, 25 Jun 2018 16:06:45 +0000 (18:06 +0200)]
Added functioning of tesla towers

3 years agoAdded new tower type and deconstruct action
Justin Worthe [Mon, 25 Jun 2018 15:37:14 +0000 (17:37 +0200)]
Added new tower type and deconstruct action

3 years agoUpdated default features to not include benchmarking
Justin Worthe [Sat, 9 Jun 2018 11:55:43 +0000 (13:55 +0200)]
Updated default features to not include benchmarking

3 years agoCalibrated energy cutoff and turned it on by default
Justin Worthe [Sat, 9 Jun 2018 11:23:32 +0000 (13:23 +0200)]
Calibrated energy cutoff and turned it on by default

3 years agoAdded reduced time flag
Justin Worthe [Sat, 9 Jun 2018 09:00:27 +0000 (11:00 +0200)]
Added reduced time flag

3 years agoAdded pruning of buying energy buildings behind a feature flag
Justin Worthe [Sat, 9 Jun 2018 08:27:29 +0000 (10:27 +0200)]
Added pruning of buying energy buildings behind a feature flag

3 years agoAdded max building price to game settings
Justin Worthe [Sat, 9 Jun 2018 08:04:47 +0000 (10:04 +0200)]
Added max building price to game settings

3 years agoSaturating sub. Marginal speed improvement. Clearer logic.
Justin Worthe [Mon, 4 Jun 2018 21:33:55 +0000 (23:33 +0200)]
Saturating sub. Marginal speed improvement. Clearer logic.

3 years agoCleaned out second test case
Justin Worthe [Mon, 4 Jun 2018 21:22:08 +0000 (23:22 +0200)]
Cleaned out second test case

3 years agoMoved to replays that have missile position fix
Justin Worthe [Mon, 4 Jun 2018 21:21:02 +0000 (23:21 +0200)]
Moved to replays that have missile position fix

3 years agoAdded todo
Justin Worthe [Sun, 3 Jun 2018 16:48:40 +0000 (18:48 +0200)]
Added todo

3 years agoMoved json parsing to be part of a module, with textmap equivalence
Justin Worthe [Sun, 3 Jun 2018 15:22:22 +0000 (17:22 +0200)]
Moved json parsing to be part of a module, with textmap equivalence

3 years agoAdded makefile for creating submission
Justin Worthe [Sun, 3 Jun 2018 14:37:41 +0000 (16:37 +0200)]
Added makefile for creating submission

3 years agoAdded engine run with failing test example
Justin Worthe [Sat, 2 Jun 2018 21:54:35 +0000 (23:54 +0200)]
Added engine run with failing test example

3 years agoMade my game engine match theirs
Justin Worthe [Sat, 2 Jun 2018 12:04:06 +0000 (14:04 +0200)]
Made my game engine match theirs

What the hell is up with their building logic? There's +1s and dodgy
indirection everywhere!

3 years agoMoved replay-based test to have convenience import from game engine replay
Justin Worthe [Sat, 2 Jun 2018 11:09:13 +0000 (13:09 +0200)]
Moved replay-based test to have convenience import from game engine replay

3 years agoPut multispeed missiles back in
Justin Worthe [Fri, 1 Jun 2018 21:36:08 +0000 (23:36 +0200)]
Put multispeed missiles back in

3 years agoMade move_missiles even tighter on iterating and cleaning up
Justin Worthe [Thu, 31 May 2018 21:04:00 +0000 (23:04 +0200)]
Made move_missiles even tighter on iterating and cleaning up

3 years agoTighter loop for removing destroyed buildings
Justin Worthe [Thu, 31 May 2018 20:53:19 +0000 (22:53 +0200)]
Tighter loop for removing destroyed buildings

3 years agoTweaking move missiles to be more efficient
Justin Worthe [Thu, 31 May 2018 20:43:05 +0000 (22:43 +0200)]
Tweaking move missiles to be more efficient

3 years agoProfile driven optimization of missile moving
Justin Worthe [Thu, 31 May 2018 19:59:21 +0000 (21:59 +0200)]
Profile driven optimization of missile moving

3 years agoChange to finding affordable buildings to avoid a resize
Justin Worthe [Thu, 31 May 2018 19:25:14 +0000 (21:25 +0200)]
Change to finding affordable buildings to avoid a resize

3 years agoClippy suggested changes
Justin Worthe [Thu, 31 May 2018 19:00:22 +0000 (21:00 +0200)]
Clippy suggested changes

3 years agoInlined unnecessary map
Justin Worthe [Sat, 19 May 2018 11:14:30 +0000 (13:14 +0200)]
Inlined unnecessary map

3 years agoRemoved dependency on OS randomness for seeding
Justin Worthe [Sat, 19 May 2018 11:08:03 +0000 (13:08 +0200)]
Removed dependency on OS randomness for seeding

I'm convinced that the cloud servers they're running on will be out of
entropy, especially towards the end of the tournament. Rather have a
less random initial seed than take that blocking performance hit.

3 years agoImproved perf of removing item from unoccupied cells list
Justin Worthe [Wed, 16 May 2018 22:01:52 +0000 (00:01 +0200)]
Improved perf of removing item from unoccupied cells list

3 years agoTracked energy production on the player
Justin Worthe [Wed, 16 May 2018 21:45:36 +0000 (23:45 +0200)]
Tracked energy production on the player

This cuts out an iteration over the buildings each turn.

3 years agoMoved unconstructed buildings to their own list
Justin Worthe [Wed, 16 May 2018 21:31:36 +0000 (23:31 +0200)]
Moved unconstructed buildings to their own list

3 years agoChanged types to assume health can't be more than the hundred in the
Justin Worthe [Wed, 16 May 2018 20:47:17 +0000 (22:47 +0200)]
Changed types to assume health can't be more than the hundred in the
first round

3 years agoMoved away from special benchmarking suite
Justin Worthe [Tue, 15 May 2018 22:01:27 +0000 (00:01 +0200)]
Moved away from special benchmarking suite

Just using normal monte carlo. More iterations -> better.

3 years agoMoved perf intermediary files to target folder
Justin Worthe [Tue, 15 May 2018 21:19:31 +0000 (23:19 +0200)]
Moved perf intermediary files to target folder

3 years agoAdditional code and bug fixes to help end to end tests
Justin Worthe [Tue, 15 May 2018 21:15:36 +0000 (23:15 +0200)]
Additional code and bug fixes to help end to end tests

3 years agoRayon for threading
Justin Worthe [Tue, 15 May 2018 21:15:02 +0000 (23:15 +0200)]
Rayon for threading

3 years agoAdded end to end tests, comparing against actual game engine
Justin Worthe [Tue, 15 May 2018 21:14:32 +0000 (23:14 +0200)]
Added end to end tests, comparing against actual game engine

3 years agoFixed bug in unoccupied cell implementation
Justin Worthe [Mon, 14 May 2018 21:38:47 +0000 (23:38 +0200)]
Fixed bug in unoccupied cell implementation

This optimization lead to a 50% speedup.

3 years agoAdded running total of unoccupied cells
Justin Worthe [Mon, 14 May 2018 21:31:07 +0000 (23:31 +0200)]
Added running total of unoccupied cells

3 years agoIncreased profiler sampling frequency
Justin Worthe [Mon, 14 May 2018 20:26:31 +0000 (22:26 +0200)]
Increased profiler sampling frequency

3 years agoChanged invalid move checking to be a debug assertion
Justin Worthe [Mon, 14 May 2018 20:18:52 +0000 (22:18 +0200)]
Changed invalid move checking to be a debug assertion

3 years agoReduced number of needless allocations to improve perf
Justin Worthe [Mon, 14 May 2018 20:12:05 +0000 (22:12 +0200)]
Reduced number of needless allocations to improve perf

Current iterations: 26486 in 10 seconds

3 years agoAdded profiling target with perf
Justin Worthe [Mon, 14 May 2018 19:51:36 +0000 (21:51 +0200)]
Added profiling target with perf

3 years agoRemoved unnecessary check on missile updates
Justin Worthe [Sun, 13 May 2018 18:17:54 +0000 (20:17 +0200)]
Removed unnecessary check on missile updates

Unnecessary for now. It might become necessary later.

3 years agoAdded benchmark that touches missiles
Justin Worthe [Sun, 13 May 2018 17:58:16 +0000 (19:58 +0200)]
Added benchmark that touches missiles

3 years agoAdded initial benchmarks
Justin Worthe [Sun, 13 May 2018 17:09:26 +0000 (19:09 +0200)]
Added initial benchmarks

There's a lot of room for improvement here. Specifically, I should
separate the internal representation from the test interface. Have it
provide functionality for creating random valid states.

3 years agoLimited bot to run within the 2 second window
Justin Worthe [Sat, 12 May 2018 20:37:48 +0000 (22:37 +0200)]
Limited bot to run within the 2 second window

3 years agoDebugged and fixed the errors that had the monte carlo not working
Justin Worthe [Sat, 12 May 2018 19:48:42 +0000 (21:48 +0200)]
Debugged and fixed the errors that had the monte carlo not working

Monte carlo now beats sample bot, if given plenty of time. I still
need to put the max time tracking and enforcement in.

3 years agoInitial stab at monte carlo implementation
Justin Worthe [Sat, 12 May 2018 15:39:06 +0000 (17:39 +0200)]
Initial stab at monte carlo implementation

Doesn't seem to be working quite right... just sits there accumulating
energy.

3 years agoFixed engine not paying for new buildings
Justin Worthe [Sat, 12 May 2018 13:19:31 +0000 (15:19 +0200)]
Fixed engine not paying for new buildings

3 years agoBrought random crate back
Justin Worthe [Sat, 12 May 2018 13:14:35 +0000 (15:14 +0200)]
Brought random crate back

3 years agoAdded new building specifications
Justin Worthe [Sat, 12 May 2018 13:10:35 +0000 (15:10 +0200)]
Added new building specifications

3 years agoSplit to library. Reimplemented sample strategy in new state.
Justin Worthe [Thu, 10 May 2018 21:01:22 +0000 (23:01 +0200)]
Split to library. Reimplemented sample strategy in new state.

3 years agoAdded converting from JSON code to game engine representation
Justin Worthe [Wed, 9 May 2018 20:51:38 +0000 (22:51 +0200)]
Added converting from JSON code to game engine representation

3 years agoInitial commit with sample bot and embedded game engine
Justin Worthe [Sat, 5 May 2018 18:37:53 +0000 (20:37 +0200)]
Initial commit with sample bot and embedded game engine